Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
8 lines
No EOL
4.5 KiB
JavaScript
8 lines
No EOL
4.5 KiB
JavaScript
|
|
define(['require','shared/icc_helper','shared/async_storage','modules/settings_utils','shared/settings_listener'],function(require){'use strict';var CBS_KEY='ril.cellbroadcast.disabled';var CMAS_KEY='cmas.enabled';var CMAS_PREF_KEY='cmas.user-pref.enabled';var IccHelper=require('shared/icc_helper');var asyncStorage=require('shared/async_storage');var SettingsUtils=require('modules/settings_utils');var SettingsListener=require('shared/settings_listener');var settings=window.navigator.mozSettings;var Messaging=function(){this._cardIndex=0;this._cbs=null;this._cbsInput=null;this._cbsInit=false;this._cmas=null;this._cmasInput=null;this._cmasInit=false;this._boundCBSChanged=this._cbsChanged.bind(this);this._boundCBSInputChanged=this._cbsInputChanged.bind(this);this._boundCMASInputChanged=this._cmasInputChanged.bind(this);};Messaging.prototype={_disableItems:function m__disableItems(panel,disable){var elementIds=['menuItem-deliveryReport','menuItem-readReport','menuItem-autoRetrieve','menuItem-wapPush','menuItem-cellBroadcast','menuItem-emergencyAlert'];elementIds.forEach(function(id){var element=panel.querySelector(id);if(!element){return;}
|
|
if(disable){element.setAttribute('aria-disabled',true);}else{element.removeAttribute('aria-disabled');}
|
|
var input=element.querySelector('gaia-switch');if(!input){input=element.querySelector('select');}
|
|
input.disabled=disable;});},_setCMAS:function m__setCMAS(enabled){var cardIndex=this._cardIndex;this._cmasInput.checked=enabled;var getReq=settings.createLock().get(CMAS_KEY);getReq.onsuccess=function(){var values=getReq.result[CMAS_KEY];values[cardIndex]=enabled;var cmasset={};cmasset[CMAS_KEY]=values;settings.createLock().set(cmasset);};},_cbsChanged:function m__cbsChanged(cbsSettings){var cardIndex=this._cardIndex;var value=cbsSettings[cardIndex];this._cbsInput.checked=!value;if(value){this._setCMAS(false);}else{this._restoreCMASPref();}
|
|
this._cmasInput.disabled=value;if(!this._cbsInit){this._cbsInput.disabled=false;this._cbs.removeAttribute('aria-disabled');this._cbsInit=true;}},_cbsInputChanged:function m__cbsInputChanged(){var cardIndex=this._cardIndex;var cbsInputChecked=this._cbsInput.checked;if(!cbsInputChecked){this._storeCMASPref(this._cmasInput.checked);}
|
|
var getReq=settings.createLock().get(CBS_KEY);getReq.onsuccess=function(){var values=getReq.result[CBS_KEY];values[cardIndex]=!cbsInputChecked;var cbsset={};cbsset[CBS_KEY]=values;settings.createLock().set(cbsset);};},_cmasInputChanged:function m__cmasInputChanged(){this._setCMAS(this._cmasInput.checked);this._storeCMASPref(this._cmasInput.checked);},_storeCMASPref:function m__storeCMASPref(checked){var cardIndex=this._cardIndex;asyncStorage.getItem(CMAS_PREF_KEY,function(pref){var states=pref||[true,true];states[cardIndex]=checked;asyncStorage.setItem(CMAS_PREF_KEY,states);});},_restoreCMASPref:function m__restoreCMASPref(){var cardIndex=this._cardIndex;asyncStorage.getItem(CMAS_PREF_KEY,function(pref){var states=pref||[true,true];this._setCMAS(states[cardIndex]);if(!this._cmasInit){this._cmasInput.disabled=false;this._cmas.removeAttribute('aria-disabled');this._cmasInit=true;}}.bind(this));},initCBS:function m_initCBS(panel,cardIndex){this._cardIndex=cardIndex;this._cbs=panel.querySelector('#menuItem-cellBroadcast');this._cbsInput=this._cbs.querySelector('gaia-switch');this._cbsInit=false;this._cmas=panel.querySelector('#menuItem-emergencyAlert');this._cmasInput=this._cmas.querySelector('gaia-switch');this._cmasInit=false;this._cbsInput.removeEventListener('change',this._boundCBSInputChanged);this._cmasInput.removeEventListener('change',this._boundCMASInputChanged);SettingsListener.unobserve(CBS_KEY,this._boundCBSChanged);this._cbsInput.addEventListener('change',this._boundCBSInputChanged);this._cmasInput.addEventListener('change',this._boundCMASInputChanged);SettingsListener.observe(CBS_KEY,[false,false],this._boundCBSChanged);},disableItems:function m_disableItems(panel){var self=this;if(!settings||!IccHelper||IccHelper.cardState!=='ready'){this._disableItems(panel,true);return;}
|
|
IccHelper.addEventListener('cardstatechange',function(){self._disableItems(panel,IccHelper.cardState!=='ready');});this._disableItems(panel,false);},injectCBSTemplate:function m_injectCBSTemplate(containerNode){var promise=new Promise(function(resolve,reject){var templateId='template-messaging';SettingsUtils.loadTemplate(templateId,function(html){if(!html){reject('We can\'t get the template '+templateId);}else{containerNode.innerHTML=html;resolve();}});});return promise;}};var messaging=new Messaging();return messaging;}); |