The drop-down toasters can be disabled by modifying the system application. It only takes removing a couple lines of javascript code, but we are going to be modifying the system application, so all precautions should be taken to be able to restore the phone to a working state should something go wrong.
This is a guide for version 2.5 devices, 1.0 devices are similar but not exactly the same.
This modification does require root ADB access.
Be sure to take a full backup of some sort, a backup of all partitions via EDL is recommended.
adb pull /system/b2g/webapps/system.gaiamobile.orgmkdir sourceunzip system.gaiamobile.org/application.zip -d sourcecp js/keyboard_manager.js js/bak.keyboard_manager.js _publishModeChanged: function(value) {
var idMap = {
'abc': 'ime-lowercase',
'ABC': 'ime-uppercase',
'123': 'ime-number',
'Abc': 'ime-capitalize',
'T9': 'ime-predictive'
};
var displayName = this.keypadHelper.DISPLAY_LANGUAGES[this.activeLayout];
var iconText = this.keypadHelper.LANGUAGES_ICON_TEXT[this.activeLayout];
window.dispatchEvent(new CustomEvent('keyboard-mode-changed', {
detail: {
mode: value.mode,
iconText: iconText,
activeLayout: this.activeLayout
}
}));
if (value.byUser) {
var ariaLabel = navigator.mozL10n.get(idMap[value.mode]);
if (iconText && value.mode === 'abc') {
this._showToaster({
text: displayName
});
return;
}
if (value.mode === 'T9') {
if (this.activeLayout.indexOf('chinese') > -1 || this.activeLayout === 'korean') {
this._showToaster({
text: displayName,
ariaLabel: ariaLabel
});
} else {
this._showToaster({
text: ariaLabel,
ariaLabel: ariaLabel
});
}
return;
}
this._showToaster({
text: value.mode,
ariaLabel: ariaLabel
});
}
},
All we need to do is remove all calls to this._showToaster(). They are split into multiple lines, so be sure to remove the entire block, like:
this._showToaster({
text: value.mode,
ariaLabel: ariaLabel
});
/data/local/webapps.cd sourcerm ../system.gaiamobile.org/application.zipzip -r ../system.gaiamobile.org/application.zip ./*cd ..adb push system.gaiamobile.org /data/local/webappsadb pull /data/local/webapps.json"basePath": "/system/b2g/webapps","basePath": "/data/local/webapps",adb push webapps.json /data/local/webapps/adb rebootTa-da! All done!