Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
19 lines
No EOL
13 KiB
JavaScript
19 lines
No EOL
13 KiB
JavaScript
|
|
define('panels/root/root',['require','shared/lazy_loader'],function(require){'use strict';var LazyLoader=require('shared/lazy_loader');function Root(){}
|
|
Root.prototype={_panel:null,_loadScripts:function root_loadScripts(){LazyLoader.load(['js/firefox_accounts/menu_loader.js','js/dsds_settings.js','js/telephony_settings.js','js/telephony_items_handler.js'],function(){TelephonySettingHelper.init().then(function telephonySettingInitDone(){window.dispatchEvent(new CustomEvent('telephony-settings-loaded'));});});},_showSimItems:function root_showSimItems(panel){var mozMobileConnections=navigator.mozMobileConnections;if(mozMobileConnections){if(mozMobileConnections.length===1){var duelSimItem=this._panel.querySelector('#simCardManager-settings');duelSimItem.hidden=true;}else{var simItem=this._panel.querySelector('#simSecurity-settings');simItem.hidden=true;}}else{var elements=['#call-settings','#data-connectivity','#messaging-settings','#simSecurity-settings','#simCardManager-settings'];elements.forEach(el=>{this._panel.querySelector(el).hidden=true;});}},_showDeveloperMenuItem:function root_showDeveloperMenuItem(){var developerItem=this._panel.querySelector('[data-show-name="developer.menu.enabled"]');if(developerItem&&navigator.mozSettings){return navigator.mozSettings.createLock().get('developer.menu.enabled').then(function(result){developerItem.hidden=!result['developer.menu.enabled'];},function(error){console.error(error);});}else{return Promise.resolve();}},init:function root_init(panel){this._panel=panel;setTimeout(this._loadScripts);var nfcItem=panel.querySelector('.nfc-settings');nfcItem.hidden=!navigator.mozNfc;this._showSimItems();this._showDeveloperMenuItem();}};return function ctor_root(){return new Root();};});define('panels/root/airplane_mode_item',['require','shared/airplane_mode_helper'],function(require){'use strict';var AirplaneModeHelper=require('shared/airplane_mode_helper');function AirplaneModeItem(element){this._itemEnabled=false;this._element=element;this.init();this._boundAPMStateChange=this._onAPMStateChange.bind(this);}
|
|
AirplaneModeItem.prototype={set enabled(value){if(this._itemEnabled===value){return;}else{this._itemEnabled=value;if(this._itemEnabled){AirplaneModeHelper.addEventListener('statechange',this._boundAPMStateChange);}else{AirplaneModeHelper.removeEventListener('statechange',this._boundAPMStateChange);}}},get enabled(){return this._itemEnabled;},_onAPMStateChange:function ami_onAPMStateChange(status){if(status==='enabled'||status==='disabled'){this._element.checked=(status==='enabled')?true:false;this._element.disabled=false;}else{this._element.disabled=true;}},init:function ami_init(){AirplaneModeHelper.ready(function(){this._element.addEventListener('change',()=>{this._element.setAttribute('disabled',true);AirplaneModeHelper.setEnabled(this._element.checked);});var status=AirplaneModeHelper.getStatus();this._element.checked=(status==='enabled')?true:false;this._element.disabled=true;window.addEventListener('wificontext-ready',this);}.bind(this));},handleEvent:function ami_handleEvent(evt){switch(evt.type){case'wificontext-ready':window.removeEventListener('wificontext-ready',this);this._element.disabled=false;break;}}};return function ctor_airplane_mode_item(element){return new AirplaneModeItem(element);};});define('panels/root/themes_item',['require','modules/apps_cache'],function(require){'use strict';var AppsCache=require('modules/apps_cache');function ThemesItem(element){this._enabled=false;this._element=element;this._themeCount=0;this._boundUpdateThemes=this._updateThemes.bind(this);this.init();}
|
|
ThemesItem.prototype={set enabled(enabled){if(this._enabled===enabled){return;}else{this._enabled=enabled;if(this._enabled){this._updateThemeSectionVisibility();}}},get enabled(){return this._enabled;},init:function(){var self=this;AppsCache.addEventListener('install',this._boundUpdateThemes);AppsCache.addEventListener('uninstall',this._boundUpdateThemes);return AppsCache.apps().then(function(apps){apps.some(function(app){if(self._isThemeApp(app)){self._themeCount+=1;}});self._updateThemeSectionVisibility();});},_isThemeApp:function(app){var manifest=app.manifest||app.updateManifest;return manifest.role==='theme';},_updateThemes:function(evt){var app=evt&&evt.application;var type=evt.type;if(this._isThemeApp(app)){if(type==='install'){this._themeCount+=1;}else if(type==='uninstall'){this._themeCount-=1;}
|
|
this._updateThemeSectionVisibility();}},_updateThemeSectionVisibility:function(){this._element.hidden=(this._themeCount<2);}};return function ctor_themesItem(element){return new ThemesItem(element);};});define('panels/root/addons_item',['require','modules/addon_manager'],function(require){'use strict';var AddonManager=require('modules/addon_manager');function AddonsItem(element){this._enabled=false;this._element=element;this.init();}
|
|
AddonsItem.prototype={set enabled(enabled){if(this._enabled===enabled){return;}else{this._enabled=enabled;if(this._enabled){this._updateAddonSectionVisibility();}}},get enabled(){return this._enabled;},init:function(){var _handleEvent=this._updateAddonSectionVisibility.bind(this);AddonManager.addons.observe('insert',_handleEvent);AddonManager.addons.observe('remove',_handleEvent);AddonManager.addons.observe('reset',_handleEvent);this._updateAddonSectionVisibility();},_updateAddonSectionVisibility:function(){this._element.hidden=AddonManager.length===0;}};return function(element){return new AddonsItem(element);};});define('panels/root/stk_item',['require','shared/stk_helper'],function(require){'use strict';var STKHelper=require('shared/stk_helper');function STKItem(elements){this._elements=elements;this.init();}
|
|
STKItem.prototype.init=function(){var iccLoaded=false;var self=this;function loadIccPage(callback){callback=(typeof callback==='function')?callback:function(){};if(iccLoaded){return callback();}
|
|
Settings.currentPanel='#icc';window.addEventListener('iccPageLoaded',function oniccPageLoaded(event){iccLoaded=true;callback();});}
|
|
function executeIccCmd(iccMessage){if(!iccMessage){return;}
|
|
var reqIccData=window.navigator.mozSettings.createLock().set({'icc.data':null});reqIccData.onsuccess=function icc_getIccData(){window.DUMP('ICC Cache cleared');};window.DUMP('ICC message to execute: ',iccMessage);loadIccPage(function(){var event=new CustomEvent('stkasynccommand',{detail:{'message':iccMessage}});window.dispatchEvent(event);});}
|
|
setTimeout(function updateStkMenu(){window.DUMP('Showing STK main menu');var settings=navigator.mozSettings;var lock=settings.createLock();function showStkEntries(menu){window.DUMP('STK cached menu: ',menu);if(!menu||typeof menu!=='object'||Object.keys(menu).length===0){window.DUMP('No STK available - exit');self._elements.iccMainHeader.hidden=true;self._elements.iccEntries.hidden=true;return;}
|
|
self._elements.iccEntries.innerHTML='';self._elements.iccMainHeader.hidden=true;self._elements.iccEntries.hidden=true;Object.keys(menu).forEach(function(SIMNumber){window.DUMP('STK Menu for SIM '+SIMNumber+' ('+menu[SIMNumber].iccId+') - ',menu[SIMNumber].entries);var li=document.createElement('li');var a=document.createElement('a');var menuItem=menu[SIMNumber].entries;var icon=STKHelper.getFirstIconRawData(menuItem);a.id='menuItem-icc-'+menu[SIMNumber].iccId;a.className='menu-item menuItem-icc';a.href='#icc';if(icon){var iconContainer=document.createElement('span');iconContainer.appendChild(STKHelper.getIconCanvas(icon));iconContainer.setAttribute('aria-hidden',true);li.appendChild(iconContainer);self._elements.iccEntries.dataset.customIcon=true;}else{a.dataset.icon='sim-toolkit';}
|
|
a.onclick=function menu_icc_onclick(){window.DUMP('Touched '+menu[SIMNumber].iccId);loadIccPage(function(){var event=new CustomEvent('stkmenuselection',{detail:{'menu':menu[SIMNumber]}});window.dispatchEvent(event);});};var span=document.createElement('span');var title=menu[SIMNumber].entries.title;span.textContent=title;a.appendChild(span);document.l10n.setAttributes(a,'stkEntry',{title:title});if(Object.keys(menu).length>1){var small=document.createElement('small');small.setAttribute('data-l10n-id','sim'+SIMNumber);small.classList.add('menu-item-desc');small.id='sim-desc-'+SIMNumber;a.setAttribute('aria-describedby',small.id);a.appendChild(small);}
|
|
li.appendChild(a);self._elements.iccEntries.appendChild(li);self._elements.iccMainHeader.hidden=false;self._elements.iccEntries.hidden=false;});}
|
|
var reqApplications=lock.get('icc.applications');reqApplications.onsuccess=function icc_getApplications(){var json=reqApplications.result['icc.applications'];var menu=json&&JSON.parse(json);showStkEntries(menu);};settings.addObserver('icc.applications',function icc_getApplications(event){var json=event.settingValue;var menu=json&&JSON.parse(json);window.DUMP('STK Settings.currentPanel '+Settings.currentPanel);if(Settings&&Settings.currentPanel==='#icc'){Settings.currentPanel='#root';}
|
|
showStkEntries(menu);});var reqIccData=lock.get('icc.data');reqIccData.onsuccess=function icc_getIccData(){var cmd=reqIccData.result['icc.data'];if(cmd){window.DUMP('ICC async command (launcher)');executeIccCmd(JSON.parse(cmd));}};settings.addObserver('icc.data',function(event){var value=event.settingValue;if(value){window.DUMP('ICC async command while settings running: ',value);executeIccCmd(JSON.parse(value));}});}.bind(this));};return function ctor_stk_item(elements){return new STKItem(elements);};});define('panels/root/panel',['require','modules/settings_service','modules/settings_panel','panels/root/root','panels/root/airplane_mode_item','panels/root/themes_item','panels/root/addons_item','panels/root/stk_item'],function(require){'use strict';var SettingsService=require('modules/settings_service');var SettingsPanel=require('modules/settings_panel');var Root=require('panels/root/root');var AirplaneModeItem=require('panels/root/airplane_mode_item');var ThemesItem=require('panels/root/themes_item');var AddonsItem=require('panels/root/addons_item');var STKItem=require('panels/root/stk_item');var queryRootForLowPriorityItems=function(panel){return{'BluetoothItem':panel.querySelector('.bluetooth-desc'),'NFCItem':{nfcMenuItem:panel.querySelector('.nfc-settings'),nfcCheckBox:panel.querySelector('#nfc-input')},'LanguageItem':panel.querySelector('.language-desc'),'BatteryItem':panel.querySelector('.battery-desc'),'FindMyDeviceItem':panel.querySelector('.findmydevice-desc'),'StorageUSBItem':{mediaStorageDesc:panel.querySelector('.media-storage-desc'),usbStorage:panel.querySelector('#menuItem-enableStorage'),usbEnabledInfoBlock:panel.querySelector('.usb-desc'),mediaStorageSection:panel.querySelector('.media-storage-section')},'StorageAppItem':panel.querySelector('.application-storage-desc'),'WifiItem':panel.querySelector('#wifi-desc'),'ScreenLockItem':panel.querySelector('.screenLock-desc'),'SimSecurityItem':panel.querySelector('.simCardLock-desc')};};return function ctor_root_panel(){var root;var airplaneModeItem;var themesItem;var addonsItem;var stkItem;var activityDoneButton;var lowPriorityRoots=null;var initLowPriorityItemsPromise=null;var initLowPriorityItems=function(rootElements){if(!initLowPriorityItemsPromise){initLowPriorityItemsPromise=new Promise(function(resolve){require(['panels/root/low_priority_items'],resolve);}).then(function(itemCtors){var result={};Object.keys(rootElements).forEach(function(name){var itemCtor=itemCtors[name];if(itemCtor){result[name]=itemCtor(rootElements[name]);}});return result;});}
|
|
return initLowPriorityItemsPromise;};return SettingsPanel({onInit:function rp_onInit(panel){root=Root();root.init(panel);airplaneModeItem=AirplaneModeItem(panel.querySelector('.airplaneMode-input'));themesItem=ThemesItem(panel.querySelector('.themes-section'));addonsItem=AddonsItem(panel.querySelector('#addons-section'));stkItem=STKItem({iccMainHeader:panel.querySelector('#icc-mainheader'),iccEntries:panel.querySelector('#icc-entries')});activityDoneButton=panel.querySelector('#activityDoneButton');activityDoneButton.addEventListener('click',function(){SettingsService.back();});var mozMobileConnections=navigator.mozMobileConnections;if(mozMobileConnections&&mozMobileConnections.length>1){var callItem=document.getElementById('menuItem-callSettings');callItem.setAttribute('href','#call-iccs');}
|
|
var idleObserver={time:3,onidle:function(){navigator.removeIdleObserver(idleObserver);lowPriorityRoots=queryRootForLowPriorityItems(panel);initLowPriorityItems(lowPriorityRoots).then(function(items){Object.keys(items).forEach((key)=>items[key].enabled=true);});}};navigator.addIdleObserver(idleObserver);},onShow:function rp_onShow(panel){airplaneModeItem.enabled=true;themesItem.enabled=true;addonsItem.enabled=true;if(initLowPriorityItemsPromise){initLowPriorityItemsPromise.then(function(items){Object.keys(items).forEach((key)=>items[key].enabled=true);});}},onHide:function rp_onHide(){themesItem.enabled=false;addonsItem.enabled=false;if(initLowPriorityItemsPromise){initLowPriorityItemsPromise.then(function(items){Object.keys(items).forEach((key)=>items[key].enabled=false);});}},onUninit:function rp_onUninit(){airplaneModeItem.enabled=false;}});};}); |