Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
define('panels/about/hardware_info',['require'],function(require){'use strict';var HardwareInfo=function(){this._elements=null;};HardwareInfo.prototype={init:function hi_init(elements){this._elements=elements;this._loadHardwareInfo();},_loadHardwareInfo:function hi__loadHardwareInfo(){var _conns=navigator.mozMobileConnections;if(!_conns){this._elements.deviceInfoPhoneNum.hidden=true;return;}
|
||||
var _isMultiSim=_conns.length>1;var _hideListItem=true;while(this._elements.deviceInfoMsisdns.hasChildNodes()){this._elements.deviceInfoMsisdns.removeChild(this._elements.deviceInfoMsisdns.lastChild);}
|
||||
Array.prototype.forEach.call(_conns,function(conn,index){var iccId=conn.iccId;if(!iccId){return;}
|
||||
var iccObj=navigator.mozIccManager.getIccById(iccId);if(!iccObj){return;}
|
||||
var iccInfo=iccObj.iccInfo;if(!iccInfo){return;}
|
||||
_hideListItem=false;var span=this._renderPhoneNumberElement(iccInfo,index,_isMultiSim);this._elements.deviceInfoMsisdns.appendChild(span);}.bind(this));this._elements.deviceInfoPhoneNum.hidden=_hideListItem;},_renderPhoneNumberElement:function hi__renderPhoneNumberElement(iccInfo,index,isMultiSim){var span=document.createElement('span');var msisdn=iccInfo.msisdn||iccInfo.mdn;if(msisdn){if(isMultiSim){document.l10n.setAttributes(span,'deviceInfo-MSISDN-with-index',{index:index+1,msisdn:msisdn});}else{span.textContent=msisdn;}}else{if(isMultiSim){document.l10n.setAttributes(span,'unknown-phoneNumber-sim',{index:index+1});}else{span.setAttribute('data-l10n-id','unknown-phoneNumber');}}
|
||||
return span;}};return function ctor_hardwareInfo(){return new HardwareInfo();};});define('panels/about/update_check',['require'],function(require){'use strict';var UpdateCheck=function(){this._elements=null;this._settings=window.navigator.mozSettings;this._checkStatus={'gecko.updateStatus':{},'apps.updateStatus':{}};};UpdateCheck.prototype={init:function uc_init(elements){this._elements=elements;this._loadLastUpdated();this._displayNotifyCheckbox();this._elements.checkUpdateNow.addEventListener('click',this._checkForUpdates.bind(this));},_displayNotifyCheckbox:function uc__displayNotifyCheckBox(){var key='addons.auto_update';var request=this._settings.createLock().get(key);request.onsuccess=()=>{this._elements.addonUpdateNotify.classList.toggle('hidden',!request.result[key]);this._settings.addObserver(key,e=>{this._elements.addonUpdateNotify.classList.toggle('hidden',!e.settingValue);});};request.onerror=err=>{console.error('Failed to fetch ',key,err);};},_loadLastUpdated:function uc__loadLastUpdated(){var key='deviceinfo.last_updated';var request=this._settings.createLock().get(key);request.onsuccess=function(){var lastUpdated=request.result[key];if(!lastUpdated){return;}
|
||||
this._elements.lastUpdateDate.textContent=new Date(lastUpdated).toLocaleString(navigator.languages,{hour12:navigator.mozHour12,hour:'numeric',minute:'numeric',day:'numeric',month:'numeric',year:'numeric'});}.bind(this);},_statusCompleteUpdater:function uc__statusCompleteUpdater(){var hasAllCheckComplete=Object.keys(this._checkStatus).some((setting)=>this._checkStatus[setting].value==='check-complete');var hasAllResponses=Object.keys(this._checkStatus).every((setting)=>!!this._checkStatus[setting].value);if(hasAllCheckComplete){this._startClearUpdateStatus();}
|
||||
var hasNoUpdatesResult=Object.keys(this._checkStatus).some((setting)=>this._checkStatus[setting].value==='no-updates');if(hasAllResponses||hasNoUpdatesResult){this._elements.updateStatus.classList.remove('checking');}},_onUpdateStatus:function uc__onUpdateStatus(setting,event){var value=event.settingValue;this._checkStatus[setting].value=value;var l10nValues=['no-updates','already-latest-version','retry-when-online'];if(value!=='check-complete'){var id=l10nValues.indexOf(value)!==-1?value:'check-error';this._elements.systemStatus.setAttribute('data-l10n-id',id);if(id==='check-error'){console.error('Error checking for system update:',value);}}
|
||||
this._statusCompleteUpdater();this._settings.removeObserver(setting,this._checkStatus[setting].cb);this._checkStatus[setting].cb=null;},_clearUpdateStatusTimer:null,_startClearUpdateStatus:function uc__clearUpdateStatus(){if(this._clearUpdateStatusTimer){clearTimeout(this._clearUpdateStatusTimer);}
|
||||
this._clearUpdateStatusTimer=window.setTimeout(this._doClearUpdateStatus.bind(this),5000);},_doClearUpdateStatus:function uc__clearUpdateStatus(){this._elements.updateStatus.classList.remove('visible');this._elements.systemStatus.textContent='';},_checkForUpdates:function uc__checkForUpdates(){if(!navigator.onLine){this._elements.checkUpdateNow.setAttribute('disabled','disabled');document.l10n.formatValue('no-network-when-update').then(msg=>{alert(msg);this._elements.checkUpdateNow.removeAttribute('disabled');});return;}
|
||||
this._elements.updateStatus.classList.add('checking','visible');this._elements.systemStatus.textContent='';for(var setting in this._checkStatus){this._checkStatus[setting].cb=this._onUpdateStatus.bind(this,setting);this._settings.addObserver(setting,this._checkStatus[setting].cb);}
|
||||
this._settings.createLock().set({'gaia.system.checkForUpdates':true});}};return function ctor_updateCheck(){return new UpdateCheck();};});define('panels/about/factory_reset',['require'],function(require){'use strict';var FactoryReset=function(){this._elements=null;};FactoryReset.prototype={init:function fr_init(elements){this._elements=elements;if(navigator.mozPower){this._elements.resetButton.disabled=false;this._elements.resetButton.addEventListener('click',this._resetClick.bind(this));}else{this._elements.resetButton.disabled=true;}},_resetClick:function fr__resetClick(){this._elements.resetDialog.hidden=false;this._elements.resetCancel.onclick=function(){this._elements.resetDialog.hidden=true;}.bind(this);this._elements.resetConfirm.onclick=function(){this._factoryReset();this._elements.resetDialog.hidden=true;}.bind(this);},_factoryReset:function fr__factoryReset(){var power=navigator.mozPower;if(!power){console.error('Cannot get mozPower');return;}
|
||||
if(!power.factoryReset){console.error('Cannot invoke mozPower.factoryReset()');return;}
|
||||
power.factoryReset();}};return function ctor_factoryReset(){return new FactoryReset();};});define('panels/about/panel',['require','modules/settings_panel','panels/about/hardware_info','panels/about/update_check','panels/about/factory_reset'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var HardwareInfo=require('panels/about/hardware_info');var UpdateCheck=require('panels/about/update_check');var FactoryReset=require('panels/about/factory_reset');return function ctor_support_panel(){var hardwareInfo=HardwareInfo();var factoryReset=FactoryReset();var updateCheck=UpdateCheck();return SettingsPanel({onInit:function(panel){hardwareInfo.init({deviceInfoPhoneNum:panel.querySelector('.deviceinfo-phone-num'),deviceInfoMsisdns:panel.querySelector('.deviceInfo-msisdns')});updateCheck.init({checkUpdateNow:panel.querySelector('.check-update-now'),lastUpdateDate:panel.querySelector('.last-update-date'),updateStatus:panel.querySelector('.update-status'),systemStatus:panel.querySelector('.system-update-status'),addonUpdateNotify:panel.querySelector('.addon-update-notify')});factoryReset.init({resetButton:panel.querySelector('.reset-phone'),resetDialog:panel.querySelector('.reset-phone-dialog'),resetConfirm:panel.querySelector('.confirm-reset-phone'),resetCancel:panel.querySelector('.cancel-reset-phone')});}});};});
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
define('panels/about_more_info/commit_info',['require'],function(require){'use strict';var commitInfo=function(){this._elements={};};commitInfo.prototype={init:function mi_init(elements){this._elements=elements;this._loadGaiaCommit();},_dateToUTC:function mi__dateToUTC(d){var arr=[];[d.getUTCFullYear(),(d.getUTCMonth()+1),d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds()].forEach(function(n){arr.push((n>=10)?n:'0'+n);});return arr.splice(0,3).join('-')+' '+arr.join(':');},_loadGaiaCommit:function mi__loadGaiaCommit(){const GAIA_COMMIT='resources/gaia_commit.txt';if(this._elements.dispHash.textContent){return;}
|
||||
var req=new XMLHttpRequest();req.onreadystatechange=(function(e){if(req.readyState===4){if(req.status===0||req.status===200){var data=req.responseText.split('\n');var d=new Date(parseInt(data[1]+'000',10));this._elements.dispDate.textContent=this._dateToUTC(d);this._elements.dispHash.textContent=data[0].substr(0,8);}else{console.error('Failed to fetch gaia commit: ',req.statusText);}}}).bind(this);req.open('GET',GAIA_COMMIT,true);req.responseType='text';req.send();}};return function ctor_commitInfo(){return new commitInfo();};});define('panels/about_more_info/hardware_info',['require','shared/settings_listener','modules/bluetooth/bluetooth_context'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var BtContext=require('modules/bluetooth/bluetooth_context');var HardwareInfo=function(){this._elements={};};HardwareInfo.prototype={init:function mi_init(elements){this._elements=elements;this._loadMacAddress();this._loadBluetoothAddress();},_loadMacAddress:function mi__loadMacAddress(){SettingsListener.observe('deviceinfo.mac','',(macAddress)=>this._elements.deviceInfoMac.textContent=macAddress);},_refreshBluetoothAddress:function mi__refreshBluetoothAddress(address){if(address==null||address===''){this._elements.btAddr.setAttribute('data-l10n-id','bluetooth-address-unavailable');}else{this._elements.btAddr.removeAttribute('data-l10n-id');this._elements.btAddr.textContent=address;}},_loadBluetoothAddress:function about_loadBluetoothAddress(){BtContext.observe('address',this._refreshBluetoothAddress.bind(this));this._refreshBluetoothAddress(BtContext.address);}};return function ctor_hardwareInfo(){return new HardwareInfo();};});define('panels/about_more_info/device_info',['require'],function(require){'use strict';const GET_IMEI_COMMAND='*#06#';var DeviceInfo=function(){this._elements={};};DeviceInfo.prototype={init:function mi_init(elements){this._elements=elements;this._loadImei();this._loadIccId();},_getImeiCode:function mi__getImeiCode(simSlotIndex){var dialPromise=navigator.mozTelephony.dial(GET_IMEI_COMMAND,simSlotIndex);return dialPromise.then(function about_dialImeiPromise(call){return call.result.then(function(result){if(result&&result.success&&(result.serviceCode==='scImei')){return result.statusMessage;}else{var errorMsg='Could not retrieve the IMEI code for SIM '+
|
||||
simSlotIndex;console.log(errorMsg);return Promise.reject(new Error(errorMsg));}});});},_createImeiField:function mi__createImeiField(imeis){while(this._elements.deviceInfoImeis.hasChildNodes()){this._elements.deviceInfoImeis.removeChild(this._elements.deviceInfoImeis.lastChild);}
|
||||
if(!imeis||imeis.length===0){var span=document.createElement('span');span.setAttribute('data-l10n-id','unavailable');this._elements.deviceInfoImeis.appendChild(span);}else{imeis.forEach(function(imei,index){var span=document.createElement('span');if(imeis.length>1){document.l10n.setAttributes(span,'deviceInfo-IMEI-with-index',{index:index+1,imei:imei});}else{span.textContent=imei;}
|
||||
span.dataset.slot=index;this._elements.deviceInfoImeis.appendChild(span);}.bind(this));}},_loadImei:function mi__loadImei(){var conns=navigator.mozMobileConnections;if(!navigator.mozTelephony||!conns){this._elements.listImeis.hidden=true;return Promise.resolve();}
|
||||
var promises=[];for(var i=0;i<conns.length;i++){promises.push(this._getImeiCode(i));}
|
||||
var self=this;return Promise.all(promises).then(function(imeis){self._createImeiField(imeis);},function(){self._createImeiField(null);});},_loadIccId:function mi__loadIccId(){var conns=navigator.mozMobileConnections;if(!navigator.mozTelephony||!conns){this._elements.listIccIds.hidden=true;return;}
|
||||
var multiSim=conns.length>1;while(this._elements.deviceInfoIccIds.hasChildNodes()){this._elements.deviceInfoIccIds.removeChild(this._elements.deviceInfoIccIds.lastChild);}
|
||||
Array.prototype.forEach.call(conns,function(conn,index){var span=document.createElement('span');if(conn.iccId){if(multiSim){document.l10n.setAttributes(span,'deviceInfo-ICCID-with-index',{index:index+1,iccid:conn.iccId});}else{span.textContent=conn.iccId;}}else{if(multiSim){document.l10n.setAttributes(span,'deviceInfo-ICCID-unavailable-sim',{index:index+1});}else{span.setAttribute('data-l10n-id','unavailable');}}
|
||||
this._elements.deviceInfoIccIds.appendChild(span);}.bind(this));}};return function ctor_deviceInfo(){return new DeviceInfo();};});define('panels/about_more_info/panel',['require','modules/settings_panel','panels/about_more_info/commit_info','panels/about_more_info/hardware_info','panels/about_more_info/device_info'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var CommitInfo=require('panels/about_more_info/commit_info');var HardwareInfo=require('panels/about_more_info/hardware_info');var DeviceInfo=require('panels/about_more_info/device_info');return function ctor_support_panel(){var commitInfo=CommitInfo();var hardwareInfo=HardwareInfo();var deviceInfo=DeviceInfo();return SettingsPanel({onInit:function(panel){deviceInfo.init({listImeis:panel.querySelector('.list-imeis'),listIccIds:panel.querySelector('.list-iccids'),deviceInfoImeis:panel.querySelector('.deviceInfo-imeis'),deviceInfoIccIds:panel.querySelector('.deviceInfo-iccids')});commitInfo.init({dispDate:panel.querySelector('.gaia-commit-date'),dispHash:panel.querySelector('.gaia-commit-hash')});hardwareInfo.init({deviceInfoMac:panel.querySelector('[data-name="deviceinfo.mac"]'),btAddr:panel.querySelector('[data-name="deviceinfo.bt_address"]')});}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','shared/settings_listener','modules/settings_panel'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SettingsPanel=require('modules/settings_panel');return function ctor_accessibilityPanel(){var _screenReaderDesc;var _colorFilterDesc;var _audioDesc;return SettingsPanel({onInit:function accessibilityPanel_onInit(rootElement){_screenReaderDesc=rootElement.querySelector('#screenReader-desc');_colorFilterDesc=rootElement.querySelector('#colorFilter-desc');_audioDesc=rootElement.querySelector('#audio-desc');SettingsListener.observe('accessibility.screenreader',false,function(enabled){_screenReaderDesc.setAttribute('data-l10n-id',enabled?'enabled':'disabled');});SettingsListener.observe('accessibility.colors.enable',false,function(enabled){_colorFilterDesc.setAttribute('data-l10n-id',enabled?'enabled':'disabled');});SettingsListener.observe('accessibility.monoaudio.enable',false,function(enabled){_audioDesc.setAttribute('data-l10n-id',enabled?'mono-enabled':'mono-disabled');});}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','shared/settings_listener'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var _elements;var _enable;var ConfirmDialog={init:function ConfirmDialog_init(elements,onConfirmDialog){_elements=elements;_elements.container.onclick=function(){_elements.container.hidden=true;};_elements.confirmButton.onclick=function(e){SettingsListener.getSettingsLock().set({'accessibility.screenreader':_enable});};},show:function ConfirmDialog_show(enable){_enable=enable;var startStop=enable?'start':'stop';_elements.heading.setAttribute('data-l10n-id','screenReader-confirm-title-'+startStop);_elements.text.setAttribute('data-l10n-id','screenReader-confirm-description-'+startStop);_elements.confirmButton.setAttribute('data-l10n-id','screenReader-confirm-button-'+startStop);_elements.container.hidden=false;}};return ConfirmDialog;});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','shared/settings_listener','modules/settings_panel','modules/settings_cache','panels/accessibility_screenreader/confirm_dialog'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SettingsPanel=require('modules/settings_panel');var SettingsCache=require('modules/settings_cache');var ConfirmDialog=require('panels/accessibility_screenreader/confirm_dialog');var kEnabledKey='accessibility.screenreader';return function ctor_accessibility_screenreader_panel(){var _screenreaderSwitch;return SettingsPanel({onInit:function asr_onInit(rootElement){_screenreaderSwitch=rootElement.querySelector('.screenreader-enable');var dialogContainer=rootElement.querySelector('#screenreader-confirm-dialog');ConfirmDialog.init({container:dialogContainer,confirmButton:dialogContainer.querySelector('button.danger'),heading:dialogContainer.querySelector('h1'),text:dialogContainer.querySelector('p')});_screenreaderSwitch.addEventListener('click',event=>{event.preventDefault();SettingsCache.getSettings(function(results){ConfirmDialog.show(!results[kEnabledKey]);});});SettingsListener.observe(kEnabledKey,false,function(value){_screenreaderSwitch.checked=value;});}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','modules/mvvm/list_view','modules/mvvm/observable_array','panels/achievements/achievements_template'],function(require){'use strict';var ListView=require('modules/mvvm/list_view');var ObservableArray=require('modules/mvvm/observable_array');var AchievementsTemplate=require('panels/achievements/achievements_template');function AchievementsList(root){this._achievements=ObservableArray([]);this._listView=ListView(root,this._achievements,AchievementsTemplate);}
|
||||
AchievementsList.prototype={get achievements(){return this._achievements.array;},set achievements(achievements){achievements=achievements||[];this._achievements.reset(achievements);}};return function ctor_achievements_list(panel){return new AchievementsList(panel);};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require'],function(require){'use strict';return function achievementsTemplate(achievement,recycled){var container,span,small,icon,details;var name=achievement.criteria.split('achievements/')[1];if(recycled){container=recycled;details=container.querySelector('span');span=details.querySelector('span');small=details.querySelector('small');icon=container.querySelector('img');}else{container=document.createElement('li');details=document.createElement('span');span=document.createElement('span');small=document.createElement('small');icon=document.createElement('img');container.classList.add('achievements-item');details.classList.add('details');details.setAttribute('role','presentation');small.classList.add('description');icon.classList.add('icon');icon.setAttribute('aria-hidden',true);container.appendChild(icon);details.appendChild(span);details.appendChild(small);container.appendChild(details);}
|
||||
icon.src=`../style/images/achievements/${name}.png`;span.setAttribute('data-l10n-id',`achievements-${name}-name`);small.setAttribute('data-l10n-id',`achievements-${name}-description`);if(achievement.evidence){container.classList.add('rewarded');container.removeAttribute('aria-disabled');}else{container.classList.remove('rewarded');container.setAttribute('aria-disabled',true);}
|
||||
return container;};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/achievements/achievements_list','shared/settings_listener'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var AchievementsList=require('panels/achievements/achievements_list');var SettingsListener=require('shared/settings_listener');return function ctor_achievements_panel(){var achievementsList;var update=achievements=>achievementsList.achievements=achievements;return SettingsPanel({onInit:function(panel){var listElement=panel.querySelector('.achievements-list');achievementsList=AchievementsList(listElement);},onBeforeShow:function(){SettingsListener.observe('achievements',achievementsList.achievements,update);},onHide:function(){SettingsListener.unobserve('achievements',update);}});};});
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
define(['require','shared/manifest_helper','modules/addon_manager'],function(require){'use strict';var ManifestHelper=require('shared/manifest_helper');var AddonManager=require('modules/addon_manager');const PREFERRED_ICON_SIZE=64*(window.devicePixelRatio||1);function AddonDetails(elements){this._boundUpdateEnabledState=this._updateEnabledState.bind(this);this._elements=elements;this._curApp=null;}
|
||||
AddonDetails.prototype._updateEnabledState=function _update(newState){this._elements.enabledState.setAttribute('data-l10n-id',newState?'enabled':'disabled');};AddonDetails.prototype.render=function render(app){if(this._curApp!==null){this._curApp.unobserve('enabled',this._boundUpdateEnabledState);}
|
||||
this._curApp=app;if(this._curApp){this._curApp.observe('enabled',this._boundUpdateEnabledState);this._updateEnabledState(this._curApp.enabled);}
|
||||
var l10n=document.l10n;var manifest=new ManifestHelper(app.instance.manifest||app.instance.updateManifest);this.updateNames(manifest);navigator.mozApps.mgmt.getIcon(app,PREFERRED_ICON_SIZE).then((blob)=>{this._elements.icon.src=URL.createObjectURL(blob);}).catch(()=>{this._elements.icon.src='../style/images/default.png';});if(manifest.version){this._elements.version.textContent='v'+manifest.version;}
|
||||
if(manifest.description){this._elements.description.removeAttribute('data-l10n-id');this._elements.description.textContent=manifest.description;}else{this._elements.description.setAttribute('data-l10n-id','addon-no-description');}
|
||||
var developerName=manifest.developer&&manifest.developer.name;l10n.setAttributes(this._elements.developer,'addon-developer-name',{developerName:developerName||''});var oldAddonFormat=!!manifest.customizations;if(oldAddonFormat){l10n.setAttributes(this._elements.obsoleteStatusInfo,AddonManager.canDelete(app)?'addon-obsolete-can-delete':'addon-obsolete');}
|
||||
this._elements.obsoleteStatus.hidden=!oldAddonFormat;this._elements.targetsList.textContent='';AddonManager.getAddonTargets(app).then((targets)=>{var names=[];targets.forEach(function(target){var manifest=new ManifestHelper(target.manifest||target.updateManifest);names.push(manifest.displayName);});names.sort();if(names.length<1){this._elements.targetsList.setAttribute('data-l10n-id','addon-no-targets');}else{this._elements.targetsList.textContent=names.join(', ');}});};AddonDetails.prototype.updateNames=function _updateNames(manifest){var appnameArgs={appName:manifest.name};var l10n=document.l10n;l10n.setAttributes(this._elements.header,'addon-details-header1',appnameArgs);l10n.setAttributes(this._elements.name,'addon-details-header1',appnameArgs);l10n.setAttributes(this._elements.icon,'accessibility-app-icon',appnameArgs);};return function ctor_addon_details(panel){return new AddonDetails(panel);};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','modules/settings_panel','modules/addon_manager','panels/addon_details/addon_details','modules/settings_service','shared/toaster'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var AddonManager=require('modules/addon_manager');var AddonDetails=require('panels/addon_details/addon_details');var SettingsService=require('modules/settings_service');var Toaster=require('shared/toaster');return function ctor_addon_details_panel(){return SettingsPanel({onInit:function(panel){this._elements={body:panel.querySelector('.addon-details-body'),header:panel.querySelector('.addon-details-header'),gaiaHeader:panel.querySelector('gaia-header'),enabledState:panel.querySelector('.addon-enabled details'),name:panel.querySelector('.addon-details-name'),icon:panel.querySelector('.addon-details-icon'),version:panel.querySelector('.addon-details-version'),description:panel.querySelector('.addon-description-text'),developer:panel.querySelector('.addon-developer'),targetsList:panel.querySelector('.addon-targets'),toggle:panel.querySelector('.addon-enabled'),deleteButton:panel.querySelector('.addon-delete'),obsoleteStatus:panel.querySelector('.addon-obsolete-status'),obsoleteStatusInfo:panel.querySelector('.addon-obsolete-info')};this._details=AddonDetails(this._elements);this._boundOnAppEnabledChange=this._onAppEnabledChange.bind(this);this._elements.toggle.onchange=this._onToggleChange.bind(this);this._elements.deleteButton.onclick=this._onDelete.bind(this);},onBeforeShow:function(panel,options){return Promise.resolve((()=>{if(options.addon){return options.addon;}else if(options.manifestURL){return AddonManager.findAddonByManifestURL(options.manifestURL);}})()).then((addon)=>{this._curAddon=addon;if(this._curAddon){this._details.render(this._curAddon);this._elements.toggle.checked=AddonManager.isEnabled(this._curAddon);this._curAddon.observe('enabled',this._boundOnAppEnabledChange);this._elements.deleteButton.disabled=!AddonManager.canDelete(this._curAddon);this._elements.body.hidden=false;}else{console.error('No valid add-on');this._elements.body.hidden=true;}
|
||||
this._elements.gaiaHeader.hidden=false;});},onHide:function(){this._elements.body.scrollTop=0;if(this._curAddon){this._curAddon.unobserve('enabled',this._boundOnAppEnabledChange);this._curAddon=null;}},_showStepsRequired(type){if(type==='reboot'){Toaster.showToast({messageL10nId:'addon-reboot-required',latency:3000,useTransition:true});}else if(type==='restart'){Toaster.showToast({messageL10nId:'addon-restart-apps-to-disable',latency:3000,useTransition:true});}},_onAppEnabledChange:function(enabled){this._elements.toggle.checked=enabled;if(!enabled){AddonManager.getAddonDisableType(this._curAddon).then(this._showStepsRequired);}},_onToggleChange:function(){if(this._elements.toggle.checked){AddonManager.enableAddon(this._curAddon);}else{AddonManager.disableAddon(this._curAddon);}},_onDelete:function(){this._elements.deleteButton.disabled=true;var disableType;AddonManager.getAddonDisableType(this._curAddon).then(type=>{disableType=type;return AddonManager.deleteAddon(this._curAddon);}).then(()=>{this._showStepsRequired(disableType);SettingsService.navigate('addons');}).catch(reason=>{console.error('Addon deletion failed:',reason);this._elements.deleteButton.disabled=false;});}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define(['require','modules/settings_service','modules/mvvm/list_view','panels/addons/addons_template','modules/mvvm/observable_array'],function(require){'use strict';var SettingsService=require('modules/settings_service');var ListView=require('modules/mvvm/list_view');var AddonItemTemplateFactory=require('panels/addons/addons_template');var ObservableArray=require('modules/mvvm/observable_array');function AddonsList(root,manager){this._enabled=false;this._listRoot=root;this._addonManager=manager;this._addons=ObservableArray(this._sortByName(this._addonManager.addons.array));['insert','remove'].forEach(e=>this._addonManager.addons.addEventListener(e,this._update.bind(this)));var addonTemplate=AddonItemTemplateFactory(function onClick(addon){SettingsService.navigate('addon-details',{addon:addon});});this._listView=ListView(this._listRoot,this._addons,addonTemplate);}
|
||||
AddonsList.prototype={set enabled(value){if(value!==this._enabled){this._listView.enabled=this._enabled=value;}},_sortByName:function(addons){return addons.sort((a,b)=>{return a._app.manifest.name.localeCompare(b._app.manifest.name);});},_update:function(){return this._filter?Promise.all(this._addonManager.addons.array.map(addon=>this._addonManager.addonAffectsApp(addon,this._filter).then(affects=>affects?addon:undefined))).then(addons=>this._addons.reset(this._sortByName(addons.filter(addon=>addon)))):Promise.resolve(this._addons.reset(this._sortByName(this._addonManager.addons.array)));},setFilter:function(manifestURL){if(!manifestURL){return Promise.resolve();}
|
||||
this._filter=manifestURL;return this._update();},unsetFilter:function(){if(!this._filter){return Promise.resolve();}
|
||||
delete this._filter;return this._update();}};return function ctor_addons_list(root,manager){return new AddonsList(root,manager);};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require','shared/manifest_helper'],function(require){'use strict';var ManifestHelper=require('shared/manifest_helper');const PREFERRED_ICON_SIZE=30*(window.devicePixelRatio||1);function addonsTemplate(onClick,addon,recycled){var manifest=new ManifestHelper(addon.instance.manifest||addon.instance.updateManifest);var container=null;var link,span,small,icon;if(recycled){container=recycled;link=container.querySelector('a');span=container.querySelector('span');small=container.querySelector('small');icon=container.querySelector('img');}else{container=document.createElement('li');link=document.createElement('a');span=document.createElement('span');small=document.createElement('small');icon=document.createElement('img');link.href='#';link.classList.add('menu-item');small.classList.add('menu-item-desc');link.appendChild(icon);link.appendChild(span);link.appendChild(small);container.appendChild(link);}
|
||||
navigator.mozApps.mgmt.getIcon(addon.instance,PREFERRED_ICON_SIZE).then((blob)=>{icon.src=URL.createObjectURL(blob);}).catch(()=>{icon.src='../style/images/default.png';});span.textContent=manifest.displayName;small.setAttribute('data-l10n-id',addon.enabled?'enabled':'disabled');addon.observe('enabled',function(enabled){small.setAttribute('data-l10n-id',enabled?'enabled':'disabled');});link.onclick=()=>{onClick(addon);};return container;}
|
||||
return function ctor_addonsTemplate(onClick){return addonsTemplate.bind(null,onClick);};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','modules/addon_manager','panels/addons/addons_list'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var AddonManager=require('modules/addon_manager');var AddonsList=require('panels/addons/addons_list');return function ctor_addons_panel(){var addonsList;return SettingsPanel({onInit:function(panel){var listElement=panel.querySelector('.addon-list');var moreLink=panel.querySelector('.get-more-addons');addonsList=AddonsList(listElement,AddonManager);moreLink.addEventListener('click',function(){moreLink.blur();var activity=new window.MozActivity({name:'marketplace-category',data:{slug:'addons'}});activity.onsuccess=function(){};});},onBeforeShow:function(panel,options){if(options&&options.manifestURL){return addonsList.setFilter(options.manifestURL).then(()=>addonsList.enabled=true);}else{addonsList.enabled=true;}},onBeforeHide:function(){return addonsList.unsetFilter().then(()=>addonsList.enabled=false);}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','panels/apn_editor/apn_editor_const','panels/apn_editor/apn_editor_session'],function(require){'use strict';var ApnEditorConst=require('panels/apn_editor/apn_editor_const');var ApnEditorSession=require('panels/apn_editor/apn_editor_session');var APN_PROPERTIES=ApnEditorConst.APN_PROPERTIES;var APN_PROPERTY_DEFAULTS=ApnEditorConst.APN_PROPERTY_DEFAULTS;var VALUE_CONVERTERS=ApnEditorConst.VALUE_CONVERTERS;function ApnEditor(rootElement){this._inputElements={};APN_PROPERTIES.forEach(function(name){this._inputElements[name]=rootElement.querySelector('.'+name);},this);}
|
||||
ApnEditor.prototype={_convertValue:function ae_convertValue(value,converter){if(converter){return converter(value);}else{return value;}},_fillInputElements:function ae_fillInputElements(inputElements,apn){APN_PROPERTIES.forEach(function(name){var inputElement=inputElements[name];if(inputElement){var value=(apn&&apn[name.toLowerCase()])||APN_PROPERTY_DEFAULTS[name];inputElement.value=this._convertValue(value,VALUE_CONVERTERS.TO_STRING[name]);}},this);},createApn:function ae_createApn(serviceId,apnItem){this._fillInputElements(this._inputElements,apnItem.apn);return ApnEditorSession(serviceId,'new',this._inputElements,apnItem);},editApn:function ae_editApn(serviceId,apnItem){this._fillInputElements(this._inputElements,apnItem.apn);return ApnEditorSession(serviceId,'edit',this._inputElements,apnItem);}};return function ctor_apn_editor(rootElement){return new ApnEditor(rootElement);};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require'],function(require){'use strict';var APN_PROPERTY_DEFAULTS={'apn':'','user':'','password':'','proxy':'','port':'','mmsc':'','mmsproxy':'','mmsport':'','authtype':'notDefined','types':['default'],'protocol':'notDefined','roaming_protocol':'notDefined','mtu':''};var APN_PROPERTIES=Object.keys(APN_PROPERTY_DEFAULTS);var VALUE_CONVERTERS={'TO_STRING':{'types':function(types){if(types&&Array.isArray(types)&&types.length){return types.join(', ');}else{return'default';}}},'TO_DATA':{'types':function(string){return string.split(',').map((str)=>str.trim());}}};return{get APN_PROPERTIES(){return APN_PROPERTIES;},get APN_PROPERTY_DEFAULTS(){return APN_PROPERTY_DEFAULTS;},get VALUE_CONVERTERS(){return VALUE_CONVERTERS;}};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require','modules/apn/apn_settings_manager','panels/apn_editor/apn_editor_const','modules/apn/apn_utils'],function(require){'use strict';var ApnSettingsManager=require('modules/apn/apn_settings_manager');var ApnEditorConst=require('panels/apn_editor/apn_editor_const');var ApnUtils=require('modules/apn/apn_utils');var APN_PROPERTIES=ApnEditorConst.APN_PROPERTIES;var VALUE_CONVERTERS=ApnEditorConst.VALUE_CONVERTERS;function ApnEditorSession(serviceId,mode,inputElements,apnItem){this._serviceId=serviceId;this._mode=mode;this._inputElements=inputElements;this._apnItem=apnItem;}
|
||||
ApnEditorSession.prototype={_convertValue:function ae_convertValue(value,converter){if(converter){return converter(value);}else{return value;}},_exportApnSetting:function aes_exportApnSetting(inputElements){var newApnSetting={};APN_PROPERTIES.forEach(function(name){var inputElement=inputElements[name];if(inputElement&&!inputElement.hidden&&inputElement.value){newApnSetting[name.toLowerCase()]=this._convertValue(inputElement.value,VALUE_CONVERTERS.TO_DATA[name]);}},this);return newApnSetting;},_commitNew:function aes_commitNew(){var promises=[];var newApnSetting=this._exportApnSetting(this._inputElements);newApnSetting.types.slice().forEach(function(type){var settingClone=ApnUtils.clone(newApnSetting);settingClone.types=[type];promises.push(ApnSettingsManager.addApn(this._serviceId,settingClone));},this);return Promise.all(promises);},_commitEdit:function aes_commitEdit(){var promises=[];var newApnSetting=this._exportApnSetting(this._inputElements);if(newApnSetting.types.length===1){promises.push(ApnSettingsManager.updateApn(this._serviceId,this._apnItem.id,newApnSetting));}else{newApnSetting.types.forEach(function(type){var settingClone=ApnUtils.clone(newApnSetting);settingClone.types=[type];if(type===this._apnItem.apn.types[0]){promises.push(ApnSettingsManager.updateApn(this._serviceId,this._apnItem.id,settingClone));}else{promises.push(ApnSettingsManager.addApn(this._serviceId,settingClone));}},this);}
|
||||
return Promise.all(promises);},commit:function aes_commit(){switch(this._mode){case'new':return this._commitNew();case'edit':return this._commitEdit();default:console.error('invalid mode');return Promise.resolve();}},cancel:function aes_cancel(){APN_PROPERTIES.forEach(function(name){this._inputElements[name].value='';},this);this._apnItem=null;},get mode(){return this._mode;}};return function ctor_apnESession(serviceId,mode,inputElements,apnItem){return new ApnEditorSession(serviceId,mode,inputElements,apnItem);};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define(['require','modules/settings_service','modules/settings_panel','modules/settings_cache','modules/apn/apn_settings_manager','panels/apn_editor/apn_editor'],function(require){'use strict';var SettingsService=require('modules/settings_service');var SettingsPanel=require('modules/settings_panel');var SettingsCache=require('modules/settings_cache');var ApnSettingsManager=require('modules/apn/apn_settings_manager');var ApnEditor=require('panels/apn_editor/apn_editor');var _back=function(){SettingsService.navigate('apn-list');};var _getDialogService=function(){return new Promise(function(resolve){require(['modules/dialog_service'],resolve);});};var _showChangeApnWarning=function(){return _getDialogService().then((DialogService)=>{return DialogService.confirm('change-apn-warning-message1',{title:'apnSettings',submitButton:{id:'yes',style:'recommend'},cancelButton:'cancel'});});};var _showDeleteApnWarning=function(){return _getDialogService().then((DialogService)=>{return DialogService.confirm('delete-apn-confirm',{title:'confirmation',submitButton:{id:'delete-apn',style:'danger'},cancelButton:'cancel'});});};return function ctor_apnEditorPanel(){var _rootElement;var _elements;var _apnEditor;var _editorSession;var _apnItem;var _apnType;var _serviceId;var _leftApp=false;return SettingsPanel({onInit:function ae_onInit(rootElement){_rootElement=rootElement;_apnEditor=new ApnEditor(rootElement);_elements={panel:rootElement.querySelector('.panel'),okBtn:rootElement.querySelector('button.ok'),deteleItem:rootElement.querySelector('.apnSettings-btns li.delete'),deleteBtn:rootElement.querySelector('.apnSettings-btns li.delete button')};_elements.okBtn.onclick=function(){if(!_editorSession){_back();return;}
|
||||
if(_editorSession.mode==='new'){_editorSession.commit().then(_back);_editorSession=null;}else if(_editorSession.mode==='edit'){Promise.all([ApnSettingsManager.getActiveApnId(_serviceId,_apnType),new Promise((resolve)=>{SettingsCache.getSettings(function(results){resolve(results['ril.data.roaming_enabled']);});})]).then(function(results){var activeApnId=results[0];var dataRoamingEnabled=results[1];if(activeApnId===_apnItem.id&&dataRoamingEnabled){return _showChangeApnWarning();}}).then(function(result){if(!result||(result&&result.type==='submit')){_editorSession.commit().then(_back);_editorSession=null;}});}};_elements.deleteBtn.onclick=function(){_showDeleteApnWarning().then((result)=>{if(result.type==='submit'){ApnSettingsManager.removeApn(_serviceId,_apnItem.id).then(_back);}});};},onBeforeShow:function ae_onBeforeShow(rootElement,options){if(_leftApp){_leftApp=false;return;}
|
||||
var mode=options.mode||'new';_apnItem=options.item||{};_apnType=options.type||'default';_serviceId=options.serviceId;switch(mode){case'new':_elements.deteleItem.hidden=true;var defaultApnItem={apn:{types:[_apnType]}};_editorSession=_apnEditor.createApn(_serviceId,defaultApnItem);break;case'edit':_elements.deteleItem.hidden=false;_editorSession=_apnEditor.editApn(_serviceId,_apnItem);break;}
|
||||
_elements.panel.scrollTop=0;},onHide:function ae_onHide(){_leftApp=document.hidden;if(!_leftApp&&_editorSession){_editorSession.cancel();}}});};});
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
define(['require'],function(require){'use strict';function apnTemplate(apnType,onItemclick,onRadioClick,item){var rawApn=item.apn;var radio=document.createElement('gaia-radio');radio.className='split';radio.checked=item.active;radio.name=apnType;var radioLabel=document.createElement('label');radioLabel.classList.add('name');if(!rawApn.carrier||rawApn.carrier==='_custom_'){radioLabel.textContent=rawApn.apn;}else{radioLabel.textContent=rawApn.carrier;}
|
||||
radio.appendChild(radioLabel);var li=document.createElement('li');li.classList.add('apn-item');li.appendChild(radio);var labelClicked=false;if(typeof onRadioClick==='function'){radio.addEventListener('click',event=>{if(!labelClicked&&!radio.checked){onRadioClick(item,radio);}
|
||||
labelClicked=false;event.stopPropagation();event.preventDefault();},true);}
|
||||
if(typeof onItemclick==='function'){radioLabel.addEventListener('mouseup',()=>{labelClicked=true;onItemclick(item);});}
|
||||
return li;}
|
||||
return function ctor_apnTemplate(apnType,onItemclick,onRadioClick){return apnTemplate.bind(null,apnType,onItemclick,onRadioClick);};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_service','modules/settings_panel','modules/settings_cache','modules/mvvm/list_view','modules/apn/apn_settings_manager','panels/apn_list/apn_template_factory'],function(require){'use strict';var SettingsService=require('modules/settings_service');var SettingsPanel=require('modules/settings_panel');var SettingsCache=require('modules/settings_cache');var ListView=require('modules/mvvm/list_view');var ApnSettingsManager=require('modules/apn/apn_settings_manager');var ApnTemplateFactory=require('panels/apn_list/apn_template_factory');var HEADER_L10N_MAP={'default':'dataSettings-header','mms':'messageSettings-header','ims':'imsSettings-header2','supl':'suplSettings-header','dun':'dunSettings-header','fota':'fotaSettings-header'};var _getDialogService=function(){return new Promise(function(resolve){require(['modules/dialog_service'],resolve);});};var _showChangeApnWarning=function(){return _getDialogService().then((DialogService)=>{return DialogService.confirm('change-apn-warning-message1',{title:'apnSettings',submitButton:{id:'yes',style:'recommend'},cancelButton:'cancel'});});};return function ctor_apn_settings_panel(){var _rootElement;var _mainHeader;var _header;var _apnListViewRoot;var _apnListView;var _addApnBtn;var _role;var _apnType='default';var _serviceId=0;var _onApnItemClick=function(serviceId,apnType,apnItem){SettingsService.navigate('apn-editor',{mode:'edit',serviceId:serviceId,type:apnType,item:apnItem});};var _onRadioClick=function(serviceId,apnType,apnItem,radio){var setActive=function(){apnItem.active=true;radio.checked=true;ApnSettingsManager.setActiveApnId(serviceId,apnType,apnItem.id);};SettingsCache.getSettings(function(results){if(results['ril.data.roaming_enabled']===true){_showChangeApnWarning().then((result)=>{if(result.type==='submit'){setActive();}});}else{setTimeout(function(){setActive();});}});};var _onAddApnBtnClick=function(serviceId,apnType){SettingsService.navigate('apn-editor',{mode:'new',serviceId:serviceId,type:apnType});};var _onBackBtnClick=function(){if(_role==='activity'){_role=null;Settings.finishActivityRequest();}else{SettingsService.navigate('apn-settings');}};return SettingsPanel({onInit:function bp_onInit(rootElement){_rootElement=rootElement;_mainHeader=rootElement.querySelector('gaia-header');_header=_mainHeader.querySelector('h1');_apnListViewRoot=rootElement.querySelector('.apn-list');_addApnBtn=rootElement.querySelector('button.add-apn');_mainHeader.addEventListener('action',_onBackBtnClick);},onBeforeShow:function bp_onBeforeShow(rootElement,options){_role=options.role||_role;_apnType=options.type||_apnType;_serviceId=(options.serviceId===undefined)?_serviceId:options.serviceId;_header.setAttribute('data-l10n-id',HEADER_L10N_MAP[_apnType]);var apnTemplate=ApnTemplateFactory(_apnType,_onApnItemClick.bind(null,_serviceId,_apnType),_onRadioClick.bind(null,_serviceId,_apnType));_addApnBtn.onclick=_onAddApnBtnClick.bind(null,_serviceId,_apnType);ApnSettingsManager.queryApns(_serviceId,_apnType).then(function(apnItems){_apnListView=ListView(_apnListViewRoot,apnItems,apnTemplate);});},onHide:function bp_onBeforeHide(){if(_apnListView){_apnListView.destroy();_apnListView=null;}}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','modules/settings_service','modules/settings_panel','modules/apn/apn_settings_manager','shared/toaster','modules/dialog_service'],function(require){'use strict';var SettingsService=require('modules/settings_service');var SettingsPanel=require('modules/settings_panel');var ApnSettingsManager=require('modules/apn/apn_settings_manager');var Toaster=require('shared/toaster');var DialogService=require('modules/dialog_service');return function ctor_apn_settings_panel(){var _serviceId=0;var _rootElement;var _browseApnItems=function(apnType){SettingsService.navigate('apn-list',{type:apnType,serviceId:_serviceId});};var _resetApn=function(){DialogService.confirm('reset-apn-warning-message',{title:'reset-apn-warning-title',submitButton:{id:'reset',style:'danger'},cancelButton:'cancel'}).then((result)=>{if(result.type==='submit'){ApnSettingsManager.restore(_serviceId).then(function(){var toast={messageL10nId:'apnSettings-reset',latency:3000,useTransition:true};Toaster.showToast(toast);});}});};return SettingsPanel({onInit:function asp_onInit(rootElement){_rootElement=rootElement;var apnBtns=rootElement.querySelectorAll('a[data-apn-type]');var resetBtn=rootElement.querySelector('button.reset-apn');var header=rootElement.querySelector('gaia-header');if(DsdsSettings.getNumberOfIccSlots()>1){header.dataset.href='#carrier-detail';}else{header.dataset.href='#carrier';}
|
||||
Array.prototype.forEach.call(apnBtns,function(btn){btn.onclick=_browseApnItems.bind(null,btn.dataset.apnType);});resetBtn.onclick=_resetApn;},onBeforeShow:function asp_onBeforeShow(){_serviceId=DsdsSettings.getIccCardIndexForCellAndDataSettings();}});};});
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
define('modules/navigator/mozPermissionSettings',[],function(){'use strict';return window.navigator.mozPermissionSettings;});define('panels/app_permissions_detail/app_permissions_detail',['require','shared/manifest_helper','modules/settings_service','modules/navigator/mozApps','modules/navigator/mozPermissionSettings'],function(require){'use strict';var ManifestHelper=require('shared/manifest_helper');var SettingsService=require('modules/settings_service');var mozApps=require('modules/navigator/mozApps');var mozPerms=require('modules/navigator/mozPermissionSettings');var PermissionsDetail=function pd(){this._elements=null;this._permissionsTable=null;this._app=null;};PermissionsDetail.prototype={init:function pd_init(elements,permissionsTable){this._elements=elements;this._permissionsTable=permissionsTable;window.addEventListener('applicationuninstall',this.back);},back:function pd_back(){SettingsService.navigate('appPermissions');},showAppDetails:function pd_show_app_details(app,verbose){this._isValidPerm=verbose?this._isValidVerbosePerm:this._isExplicitPerm;this._app=app;var table=this._permissionsTable;var elements=this._elements;var manifest=new ManifestHelper(app.manifest?app.manifest:app.updateManifest);var developer=manifest.developer;elements.detailTitle.textContent=manifest.displayName;elements.uninstallButton.disabled=!app.removable;if(!developer||!('name'in developer)){elements.developerInfos.hidden=true;elements.developerHeader.hidden=true;}else{elements.developerName.textContent=developer.name;elements.developerInfos.hidden=false;elements.developerHeader.hidden=false;if(!developer.url){delete elements.developerLink.href;elements.developerUrl.hidden=true;}else{elements.developerUrl.hidden=false;elements.developerLink.href=developer.url;elements.developerUrl.textContent=developer.url;}}
|
||||
if(!mozPerms){elements.list.hidden=true;return;}else{elements.list.hidden=false;elements.list.innerHTML='';}
|
||||
table.plainPermissions.forEach(function(perm){var value=mozPerms.get(perm,app.manifestURL,app.origin,false);if(this._isValidPerm(app,perm,value)){this._insertPermissionSelect(perm,value);}},this);table.composedPermissions.forEach(function appIterator(perm){var value=null;var display=table.accessModes.some(function modeIterator(mode){var composedPerm=perm+'-'+mode;value=mozPerms.get(composedPerm,app.manifestURL,app.origin,false);if(this._isValidPerm(app,composedPerm,value)){return true;}
|
||||
return false;},this);if(display){this._insertPermissionSelect(perm,value);}},this);elements.header.hidden=!elements.list.children.length;},_isExplicitPerm:function pd_shouldDisplayPerm(app,perm,value){var isExplicit=mozPerms.isExplicit(perm,app.manifestURL,app.origin,false);return(isExplicit&&value!=='unknown');},_isValidVerbosePerm:function pd_displayPermVerbose(app,perm,value){if(app.manifest.type!=='certified'){return(value!=='unknown');}},selectValueChanged:function pd_select_value_changed(evt){var select=evt.target;select.setAttribute('value',select.value);this._changePermission(select.dataset.perm,select.value);},_changePermission:function pd__change_permission(perm,value){if(!mozPerms){return;}
|
||||
var table=this._permissionsTable;if(table.composedPermissions.indexOf(perm)!==-1){table.accessModes.forEach(function modeIterator(mode){var composedPerm=perm+'-'+mode;try{mozPerms.set(composedPerm,value,this._app.manifestURL,this._app.origin,false);}catch(e){console.warn('Failed to set the '+composedPerm+'permission.');}},this);return;}
|
||||
try{mozPerms.set(perm,value,this._app.manifestURL,this._app.origin,false);}catch(e){console.warn('Failed to set the '+perm+'permission.');}},_insertPermissionSelect:function pd__insert_permission_select(perm,value){var item=document.createElement('li');var content=document.createElement('p');var contentL10nId='perm-'+perm.replace(':','-');content.setAttribute('data-l10n-id',contentL10nId);var fakeSelect=document.createElement('span');fakeSelect.classList.add('button','icon','icon-dialog');var select=document.createElement('select');select.dataset.perm=perm;var askOpt=document.createElement('option');askOpt.value='prompt';askOpt.setAttribute('data-l10n-id','ask');select.add(askOpt);var allowOpt=document.createElement('option');allowOpt.value='allow';allowOpt.setAttribute('data-l10n-id','allow2');select.add(allowOpt);var denyOpt=document.createElement('option');denyOpt.value='deny';denyOpt.setAttribute('data-l10n-id','block');select.add(denyOpt);var opt=select.querySelector('[value="'+value+'"]');opt.setAttribute('selected',true);select.value=select.options[select.selectedIndex].textContent;select.setAttribute('value',value);select.onchange=this.selectValueChanged.bind(this);item.onclick=function focusSelect(){select.focus();};fakeSelect.appendChild(select);item.appendChild(content);item.appendChild(fakeSelect);this._elements.list.appendChild(item);},uninstall:function pd_uninstall(){mozApps.mgmt.uninstall(this._app).onsuccess=()=>{this.back();};}};return function ctor_app_permissions_detail(){return new PermissionsDetail();};});define('panels/app_permissions_detail/panel',['require','shared/settings_listener','modules/settings_panel','panels/app_permissions_detail/app_permissions_detail'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SettingsPanel=require('modules/settings_panel');var PermissionDetail=require('panels/app_permissions_detail/app_permissions_detail');return function ctor_app_permissions_detail_panel(){var elements={};var permissionDetailModule=PermissionDetail();var uninstall=permissionDetailModule.uninstall.bind(permissionDetailModule);var back=permissionDetailModule.back.bind(permissionDetailModule);function bindEvents(doms){doms.uninstallButton.addEventListener('click',uninstall);doms.panelHeader.addEventListener('action',back);}
|
||||
function unbindEvents(doms){doms.uninstallButton.removeEventListener('click',uninstall);doms.panelHeader.removeEventListener('action',back);}
|
||||
return SettingsPanel({onInit:function(panel,options){this._verbose=null;elements={panelHeader:panel.querySelector('gaia-header'),uninstallButton:panel.querySelector('.uninstall-app > button'),list:panel.querySelector('.permissionsListHeader + ul'),header:panel.querySelector('.permissionsListHeader'),developerLink:panel.querySelector('.developer-infos > a'),developerName:panel.querySelector('.developer-infos > a > span'),developerUrl:panel.querySelector('.developer-infos > a > small'),developerInfos:panel.querySelector('.developer-infos'),developerHeader:panel.querySelector('.developer-header'),detailTitle:panel.querySelector('.detail-title')};SettingsListener.observe('debug.verbose_app_permissions',false,function(enabled){this._verbose=enabled;}.bind(this));permissionDetailModule.init(elements,options.permissionsTable);},onBeforeShow:function(panel,options){permissionDetailModule.showAppDetails(options.app,this._verbose);bindEvents(elements);},onBeforeHide:function(){unbindEvents(elements);}});};});
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
define('modules/navigator/mozPermissionSettings',[],function(){'use strict';return window.navigator.mozPermissionSettings;});define('panels/app_permissions_list/app_permissions_list',['require','modules/settings_service','shared/manifest_helper','modules/apps_cache','modules/navigator/mozApps','modules/navigator/mozPermissionSettings'],function(require){'use strict';var SettingsService=require('modules/settings_service');var ManifestHelper=require('shared/manifest_helper');var AppsCache=require('modules/apps_cache');var mozApps=require('modules/navigator/mozApps');var mozPerms=require('modules/navigator/mozPermissionSettings');var PermissionsList=function pl(){this._listRoot=null;this._permissionsTable=null;this._permissionTableHaveProcessed=false;this._apps=null;this._enabled=false;};PermissionsList.prototype={init:function pl_init(listRoot){this._listRoot=listRoot;this._boundOnAppChoose=this._onAppChoose.bind(this);this._boundOnApplicationInstall=this._onApplicationInstall.bind(this);this._boundOnApplicationUninstall=this._onApplicationUninstall.bind(this);},set enabled(value){if(value!==this._enabled){this._enabled=value;if(this._enabled){this._bindEvents();}else{this._unbindEvents();}}},_bindEvents:function pl__bindEvents(){this._listRoot.addEventListener('click',this._boundOnAppChoose);AppsCache.addEventListener('oninstall',this._boundOnApplicationInstall);AppsCache.addEventListener('onuninstall',this._boundOnApplicationUninstall);},_unbindEvents:function pl__unbindEvents(){this._listRoot.removeEventListener('click',this._boundOnAppChoose);AppsCache.removeEventListener('oninstall',this._boundOnApplicationInstall);AppsCache.removeEventListener('onuninstall',this._boundOnApplicationUninstall);},setPermissionsTable:function pl_setPermissionsTable(permissionTable){this._permissionTable=permissionTable;},refresh:function pl_refresh(){var self=this;this._apps=[];if(this._permissionTableHaveProcessed){return this.loadApps();}else{return mozApps.getSelf().then(function(app){return self._initExplicitPermissionsTable(app);}).then(function(){return self.loadApps();});}},_onAppChoose:function pl__onAppChoose(evt){if(evt.target.dataset&&evt.target.dataset.appIndex){SettingsService.navigate('appPermissions-details',{app:this._apps[evt.target.dataset.appIndex],permissionsTable:this._permissionTable});}},_onApplicationInstall:function pl__onApplicationInstall(evt){var app=evt.application;this._apps.push(app);this._sortApps();this.renderList();},_onApplicationUninstall:function pl__onApplicationUninstall(evt){var app;var appIndex;this._apps.some(function findApp(anApp,index){if(anApp.origin===evt.application.origin){app=anApp;appIndex=index;return true;}
|
||||
return false;});if(!app){return;}
|
||||
SettingsService.navigate('appPermissions');this._apps.splice(appIndex,1);this.renderList();},_sortApps:function pl__sortApps(){this._apps.sort(function alphabeticalSort(app,otherApp){var manifest=new ManifestHelper(app.manifest?app.manifest:app.updateManifest);var otherManifest=new ManifestHelper(otherApp.manifest?otherApp.manifest:otherApp.updateManifest);return manifest.name>otherManifest.name;});},_genAppItemTemplate:function pl__genAppItemTemplate(itemData){var icon=document.createElement('img');var item=document.createElement('li');var link=document.createElement('a');var span=document.createElement('span');span.textContent=itemData.name;span.dir='auto';icon.src=itemData.iconSrc;link.dataset.appIndex=itemData.index;link.href='#';link.classList.add('menu-item');link.appendChild(icon);link.appendChild(span);item.appendChild(link);return item;},renderList:function pl_renderList(){this._listRoot.innerHTML='';var listFragment=document.createDocumentFragment();this._apps.forEach(function appIterator(app,index){var manifest=new ManifestHelper(app.manifest?app.manifest:app.updateManifest);var li=this._genAppItemTemplate({name:manifest.displayName,index:index,iconSrc:this._getBestIconURL(app,manifest.icons)});listFragment.appendChild(li);}.bind(this));this._listRoot.appendChild(listFragment);},_initExplicitPermissionsTable:function pl__initExplicitPermissionsTable(app){this._currentApp=app;var table=this._permissionTable;table.explicitCertifiedPermissions=[];table.plainPermissions.forEach(function plainPermIterator(perm){if(this._isExplicitPerm(perm)){table.explicitCertifiedPermissions.push({explicitPermission:perm,permission:perm});}}.bind(this));table.composedPermissions.forEach(function permIterator(perm){table.accessModes.forEach(function modeIterator(mode){var composedPerm=perm+'-'+mode;if(this._isExplicitPerm(composedPerm)){table.explicitCertifiedPermissions.push({explicitPermission:composedPerm,permission:perm});}}.bind(this));}.bind(this));this._permissionTableHaveProcessed=true;},_isExplicitPerm:function pl_isExplicitPerm(perm){return mozPerms.isExplicit(perm,this._currentApp.manifestURL,this._currentApp.origin,false);},loadApps:function pl_loadApps(){var self=this;return AppsCache.apps().then(function(apps){self._loadApps(apps);});},_loadApps:function pl__loadApps(apps){var table=this._permissionTable;apps.forEach(function(app){var manifest=app.manifest?app.manifest:app.updateManifest;if(manifest.type!='certified'){this._apps.push(app);return;}
|
||||
var display=table.explicitCertifiedPermissions.some(function iterator(perm){var permInfo=mozPerms.get(perm.explicitPermission,app.manifestURL,app.origin,false);return permInfo!='unknown';}.bind(this));if(display){this._apps.push(app);}}.bind(this));this._sortApps();this.renderList();},_getBestIconURL:function pl__getBestIconURL(app,icons){if(!icons||!Object.keys(icons).length){return'../style/images/default.png';}
|
||||
var preferredIconSize=30*(window.devicePixelRatio||1);var preferredSize=Number.MAX_VALUE;var max=0;for(var size in icons){size=parseInt(size,10);if(size>max){max=size;}
|
||||
if(size>=preferredIconSize&&size<preferredSize){preferredSize=size;}}
|
||||
if(preferredSize===Number.MAX_VALUE){preferredSize=max;}
|
||||
var url=icons[preferredSize];if(url){return!(/^(http|https|data):/.test(url))?app.origin+url:url;}else{return'../style/images/default.png';}}};return function ctor_permissions_list(){return new PermissionsList();};});define('panels/app_permissions_list/panel',['require','modules/settings_panel','panels/app_permissions_list/app_permissions_list','shared/lazy_loader'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var PermissionList=require('panels/app_permissions_list/app_permissions_list');var LazyLoader=require('shared/lazy_loader');return function ctor_app_permissions_list_panel(){var permissionsTableHasBeenLoaded=false;var elements={};var permissionListModule=PermissionList();return SettingsPanel({onInit:function(panel){elements={list:panel.querySelector('.app-list')};permissionListModule.init(elements.list);},onBeforeShow:function(){if(permissionsTableHasBeenLoaded){permissionListModule.refresh();}else{LazyLoader.getJSON('/resources/permissions_table.json').then(function(data){permissionsTableHasBeenLoaded=true;permissionListModule.setPermissionsTable(data);permissionListModule.refresh();});}
|
||||
permissionListModule.enabled=true;},onBeforeHide:function(){permissionListModule.enabled=false;}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define('panels/app_storage/panel',['require','modules/settings_panel','modules/app_storage','modules/storage_helper'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var AppStorage=require('modules/app_storage');var StorageHelper=require('modules/storage_helper');return function ctor_app_storage_panel(){var _spaceBarElement=null;var _totalSpaceText=null;var _usedSpaceText=null;var _freeSpaceText=null;var _updateUsePercentage=function(){_spaceBarElement.value=AppStorage.usedPercentage;};var _refreshText=function(element,size){StorageHelper.showFormatedSize(element,'storageSize',size);};var _updateTotalSize=function(){_refreshText(_totalSpaceText,AppStorage.totalSize);};var _updateUsedSize=function(){_refreshText(_usedSpaceText,AppStorage.usedSize);};var _updateFreeSize=function(){_refreshText(_freeSpaceText,AppStorage.freeSize);};var _updateElements=function(){_updateUsePercentage();_updateTotalSize();_updateUsedSize();_updateFreeSize();};return SettingsPanel({onInit:function(panel){_spaceBarElement=panel.querySelector('.apps-space-bar');_totalSpaceText=panel.querySelector('.apps-total-space');_usedSpaceText=panel.querySelector('.apps-used-space');_freeSpaceText=panel.querySelector('.apps-free-space');},onBeforeShow:function(){AppStorage.observe('usedPercentage',_updateUsePercentage);AppStorage.observe('totalSize',_updateTotalSize);AppStorage.observe('usedSize',_updateUsedSize);AppStorage.observe('freeSize',_updateFreeSize);_updateElements();AppStorage.updateInfo();},onHide:function(){AppStorage.unobserve('usedPercentage',_updateUsePercentage);AppStorage.unobserve('totalSize',_updateTotalSize);AppStorage.unobserve('usedSize',_updateUsedSize);AppStorage.unobserve('freeSize',_updateFreeSize);}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require','modules/settings_panel','modules/battery'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var Battery=require('modules/battery');return function ctor_battery_panel(){var _batteryLevelText=null;var _batteryTimeText=null;var _getBatteryTimeL10n=function(type){type=type==='charging'?'charging':'discharging';var time=Battery[type+'Time'];var l10nAttrs={id:'battery-'+type+'-calculating',args:{}};if(time!==Infinity&&time>0){var timeLeft=new Date(0,0,0,0,0,time);l10nAttrs.args.hours=timeLeft.getHours();l10nAttrs.args.minutes=timeLeft.getMinutes();if(l10nAttrs.args.hours>0){l10nAttrs.id='battery-'+type+'-hours';}else{l10nAttrs.id='battery-'+type+'-minutes';}}else if(time!==Infinity&&time===0){l10nAttrs.id='battery-'+type+'-complete';}
|
||||
return l10nAttrs;};var _refreshText=function(){document.l10n.setAttributes(_batteryLevelText,'battery-current-level',{level:Battery.level});if(Battery.state==='unplugged'){var l10nDischarging=_getBatteryTimeL10n('discharging');document.l10n.setAttributes(_batteryTimeText,l10nDischarging.id,l10nDischarging.args);}
|
||||
else{var l10nCharging=_getBatteryTimeL10n('charging');document.l10n.setAttributes(_batteryTimeText,l10nCharging.id,l10nCharging.args);}};return SettingsPanel({onInit:function bp_onInit(rootElement){_batteryLevelText=rootElement.querySelector('#battery-level');_batteryTimeText=rootElement.querySelector('#battery-time');},onBeforeShow:function bp_onBeforeShow(rootElement){Battery.observe('level',_refreshText);Battery.observe('state',_refreshText);Battery.observe('chargingTime',_refreshText);Battery.observe('dischargingTime',_refreshText);_refreshText();},onBeforeHide:function bp_onBeforeHide(){Battery.unobserve(_refreshText);}});};});
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
define('panels/browsing_privacy/browsing_privacy',['require'],function(require){'use strict';function BrowsingPrivacy(){}
|
||||
BrowsingPrivacy.prototype.clearHistory=function(){navigator.mozSettings.createLock().set({'clear.browser.history':true});};BrowsingPrivacy.prototype.clearPrivateData=function(){navigator.mozSettings.createLock().set({'clear.browser.private-data':true});};return function(){return new BrowsingPrivacy();};});define('panels/browsing_privacy/panel',['require','modules/settings_panel','panels/browsing_privacy/browsing_privacy','modules/dialog_service'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var BrowsingPrivacy=require('panels/browsing_privacy/browsing_privacy');var DialogService=require('modules/dialog_service');var browsingPrivacy=BrowsingPrivacy();var clearHistoryButton,clearPrivateDataButton;function onInit(panel){clearHistoryButton=panel.querySelector('.clear-history-button');clearPrivateDataButton=panel.querySelector('.clear-private-data-button');clearHistoryButton.addEventListener('click',handleClearHistoryClick);clearPrivateDataButton.addEventListener('click',handleClearPrivateDataClick);}
|
||||
function handleClearHistoryClick(){DialogService.confirm('confirm-clear-history-desc',{title:'confirm-clear-history-title',submitButton:{id:'clear',style:'danger'},cancelButton:'cancel'}).then((result)=>{if(result.type==='submit'){return browsingPrivacy.clearHistory();}});}
|
||||
function handleClearPrivateDataClick(){DialogService.confirm('confirm-clear-cookies-cache-desc',{title:'confirm-clear-cookies-cache-title',submitButton:{id:'delete',style:'danger'},cancelButton:'cancel'}).then((result)=>{if(result.type==='submit'){return browsingPrivacy.clearPrivateData();}});}
|
||||
function onUninit(){clearHistoryButton.removeEventListener('click',handleClearHistoryClick);clearPrivateDataButton.removeEventListener('click',handleClearPrivateDataClick);}
|
||||
return function(){return SettingsPanel({onInit:onInit,onUninit:onUninit});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define([],function(){'use strict';const NETWORK_TYPE_CATEGORY={'gprs':'gsm','edge':'gsm','umts':'gsm','hsdpa':'gsm','hsupa':'gsm','hspa':'gsm','hspa+':'gsm','lte':'gsm','gsm':'gsm','is95a':'cdma','is95b':'cdma','1xrtt':'cdma','evdo0':'cdma','evdoa':'cdma','evdob':'cdma','ehrpd':'cdma'};const CALL_FORWARD_REASON={'UNCONDITIONAL':0,'MOBILE_BUSY':1,'NO_REPLY':2,'NOT_REACHABLE':3};const CALL_FORWARD_REASON_MAPPING={'unConditional':CALL_FORWARD_REASON.UNCONDITIONAL,'mobileBusy':CALL_FORWARD_REASON.MOBILE_BUSY,'noReply':CALL_FORWARD_REASON.NO_REPLY,'notReachable':CALL_FORWARD_REASON.NOT_REACHABLE};const CALL_FORWARD_ACTION={'DISABLE':0,'ENABLE':1,'QUERY_STATUS':2,'REGISTRATION':3,'ERASURE':4};const CLIR_MAPPING={'CLIR_DEFAULT':0,'CLIR_INVOCATION':1,'CLIR_SUPPRESSION':2};const CallConstant={'NETWORK_TYPE_CATEGORY':NETWORK_TYPE_CATEGORY,'CALL_FORWARD_REASON':CALL_FORWARD_REASON,'CALL_FORWARD_REASON_MAPPING':CALL_FORWARD_REASON_MAPPING,'CALL_FORWARD_ACTION':CALL_FORWARD_ACTION,'CLIR_MAPPING':CLIR_MAPPING};return CallConstant;});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','panels/call/call_settings_task_scheduler','modules/base/module','modules/mvvm/observable','panels/call/call_utils','panels/call/call_constant'],function(require){'use strict';var CallSettingsTaskScheduler=require('panels/call/call_settings_task_scheduler');var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var CallUtils=require('panels/call/call_utils');var CallConstant=require('panels/call/call_constant');var mozSettings=window.navigator.mozSettings;var CallForwarding=Module.create(function CallForwarding(cardIndex){this.super(Observable).call(this);this._cardIndex=cardIndex;this._cfReasonStates=[0,0,0,0];}).extend(Observable);Observable.defineObservableProperty(CallForwarding.prototype,'state',{readonly:true,value:'normal'});Object.keys(CallConstant.CALL_FORWARD_REASON_MAPPING).forEach((cfOptionName)=>{Observable.defineObservableProperty(CallForwarding.prototype,cfOptionName+'Number',{readonly:true,value:null});Observable.defineObservableProperty(CallForwarding.prototype,cfOptionName+'Enabled',{readonly:true,value:false});});CallForwarding.prototype._getConn=function(){var conn=window.navigator.mozMobileConnections[this._cardIndex];if(!conn){this.throw('We can\'t find the conn object on card '+this._cardIndex);}else{return conn;}};CallForwarding.prototype.setCallForwardingValues=function(options){this._state='requesting';var promise=new Promise((resolve,reject)=>{var conn=this._getConn(this._cardIndex);var key=options.key;var number=options.number;var enabled=!!options.enabled;if(!key){this._state='normal';reject();}else if(this._cfReasonStates[CallConstant.CALL_FORWARD_REASON_MAPPING[key]]===enabled){this._state='normal';reject();}else{var mozMobileCFInfo={};mozMobileCFInfo.action=enabled?CallConstant.CALL_FORWARD_ACTION.REGISTRATION:CallConstant.CALL_FORWARD_ACTION.DISABLE;mozMobileCFInfo.reason=CallConstant.CALL_FORWARD_REASON_MAPPING[key];mozMobileCFInfo.serviceClass=conn.ICC_SERVICE_CLASS_VOICE;if(enabled&&!CallUtils.isPhoneNumberValid(number)){this._state='normal';reject({name:'callForwardingInvalidNumberError'});}else{mozMobileCFInfo.number=number;mozMobileCFInfo.timeSeconds=mozMobileCFInfo.reason!=CallConstant.CALL_FORWARD_REASON.NO_REPLY?0:20;CallSettingsTaskScheduler.enqueue({type:'CALL_FORWARDING',func:()=>{return conn.setCallForwardingOption(mozMobileCFInfo);}}).then(()=>{this._state='normal';resolve({key:key,action:mozMobileCFInfo.action});}).catch(()=>{this._state='normal';reject({name:'callForwardingSetError'});});}}});return promise;};CallForwarding.prototype._getOption=function(optionName){var conn=this._getConn();if(!(optionName in CallConstant.CALL_FORWARD_REASON)){this.debug('Your optionName may be wrong - ',optionName);return Promise.reject();}
|
||||
return conn.getCallForwardingOption(CallConstant.CALL_FORWARD_REASON[optionName]);};CallForwarding.prototype.refresh=function(){this._state='requesting';return CallSettingsTaskScheduler.enqueue({type:'CALL_FORWARDING',func:()=>{return Promise.all([this._getOption('UNCONDITIONAL'),this._getOption('MOBILE_BUSY'),this._getOption('NO_REPLY'),this._getOption('NOT_REACHABLE')]);}}).then((results)=>{var promise=new Promise((resolve,reject)=>{var storedOptions={};var cfOptions={'unConditional':results[0],'mobileBusy':results[1],'noReply':results[2],'notReachable':results[3]};Object.keys(cfOptions).forEach(function(cfOptionName){var rules=cfOptions[cfOptionName];var rule=CallUtils.findActiveVoiceRule(rules);if(rule){this._cfReasonStates[CallConstant.CALL_FORWARD_REASON_MAPPING[cfOptionName]]=1;this['_'+cfOptionName+'Number']=rule.number;this['_'+cfOptionName+'Enabled']=true;if(cfOptionName==='unConditional'){storedOptions['ril.cf.carrier.enabled']={enabled:true,index:this._cardIndex};}}else{this._cfReasonStates[CallConstant.CALL_FORWARD_REASON_MAPPING[cfOptionName]]=0;this['_'+cfOptionName+'Number']='';this['_'+cfOptionName+'Enabled']=false;if(cfOptionName==='unConditional'){storedOptions['ril.cf.carrier.enabled']={enabled:false,index:this._cardIndex};}}},this);mozSettings.createLock().set(storedOptions).then(()=>{this._state='normal';resolve(cfOptions);},()=>{this._state='error';this.error('Something error happened when storing into settings db');reject();});});return promise;},()=>{this._state='error';this.error('Something error happened when refresh');});};CallForwarding.prototype.isUnconditionalCFOn=function(){return this._cfReasonStates[0]===1;};return CallForwarding;});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/base/module','modules/base/task_scheduler'],function(require){'use strict';var Module=require('modules/base/module');var TaskScheduler=require('modules/base/task_scheduler');var CallSettingsTaskScheduler=Module.create(function CallSettingsTaskScheduler(){this.super(TaskScheduler).call(this);}).extend(TaskScheduler);const TASK_TYPE={GENERAL:0,CALL_FORWARDING:1,CALL_WAITING:2,CALLER_ID_PREF:3};Object.defineProperty(CallSettingsTaskScheduler,'TASK_TYPE',{enumerable:true,configurable:false,get:function(){return TASK_TYPE;}});CallSettingsTaskScheduler.prototype.enqueue=function(task){var{type,func}=task;if(!CallSettingsTaskScheduler.TASK_TYPE[type]){this.throw('You are enqueuing an unknown type - ',type,'please check again');}else{return TaskScheduler.prototype.enqueue.call(this,{type:type,func:func,cancelable:(type!=='GENERAL')});}};return CallSettingsTaskScheduler();});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define([],function(){'use strict';var conns=window.navigator.mozMobileConnections;var CallUtils={isPhoneNumberValid:function(number){if(number){var re=/^([\+]*[0-9])+$/;if(re.test(number)){return true;}}
|
||||
return false;},findActiveVoiceRule:function(rules){rules=rules||[];return rules.find((rule)=>{return(rule.active&&(rule.serviceClass&conns[0].ICC_SERVICE_CLASS_VOICE)!==0);});}};return CallUtils;});
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
define(['require','panels/call/call_settings_task_scheduler','panels/call/call_constant','shared/settings_helper','modules/settings_panel','modules/settings_cache','modules/settings_service','dsds_settings','modules/dialog_service'],function(require){'use strict';var CallSettingsTaskScheduler=require('panels/call/call_settings_task_scheduler');var CallConstant=require('panels/call/call_constant');var SettingsHelper=require('shared/settings_helper');var SettingsPanel=require('modules/settings_panel');var SettingsCache=require('modules/settings_cache');var SettingsService=require('modules/settings_service');var DsdsSettings=require('dsds_settings');var DialogService=require('modules/dialog_service');return function ctor_call_panel(){return SettingsPanel({onInit:function(panel,options){this._cardIndex=options.cardIndex||0;this._conns=window.navigator.mozMobileConnections;this._conn=this._conns[this._cardIndex];var $=function(selector){return panel.querySelector(selector);};this._elements={panel:panel,header:$('gaia-header'),rilCallerId:$('#ril-callerId'),fdnDesc:$('#fdnSettings-desc'),alertPanel:$('.cw-alert'),alertPanelSetButton:$('.cw-alert .cw-alert-set'),alertPanelConfirmInput:$('.cw-alert .cw-alert-checkbox'),alertPanelCancelButton:$('.cw-alert .cw-alert-cancel'),alertLabel:$('#menuItem-callWaiting .cw-alert-icon'),callFdnItem:$('#menuItem-callFdn'),callFdnAnchor:$('#menuItem-callFdn a'),callWaitingItem:$('#menuItem-callWaiting'),callWaitingInput:$('#menuItem-callWaiting gaia-switch'),callForwardingItem:$('#menuItem-callForwarding'),callForwardingAnchor:$('#menuItem-callForwarding a'),callBarringItem:$('#menuItem-callBarring'),callerIdItem:$('#menuItem-callerId'),voiceMailItem:$('.menuItem-voicemail'),voiceMailDesc:$('#voiceMail-desc'),voicePrivacyItem:$('#menuItem-voicePrivacyMode'),voicePrivacyInput:$('#menuItem-voicePrivacyMode gaia-switch')};if(DsdsSettings.getNumberOfIccSlots()>1){this._elements.header.setAttribute('data-href','#call-iccs');}
|
||||
this._bindPanelReadyEvent();this._bindCallForwardingMenuItemClickEvent();this._bindCallFdnMenuItemClickEvent();this._addVoiceTypeChangeListeners();this._initCallerId();this._initCallWaiting();this._initVoiceMailSettings();this._initVoicePrivacyModeChangeEvent();this._initVoicemailClickEvent();this._initCallWaitingAlertLabelClickEvent();this._initCallWaitingAlertCancelButtonClickEvent();CallSettingsTaskScheduler.observe('isLocked',(isLocked)=>{this._enableTapOn('callerIdItem',!isLocked);this._enableTapOn('callWaitingInput',!isLocked);});this._refreshCallSettingItems();},onBeforeShow:function(panel,options){if(typeof options.cardIndex!=='undefined'){this._cardIndex=options.cardIndex;this._conn=this._conns[options.cardIndex];}
|
||||
this._initFDNItem();this._updateNetworkTypeLimitedItemsVisibility(this._conn.voice&&this._conn.voice.type);this._refreshCallSettingItems();},_bindPanelReadyEvent:function(){window.addEventListener('panelready',(evt)=>{switch(evt.detail.current){case'#call':if(evt.detail.previous==='#call-forwarding'||evt.detail.previous==='#call-cbSettings'){return;}
|
||||
break;}});},_bindCallForwardingMenuItemClickEvent:function(){this._elements.callForwardingAnchor.onclick=()=>{SettingsService.navigate('call-forwarding',{cardIndex:this._cardIndex});};},_bindCallFdnMenuItemClickEvent:function(){this._elements.callFdnAnchor.onclick=()=>{SettingsService.navigate('call-fdnSettings',{cardIndex:this._cardIndex});};},_initCallerId:function(){this._elements.rilCallerId.onblur=()=>{var clirMode=CallConstant.CLIR_MAPPING[this._elements.rilCallerId.value];this._conn.setCallingLineIdRestriction(clirMode).then(()=>{},()=>{this._updateCallerIdPreference().then(()=>{this._updateCallerIdItemState();});});};navigator.mozSettings.addObserver('ril.clirMode',()=>{this._updateCallerIdItemState();});},_initCallWaiting:function(){this._elements.alertPanelSetButton.onclick=()=>{var checked=this._elements.alertPanelConfirmInput.checked;this._conn.setCallWaitingOption(checked).then(()=>{this._elements.alertPanel.hidden=true;this._updateCallWaitingItemState();},()=>{this._elements.alertPanel.hidden=true;this._updateCallWaitingItemState();});};this._elements.callWaitingInput.addEventListener('change',()=>{var checked=this._elements.callWaitingInput.checked;this._conn.setCallWaitingOption(checked).then(()=>{this._updateCallWaitingItemState();},()=>{this._updateCallWaitingItemState();});});},_initVoiceMailSettings:function(){SettingsCache.getSettings((results)=>{var settings=navigator.mozSettings;var voicemail=navigator.mozVoicemail;var updateVMNumber=false;var numbers=results['ril.iccInfo.mbdn']||[];[].forEach.call(this._conns,(conn,index)=>{var number=numbers[index];if(!number&&voicemail){number=voicemail.getNumber(index);if(number){updateVMNumber=true;numbers[index]=number;}}});if(updateVMNumber){settings.createLock().set({'ril.iccInfo.mbdn':numbers}).then(()=>{this._updateVoiceMailItemState();settings.addObserver('ril.iccInfo.mbdn',()=>{this._updateVoiceMailItemState();});});}else{this._updateVoiceMailItemState();settings.addObserver('ril.iccInfo.mbdn',()=>{this._updateVoiceMailItemState();});}});},_initFDNItem:function(){var iccId=navigator.mozMobileConnections[this._cardIndex].iccId;if(iccId){var icc=navigator.mozIccManager.getIccById(iccId);if(icc){icc.getServiceState('fdn').then((hasFdn)=>{this._elements.callFdnItem.hidden=!hasFdn;});}}},_initVoicemailClickEvent:function(){this._elements.voiceMailItem.onclick=()=>{DialogService.show('call-voiceMailSettings');};},_initCallWaitingAlertLabelClickEvent:function(){this._elements.alertLabel.onclick=()=>{this._elements.alertPanelConfirmInput.checked=false;this._elements.alertPanel.hidden=false;};},_initVoicePrivacyModeChangeEvent:function(){var defaultVoicePrivacySettings=[].map.call(this._conns,()=>{return false;});var voicePrivacyHelper=SettingsHelper('ril.voicePrivacy.enabled',defaultVoicePrivacySettings);this._elements.voicePrivacyInput.addEventListener('change',()=>{var checked=this._elements.voicePrivacyInput.checked;voicePrivacyHelper.get((values)=>{var originalValue=!checked;this._conn.setVoicePrivacyMode(checked).then(()=>{values[this._cardIndex]=!originalValue;voicePrivacyHelper.set(values);},()=>{this._elements.voicePrivacyInput.checked=originalValue;});});});},_initCallWaitingAlertCancelButtonClickEvent:function(){this._elements.alertPanelCancelButton.onclick=()=>{this._elements.alertPanel.hidden=true;};},_addVoiceTypeChangeListeners:function(){var voiceTypes=[].map.call(this._conns,()=>{return null;});[].forEach.call(this._conns,(conn,index)=>{voiceTypes[index]=conn.voice.type;conn.addEventListener('voicechange',()=>{var newType=conn.voice.type;if(index!==this._cardIndex||voiceTypes[index]===newType){return;}
|
||||
voiceTypes[index]=newType;this._updateNetworkTypeLimitedItemsVisibility(newType);this._refreshCallSettingItems();});});},_updateNetworkTypeLimitedItemsVisibility:function(voiceType){this._elements.callForwardingItem.hidden=this._elements.callBarringItem.hidden=this._elements.callWaitingItem.hidden=this._elements.callerIdItem.hidden=(CallConstant.NETWORK_TYPE_CATEGORY[voiceType]!=='gsm');this._elements.voicePrivacyItem.hidden=(CallConstant.NETWORK_TYPE_CATEGORY[voiceType]!=='cdma');},_refreshCallSettingItems:function(){this._updateVoiceMailItemState();this._updateFdnStatus();this._updateVoicePrivacyItemState();this._updateCallerIdPreference().then(()=>{this._updateCallerIdItemState();});this._updateCallWaitingItemState();},_enableTapOn:function(elementName,enable){var element=this._elements[elementName];if(!element){return;}
|
||||
if(enable){element.removeAttribute('aria-disabled');}else{element.setAttribute('aria-disabled',true);}},_updateCallerIdPreference:function(){return CallSettingsTaskScheduler.enqueue({type:'CALLER_ID_PREF',func:()=>{return this._conn.getCallingLineIdRestriction();}}).then((result)=>{var promise=new Promise((resolve)=>{var value=0;if(result){switch(result.m){case 1:case 3:case 4:switch(result.n){case 1:case 2:case 0:value=result.n;break;default:value=0;break;}
|
||||
break;case 0:case 2:default:value=0;break;}
|
||||
SettingsCache.getSettings((results)=>{var preferences=results['ril.clirMode']||[0,0];preferences[this._cardIndex]=value;navigator.mozSettings.createLock().set({'ril.clirMode':preferences}).then(resolve,resolve);});}});return promise;});},_updateCallerIdItemState:function(){if(this._elements.callerIdItem.hidden){return Promise.resolve();}else{var promise=new Promise((resolve)=>{SettingsCache.getSettings((results)=>{var preferences=results['ril.clirMode'];var preference=preferences&&preferences[this._cardIndex];var value;switch(preference){case 1:value='CLIR_INVOCATION';break;case 2:value='CLIR_SUPPRESSION';break;case 0:default:value='CLIR_DEFAULT';break;}
|
||||
this._elements.rilCallerId.value=value;});});return promise;}},_updateCallWaitingItemState:function(){if(this._elements.callWaitingItem.hidden){return Promise.resolve();}else{return CallSettingsTaskScheduler.enqueue({type:'CALL_WAITING',func:()=>{return this._conn.getCallWaitingOption();}}).then((enabled)=>{this._elements.callWaitingInput.checked=enabled;if(enabled){this._elements.callWaitingItem.dataset.state='on';}else{this._elements.callWaitingItem.dataset.state='off';}}).catch(()=>{this._elements.callWaitingItem.dataset.state='unknown';});}},_updateVoiceMailItemState:function(){this._elements.voiceMailDesc.textContent='';SettingsCache.getSettings((results)=>{var numbers=results['ril.iccInfo.mbdn'];var number=numbers[this._cardIndex];if(number){this._elements.voiceMailDesc.removeAttribute('data-l10n-id');this._elements.voiceMailDesc.textContent=number;}else{this._elements.voiceMailDesc.setAttribute('data-l10n-id','voiceMail-number-notSet');}});},_updateVoicePrivacyItemState:function(){if(this._elements.voicePrivacyItem.hidden){return;}
|
||||
this._conn.getVoicePrivacyMode().then((enabled)=>{this._elements.voicePrivacyInput.checked=enabled;},(error)=>{console.log('get voice privacy mode error');console.log(error);});},_updateFdnStatus:function(){var iccId=navigator.mozMobileConnections[this._cardIndex].iccId;if(iccId){var icc=navigator.mozIccManager.getIccById(iccId);if(icc){icc.getCardLock('fdn').then((result)=>{var enabled=result.enabled;this._elements.fdnDesc.setAttribute('data-l10n-id',enabled?'enabled':'disabled');this._elements.callForwardingItem.hidden=enabled;});}}}});};});
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
define('panels/call_barring/call_barring',['require','modules/mvvm/observable'],function(require){'use strict';var Observable=require('modules/mvvm/observable');var _cbAction={CALL_BARRING_BAOC:0,CALL_BARRING_BOIC:1,CALL_BARRING_BOICexHC:2,CALL_BARRING_BAIC:3,CALL_BARRING_BAICr:4};var _cbServiceMapper={'baoc':_cbAction.CALL_BARRING_BAOC,'boic':_cbAction.CALL_BARRING_BOIC,'boicExhc':_cbAction.CALL_BARRING_BOICexHC,'baic':_cbAction.CALL_BARRING_BAIC,'baicR':_cbAction.CALL_BARRING_BAICr};var call_barring_prototype={baoc:'',boic:'',boicExhc:'',baic:'',baicR:'',baoc_enabled:'',boic_enabled:'',boicExhc_enabled:'',baic_enabled:'',baicR_enabled:'',updating:false,_enable:function(elementArray){elementArray.forEach(function disable(element){this[element+'_enabled']=true;}.bind(this));if(!!this.baoc){this.boic_enabled=false;this.boicExhc_enabled=false;}
|
||||
if(!!this.baic){this.baicR_enabled=false;}},_disable:function(elementArray){elementArray.forEach(function disable(element){this[element+'_enabled']=false;}.bind(this));},_getRequest:function(api,id){var callOptions={'program':id,'serviceClass':api.ICC_SERVICE_CLASS_VOICE};return new Promise(function(resolve,reject){var request=api.getCallBarringOption(callOptions);request.onsuccess=function(){resolve(request.result.enabled);};request.onerror=function(){reject(request.error);};});},_setRequest:function(api,options){return new Promise(function(resolve,reject){var request=api.setCallBarringOption(options);request.onsuccess=function(){resolve();};request.onerror=function(){reject(request.error);};});},set:function(api,setting,password){if(!!this.updating){return;}
|
||||
if(!api){return;}
|
||||
var self=this;return new Promise(function(resolve,reject){self.updating=true;var allElements=['baoc','boic','boicExhc','baic','baicR'];self._disable(allElements);var options={'program':_cbServiceMapper[setting],'enabled':!self[setting],'password':password,'serviceClass':api.ICC_SERVICE_CLASS_VOICE};var error=null;self._setRequest(api,options).then(function success(){self[setting]=!self[setting];}).catch(function errored(err){error=err;}).then(function doAnyways(){self.updating=false;self._enable(allElements);if(!error){resolve();}else{reject(error);}});});},getAll:function(api){if(!!this.updating){return;}
|
||||
if(!api){return;}
|
||||
var allElements=['baoc','boic','boicExhc','baic','baicR'];var self=this;self.updating=true;return new Promise(function(resolve,reject){self._disable(allElements);var setting='baoc';self._getRequest(api,_cbServiceMapper[setting]).then(function received(value){self[setting]=value;setting='boic';return self._getRequest(api,_cbServiceMapper[setting]);}).then(function received(value){self[setting]=value;setting='boicExhc';return self._getRequest(api,_cbServiceMapper[setting]);}).then(function received(value){self[setting]=value;setting='baic';return self._getRequest(api,_cbServiceMapper[setting]);}).then(function received(value){self[setting]=value;setting='baicR';return self._getRequest(api,_cbServiceMapper[setting]);}).then(function received(value){self[setting]=value;}).catch(function errorWhileProcessing(err){console.error('Error receiving Call Barring status: '+
|
||||
err.name+' - '+err.message);}).then(function afterEverythingDone(){self.updating=false;self._enable(allElements);resolve();});});}};var callBarring=Observable(call_barring_prototype);return callBarring;});define('panels/call_barring/passcode_dialog',['require'],function(require){'use strict';var InputPasscodeScreen=function(){const PIN_SIZE=4;var panel,container,input,btnOK,btnCancel;var _passcodeDigits,_passcodeBuffer;function _getInputKey(evt){var code=evt.charCode;if(code!==0&&(code<0x30||code>0x39)){return;}
|
||||
var key=String.fromCharCode(code);if(evt.charCode===0){if(_passcodeBuffer.length>0){_passcodeBuffer=_passcodeBuffer.substring(0,_passcodeBuffer.length-1);}}else if(_passcodeBuffer.length<PIN_SIZE){_passcodeBuffer+=key;}
|
||||
_updateUI();}
|
||||
function _updateUI(){for(var i=0;i<PIN_SIZE;i++){if(i<_passcodeBuffer.length){_passcodeDigits[i].dataset.dot=true;}else{delete _passcodeDigits[i].dataset.dot;}}
|
||||
btnOK.disabled=_passcodeBuffer.length===PIN_SIZE?false:true;}
|
||||
function _init(){panel=document.getElementById('cb-passcode');container=panel.querySelector('.passcode-container');input=panel.querySelector('.passcode-input');_passcodeDigits=panel.querySelectorAll('.passcode-digit');_passcodeBuffer='';btnOK=document.getElementById('cb-passcode-ok-btn');btnCancel=document.getElementById('cb-passcode-cancel-btn');container.addEventListener('click',function(evt){input.focus();evt.preventDefault();});input.addEventListener('keypress',_getInputKey);}
|
||||
function okClicked(){if(_passcodeBuffer.length===4){var password=_passcodeBuffer;_closePanel();this.resolve(password);}}
|
||||
function cancelClicked(){_closePanel();this.reject();}
|
||||
function _showPanel(){return new Promise((resolve,reject)=>{panel.hidden=false;input.focus();this.resolve=resolve;this.reject=reject;btnOK.addEventListener('click',okClicked.bind(this));btnCancel.addEventListener('click',cancelClicked.bind(this));});}
|
||||
function _closePanel(){btnOK.removeEventListener('click',okClicked);btnCancel.removeEventListener('click',cancelClicked);_passcodeBuffer='';_updateUI();panel.hidden=true;}
|
||||
return{init:_init,show:_showPanel};};return InputPasscodeScreen;});define('panels/call_barring/panel',['require','modules/settings_panel','panels/call_barring/call_barring','panels/call_barring/passcode_dialog','shared/toaster'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var CallBarring=require('panels/call_barring/call_barring');var InputPasscodeScreen=require('panels/call_barring/passcode_dialog');var Toaster=require('shared/toaster');return function ctor_call_barring(){var _callBarring=CallBarring;var _passcodeScreen=InputPasscodeScreen();var _mobileConnection;var _cbSettings={};var _refresh;var _updating;function _updateMobileConnection(){_mobileConnection=window.navigator.mozMobileConnections[DsdsSettings.getIccCardIndexForCallSettings()];}
|
||||
function refresh_on_load(e){if(e.detail.current==='#call-cbSettings'&&e.detail.previous==='#call-barring-passcode-change'){_refresh=false;}}
|
||||
function _updateCallBarringItem(item,newStatus){var descText=item.querySelector('details');var input=item.querySelector('gaia-switch');if(typeof newStatus.disabled==='boolean'){newStatus.disabled?item.setAttribute('aria-disabled',true):item.removeAttribute('aria-disabled');if(input){input.disabled=newStatus.disabled;}}
|
||||
if(input&&typeof newStatus.checked==='boolean'){input.checked=newStatus.checked;}
|
||||
function inputValue(){return input&&input.checked?'enabled':'disabled';}
|
||||
if(descText){var text=_updating?'callSettingsQuery':inputValue();document.l10n.setAttributes(descText,text);}}
|
||||
function _callBarringClick(evt){var input=evt.target;evt.preventDefault();_passcodeScreen.show().then(function confirmed(passcode){var inputID=input.parentNode.id;var setting=inputID.substring(6);_updateMobileConnection();_callBarring.set(_mobileConnection,setting,passcode).catch(function error(err){var toast;if(err.name==='GenericFailure'){toast={messageL10nId:'callBarring-update-generic-error',latency:2000,useTransition:true};}else{toast={messageL10nId:'callBarring-update-item-error',messageL10nArgs:{'error':err.name||'unknown'},latency:2000,useTransition:true};}
|
||||
Toaster.showToast(toast);});}).catch(function canceled(){});}
|
||||
return SettingsPanel({onInit:function cb_onInit(panel){_cbSettings={baoc:document.getElementById('li-cb-baoc'),boic:document.getElementById('li-cb-boic'),boicExhc:document.getElementById('li-cb-boicExhc'),baic:document.getElementById('li-cb-baic'),baicR:document.getElementById('li-cb-baicR')};for(var i in _cbSettings){_cbSettings[i].querySelector('gaia-switch').addEventListener('click',_callBarringClick);}
|
||||
_updateMobileConnection();_passcodeScreen.init();},onBeforeShow:function cb_onBeforeShow(){_refresh=true;_updating=false;for(var element in _cbSettings){_callBarring[element]=false;_updateCallBarringItem(_cbSettings[element],{'checked':false});}
|
||||
window.addEventListener('panelready',refresh_on_load);_callBarring.observe('baoc',function(newValue){_updateCallBarringItem(_cbSettings.baoc,{'checked':newValue});});_callBarring.observe('boic',function(newValue){_updateCallBarringItem(_cbSettings.boic,{'checked':newValue});});_callBarring.observe('boicExhc',function(newValue){_updateCallBarringItem(_cbSettings.boicExhc,{'checked':newValue});});_callBarring.observe('baic',function(newValue){_updateCallBarringItem(_cbSettings.baic,{'checked':newValue});});_callBarring.observe('baicR',function(newValue){_updateCallBarringItem(_cbSettings.baicR,{'checked':newValue});});_callBarring.observe('baoc_enabled',function changed(newValue){_updateCallBarringItem(_cbSettings.baoc,{'disabled':!newValue});});_callBarring.observe('boic_enabled',function changed(newValue){_updateCallBarringItem(_cbSettings.boic,{'disabled':!newValue});});_callBarring.observe('boicExhc_enabled',function changed(newValue){_updateCallBarringItem(_cbSettings.boicExhc,{'disabled':!newValue});});_callBarring.observe('baic_enabled',function changed(newValue){_updateCallBarringItem(_cbSettings.baic,{'disabled':!newValue});});_callBarring.observe('baicR_enabled',function changed(newValue){_updateCallBarringItem(_cbSettings.baicR,{'disabled':!newValue});});_callBarring.observe('updating',function changed(newValue){_updating=newValue;});},onShow:function cb_onShow(){if(_refresh){_updateMobileConnection();_callBarring.getAll(_mobileConnection);}},onBeforeHide:function cb_onHide(){window.removeEventListener('panelready',refresh_on_load);_callBarring.unobserve('baoc');_callBarring.unobserve('boic');_callBarring.unobserve('boicExhc');_callBarring.unobserve('baic');_callBarring.unobserve('baicR');_callBarring.unobserve('baoc_enabled');_callBarring.unobserve('boic_enabled');_callBarring.unobserve('boicExhc_enabled');_callBarring.unobserve('baic_enabled');_callBarring.unobserve('baicR_enabled');_callBarring.unobserve('updating');}});};});
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
define('panels/call_barring_passcode_change/call_barring_passcode_change',['require'],function(require){'use strict';var ChangePasscodeScreen=function(){function _changeCallBarringPasscode(api,pinData){return new Promise(function finished(resolve,reject){var request=api.changeCallBarringPassword(pinData);request.onsuccess=function(){resolve();};request.onerror=function(){reject(request.error);};});}
|
||||
return{change:_changeCallBarringPasscode};};return ChangePasscodeScreen;});define('panels/call_barring_passcode_change/panel',['require','modules/settings_service','modules/settings_panel','panels/call_barring_passcode_change/call_barring_passcode_change'],function(require){'use strict';var SettingsService=require('modules/settings_service');var SettingsPanel=require('modules/settings_panel');var ChangePasscodeScreen=require('panels/call_barring_passcode_change/call_barring_passcode_change');return function ctor_call_barring_passcode_change(){var passcodeChange=ChangePasscodeScreen();var _mobileConnection,_voiceServiceClassMask;var _passcodePanel,_passcodeHeader,_passcodeInput,_passcodeError,_passcodeDigits,_passcodeContainer,_changePasscodeButton;var _MODE;var _settings={pin:'',newPin:''};var _passcodeBuffer='';var _checkingLength={'new':8,'edit':4};function _changeMode(mode){_passcodePanel.dataset.mode=_MODE=mode;_hideErrorMessage();}
|
||||
function _getInputKey(evt){if(_passcodeBuffer===''){_hideErrorMessage();}
|
||||
var code=evt.charCode;if(code!==0&&(code<0x30||code>0x39)){return;}
|
||||
var key=String.fromCharCode(code);if(code===0){if(_passcodeBuffer.length>0){_passcodeBuffer=_passcodeBuffer.substring(0,_passcodeBuffer.length-1);if(_passcodePanel.dataset.passcodeStatus==='success'){_resetPasscodeStatus();}}}else if(_passcodeBuffer.length<8){_passcodeBuffer+=key;}
|
||||
_updatePasscodeUI();_enablePasscode();}
|
||||
function _enablePasscode(){if(_passcodeBuffer.length===_checkingLength[_MODE]){switch(_MODE){case'edit':if(_checkPasscode()){_passcodeBuffer='';_updatePasscodeUI();_changeMode('new');}else{_passcodeBuffer='';}
|
||||
break;case'new':var passcode=_passcodeBuffer.substring(0,4);var passcodeToConfirm=_passcodeBuffer.substring(4,8);if(passcode===passcodeToConfirm){_settings.newPin=passcode;_enableButton();}else{_passcodeBuffer='';_showErrorMessage('mismatch');}
|
||||
break;}}}
|
||||
function _showErrorMessage(type){_passcodePanel.dataset.passcodeStatus='error';var tag='callBarring-passcode-error-'+type||'generic';document.l10n.setAttributes(_passcodeError,tag);}
|
||||
function _hideErrorMessage(){_passcodePanel.dataset.passcodeStatus='';}
|
||||
function _resetPasscodeStatus(){_passcodePanel.dataset.passcodeStatus='';}
|
||||
function _enableButton(){_passcodePanel.dataset.passcodeStatus='success';}
|
||||
function _updatePasscodeUI(){for(var i=0;i<8;i++){if(i<_passcodeBuffer.length){_passcodeDigits[i].dataset.dot=true;}else{delete _passcodeDigits[i].dataset.dot;}}}
|
||||
function _resetScreen(){_passcodeBuffer='';_changeMode('edit');_updatePasscodeUI();}
|
||||
function _checkPasscode(){if(_passcodeBuffer.length===4){_settings.pin=_passcodeBuffer;_hideErrorMessage();return true;}
|
||||
return false;}
|
||||
function _changePassword(){passcodeChange.change(_mobileConnection,_settings).then(function success(){SettingsService.back();}).catch(function error(err){_resetScreen();_showErrorMessage('incorrect');});}
|
||||
return SettingsPanel({onInit:function cb_onInit(panel){_mobileConnection=window.navigator.mozMobileConnections[DsdsSettings.getIccCardIndexForCallSettings()];_voiceServiceClassMask=_mobileConnection.ICC_SERVICE_CLASS_VOICE;_passcodePanel=document.getElementById('call-barring-passcode-change');_passcodeHeader=_passcodePanel.querySelector('gaia-header');_passcodeInput=_passcodePanel.querySelector('.passcode-input');_passcodeError=_passcodePanel.querySelector('.passcode-error');_passcodeDigits=_passcodePanel.querySelectorAll('.passcode-digit');_passcodeContainer=_passcodePanel.querySelector('.passcode-container');_changePasscodeButton=_passcodePanel.querySelector('.passcode-change');_passcodeInput.addEventListener('keypress',_getInputKey);_changePasscodeButton.addEventListener('click',_changePassword);_passcodeContainer.addEventListener('click',function inputClick(evt){_passcodeInput.focus();_hideErrorMessage();evt.preventDefault();});},onBeforeShow:function cb_beforeShow(){_changeMode('edit');},onShow:function cb_onShow(){_passcodeInput.focus();},onBeforeHide:function cb_onHide(){_resetScreen();}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','dsds_settings','modules/dialog_service','modules/fdn_context','modules/settings_panel'],function(require){'use strict';var DsdsSettings=require('dsds_settings');var DialogService=require('modules/dialog_service');var FdnContext=require('modules/fdn_context');var SettingsPanel=require('modules/settings_panel');return function ctor_settings_panel(){return SettingsPanel({_currentContact:null,onInit:function(panel){this._elements={};this._elements.fdnContactButton=panel.querySelector('.fdnContact');this._elements.fdnActionMenu=panel.querySelector('.call-fdnList-action');this._elements.fdnActionMenuName=panel.querySelector('.fdnAction-name');this._elements.fdnActionMenuNumber=panel.querySelector('.fdnAction-number');this._elements.fdnActionMenuCall=panel.querySelector('.fdnAction-call');this._elements.fdnActionMenuEdit=panel.querySelector('.fdnAction-edit');this._elements.fdnActionMenuRemove=panel.querySelector('.fdnAction-delete');this._elements.contactsContainer=panel.querySelector('.fdn-contactsContainer');this._bindEvents();},onBeforeShow:function(){this._renderAuthorizedNumbers();},_bindEvents:function(){this._elements.fdnContactButton.onclick=()=>{DialogService.show('call-fdnList-add',{mode:'add'}).then((result)=>{var type=result.type;var value=result.value;if(type==='submit'){this._updateContact('add',{name:value.name,number:value.number});}});};this._elements.fdnActionMenuEdit.onclick=()=>{this._hideActionMenu();DialogService.show('call-fdnList-add',{name:this._currentContact.name,number:this._currentContact.number,mode:'edit'}).then((result)=>{var type=result.type;var value=result.value;if(type==='submit'){this._updateContact('edit',{name:value.name,number:value.number});}});};this._elements.fdnActionMenuRemove.onclick=()=>{this._hideActionMenu();this._updateContact('remove');};this._elements.fdnActionMenuCall.onclick=()=>{var activity=new window.MozActivity({name:'dial',data:{type:'webtelephony/number',number:this._currentContact.number}});activity.onerror=()=>{console.error('we are not able to call mozActivity to dialer with'+' number '+this._currentContact.number);};};},_renderAuthorizedNumbers:function(){this._elements.contactsContainer.innerHTML='';var cardIndex=DsdsSettings.getIccCardIndexForCallSettings();return FdnContext.getContacts(cardIndex).then((contacts)=>{for(var i=0,l=contacts.length;i<l;i++){var li=this._renderFdnContact(contacts[i]);this._elements.contactsContainer.appendChild(li);}});},_renderFdnContact:function(contact){var li=document.createElement('li');var nameContainer=document.createElement('span');var numberContainer=document.createElement('small');nameContainer.dir='auto';nameContainer.textContent=contact.name;numberContainer.dir='auto';numberContainer.textContent=contact.number;li.appendChild(numberContainer);li.appendChild(nameContainer);li.onclick=()=>{this._showActionMenu(contact);};return li;},_showActionMenu:function(contact){this._currentContact=contact;this._elements.fdnActionMenuName.textContent=contact.name;this._elements.fdnActionMenuNumber.textContent=contact.number;this._elements.fdnActionMenu.show();},_hideActionMenu:function(){this._elements.fdnActionMenu.hide();},_updateContact:function(action,options){options=options||{};var cardIndex=DsdsSettings.getIccCardIndexForCallSettings();var name=options.name;var number=options.number;var contact=FdnContext.createAction(action,{cardIndex:cardIndex,contact:{id:this._currentContact&&this._currentContact.id,name:name,number:number}});return DialogService.show('simpin-dialog',{method:'get_pin2',cardIndex:cardIndex,pinOptions:{fdnContact:contact}}).then((result)=>{var type=result.type;if(type==='submit'){this._renderAuthorizedNumbers();}});}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require','modules/dialog_panel'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');return function ctor_call_fdn_list_add(){return DialogPanel({onInit:function(panel){this._submitable=false;this._mode='add';this._elements={};this._elements.fdnNameInput=panel.querySelector('.fdnContact-name');this._elements.fdnNumberInput=panel.querySelector('.fdnContact-number');this._elements.fdnContactTitle=panel.querySelector('.fdnContact-title');this._elements.submitButton=panel.querySelector('.fdnContact-submit');this._elements.fdnNameInput.oninput=this._checkContactInputs.bind(this);this._elements.fdnNumberInput.oninput=this._checkContactInputs.bind(this);},onBeforeShow:function(panel,options){this._mode=options.mode||'add';this._elements.fdnNameInput.value=options.name||'';this._elements.fdnNumberInput.value=options.number||'';if(this._mode==='add'){this._elements.fdnContactTitle.setAttribute('data-l10n-id','fdnAction-add');}else{this._elements.fdnContactTitle.setAttribute('data-l10n-id','fdnAction-edit-header');}
|
||||
this._checkContactInputs();},onShow:function(){this._elements.fdnNameInput.focus();},onSubmit:function(){if(this._submitable){return Promise.resolve({name:this._elements.fdnNameInput.value,number:this._elements.fdnNumberInput.value});}else{return Promise.reject();}},_checkContactInputs:function(){if(this._elements.fdnNameInput.value===''||this._elements.fdnNumberInput.value===''){this._submitable=false;}else{this._submitable=true;}
|
||||
this._elements.submitButton.disabled=!this._submitable;}});};});
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
define(['require','modules/settings_panel','modules/dialog_service'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DialogService=require('modules/dialog_service');return function ctor_call_fdn_settings_panel(){return SettingsPanel({onInit:function(panel,options){this._cardIndex=options.cardIndex||0;this._conns=window.navigator.mozMobileConnections;this._conn=this._conns[this._cardIndex];this._elements={panel:panel,simFdnDesc:panel.querySelector('.fdn-enabled details'),resetPin2Item:panel.querySelector('.fdn-resetPIN2'),simFdnCheckBox:panel.querySelector('.fdn-enabled gaia-switch'),resetPin2Button:panel.querySelector('.fdn-resetPIN2 button')};this._elements.simFdnCheckBox.addEventListener('change',this._showToggleFdnDialog.bind(this));this._elements.resetPin2Button.onclick=this._showChangePin2Dialog.bind(this);},onBeforeShow:function(panel,options){if(typeof options.cardIndex!=='undefined'){this._cardIndex=options.cardIndex;this._conn=this._conns[this._cardIndex];}
|
||||
var iccObj=this._getCurrentIccObj();if(iccObj){iccObj.oncardstatechange=this._updateFdnStatus.bind(this);}
|
||||
this._updateFdnStatus();},_showToggleFdnDialog:function(){var action=this._elements.simFdnCheckBox.checked?'enable_fdn':'disable_fdn';var iccObj=this._getCurrentIccObj();if(iccObj){if(iccObj.cardState==='puk2Required'){action='unlock_puk2';}
|
||||
return DialogService.show('simpin-dialog',{method:action,cardIndex:this._cardIndex}).then(()=>{this._updateFdnStatus();});}},_showChangePin2Dialog:function(){DialogService.show('simpin-dialog',{method:'change_pin2',cardIndex:this._cardIndex});},_updateFdnStatus:function(){var iccObj=this._getCurrentIccObj();if(iccObj){return iccObj.getCardLock('fdn').then((result)=>{var enabled=result.enabled;this._elements.simFdnDesc.setAttribute('data-l10n-id',enabled?'enabled':'disabled');this._elements.simFdnCheckBox.disabled=false;this._elements.simFdnCheckBox.checked=enabled;this._elements.resetPin2Item.hidden=!enabled;});}},_getCurrentIccObj:function(){var iccId;var iccObj;if(this._conn){iccId=this._conn.iccId;if(iccId){iccObj=window.navigator.mozIccManager.getIccById(iccId);}}
|
||||
if(!iccObj){console.log('We can\'t find related iccObj in card - ',this._cardIndex);}
|
||||
return iccObj;}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define(['require','panels/call/call_constant','panels/call/call_forwarding','panels/call/call_utils','modules/dialog_service','modules/settings_panel'],function(require){'use strict';var CallConstant=require('panels/call/call_constant');var CallForwarding=require('panels/call/call_forwarding');var CallUtils=require('panels/call/call_utils');var DialogService=require('modules/dialog_service');var SettingsPanel=require('modules/settings_panel');return function ctor_call_forwarding(){return SettingsPanel({onInit:function(panel,options){this._elements={};this._elements.panel=panel;this._cardIndex=options.cardIndex||0;this._conns=window.navigator.mozMobileConnections;this._conn=this._conns[this._cardIndex];this._callForwardings=[null,null];var $=function(selector){return panel.querySelector(selector);};this._elements={liCfuDesc:$('#li-cfu-desc'),liCfmbDesc:$('#li-cfmb-desc'),liCfnRepDesc:$('#li-cfnrep-desc'),liCfnReaDesc:$('#li-cfnrea-desc'),cfuDesc:$('#cfu-desc'),cfmbDesc:$('#cfmb-desc'),cfnRepDesc:$('#cfnrep-desc'),cfnReaDesc:$('#cfnrea-desc'),mobileBusyMenuItem:$('.callForwardingMobileBusy'),noReplyMenuItem:$('.callForwardingNoReply'),notReachableMenuItem:$('.callForwardingNotReachable'),unConditionalMenuItem:$('.callForwardingUnconditional')};this._cfOptionNameMapping={'unConditional':'cfuDesc','mobileBusy':'cfmbDesc','noReply':'cfnRepDesc','notReachable':'cfnReaDesc'};this._bindMenuItemsClickEvent();},onBeforeShow:function(panel,options){if(typeof options.cardIndex!=='undefined'){this._cardIndex=options.cardIndex;this._conn=this._conns[this._cardIndex];}
|
||||
if(this._callForwardings[this._cardIndex]===null){this._callForwardings[this._cardIndex]=CallForwarding(this._cardIndex);}
|
||||
this._bindCallForwardingObservers();this._refresh();},onHide:function(){this._unbindCallForwardingObservers();},_bindCallForwardingObservers:function(){var cf=this._getCallForwarding();cf.observe('state',(state)=>{if(state==='normal'){this._lockMenuItems(false);Object.keys(CallConstant.CALL_FORWARD_REASON_MAPPING).forEach((cfOptionName)=>{var selector=this._cfOptionNameMapping[cfOptionName];var element=this._elements[selector];var number=cf[cfOptionName+'Number'];this._updateNumberInfoOnElement(element,number);});}else if(state==='requesting'){this._lockMenuItems(true);this._updateAllDescInfoWithL10nId('callSettingsQuery');}else if(state==='error'){this._lockMenuItems(false);this._updateAllDescInfoWithL10nId('callSettingsQueryError');}});Object.keys(CallConstant.CALL_FORWARD_REASON_MAPPING).forEach((cfOptionName)=>{var selector=this._cfOptionNameMapping[cfOptionName];var element=this._elements[selector];cf.observe(cfOptionName+'Number',(number)=>{this._updateNumberInfoOnElement(element,number);});});},_updateNumberInfoOnElement:function(element,number){if(!element){return;}
|
||||
if(number){document.l10n.setAttributes(element,'callForwardingForwardingVoiceToNumber',{number:number});}else{element.setAttribute('data-l10n-id','callForwardingNotForwarding');}},_unbindCallForwardingObservers:function(){var cf=this._getCallForwarding();cf.unobserve('state');Object.keys(CallConstant.CALL_FORWARD_REASON_MAPPING).forEach((cfOptionName)=>{cf.unobserve(cfOptionName+'Number');});},_getCallForwarding:function(){var cf=this._callForwardings[this._cardIndex];if(!cf){console.log('can\'t find related call forwarding instance '+'at cardIndex - ',this._cardIndex);}else{return cf;}},_updateAllDescInfoWithL10nId:function(l10nId){this._elements.cfuDesc.setAttribute('data-l10n-id',l10nId);this._elements.cfmbDesc.setAttribute('data-l10n-id',l10nId);this._elements.cfnRepDesc.setAttribute('data-l10n-id',l10nId);this._elements.cfnReaDesc.setAttribute('data-l10n-id',l10nId);},_bindMenuItemsClickEvent:function(){var mapping={mobileBusy:{menuItem:this._elements.mobileBusyMenuItem,panelId:'call-cf-mobile-busy-settings'},noReply:{menuItem:this._elements.noReplyMenuItem,panelId:'call-cf-no-reply-settings'},notReachable:{menuItem:this._elements.notReachableMenuItem,panelId:'call-cf-not-reachable-settings'},unConditional:{menuItem:this._elements.unConditionalMenuItem,panelId:'call-cf-unconditional-settings'}};var onclick=(panelId,cfOptionName)=>{var cf=this._getCallForwarding();var number=cf[cfOptionName+'Number'];var enabled=cf[cfOptionName+'Enabled'];DialogService.show(panelId,{number:number,enabled:enabled}).then((result)=>{var type=result.type;var value=result.value||{};var returnNumber=value.number||'';var returnEnabled=value.enabled||false;if(type==='submit'){this._getCallForwarding().setCallForwardingValues({key:cfOptionName,enabled:returnEnabled,number:returnNumber}).then((result)=>{if(result){var{key,action}=result;this._refresh().then((options)=>{var rules=options[key];var messageL10nId=this._getSetCallForwardingOptionResult(rules,action);DialogService.alert(messageL10nId,{title:'callForwardingConfirmTitle',submitButton:'continue'});});}},(error)=>{if(error){DialogService.alert(error.name,{title:'callForwardingConfirmTitle',submitButtonText:'continue'});this._refresh();}});}});};for(var cfOptionName in mapping){var item=mapping[cfOptionName];var panelId=item.panelId;var menuItem=item.menuItem;menuItem.addEventListener('click',onclick.bind(null,panelId,cfOptionName));}},_lockMenuItems:function(isLocked){var elements=['liCfuDesc','liCfmbDesc','liCfnRepDesc','liCfnReaDesc'];elements.forEach(function(id){var element=this._elements[id];if(isLocked){element.setAttribute('aria-disabled',true);}else{element.removeAttribute('aria-disabled');if(this._getCallForwarding().isUnconditionalCFOn()&&id!=='liCfuDesc'){element.setAttribute('aria-disabled',true);}}},this);},_refresh:function(checkCallForwardingOption,reason,action){return this._getCallForwarding().refresh();},_getSetCallForwardingOptionResult:function(rules,action){var rule=CallUtils.findActiveVoiceRule(rules);var l10nId;if(rule){l10nId=(action===CallConstant.CALL_FORWARD_ACTION.DISABLE)?'callForwardingSetForbidden':'callForwardingSetSuccess';return l10nId;}else{l10nId=(action===CallConstant.CALL_FORWARD_ACTION.REGISTRATION)?'callForwardingSetError':'callForwardingSetSuccess';return l10nId;}}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/dialog_panel'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');return function ctor_call_forwarding_details(){return DialogPanel({onInit:function(panel){this._elements={};this._elements.telInput=panel.querySelector('input[type="tel"]');this._elements.checkboxInput=panel.querySelector('gaia-switch');},onBeforeShow:function(panel,options){this._elements.telInput.value=options.number||'';this._elements.checkboxInput.checked=!!options.enabled;},onShow:function(){this._elements.telInput.focus();},onSubmit:function(){return Promise.resolve({number:this._elements.telInput.value,enabled:this._elements.checkboxInput.checked});}});};});
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
define(['require','dsds_settings','modules/settings_service'],function(require){'use strict';var DsdsSettings=require('dsds_settings');var SettingsService=require('modules/settings_service');var CallIccHandler=(function(){var CARDSTATE_MAPPING={'pinRequired':'simCardLockedMsg','pukRequired':'simCardLockedMsg','permanentBlocked':'simCardBlockedMsg','networkLocked':'simLockedPhone','serviceProviderLocked':'simLockedPhone','corporateLocked':'simLockedPhone','network1Locked':'simLockedPhone','network2Locked':'simLockedPhone','hrpdNetworkLocked':'simLockedPhone','ruimCorporateLocked':'simLockedPhone','ruimServiceProviderLocked':'simLockedPhone','unknown':'unknownSimCardState','illegal':'simCardIllegal','absent':'noSimCard','null':'simCardNotReady','ready':''};var _settings=window.navigator.mozSettings;var _iccManager=window.navigator.mozIccManager;var _mobileConnections=null;var _telephony=window.navigator.mozTelephony;var _menuItemIds=['menuItem-call-sim1','menuItem-call-sim2'];var _menuItemDescriptions=[];var _iccIdOnCall=null;function ihfcs_init(){_mobileConnections=window.navigator.mozMobileConnections;if(!_settings||!_mobileConnections||!_iccManager||!_telephony){return;}
|
||||
if(DsdsSettings.getNumberOfIccSlots()===1){return;}
|
||||
function addListeners(iccId){var eventHandler=ihfcs_showICCCardDetails.bind(null,iccId);var iccCard=_iccManager.getIccById(iccId);if(!iccCard){return;}
|
||||
iccCard.addEventListener('cardstatechange',eventHandler);var mobileConnection=ihfcs_getMobileConnectionFromIccId(iccId);if(!mobileConnection){return;}
|
||||
mobileConnection.addEventListener('datachange',eventHandler);mobileConnection.addEventListener('radiostatechange',eventHandler);}
|
||||
_menuItemIds.forEach(function forEachFunction(id){var selector=document.getElementById(id);_menuItemDescriptions[_menuItemIds.indexOf(id)]=selector.querySelector('small');});_menuItemIds.forEach(function forEachFunction(id){var selector=document.getElementById(id);var element=selector.querySelector('a');element.addEventListener('click',function eventListenerHandler(){var cardIndex=_menuItemIds.indexOf(id);DsdsSettings.setIccCardIndexForCallSettings(cardIndex);SettingsService.navigate('call',{cardIndex:cardIndex});});});var numberOfIccCards=_mobileConnections.length;for(var i=0;i<numberOfIccCards;i++){var mobileConnection=_mobileConnections[i];if(!mobileConnection.iccId){ihfcs_disableItems(_menuItemIds[i],true);continue;}
|
||||
ihfcs_showICCCardDetails(mobileConnection.iccId);addListeners(mobileConnection.iccId);}
|
||||
_iccManager.addEventListener('iccdetected',function iccDetectedHandler(evt){var iccId=evt.iccId;ihfcs_showICCCardDetails(iccId);addListeners(iccId);});_iccManager.addEventListener('iccundetected',function iccUndetectedHandler(evt){var iccId=evt.iccId;var eventHandler=ihfcs_showICCCardDetails.bind(null,iccId);var mobileConnection=ihfcs_getMobileConnectionFromIccId(iccId);if(!mobileConnection){return;}
|
||||
mobileConnection.removeEventListener('datachange',eventHandler);mobileConnection.removeEventListener('radiostatechange',eventHandler);});function callsChangedHandler(){if(!_telephony.active&&!_iccIdOnCall){return;}
|
||||
if(_telephony.active){_iccIdOnCall=_mobileConnections[_telephony.active.serviceId].iccId;}else{_iccIdOnCall=null;}
|
||||
var numberOfIccCards=_mobileConnections.length;for(var i=0;i<numberOfIccCards;i++){var mobileConnection=_mobileConnections[i];if(mobileConnection.iccId){ihfcs_showICCCardDetails(mobileConnection.iccId);}}}
|
||||
callsChangedHandler();_telephony.addEventListener('callschanged',callsChangedHandler);}
|
||||
function ihfcs_showICCCardDetails(iccId){var iccCardIndex=ihfcs_getIccCardIndex(iccId);var desc=_menuItemDescriptions[iccCardIndex];desc.style.fontStyle='italic';var mobileConnection=ihfcs_getMobileConnectionFromIccId(iccId);if(!mobileConnection){desc.removeAttribute('data-l10n-id');desc.textContent='';ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
if(mobileConnection.radioState!=='enabled'){desc.setAttribute('data-l10n-id',CARDSTATE_MAPPING['null']);ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
if(mobileConnection.radioState==='enabled'){desc.removeAttribute('data-l10n-id');desc.textContent='';ihfcs_disableItems(_menuItemIds[iccCardIndex],false);}
|
||||
var iccCard=_iccManager.getIccById(iccId);if(!iccCard){desc.removeAttribute('data-l10n-id');desc.textContent='';ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
var cardState=iccCard.cardState;if(cardState!=='ready'){desc.setAttribute('data-l10n-id',CARDSTATE_MAPPING[cardState||'null']);ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
desc.style.fontStyle='normal';var network=mobileConnection.voice.network;var iccInfo=iccCard.iccInfo;var carrier=network?(network.shortName||network.longName):null;if(carrier&&iccInfo&&iccInfo.isDisplaySpnRequired&&iccInfo.spn){if(iccInfo.isDisplayNetworkNameRequired&&carrier!==iccInfo.spn){carrier=carrier+' '+iccInfo.spn;}else{carrier=iccInfo.spn;}}
|
||||
desc.textContent=carrier;ihfcs_disableItems(_menuItemIds[iccCardIndex],_iccIdOnCall&&(_iccIdOnCall!==iccId)?true:false);}
|
||||
function ihfcs_disableItems(id,disable){var element=document.getElementById(id);if(disable){element.setAttribute('aria-disabled',true);}else{element.removeAttribute('aria-disabled');}}
|
||||
function ihfcs_getIccCardIndex(iccId){for(var i=0;i<_mobileConnections.length;i++){if(_mobileConnections[i].iccId===iccId){return i;}}
|
||||
return-1;}
|
||||
function ihfcs_getMobileConnectionFromIccId(iccId){for(var i=0;i<_mobileConnections.length;i++){if(_mobileConnections[i].iccId===iccId){return _mobileConnections[i];}}
|
||||
return null;}
|
||||
return{init:ihfcs_init};})();return CallIccHandler;});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/call_iccs/call_icc_handler'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var CallIccHandler=require('panels/call_iccs/call_icc_handler');return function ctor_call_iccs(){return SettingsPanel({onInit:function(){CallIccHandler.init();}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/dialog_panel','modules/settings_cache'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');var SettingsCache=require('modules/settings_cache');return function ctor_call_voice_mail_settings(){return DialogPanel({onInit:function(panel){this._currentSimIndex=0;this._elements={vmNumberInput:panel.querySelector('.vm-number')};},onBeforeShow:function(){this._currentSimIndex=window.DsdsSettings.getIccCardIndexForCallSettings();return this._getVoicemailNumber().then((number)=>{this._elements.vmNumberInput.value=number;});},onShow:function(){var cursorPos=this._elements.vmNumberInput.value.length;this._elements.vmNumberInput.focus();this._elements.vmNumberInput.setSelectionRange(0,cursorPos);},onSubmit:function(){SettingsCache.getSettings((results)=>{var numbers=results['ril.iccInfo.mbdn']||[];numbers[this._currentSimIndex]=this._elements.vmNumberInput.value;navigator.mozSettings.createLock().set({'ril.iccInfo.mbdn':numbers});});},_getVoicemailNumber:function(){var self=this;var promise=new Promise(function(resolve){SettingsCache.getSettings(function(results){var numbers=results['ril.iccInfo.mbdn'];var number=numbers&&numbers[self._currentSimIndex];resolve(number||'');});});return promise;}});};});
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
define(['require','shared/lazy_loader'],function(require){'use strict';var LazyLoader=require('shared/lazy_loader');var Carrier=(function(){var DATA_KEY='ril.data.enabled';var DATA_ROAMING_KEY='ril.data.roaming_enabled';var _settings;var _mobileConnections;var _iccManager;var _mobileConnection=null;var _restartingDataConnection=false;var _elements={detailHeader:document.querySelector('#carrier-detail gaia-header h1'),carrierInfo:document.querySelector('#carrier .carrier-info'),advancedSettings:document.querySelector('#carrier .carrier-advancedSettings'),advancedSettingsList:document.querySelectorAll('#carrier .carrier-advancedSettings li'),simSettings:document.querySelector('#carrier .carrier-simSettings'),dataToggle:document.querySelector('#menuItem-enableDataCall gaia-switch'),dataRoamingToggle:document.querySelector('#menuItem-enableDataRoaming gaia-switch'),desc:document.getElementById('dataNetwork-desc')};function cs_init(){_settings=window.navigator.mozSettings;_mobileConnections=window.navigator.mozMobileConnections;_iccManager=window.navigator.mozIccManager;if(!_settings||!_mobileConnections||!_iccManager){return;}
|
||||
_mobileConnection=_mobileConnections[DsdsSettings.getIccCardIndexForCellAndDataSettings()];if(!_mobileConnection){return;}
|
||||
cs_showCarrierName();cs_initIccsUI();cs_initDataToggles();window.addEventListener('panelready',function(e){_mobileConnection=_mobileConnections[DsdsSettings.getIccCardIndexForCellAndDataSettings()];if(!_mobileConnection){return;}
|
||||
var currentHash=e.detail.current;if(currentHash==='#carrier'){cs_showCarrierName();return;}else if(currentHash==='#carrier-detail'){document.l10n.setAttributes(_elements.detailHeader,'simSettingsWithIndex',{index:DsdsSettings.getIccCardIndexForCellAndDataSettings()+1});}
|
||||
if(!currentHash.startsWith('#carrier-')){return;}});}
|
||||
function cs_initIccsUI(){var isMultiSim=DsdsSettings.getNumberOfIccSlots()>1;if(isMultiSim){LazyLoader.load(['/js/panels/carrier/carrier_iccs.js'],function(){IccHandlerForCarrierSettings.init();});}
|
||||
_elements.carrierInfo.hidden=isMultiSim;_elements.advancedSettings.hidden=isMultiSim;_elements.simSettings.hidden=!isMultiSim;}
|
||||
function cs_initDataToggles(){function updateDataRoamingToggle(dataEnabled){if(dataEnabled){_elements.dataRoamingToggle.disabled=false;}else{_elements.dataRoamingToggle.disabled=true;_elements.dataRoamingToggle.checked=false;_elements.dataRoamingToggle.dispatchEvent(new Event('change'));}}
|
||||
function getDataEnabled(){return new Promise(function(resolve,reject){var transaction=_settings.createLock();var req=transaction.get(DATA_KEY);req.onsuccess=function(){resolve(req.result[DATA_KEY]);};req.onerror=function(){resolve(false);};});}
|
||||
var isSimCardInserted=Array.prototype.some.call(navigator.mozMobileConnections,function(connection){return connection.iccId;});if(!isSimCardInserted){_elements.dataToggle.disabled=true;_elements.dataRoamingToggle.disabled=true;Array.prototype.forEach.call(_elements.advancedSettingsList,(element)=>{element.setAttribute('aria-disabled',true);});}
|
||||
getDataEnabled().then(function(dataEnabled){dataEnabled=isSimCardInserted&&dataEnabled;updateDataRoamingToggle(dataEnabled);});_settings.addObserver(DATA_KEY,function observerCb(event){_elements.dataToggle.checked=event.settingValue;if(_restartingDataConnection){return;}
|
||||
updateDataRoamingToggle(event.settingValue);});cs_initWarning(DATA_KEY,_elements.dataToggle,isSimCardInserted,'dataConnection-warning-head','dataConnection-warning-message');cs_initWarning(DATA_ROAMING_KEY,_elements.dataRoamingToggle,isSimCardInserted,'dataRoaming-warning-head','dataRoaming-warning-message');}
|
||||
function cs_showCarrierName(){if(DsdsSettings.getNumberOfIccSlots()>1){return;}
|
||||
var iccCard=_iccManager.getIccById(_mobileConnection.iccId);var network=_mobileConnection.voice.network;var iccInfo=iccCard&&iccCard.iccInfo;var carrier=network?(network.shortName||network.longName):null;if(carrier&&iccInfo&&iccInfo.isDisplaySpnRequired&&iccInfo.spn){if(iccInfo.isDisplayNetworkNameRequired&&carrier!==iccInfo.spn){carrier=carrier+' '+iccInfo.spn;}else{carrier=iccInfo.spn;}}
|
||||
if(iccCard){_elements.desc.textContent=carrier;}else{_elements.desc.setAttribute('data-l10n-id','noSimCard');}}
|
||||
function cs_initWarning(settingKey,input,isSimCardInserted,titleL10nId,messageL10nId){var warningDialogEnabledKey=settingKey+'.warningDialog.enabled';function getWarningEnabled(callback){var request=_settings.createLock().get(warningDialogEnabledKey);request.onsuccess=function onSuccessHandler(){var warningEnabled=request.result[warningDialogEnabledKey];if(warningEnabled===null){warningEnabled=true;}
|
||||
if(callback){callback(warningEnabled);}};}
|
||||
function setState(state){var cset={};cset[settingKey]=!!state;_settings.createLock().set(cset);}
|
||||
function getState(callback){var request=_settings.createLock().get(settingKey);request.onsuccess=function onSuccessHandler(){if(callback){callback(request.result[settingKey]);}};}
|
||||
function setWarningDialogState(state){var cset={};cset[warningDialogEnabledKey]=!!state;_settings.createLock().set(cset);}
|
||||
function onSubmit(){setWarningDialogState(false);setState(true);input.checked=true;}
|
||||
function onReset(){setWarningDialogState(true);setState(false);input.checked=false;}
|
||||
getState(function(enabled){input.checked=isSimCardInserted&&enabled;input.addEventListener('change',function(){var enabled=this.checked;getWarningEnabled(function getWarningEnabledCb(warningEnabled){if(warningEnabled){if(enabled){require(['modules/dialog_service'],function(DialogService){DialogService.confirm(messageL10nId,{title:titleL10nId,submitButton:'turnOn',cancelButton:'notNow'}).then(function(result){var type=result.type;if(type==='submit'){onSubmit();}else{onReset();}});});}}else{setState(enabled);}});});});getWarningEnabled(function getWarningEnabledCb(warningEnabled){if(warningEnabled){var request=_settings.createLock().get(settingKey);request.onsuccess=function onSuccessCb(){var enabled=false;if(request.result[settingKey]!==undefined){enabled=request.result[settingKey];}
|
||||
if(enabled){setWarningDialogState(false);}};}});}
|
||||
return{init:cs_init};})();return Carrier;});
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
window.IccHandlerForCarrierSettings=(function(){var CARDSTATE_MAPPING={'pinRequired':'simCardLockedMsg','pukRequired':'simCardLockedMsg','permanentBlocked':'simCardBlockedMsg','networkLocked':'simLockedPhone','serviceProviderLocked':'simLockedPhone','corporateLocked':'simLockedPhone','network1Locked':'simLockedPhone','network2Locked':'simLockedPhone','hrpdNetworkLocked':'simLockedPhone','ruimCorporateLocked':'simLockedPhone','ruimServiceProviderLocked':'simLockedPhone','unknown':'unknownSimCardState','illegal':'simCardIllegal','absent':'noSimCard','null':'simCardNotReady','ready':''};var DATA_TYPE_MAPPING={'lte':'4G LTE','ehrpd':'4G CDMA','hspa+':'3.5G HSPA+','hsdpa':'3.5G HSDPA','hsupa':'3.5G HSDPA','hspa':'3.5G HSDPA','evdo0':'EVDO','evdoa':'EVDO','evdob':'EVDO','1xrtt':'1xRTT','umts':'3G UMTS','edge':'2G EDGE','is95a':'1xRTT','is95b':'1xRTT','gprs':'2G GPRS'};var _settings=window.navigator.mozSettings;var _iccManager=window.navigator.mozIccManager;var _mobileConnections=null;var _menuItemIds=['menuItem-carrier-sim1','menuItem-carrier-sim2'];var _menuItemDescriptions=[];function ihfcs_init(){_mobileConnections=window.navigator.mozMobileConnections;if(!_settings||!_mobileConnections||!_iccManager){return;}
|
||||
if(DsdsSettings.getNumberOfIccSlots()===1){return;}
|
||||
function addListeners(iccId){var eventHandler=ihfcs_showICCCardDetails.bind(null,iccId);var iccCard=_iccManager.getIccById(iccId);if(!iccCard){return;}
|
||||
iccCard.addEventListener('cardstatechange',eventHandler);var mobileConnection=ihfcs_getMobileConnectionFromIccId(iccId);if(!mobileConnection){return;}
|
||||
mobileConnection.addEventListener('datachange',eventHandler);mobileConnection.addEventListener('radiostatechange',eventHandler);}
|
||||
_menuItemIds.forEach(function forEachFunction(id){var selector=document.getElementById(id);_menuItemDescriptions[_menuItemIds.indexOf(id)]=selector.querySelector('small');});_menuItemIds.forEach(function forEachFunction(id){var selector=document.getElementById(id);var element=selector.querySelector('a');element.addEventListener('click',function eventListenerHandler(){DsdsSettings.setIccCardIndexForCellAndDataSettings(_menuItemIds.indexOf(id));});});var numberOfIccCards=_mobileConnections.length;for(var i=0;i<numberOfIccCards;i++){var mobileConnection=_mobileConnections[i];if(!mobileConnection.iccId){ihfcs_disableItems(_menuItemIds[i],true);continue;}
|
||||
ihfcs_showICCCardDetails(mobileConnection.iccId);addListeners(mobileConnection.iccId);}
|
||||
_iccManager.addEventListener('iccdetected',function iccDetectedHandler(evt){var iccId=evt.iccId;ihfcs_showICCCardDetails(iccId);addListeners(iccId);});_iccManager.addEventListener('iccundetected',function iccUndetectedHandler(evt){var iccId=evt.iccId;var eventHandler=ihfcs_showICCCardDetails.bind(null,iccId);var mobileConnection=ihfcs_getMobileConnectionFromIccId(iccId);if(!mobileConnection){return;}
|
||||
mobileConnection.removeEventListener('datachange',eventHandler);mobileConnection.removeEventListener('radiostatechange',eventHandler);});}
|
||||
function ihfcs_showICCCardDetails(iccId){var iccCardIndex=ihfcs_getIccCardIndex(iccId);var desc=_menuItemDescriptions[iccCardIndex];desc.style.fontStyle='italic';var mobileConnection=ihfcs_getMobileConnectionFromIccId(iccId);if(!mobileConnection){desc.textContent='';desc.removeAttribute('data-l10n-id');ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
if(mobileConnection.radioState!=='enabled'){desc.setAttribute('data-l10n-id',CARDSTATE_MAPPING['null']);ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
if(mobileConnection.radioState==='enabled'){desc.textContent='';desc.removeAttribute('data-l10n-id');ihfcs_disableItems(_menuItemIds[iccCardIndex],false);}
|
||||
var iccCard=_iccManager.getIccById(iccId);if(!iccCard){desc.textContent='';desc.removeAttribute('data-l10n-id');ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
var cardState=iccCard.cardState;if(cardState!=='ready'){desc.setAttribute('data-l10n-id',CARDSTATE_MAPPING[cardState||'null']);ihfcs_disableItems(_menuItemIds[iccCardIndex],true);return;}
|
||||
desc.style.fontStyle='normal';var network=mobileConnection.voice.network;var iccInfo=iccCard.iccInfo;var carrier=network?(network.shortName||network.longName):null;if(carrier&&iccInfo&&iccInfo.isDisplaySpnRequired&&iccInfo.spn){if(iccInfo.isDisplayNetworkNameRequired&&carrier!==iccInfo.spn){carrier=carrier+' '+iccInfo.spn;}else{carrier=iccInfo.spn;}}
|
||||
desc.textContent=carrier;var dataType=(mobileConnection.data.connected&&mobileConnection.data.type)?DATA_TYPE_MAPPING[mobileConnection.data.type]:'';if(dataType){desc.textContent+=' - '+dataType;}
|
||||
ihfcs_disableItems(_menuItemIds[iccCardIndex],false);}
|
||||
function ihfcs_disableItems(id,disable){var element=document.getElementById(id);if(disable){element.setAttribute('aria-disabled',true);}else{element.removeAttribute('aria-disabled');}}
|
||||
function ihfcs_getIccCardIndex(iccId){for(var i=0;i<_mobileConnections.length;i++){if(_mobileConnections[i].iccId===iccId){return i;}}
|
||||
return-1;}
|
||||
function ihfcs_getMobileConnectionFromIccId(iccId){for(var i=0;i<_mobileConnections.length;i++){if(_mobileConnections[i].iccId===iccId){return _mobileConnections[i];}}
|
||||
return null;}
|
||||
return{init:ihfcs_init};})();
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/carrier/carrier'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var Carrier=require('panels/carrier/carrier');return function ctor_media_storage_panel(){return SettingsPanel({onInit:function(){Carrier.init();}});};});
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
define('panels/date_time/panel',['require','modules/settings_panel','modules/date_time','shared/tz_select'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DateTime=require('modules/date_time');var tzSelect=require('shared/tz_select');var _debug=false;var debug=function(){};if(_debug){debug=function btam_debug(msg){console.log('--> [DateTime]: '+msg);};}
|
||||
return function ctor_date_time_panel(){var HOUR_12='ampm';var HOUR_24='24';return SettingsPanel({onInit:function(panel){this._elements={timeAutoSwitch:panel.querySelector('.time-auto'),timezoneRegion:panel.querySelector('.timezone-region'),timezoneCity:panel.querySelector('.timezone-city'),datePicker:panel.querySelector('.date-picker'),timePicker:panel.querySelector('.time-picker'),clockDate:panel.querySelector('.clock-date'),clockTime:panel.querySelector('.clock-time'),timeManual:panel.querySelector('.time-manual'),timezone:panel.querySelector('.timezone'),timezonePickers:[].slice.apply(panel.querySelectorAll('.timezone-picker')),timezoneInfo:panel.querySelector('.timezone-info'),timezoneInfoText:panel.querySelector('.timezone-info-text'),timeFormat:panel.querySelector('.timeformat'),timeFormatAutoSwitch:panel.querySelector('.time-format-auto gaia-switch'),timeFormatSwitch:panel.querySelector('.time-format-time')};this._boundSetDate=()=>{this._elements.clockDate.textContent=DateTime.date;};this._boundSetTime=()=>{this._elements.clockTime.textContent=DateTime.time;};this._boundSetTimezoneInfo=()=>{var info=DateTime.clockAutoEnabled?DateTime.timezone:'';debug('Timezone: '+info);this._elements.timezoneInfoText.textContent=info;};this._boundSetSelectedTimeZone=(selected)=>{DateTime.setUserSelectedTimezone(selected);};this._boundUpdateUI=this._updateUI.bind(this);this._boundRenderTimeFormat=this._renderTimeFormat.bind(this);this._boundDatePickerChange=this._datePickerChange.bind(this);this._boundTimePickerChange=this._timePickerChange.bind(this);this._boundTimeFormatAutoChange=()=>{var checked=this._elements.timeFormatAutoSwitch.checked;if(checked){DateTime.setCurrentHour12(null);}else{var isHour12=DateTime.getHour12ForCurrentLocale();DateTime.setCurrentHour12(isHour12);}};this._boundTimeFormatChange=()=>{var value=(this._elements.timeFormatSwitch.value===HOUR_12);DateTime.setCurrentHour12(value);};},onBeforeShow:function(){DateTime.observe('date',this._boundSetDate);DateTime.observe('time',this._boundSetTime);DateTime.observe('timezone',this._boundSetTimezoneInfo);DateTime.observe('clockAutoEnabled',this._boundUpdateUI);DateTime.observe('clockAutoAvailable',this._boundUpdateUI);DateTime.observe('timezoneAutoAvailable',this._boundUpdateUI);DateTime.observe('currentHour12',this._boundRenderTimeFormat);DateTime.observe('userSelectedTimezone',this._boundSetSelectedTimeZone);this._elements.datePicker.addEventListener('input',this._boundDatePickerChange);this._elements.timePicker.addEventListener('input',this._boundTimePickerChange);this._elements.timeFormatSwitch.addEventListener('change',this._boundTimeFormatChange);this._elements.timeFormatAutoSwitch.addEventListener('change',this._boundTimeFormatAutoChange);this._renderTimeZone();this._boundSetDate();this._boundSetTime();this._boundSetTimezoneInfo();if(DateTime.userSelectedTimezone&&!DateTime.clockAutoEnabled){this._boundSetSelectedTimeZone(DateTime.userSelectedTimezone);}
|
||||
this._renderTimeFormat();this._boundUpdateUI();document.addEventListener('DOMRetranslated',this);},onHide:function(){DateTime.unobserve('date',this._boundSetDate);DateTime.unobserve('time',this._boundSetTime);DateTime.unobserve('timezone',this._boundSetTimezoneInfo);DateTime.unobserve('clockAutoEnabled',this._boundUpdateUI);DateTime.unobserve('clockAutoAvailable',this._boundUpdateUI);DateTime.unobserve('timezoneAutoAvailable',this._boundUpdateUI);DateTime.unobserve('currentHour12',this._boundRenderTimeFormat);DateTime.unobserve('userSelectedTimezone',this._boundSetSelectedTimeZone);this._elements.datePicker.removeEventListener('input',this._boundDatePickerChange);this._elements.timePicker.removeEventListener('input',this._boundTimePickerChange);this._elements.timeFormatSwitch.removeEventListener('change',this._boundTimeFormatChange);this._elements.timeFormatAutoSwitch.removeEventListener('change',this._boundTimeFormatAutoChange);document.removeEventListener('DOMRetranslated',this);},_renderTimeZone:function dt_renderTimeZone(){var noOp=function(){};tzSelect(this._elements.timezoneRegion,this._elements.timezoneCity,noOp,noOp);},_datePickerChange:function dt_datePickerChange(){DateTime.setTime('date',this._elements.datePicker.value);this._elements.datePicker.value='';},_timePickerChange:function dt_timePickerChange(){DateTime.setTime('time',this._elements.timePicker.value);this._elements.timePicker.value='';},handleEvent:function dt_handleEvent(evt){switch(evt.type){case'DOMRetranslated':this._renderTimeZone();break;}},_updateUI:function dt_updateUI(){this._elements.timeAutoSwitch.dataset.state=DateTime.clockAutoEnabled?'auto':'manual';this._elements.timeAutoSwitch.hidden=!DateTime.clockAutoAvailable;var autoTimeMode=DateTime.clockAutoEnabled&&DateTime.clockAutoAvailable;this._elements.datePicker.disabled=autoTimeMode;this._elements.timePicker.disabled=autoTimeMode;this._elements.timezoneRegion.disabled=DateTime.timezoneAutoAvailable&&autoTimeMode;this._elements.timezoneCity.disabled=DateTime.timezoneAutoAvailable&&autoTimeMode;if(!DateTime.clockAutoEnabled){this._elements.timezoneRegion.dispatchEvent(new Event('change'));this._elements.timezoneCity.dispatchEvent(new Event('change'));}
|
||||
if(autoTimeMode){this._elements.timeManual.classList.add('disabled');this._elements.timezonePickers.forEach((picker)=>{picker.hidden=DateTime.timezoneAutoAvailable;});debug('force update timezone string');this._boundSetTimezoneInfo();this._elements.timezoneInfo.hidden=!DateTime.timezoneAutoAvailable;}else{this._elements.timeManual.classList.remove('disabled');this._elements.timezonePickers.forEach((picker)=>{picker.hidden=false;});this._elements.timezoneInfo.hidden=true;}},_renderTimeFormat:function dt_renderTimeFormat(){var hour12Value=DateTime.currentHour12;if(hour12Value===null){hour12Value=undefined;}
|
||||
if(hour12Value===undefined){this._elements.timeFormatAutoSwitch.checked=true;this._elements.timeFormat.classList.add('disabled');}else{this._elements.timeFormatAutoSwitch.checked=false;this._elements.timeFormat.classList.remove('disabled');}
|
||||
if(hour12Value===undefined){hour12Value=DateTime.getHour12ForCurrentLocale();}
|
||||
var selectedItem=0;if(hour12Value===false){selectedItem=1;}
|
||||
var options=[{attr:'hour-12',value:HOUR_12,},{attr:'hour-24',value:HOUR_24}];var obj=this._elements.timeFormatSwitch;while(obj.options.length){obj.remove(0);}
|
||||
for(var i=0;i<options.length;i++){var option=document.createElement('option');option.setAttribute('data-l10n-id',options[i].attr);option.selected=(selectedItem===i);option.value=options[i].value;obj.appendChild(option);}}});};});
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
define('panels/developer/developer',['require','modules/dialog_service','modules/apps_cache','shared/screen_layout','modules/settings_cache','shared/homescreens/homescreen_settings'],function(require){'use strict';var DialogService=require('modules/dialog_service');var AppsCache=require('modules/apps_cache');var ScreenLayout=require('shared/screen_layout');var SettingsCache=require('modules/settings_cache');var HomescreenSettings=require('shared/homescreens/homescreen_settings');const DEVTOOLS_UNRESTRICTED_KEY='devtools.unrestricted';var Developer=function(){this._elements=null;};Developer.prototype={init:function d_init(elements){this._elements=elements;this._elements.ftuLauncher.addEventListener('click',this._launchFTU);if(!ScreenLayout.getCurrentLayout('hardwareHomeButton')){this._elements.softwareHomeButton.style.display='none';if(!ScreenLayout.getCurrentLayout('tiny')){this._elements.homegesture.style.display='none';}}
|
||||
if(navigator.mozPower){this._elements.resetSwitch.disabled=false;this._elements.resetSwitch.addEventListener('click',event=>{this._resetDevice();event.preventDefault();});}else{this._elements.resetSwitch.disabled=true;}
|
||||
HomescreenSettings.addEventListener('updated',e=>{var prop=e.target;if(prop.name==='grid.paging'){this._homescreenPagingEnabled=prop.value;this._elements.homescreenPaging.checked=prop.value;}});this._elements.homescreenPaging.addEventListener('change',()=>{this._setHomescreenPaging(this._elements.homescreenPaging.checked);});HomescreenSettings.get('grid.paging').then(value=>{this._homescreenPagingEnabled=value;this._elements.homescreenPaging.checked=value;});},_launchFTU:function d__launchFTU(){var key='ftu.manifestURL';var req=navigator.mozSettings.createLock().get(key);req.onsuccess=function ftuManifest(){var ftuManifestURL=req.result[key];if(!ftuManifestURL){ftuManifestURL=document.location.protocol+'//ftu.gaiamobile.org'+
|
||||
(location.port?(':'+location.port):'')+'/manifest.webapp';}
|
||||
var ftuApp=null;AppsCache.apps().then(function(apps){for(var i=0;i<apps.length&&ftuApp===null;i++){var app=apps[i];if(app.manifestURL===ftuManifestURL){ftuApp=app;}}
|
||||
if(ftuApp){ftuApp.launch();}else{DialogService.alert('no-ftu',{title:'no-ftu'});}});};},_resetDevice:function d__resetDevice(){SettingsCache.getSettings(results=>{var unrestricted=results[DEVTOOLS_UNRESTRICTED_KEY];if(unrestricted){DialogService.confirm('reset-devtools-warning-body',{title:'reset-devtools-warning-title',submitButton:'factory-reset',cancelButton:'cancel'}).then((result)=>{var type=result.type;if(type==='submit'){this._wipe('normal');}});}else{DialogService.show('full-developer-mode-warning').then((result)=>{if(result.type==='submit'&&result.value==='final_warning'){DialogService.show('full-developer-mode-final-warning');}});}});},_wipe:function about__wipe(reason){var power=navigator.mozPower;if(!power){console.error('Cannot get mozPower');return;}
|
||||
if(!power.factoryReset){console.error('Cannot invoke mozPower.factoryReset()');return;}
|
||||
power.factoryReset(reason);},_setHomescreenPaging:function d__setHomescrenPaging(paging){if(this._homescreenPagingEnabled===paging){return;}
|
||||
HomescreenSettings.put('grid.paging',paging);}};return function ctor_developer_panel(){return new Developer();};});define('panels/developer/panel',['require','modules/settings_panel','panels/developer/developer'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var Developer=require('panels/developer/developer');return function ctor_developer_panel(){var developer=Developer();return SettingsPanel({onInit:function(panel){var elements={resetSwitch:panel.querySelector('.reset-devtools'),ftuLauncher:panel.querySelector('.ftuLauncher'),softwareHomeButton:panel.querySelector('.software-home-button'),homegesture:panel.querySelector('.homegesture'),homescreenPaging:panel.querySelector('.homescreen-paging')};developer.init(elements);}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define('panels/developer_hud/developer_hud',['require','shared/settings_listener'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var DeveloperHud=function(){this._elements={};};DeveloperHud.prototype={init:function about_init(elements){this._elements=elements;SettingsListener.observe('devtools.overlay',false,(enabled)=>{[].forEach.call(this._elements.widgets,function(widget){widget.classList.toggle('disabled',!enabled);});});SettingsListener.observe('hud.appmemory',false,(enabled)=>{[].forEach.call(this._elements.items,function(item){item.parentElement.parentElement.classList.toggle('disabled',!enabled);});});}};return function ctor_developer_hud_panel(){return new DeveloperHud();};});define('panels/developer_hud/panel',['require','modules/settings_panel','panels/developer_hud/developer_hud'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DeveloperHud=require('panels/developer_hud/developer_hud');return function ctor_developer_hud_panel(){var developerHud=DeveloperHud();return SettingsPanel({onInit:function(panel){var elements={widgets:panel.querySelectorAll('.hud-widgets'),items:panel.querySelectorAll('.memory-item')};developerHud.init(elements);}});};});
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
define(['require','shared/uuid'],function(require){'use strict';var DeveloperServiceWorkers=function(){this._elements={};};DeveloperServiceWorkers.prototype={init:function(elements){this._elements=elements;this.listeners={};this.serviceWorkersCount=0;SettingsListener.observe('dom.serviceWorkers.interception.enabled',true,(enabled)=>{this._elements.serviceWorkersInterceptionEnabled.checked=enabled;});SettingsListener.observe('dom.serviceWorkers.testing.enabled',false,(enabled)=>{this._elements.serviceWorkersTestingEnabled.checked=enabled;});},onInterceptionCheckboxClick:function(){var checkbox=this._elements.serviceWorkersInterceptionEnabled;navigator.mozSettings.createLock().set({'dom.serviceWorkers.interception.enabled':checkbox.checked});},onTestingCheckboxClick:function(){var checkbox=this._elements.serviceWorkersTestingEnabled;navigator.mozSettings.createLock().set({'dom.serviceWorkers.testing.enabled':checkbox.checked});},renderServiceWorkerInfo:function(serviceWorkersInfo){var principal=serviceWorkersInfo.principal;var scope=serviceWorkersInfo.scope;var list=this._elements.serviceWorkersList;var fragment=document.createDocumentFragment();var div=document.createElement('div');div.dataset.scope=scope;var header=document.createElement('header');var headerContent=document.createElement('h2');headerContent.textContent=principal.origin;header.appendChild(headerContent);div.appendChild(header);[{l10nId:'service-worker-scope',textContent:serviceWorkersInfo.scope},{l10nId:'service-worker-script-spec',textContent:serviceWorkersInfo.scriptSpec}].forEach(property=>{var li=document.createElement('li');var span=document.createElement('span');span.dataset.l10nId=property.l10nId;li.appendChild(span);var small=document.createElement('small');small.textContent=property.textContent;li.appendChild(small);div.appendChild(li);});if(!this.listeners[scope]){var self=this;this.listeners[scope]={update:function(){self.update(principal,scope);},unregister:function(){self.unregister(principal,scope);}};}
|
||||
var update=document.createElement('li');var updateButton=document.createElement('button');updateButton.dataset.l10nId='service-worker-update';updateButton.addEventListener('click',this.listeners[scope].update);update.appendChild(updateButton);div.appendChild(update);var unregister=document.createElement('li');var unregisterButton=document.createElement('button');unregisterButton.dataset.l10nId='service-worker-unregister';unregisterButton.addEventListener('click',this.listeners[scope].unregister);unregister.appendChild(unregisterButton);div.appendChild(unregister);fragment.appendChild(div);list.appendChild(fragment);this._elements.serviceWorkersListSection.classList.remove('hidden');this._elements.serviceWorkersEmptySection.classList.add('hidden');},renderNoServiceWorkerInfo:function(){this._elements.serviceWorkersListSection.classList.add('hidden');this._elements.serviceWorkersEmptySection.classList.remove('hidden');},connect:function(){if(this._port){return Promise.resolve(this._port);}
|
||||
return new Promise((resolve,reject)=>{navigator.mozApps.getSelf().onsuccess=event=>{var app=event.target.result;app.connect('about-service-workers').then(ports=>{if(!ports||!ports.length){return reject();}
|
||||
this._port=ports[0];resolve(this._port);}).catch(reject);};});},iacRequest:function(request){return new Promise((resolve,reject)=>{this.connect().then(port=>{var id=require('shared/uuid')();request.id=id;port.postMessage(request);port.onmessage=event=>{var message=event.data;if(!message||(message.id!=id)){return;}
|
||||
resolve(message.result);};});});},refresh:function(){this.iacRequest({name:'init'}).then(result=>{var registrations=result.registrations;if(!result||!result.registrations){this.renderNoServiceWorkerInfo();return;}
|
||||
this.serviceWorkersCount=registrations.length;if(!this.serviceWorkersCount){this.renderNoServiceWorkerInfo();return;}
|
||||
this._elements.serviceWorkersList.innerHTML='';for(var i=0;i<registrations.length;i++){this.renderServiceWorkerInfo(registrations[i]);}});},update:function(principal,scope){this.iacRequest({name:'update',principal:principal,scope:scope}).catch(e=>{console.error('Could not update service worker '+e);});},unregister:function(principal,scope){this.iacRequest({name:'unregister',principal:principal,scope:scope}).then(result=>{if(!result){return;}
|
||||
this.doUnregister(scope);}).catch(e=>{console.error('Could not unregister service worker '+e);});},doUnregister:function(scope){var element=document.querySelector('[data-scope="'+scope+'"]');if(!element){return;}
|
||||
element.parentElement.removeChild(element);var listeners=this.listeners[scope];if(!listeners){return;}
|
||||
if(listeners.update){window.removeEventListener('click',listeners.update);}
|
||||
if(listeners.unregister){window.removeEventListener('click',listeners.unregister);}
|
||||
this.serviceWorkersCount--;if(!this.serviceWorkersCount){this.renderNoServiceWorkerInfo();}}};return function(){return new DeveloperServiceWorkers();};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/developer_service_workers/developer_service_workers'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DeveloperServiceWorkers=require('panels/developer_service_workers/developer_service_workers');return function ctor_developer_service_workers_panel(){var developerServiceWorkers=DeveloperServiceWorkers();return SettingsPanel({onInit:function(panel){var elements={serviceWorkersListSection:panel.querySelector('#service-workers-list-section'),serviceWorkersList:panel.querySelector('#service-workers-list'),serviceWorkersEmptySection:panel.querySelector('#service-workers-empty-section'),serviceWorkersInterceptionEnabled:panel.querySelector('#service-workers-interception-enabled'),serviceWorkersTestingEnabled:panel.querySelector('#service-workers-testing-enabled')};developerServiceWorkers.init(elements);elements.serviceWorkersInterceptionEnabled.addEventListener('click',developerServiceWorkers.onInterceptionCheckboxClick.bind(developerServiceWorkers));elements.serviceWorkersTestingEnabled.addEventListener('click',developerServiceWorkers.onTestingCheckboxClick.bind(developerServiceWorkers));},onShow:function(){developerServiceWorkers.refresh();}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define('panels/display/slider_handler',['require'],function(require){'use strict';const INTERVAL=300;var SliderHandler=function(){this._element=null;this._key='';this._isFirstInput=false;this._intervalID=null;};SliderHandler.prototype={init:function d_init(element,key){this._element=element;this._key=key;this._boundSetSliderValue=function(value){this._setSliderValue(value);}.bind(this);this._element.addEventListener('touchstart',this._touchStartHandler.bind(this));this._element.addEventListener('input',this._inputHandler.bind(this));this._element.addEventListener('touchend',this._touchEndHandler.bind(this));},_setSliderValue:function d_setSliderValue(value){this._element.value=value;},_touchStartHandler:function d_touchStartHandler(event){this._isFirstInput=true;},_updateSetting:function d_updateSetting(){var value=this._element.value;var settingObject={};settingObject[this._key]=value;if(value!==this._previous){navigator.mozSettings.createLock().set(settingObject);this._previous=value;}},_inputHandler:function d_inputHandler(event){if(this._isFirstInput){this._isFirstInput=false;this._updateSetting();this._intervalID=setInterval(this._updateSetting.bind(this),INTERVAL);}},_touchEndHandler:function d_touchEndHandler(event){clearInterval(this._intervalID);this._updateSetting();}};return function ctor_sliderHandler(){return new SliderHandler();};});define('panels/display/display',['require','shared/settings_listener','panels/display/slider_handler'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SliderHandler=require('panels/display/slider_handler');const AUTO_BRIGHTNESS_SETTING='screen.automatic-brightness';const SCREEN_BRIGHTNESS='screen.brightness';var Display=function(){this.elements=null;};Display.prototype={init:function d_init(elements,data){this.elements=elements;this.initBrightnessItems(data);SliderHandler().init(elements.brightnessManualInput,SCREEN_BRIGHTNESS);},initBrightnessItems:function d_init_brightness_items(data){var brightnessAuto=this.elements.brightnessAuto;var brightnessAutoCheckbox=this.elements.brightnessAutoCheckbox;var brightnessManual=this.elements.brightnessManual;var brightnessManualInput=this.elements.brightnessManualInput;if(data.ambientLight){brightnessAuto.hidden=false;SettingsListener.observe(AUTO_BRIGHTNESS_SETTING,false,function(value){brightnessAutoCheckbox.checked=value;brightnessManual.hidden=value;}.bind(this));}else{brightnessAuto.hidden=true;brightnessManual.hidden=false;var cset={};cset[AUTO_BRIGHTNESS_SETTING]=false;SettingsListener.getSettingsLock().set(cset);}
|
||||
SettingsListener.observe(SCREEN_BRIGHTNESS,0.5,function(value){brightnessManualInput.value=value;}.bind(this));}};return function ctor_display(){return new Display();};});define('panels/display/panel',['require','modules/settings_panel','panels/display/display','shared/lazy_loader'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DisplayModule=require('panels/display/display');var LazyLoader=require('shared/lazy_loader');var displayElements={};return function ctor_display_panel(){var display=DisplayModule();return SettingsPanel({onInit:function dp_onInit(panel){displayElements={brightnessManual:panel.querySelector('.brightness-manual'),brightnessManualInput:panel.querySelector('.brightness-manual input'),brightnessAuto:panel.querySelector('.brightness-auto'),brightnessAutoCheckbox:panel.querySelector('.brightness-auto gaia-checkbox')};LazyLoader.getJSON('/resources/device-features.json').then(function(data){display.init(displayElements,data);});}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define(['require','modules/settings_cache'],function(require){'use strict';var SettingsCache=require('modules/settings_cache');var settings=navigator.mozSettings;var kEnabledKey='privacy.donottrackheader.enabled';var kValueKey='privacy.donottrackheader.value';var enabledMap={'0':true,'1':true,'-1':false};var DoNotTrack=function(){};DoNotTrack.prototype={keyMigration:function dnt_migration(){SettingsCache.getSettings(function(results){if(results[kValueKey]===undefined){var value='-1';if(results[kEnabledKey]!==undefined){value=results[kEnabledKey]?'1':'-1';}
|
||||
settings.createLock().set({kValueKey:value});}});},carryKeyChange:function carryKeyChange(){settings.addObserver(kValueKey,function(result){var enabled=enabledMap[result.settingValue];if(enabled===undefined){console.warn('Invalid '+kValueKey+' value '+
|
||||
result.settingValue);return;}
|
||||
var cset={};cset[kEnabledKey]=enabled;var request=settings.createLock().set(cset);request.onerror=function set_onerror(){console.warn('Set '+kEnabledKey+' failed');};});}};return function ctor_do_not_track(){return new DoNotTrack();};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/do_not_track/do_not_track'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DoNotTrackModule=require('panels/do_not_track/do_not_track');return function ctor_do_not_track_panel(){var doNotTrack=DoNotTrackModule();return SettingsPanel({onInit:function(panel){doNotTrack.keyMigration();doNotTrack.carryKeyChange();}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define('panels/feedback_choose/panel',['require','modules/settings_panel','modules/settings_service'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var SettingsService=require('modules/settings_service');return function ctor_choose_feedback_panel(){var feedbackHappy;var feedbackSad;function navigateToSendfeedbackPanel(evt){SettingsService.navigate('improveBrowserOS-sendFeedback',{feel:evt.currentTarget.id});}
|
||||
return SettingsPanel({onInit:function(panel){feedbackHappy=panel.querySelector('#feedback-happy');feedbackSad=panel.querySelector('#feedback-sad');},onBeforeShow:function(){feedbackHappy.addEventListener('click',navigateToSendfeedbackPanel);feedbackSad.addEventListener('click',navigateToSendfeedbackPanel);},onBeforeHide:function(){feedbackHappy.removeEventListener('click',navigateToSendfeedbackPanel);feedbackSad.removeEventListener('click',navigateToSendfeedbackPanel);}});};});
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
const IAC_API_WAKEUP_REASON_ENABLED_CHANGED=0;const IAC_API_WAKEUP_REASON_STALE_REGISTRATION=1;const IAC_API_WAKEUP_REASON_LOGIN=2;const IAC_API_WAKEUP_REASON_LOGOUT=3;const IAC_API_WAKEUP_REASON_TRY_DISABLE=4;const IAC_API_WAKEUP_REASON_LOCKSCREEN_CLOSED=5;function wakeUpFindMyDevice(reason){navigator.mozApps.getSelf().onsuccess=function(){var app=this.result;app.connect('findmydevice-wakeup').then(function(ports){ports[0].postMessage(reason);});};};define("shared/findmydevice_iac_api",(function(global){return function(){var ret,fn;return ret||global.wakeUpFindMyDevice;};}(this)));define('panels/findmydevice/findmydevice',['require','modules/settings_utils','shared/settings_listener','shared/settings_helper','shared/findmydevice_iac_api','shared/lazy_loader'],function(require){var SettingsUtils=require('modules/settings_utils');var SettingsListener=require('shared/settings_listener');var SettingsHelper=require('shared/settings_helper');var wakeUpFindMyDevice=require('shared/findmydevice_iac_api');var LazyLoader=require('shared/lazy_loader');var FindMyDevice=function(){this._interactiveLogin=false;this._enabledHelper=SettingsHelper('findmydevice.enabled');this._loggedInHelper=SettingsHelper('findmydevice.logged-in');this._registeredHelper=SettingsHelper('findmydevice.registered');this._boundSetTracked=this._boundSetTracked||this._setTracked.bind(this);this._boundSetEnabled=this._boundSetEnabled||this._setEnabled.bind(this);this._boundSetCanDisable=this._boundSetCanDisable||this._setCanDisable.bind(this);this._boundLoginClick=this._boundLoginClick||this._onLoginClick.bind(this);this._boundCheckboxChanged=this._boundCheckboxChanged||this._onCheckboxChanged.bind(this);};FindMyDevice.prototype={onInit:function fmd_init(elements){this._elements=elements;SettingsUtils.runHeaderFontFit(this._elements.header);LazyLoader.getJSON('/resources/findmydevice.json').then((data)=>{SettingsListener.observe('findmydevice.logged-in',false,this._togglePanel.bind(this));navigator.mozId.watch({wantIssuer:'firefox-accounts',audience:data.api_url,onlogin:this._onChangeLoginState.bind(this,true),onlogout:this._onChangeLoginState.bind(this,false),onready:()=>{this._elements.loginButton.removeAttribute('disabled');console.log('Find My Device: onready fired');},onerror:(err)=>{console.error('Find My Device: onerror fired: '+err);this._interactiveLogin=false;this._elements.loginButton.removeAttribute('disabled');var errorName=JSON.parse(err).name;if(errorName!=='OFFLINE'){if(errorName==='UNVERIFIED_ACCOUNT'){this._elements.unverifiedError.hidden=false;this._elements.login.hidden=true;}
|
||||
this._loggedInHelper.set(false);}}});});},onBeforeShow:function fmd_onBeforeShow(){SettingsListener.observe('findmydevice.tracking',false,this._boundSetTracked);SettingsListener.observe('findmydevice.enabled',false,this._boundSetEnabled);SettingsListener.observe('findmydevice.can-disable',true,this._boundSetCanDisable);this._elements.loginButton.addEventListener('click',this._boundLoginClick);this._elements.checkbox.addEventListener('change',this._boundCheckboxChanged);},onBeforeHide:function fmd_onBeforeHide(){SettingsListener.unobserve('findmydevice.tracking',this._boundSetTracked);SettingsListener.unobserve('findmydevice.enabled',this._boundSetEnabled);SettingsListener.unobserve('findmydevice.can-disable',this._boundSetCanDisable);this._elements.loginButton.removeEventListener('click',this._boundLoginClick);this._elements.checkbox.removeEventListener('change',this._boundCheckboxChanged);},_onLoginClick:function fmd_on_login_click(e){e.stopPropagation();e.preventDefault();if(this._elements.loginButton.disabled){return;}
|
||||
if(!window.navigator.onLine){document.l10n.formatValue('findmydevice-enable-network').then((msg)=>window.alert(msg));return;}
|
||||
this._interactiveLogin=true;navigator.mozId.request({oncancel:()=>{this._interactiveLogin=false;console.log('Find My Device: oncancel fired');}});},_setEnabled:function fmd_set_enabled(value){this._elements.checkbox.checked=value;this._elements.status.hidden=!value;},_setTracked:function fmd_set_tracked(value){this._elements.status.setAttribute('data-l10n-id',value?'findmydevice-active-tracking':'findmydevice-not-tracking');},_setCanDisable:function fmd_set_can_disable(value){this._elements.checkbox.disabled=!value;},_togglePanel:function fmd_toggle_panel(loggedIn){this._elements.signin.hidden=loggedIn;this._elements.settings.hidden=!loggedIn;},_onChangeLoginState:function fmd_on_change_login_state(loggedIn){console.log('settings, logged in: '+loggedIn);if(this._interactiveLogin){this._registeredHelper.get(registered=>{if(!registered){this._enabledHelper.set(true);}});}
|
||||
this._interactiveLogin=false;this._loggedInHelper.set(loggedIn);this._elements.unverifiedError.hidden=true;this._elements.login.hidden=false;},_onCheckboxChanged:function fmd_on_checkbox_changed(event){event.preventDefault();if(!window.navigator.onLine){document.l10n.formatValue('findmydevice-enable-network').then(msg=>window.alert(msg));return;}
|
||||
this._elements.checkbox.disabled=true;if(this._elements.checkbox.checked===false){wakeUpFindMyDevice(IAC_API_WAKEUP_REASON_TRY_DISABLE);}else{this._enabledHelper.set(true,()=>{this._elements.checkbox.disabled=false;});}}};return function ctor_findmydevice(){return new FindMyDevice();};});define('panels/findmydevice/panel',['require','modules/settings_panel','panels/findmydevice/findmydevice'],function(require){var SettingsPanel=require('modules/settings_panel');var FindMyDevice=require('panels/findmydevice/findmydevice');return function ctor_findmydevice_panel(){var elements;var findmydevice=FindMyDevice();return SettingsPanel({onInit:function(panel){elements={header:panel.querySelector('gaia-header'),login:panel.querySelector('.findmydevice-login'),loginButton:panel.querySelector('.findmydevice-login > button'),unverifiedError:panel.querySelector('.findmydevice-fxa-unverified-error'),checkbox:panel.querySelector('.findmydevice-enabled gaia-switch'),status:panel.querySelector('.findmydevice-tracking'),signin:panel.querySelector('.findmydevice-signin'),settings:panel.querySelector('.findmydevice-settings')};findmydevice.onInit(elements);},onBeforeShow:function(){findmydevice.onBeforeShow();},onBeforeHide:function(){findmydevice.onBeforeHide();}});};});
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define('panels/frame/panel',['require','modules/settings_panel','modules/settings_service'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var SettingsService=require('modules/settings_service');return function ctor_frame_panel(){var framePanel;var iframe;var noReflow;return SettingsPanel({onInit:function(panel){framePanel=panel;},onBeforeShow:function(panel,options){if(noReflow){noReflow=false;return;}
|
||||
var self=this;iframe=document.createElement('iframe');iframe.setAttribute('mozapp',options.mozapp);iframe.setAttribute('mozbrowser',true);iframe.src=options.src;iframe.addEventListener('mozbrowserclose',this._onBrowserClose);iframe.addEventListener('mozbrowsershowmodalprompt',function(e){var message=self._escapeHTML(e.detail.message);var initialValue=e.detail.initialValue;var type=e.detail.promptType;switch(type){case'alert':window.alert(message);break;case'prompt':e.detail.returnValue=window.prompt(message,initialValue);break;case'confirm':e.detail.returnValue=window.confirm(message);break;}});panel.appendChild(iframe);},onHide:function(){if(document.hidden){noReflow=true;return;}
|
||||
framePanel.removeChild(iframe);},_onBrowserClose:function(){SettingsService.back();},_escapeHTML:function(str){var span=document.createElement('span');span.textContent=str;span.innerHTML=span.innerHTML.replace(/\n/g,'<br/>');return span.innerHTML;}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_service','modules/settings_cache','modules/dialog_service','modules/panel'],function(require){'use strict';var SettingsService=require('modules/settings_service');var SettingsCache=require('modules/settings_cache');var DialogService=require('modules/dialog_service');var Panel=require('modules/panel');return function ctor_full_dev_panel(){return Panel({onInit:function(panel){this._panel=panel;SettingsCache.getSettings((results)=>{var devMenuEnabled=!!results['developer.menu.enabled'];if(devMenuEnabled){this._showFullDevModeWarning();}else{this._showEnableDevMenuWarning();}});},_close:function(){SettingsService.back();},_showFullDevModeWarning:function(){var warningDialog=this._panel.querySelector('.full-dev-mode-warning');var okBtn=warningDialog.querySelector('button[type="submit"]');var cancelBtn=warningDialog.querySelector('button[type="reset"]');warningDialog.hidden=false;cancelBtn.onclick=this._close;okBtn.onclick=()=>{DialogService.show('full-developer-mode-final-warning').then(()=>{this._close();});};},_showEnableDevMenuWarning:function(){var warningDialog=this._panel.querySelector('.dev-menu-disabled-warning');var closeBtn=warningDialog.querySelector('button[type="submit"]');warningDialog.hidden=false;closeBtn.onclick=this._close;}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require','modules/dialog_panel'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');return function ctor_full_dev_warning(){return DialogPanel({onInit:function(panel){this._warningDialog={root:panel.querySelector('.warning-dialog'),okBtn:panel.querySelector('.warning-dialog button[type="submit"]'),cancelBtn:panel.querySelector('.warning-dialog button[type="reset"]'),warningInfo:panel.querySelector('.warning-dialog .warning-info')};},onBeforeShow:function(){this._count=10;this._updateWarningInfo(this._count);},onSubmit:function(){if(this._count===1){this._wipe().catch(()=>{this.close();});return Promise.reject();}else{this._count--;this._updateWarningInfo(this._count);return Promise.reject();}},_updateWarningInfo:function(count){document.l10n.setAttributes(this._warningDialog.warningInfo,'enable-full-dev-mode-final-warning-msg',{count:count});},_wipe:function(){var power=navigator.mozPower;if(!power){console.error('Cannot get mozPower');return Promise.reject();}
|
||||
if(!power.factoryReset){console.error('Cannot invoke mozPower.factoryReset()');return Promise.reject();}
|
||||
power.factoryReset('root');return Promise.resolve();}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','modules/settings_cache','modules/dialog_panel'],function(require){'use strict';var SettingsCache=require('modules/settings_cache');var DialogPanel=require('modules/dialog_panel');return function ctor_full_dev_panel(){return DialogPanel({onInit:function(panel){this._panel=panel;this._devMenuEnabled=false;this._fullDevModeWarning=panel.querySelector('.full-dev-mode-warning');this._enableDevMenuWarning=panel.querySelector('.dev-menu-disabled-warning');},onBeforeShow:function(panel){return new Promise((resolve)=>{SettingsCache.getSettings((results)=>{this._devMenuEnabled=!!results['developer.menu.enabled'];if(this._devMenuEnabled){this._showFullDevModeWarning();}else{this._showEnableDevMenuWarning();}
|
||||
resolve();});});},onHide:function(){this._fullDevModeWarning.hidden=true;this._enableDevMenuWarning.hidden=true;[].slice.call(this._panel.querySelectorAll('button')).forEach((btn)=>{btn.removeAttribute('type');});},onSubmit:function(){if(this._devMenuEnabled){return Promise.resolve('final_warning');}},_showFullDevModeWarning:function(){var warningDialog=this._fullDevModeWarning;var enableBtn=warningDialog.querySelector('button.enable-btn');var cancelBtn=warningDialog.querySelector('button.cancel-btn');enableBtn.setAttribute('type','submit');cancelBtn.setAttribute('type','reset');warningDialog.hidden=false;},_showEnableDevMenuWarning:function(){var warningDialog=this._enableDevMenuWarning;var closeBtn=warningDialog.querySelector('button.close-btn');closeBtn.setAttribute('type','submit');warningDialog.hidden=false;}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define('panels/help/support',['require','modules/settings_cache','shared/lazy_loader'],function(require){'use strict';var SettingsCache=require('modules/settings_cache');var LazyLoader=require('shared/lazy_loader');var Support=function(){};Support.prototype={init:function support_init(elements){this._elements=elements;this._callSupportInfo=null;var url='http://support.mozilla.org/products/firefox-os';this._elements.userGuide.addEventListener('click',()=>{this._elements.userGuide.blur();var activity=new window.MozActivity({name:'view',data:{type:'url',url:url}});activity.onsuccess=function(){};});this._getSupportInfo(this._displaySupportInfo.bind(this));},uninit:function(){this._elements=null;this._supportInfo=null;this._callSupportInfo=null;},_getSupportInfo:function support_getSupportInfo(callback){if(this._supportInfo){callback(this._supportInfo);return;}
|
||||
LazyLoader.getJSON('/resources/support.json').then(function loadSupportInfo(data){this._supportInfo=data;callback(this._supportInfo);}.bind(this));},_createLinkNode:function support_createLinkNode(data,type){var link=document.createElement('a');link.setAttribute('href',data.href);link.classList.add('link-text');if(type=='tel'){link.textContent=data.title+' ('+data.href+')';}else{link.textContent=data.title;}
|
||||
return link;},_enableSupportInfo:function support_enableSupportInfo(){this._elements.help.dataset.hasSupportInfo=true;},_setOnlineSupportInfo:function support_setOnlineSupportInfo(onlineSupportInfo){this._enableSupportInfo();var nodes=this._createLinkNode(onlineSupportInfo);this._elements.supportText.appendChild(nodes);},_setCallSupportInfo:function support_setCallSupportInfo(supportInfo){this._enableSupportInfo();for(var id in supportInfo){this._elements.supportNumber.appendChild(this._createLinkNode(supportInfo[id],'tel'));}},_renderSupportInfo:function support_renderSupportInfo(result){var onlineSupportInfo=null;var onlineSupportTitle=result['support.onlinesupport.title'];if(onlineSupportTitle!==''){onlineSupportInfo={title:onlineSupportTitle};onlineSupportInfo.href=result['support.onlinesupport.href'];this._setOnlineSupportInfo(onlineSupportInfo);}else if(this._supportInfo){this._setOnlineSupportInfo(this._supportInfo.onlinesupport);}
|
||||
var callSupport1Title=result['support.callsupport1.title'];if(callSupport1Title!==''){this._callSupportInfo=[{'title':callSupport1Title,'href':result['support.callsupport1.href']}];var callSupport2Title=result['support.callsupport2.title'];if(callSupport2Title!==''){this._callSupportInfo.push({'title':callSupport2Title,'href':result['support.callsupport2.href']});this._setCallSupportInfo(this._callSupportInfo);}}else if(this._supportInfo){this._setCallSupportInfo(this._supportInfo.callsupport);}},_displaySupportInfo:function support_displaySupportInfo(supportInfo){SettingsCache.getSettings(this._renderSupportInfo.bind(this));}};return function ctor_support(){return new Support();};});define('panels/help/panel',['require','modules/settings_panel','panels/help/support'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var Support=require('panels/help/support');return function ctor_support_panel(){var help=Support();return SettingsPanel({onInit:function(panel){var elements={userGuide:panel.querySelector('#user-guide'),help:panel,supportText:panel.querySelector('#help-online-support-text'),supportNumber:panel.querySelector('#help-call-support-numbers')};help.init(elements);}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require','modules/settings_service','modules/navigator/mozApps','shared/manifest_helper'],function(require){'use strict';const MANIFEST_URL_PREF='homescreen.manifestURL';const DEFAULT_MANIFEST='app://homescreen.gaiamobile.org/manifest.webapp';var SettingsService=require('modules/settings_service');var mozApps=require('modules/navigator/mozApps');var ManifestHelper=require('shared/manifest_helper');var HomescreenDetails=function ctor_homescreen_details(){this._elements={};this._app=null;};HomescreenDetails.prototype={init:function hd_init(elements){this._elements=elements;this._elements.uninstallButton.addEventListener('click',this.uninstall.bind(this));},onBeforeShow:function hd_onBeforeShow(options){options.author=options.author||{url:'',name:''};options.version=options.version||'0.0.0';options.description=options.description||'';this._app=options.app;var iconSrc='../style/images/default.png';var manifest=new ManifestHelper(this._app.manifest||this._app.updateManifest);if(manifest.icons&&Object.keys(manifest.icons).length){var key=Object.keys(manifest.icons)[0];var iconUrl=manifest.icons[key];if(!(/^(http|https|data):/.test(iconUrl))){iconUrl=this._app.origin+'/'+iconUrl;}
|
||||
iconSrc=iconUrl;}
|
||||
this._elements.icon.src=iconSrc;this._elements.headerTitle.textContent=options.name;this._elements.detailTitle.textContent=options.name;this._elements.detailName.textContent=options.author.name;this._elements.detailVersion.textContent=`v.${options.version}`;this._elements.detailDescription.textContent=options.description;this._elements.detailURLLink.href=options.author.url;this._elements.detailURLLink.textContent=options.author.url;this._elements.uninstallButton.disabled=!options.removable;},uninstall:function hd_uninstall(){const settings=window.navigator.mozSettings;var uninstallApp=()=>{mozApps.mgmt.uninstall(this._app).onsuccess=()=>{this.back();};};var manifestURL=this._app.manifestURL;var homescreenSetting=settings.createLock().get(MANIFEST_URL_PREF);homescreenSetting.onsuccess=()=>{var homeManifestURL=homescreenSetting.result[MANIFEST_URL_PREF];if(homeManifestURL===manifestURL){var settingObject={};settingObject[MANIFEST_URL_PREF]=DEFAULT_MANIFEST;homescreenSetting=settings.createLock().set(settingObject);homescreenSetting.onsuccess=()=>{uninstallApp();};}else{uninstallApp();}};},back:function hd_back(){SettingsService.navigate('homescreens-list');}};return()=>new HomescreenDetails();});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/homescreen_details/homescreen_details'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var HomescreensDetails=require('panels/homescreen_details/homescreen_details');return function ctor_homescreen_details_panel(){var homescreensDetails=HomescreensDetails();return SettingsPanel({onInit:function hdp_onInit(panel){homescreensDetails.init({icon:panel.querySelector('.developer-infos img'),headerTitle:panel.querySelector('.detail-title'),detailTitle:panel.querySelector('.developer-infos .title'),detailName:panel.querySelector('.developer-infos .name'),detailVersion:panel.querySelector('.version'),detailDescription:panel.querySelector('.description'),detailURL:panel.querySelector('.url'),detailURLLink:panel.querySelector('.url a'),uninstallButton:panel.querySelector('button.uninstall-homescreen')});},onBeforeShow:function hdp_onBeforeShow(panel,options){homescreensDetails.onBeforeShow(options);}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define('panels/homescreens/wallpaper',['require','shared/settings_listener','shared/settings_url','shared/omadrm/fl','modules/base/module','modules/mvvm/observable'],function(require){'use strict';const WALLPAPER_KEY='wallpaper.image';var SettingsListener=require('shared/settings_listener');var SettingsURL=require('shared/settings_url');var ForwardLock=require('shared/omadrm/fl');var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var Wallpaper=Module.create(function Wallpaper(){this.super(Observable).call(this);this._init();}).extend(Observable);Observable.defineObservableProperty(Wallpaper.prototype,'wallpaperSrc',{readonly:true,value:''});Wallpaper.prototype._init=function w_init(){this.wallpaperURL=new SettingsURL();this._watchWallpaperChange();};Wallpaper.prototype._watchWallpaperChange=function w_watchWallpaper(){SettingsListener.observe(WALLPAPER_KEY,'',value=>{this._wallpaperSrc=this.wallpaperURL.set(value);});};Wallpaper.prototype._triggerActivity=function w_triggerActivity(secret){var mozActivity=new window.MozActivity({name:'pick',data:{type:['wallpaper','image/*'],includeLocked:(secret!==null),width:Math.ceil(window.screen.width*window.devicePixelRatio),height:Math.ceil(window.screen.height*window.devicePixelRatio)}});mozActivity.onsuccess=()=>{this._onPickSuccess(mozActivity.result.blob,secret);};mozActivity.onerror=this._onPickError;};Wallpaper.prototype._onPickSuccess=function w_onPickSuccess(blob,secret){if(!blob){return;}
|
||||
if(blob.type.split('/')[1]===ForwardLock.mimeSubtype){ForwardLock.unlockBlob(secret,blob,unlocked=>{this._setWallpaper(unlocked);});}else{this._setWallpaper(blob);}};Wallpaper.prototype._setWallpaper=function w_setWallpaper(value){var config={};config[WALLPAPER_KEY]=value;SettingsListener.getSettingsLock().set(config);};Wallpaper.prototype._onPickError=function w_onPickError(){console.warn('pick failed!');};Wallpaper.prototype.selectWallpaper=function w_selectWallpaper(){ForwardLock.getKey(this._triggerActivity.bind(this));};return Wallpaper;});define('panels/homescreens/homescreen_cols',['require','modules/base/module','shared/homescreens/homescreen_settings','modules/mvvm/observable'],function(require){'use strict';var Module=require('modules/base/module');var HomescreenSettings=require('shared/homescreens/homescreen_settings');var Observable=require('modules/mvvm/observable');var HomescreenCols=Module.create(function HomescreenCols(){this.super(Observable).call(this);this._isUpdating=false;this._cachedColsValue=null;HomescreenSettings.addEventListener('updated',e=>{var prop=e.target;if(prop.name==='grid.cols'){this._cols=prop.value;}});HomescreenSettings.get('grid.cols').then(number=>{this._cols=number;});}).extend(Observable);Observable.defineObservableProperty(HomescreenCols.prototype,'cols',{readonly:true,value:null});HomescreenCols.prototype.setCols=function hc_setCols(value){if(!this._isUpdating){this._isUpdating=true;HomescreenSettings.put('grid.cols',value).then(()=>{this._cols=value;this._isUpdating=false;if(this._cachedColsValue){var cachedValue=this._cachedColsValue;this._cachedColsValue=null;this.setCols(cachedValue);}});}else{this._cachedColsValue=value;}};Object.defineProperty(HomescreenCols.prototype,'verticalhomeActive',{set:function(active){HomescreenSettings.setStoreName(active?'vertical_preferences_store':'homescreen_settings');HomescreenSettings.get('grid.cols').then(number=>{this._cols=number;});},enumerable:true});return HomescreenCols;});define('panels/homescreens/homescreen_name',['require','shared/settings_listener','modules/apps_cache','shared/manifest_helper','modules/base/module','modules/mvvm/observable'],function(require){'use strict';const MANIFEST_URL_PREF='homescreen.manifestURL';var SettingsListener=require('shared/settings_listener');var AppsCache=require('modules/apps_cache');var ManifestHelper=require('shared/manifest_helper');var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var HomescreenName=Module.create(function HomescreenName(){this.super(Observable).call(this);this._init();}).extend(Observable);Observable.defineObservableProperty(HomescreenName.prototype,'name',{readonly:true,value:''});HomescreenName.prototype._init=function hn_init(){this._watchNameChange();};HomescreenName.prototype._watchNameChange=function hn_watchNameChange(){SettingsListener.observe(MANIFEST_URL_PREF,'',manifestURL=>{this._updateManifestName(manifestURL).then(name=>{this._name=name;}).catch(e=>{console.warn('Could not get manifest name.',e);});});};HomescreenName.prototype.getName=function hn_getName(){const settings=window.navigator.mozSettings;var homescreenSetting=settings.createLock().get(MANIFEST_URL_PREF);homescreenSetting.onsuccess=()=>{var manifestURL=homescreenSetting.result[MANIFEST_URL_PREF];this._updateManifestName(manifestURL);};};HomescreenName.prototype._updateManifestName=function hn_umn(manifestURL){return new Promise((resolve,reject)=>{AppsCache.apps().then(apps=>{var manifest=null;apps.some(app=>{if(app.manifestURL===manifestURL){manifest=new ManifestHelper(app.manifest||app.updateManifest);return true;}});if(!manifest){return reject(new Error('Manifest URL not found'));}
|
||||
resolve(manifest.name);});});};return HomescreenName;});define('panels/homescreens/panel',['require','shared/settings_listener','modules/settings_panel','panels/homescreens/wallpaper','panels/homescreens/homescreen_cols','panels/homescreens/homescreen_name'],function(require){'use strict';const VERTICALHOME_MANIFEST='app://verticalhome.gaiamobile.org/manifest.webapp';var SettingsListener=require('shared/settings_listener');var SettingsPanel=require('modules/settings_panel');var Wallpaper=require('panels/homescreens/wallpaper');var HomescreenCols=require('panels/homescreens/homescreen_cols');var HomescreenName=require('panels/homescreens/homescreen_name');var elements={};var gridSelect=null;return function ctor_homescreen_panel(){var wallpaper=Wallpaper();var homescreenCols=HomescreenCols();var homescreenName=HomescreenName();return SettingsPanel({onInit:function hp_onInit(panel){elements={wallpaper:panel.querySelector('.wallpaper'),wallpaperPreview:panel.querySelector('.wallpaper-preview'),currentHomescreen:panel.querySelector('.current-homescreen')};elements.wallpaper.addEventListener('click',wallpaper.selectWallpaper.bind(wallpaper));SettingsListener.observe('homescreen.manifestURL','',manifestURL=>{homescreenCols.verticalhomeActive=manifestURL===VERTICALHOME_MANIFEST;});gridSelect=panel.querySelector('[name="grid.layout.cols"]');gridSelect.addEventListener('change',function(){homescreenCols.setCols(this.value);});},onBeforeShow:function hp_onBeforeShow(panel,options){this._setWallpaperPreviewSrc(wallpaper.wallpaperSrc);this._setHomescreenName(homescreenName.name);this._updateCols(homescreenCols.cols);homescreenCols.observe('cols',this._updateCols);wallpaper.observe('wallpaperSrc',this._setWallpaperPreviewSrc);homescreenName.observe('name',this._setHomescreenName);},onBeforeHide:function hp_onBeforeHide(){wallpaper.unobserve('wallpaperSrc');homescreenName.unobserve('name');homescreenCols.unobserve('cols');},_setWallpaperPreviewSrc:function hp_setHomescreenName(src){elements.wallpaperPreview.src=src;},_updateCols:function hdp_updateCols(number){if(!number){return;}
|
||||
var option=gridSelect.querySelector('[value="'+number+'"]');if(option){option.selected=true;}},_setHomescreenName:function hp_setHomescreenName(name){elements.currentHomescreen.textContent=name;}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define(['require','modules/apps_cache','shared/settings_listener','modules/settings_service','modules/settings_cache','shared/manifest_helper'],function(require){'use strict';var AppsCache=require('modules/apps_cache');var SettingsListener=require('shared/settings_listener');var SettingsService=require('modules/settings_service');var SettingsCache=require('modules/settings_cache');var ManifestHelper=require('shared/manifest_helper');var HomescreensList=function ctor_homescreens_list(){this._apps=[];this._elements={};this.manifestURL='';};HomescreensList.prototype={init:function hl_init(elements){this._elements=elements;this._renderHomescreens();window.addEventListener('applicationinstall',this._renderHomescreens.bind(this));window.addEventListener('applicationuninstall',this._renderHomescreens.bind(this));this._elements.moreLink.addEventListener('click',this._showMoreHomescreens.bind(this));AppsCache.addEventListener('oninstall',this._renderHomescreens.bind(this));AppsCache.addEventListener('onuninstall',this._renderHomescreens.bind(this));SettingsListener.observe('homescreen.manifestURL','',manifestURL=>{this.manifestURL=manifestURL;this.listBuilder();});},_labelClick:function hl_labelClick(index){var app=this._apps[index];var manifest=new ManifestHelper(app.manifest||app.updateManifest);SettingsService.navigate('homescreen-details',{name:manifest.name,author:manifest.developer,version:manifest.version,description:manifest.description,removable:app.removable,app:app});},_radioClick:function hl_radioClick(index){var app=this._apps[index];const settings=window.navigator.mozSettings;settings.createLock().set({'homescreen.manifestURL':app.manifestURL});},_listItemBuilder:function hl_listItemBuilder(app,index){var li=document.createElement('li');li.dataset.appIndex=index;var radio=document.createElement('gaia-radio');radio.className='split';radio.name='homescreen';radio.value=index;radio.checked=(app.manifestURL===this.manifestURL);var manifest=new ManifestHelper(app.manifest||app.updateManifest);var radioLabel=document.createElement('label');radioLabel.classList.add('name');radioLabel.textContent=manifest.name;radio.appendChild(radioLabel);li.appendChild(radio);var labelClicked=false;radio.addEventListener('click',event=>{if(!labelClicked){this._radioClick(index);}
|
||||
labelClicked=false;event.stopPropagation();event.preventDefault();},true);radioLabel.addEventListener('mouseup',()=>{labelClicked=true;this._labelClick(index);});return li;},listBuilder:function hl_listBuilder(){this._elements.homescreensList.innerHTML='';var listFragment=document.createDocumentFragment();var item;this._apps.forEach((app,index)=>{item=this._listItemBuilder(app,index);listFragment.appendChild(item);});this._elements.homescreensList.appendChild(listFragment);},_renderHomescreens:function hl_renderHomescreens(){return AppsCache.apps().then(apps=>{this._apps=apps.filter(app=>{var manifest=new ManifestHelper(app.manifest||app.updateManifest);return manifest&&manifest.role&&manifest.role==='homescreen';});this.listBuilder();});},_showMoreHomescreens:function hl_showMoreHomescreens(){this._elements.moreLink.blur();SettingsCache.getSettings(result=>{var version=result['deviceinfo.os'];new window.MozActivity({name:'marketplace-category',data:{slug:'homescreens',fxos_version:version.split('.').slice(0,2).join('.')}});});}};return()=>new HomescreensList();});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/homescreens_list/homescreens_list'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var HomescreensList=require('panels/homescreens_list/homescreens_list');return function ctor_homescreens_panel(){var homescreensList=HomescreensList();return SettingsPanel({onInit:function hp_onInit(panel){homescreensList.init({homescreensList:panel.querySelector('.my-home-screens'),moreLink:panel.querySelector('.get-more-home-screens')});},onBeforeShow:function hp_onBeforeShow(){homescreensList.listBuilder();}});};});
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
define('panels/hotspot/hotspot',['require','shared/settings_listener'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');const RE_ENABLE_WIFI_TETHERING_TIME=1000;var Hotspot=function(){this._settings=navigator.mozSettings;};Hotspot.prototype={_hotspotSetting:null,_usbHotspotSetting:null,_usbStorageSetting:null,_hotspotChangeListeners:[],_usbHotspotChangeListeners:[],_usbStorageChangeListeners:[],_incompatibleSettingsListeners:[],tetheringWifiKey:'tethering.wifi.enabled',tetheringUsbKey:'tethering.usb.enabled',usbStorageKey:'ums.enabled',init:function h_init(){this._bindEvents();},_bindEvents:function(){SettingsListener.observe(this.tetheringWifiKey,false,this._hotspotSettingChange.bind(this));SettingsListener.observe(this.tetheringUsbKey,false,this._usbHotspotSettingChange.bind(this));SettingsListener.observe(this.usbStorageKey,false,this._usbStorageSettingChange.bind(this));},_hotspotSettingChange:function(enabled){this._hotspotSetting=enabled;this._hotspotChangeListeners.forEach(function(listener){listener(enabled);});},_usbHotspotSettingChange:function(enabled){this._usbHotspotSetting=enabled;this._usbHotspotChangeListeners.forEach(function(listener){listener(enabled);});},_usbStorageSettingChange:function(enabled){this._usbStorageSetting=enabled;this._usbStorageChangeListeners.forEach(function(listener){listener(enabled);});},_incompatibleSettings:function(newSetting,oldSetting,bothConflicts){this._incompatibleSettingsListeners.forEach(function(listener){listener(newSetting,oldSetting,bothConflicts);});},checkIncompatibleSettings:function(newSetting,value){switch(newSetting){case this.tetheringWifiKey:if(!value){this._setWifiTetheringSetting(value);return;}
|
||||
if(value&&this._usbHotspotSetting){this._incompatibleSettings(this.tetheringWifiKey,this.tetheringUsbKey,false);}else{this._setWifiTetheringSetting(value);}
|
||||
break;case this.tetheringUsbKey:if(!value||(!this._hotspotSetting&&!this._usbStorageSetting)){this._setUsbTetheringSetting(value);return;}
|
||||
if(this._usbStorageSetting&&this._hotspotSetting){this._incompatibleSettings(this.tetheringUsbKey,null,true);}else{var oldSetting=this._usbStorageSetting?this.usbStorageKey:this.tetheringWifiKey;this._incompatibleSettings(this.tetheringUsbKey,oldSetting,false);}
|
||||
break;}},reEnableWifiTetheringSetting:function(){if(!this.wifiHotspotSetting){return;}
|
||||
this._setWifiTetheringSetting(false);setTimeout(()=>{this._setWifiTetheringSetting(true);},RE_ENABLE_WIFI_TETHERING_TIME);},_removeEventListener:function(listeners,callback){var index=listeners.indexOf(callback);if(index>=0){listeners.splice(index,1);}},_setWifiTetheringSetting:function(value){var cset={};cset[this.tetheringWifiKey]=value;this._settings.createLock().set(cset);},_setUsbTetheringSetting:function(value){var cset={};cset[this.tetheringUsbKey]=value;this._settings.createLock().set(cset);},addEventListener:function(eventName,callback){if(eventName==='incompatibleSettings'){this._incompatibleSettingsListeners.push(callback);}else if(eventName==='wifiHotspotChange'){this._hotspotChangeListeners.push(callback);}else if(eventName==='usbHotspotChange'){this._usbHotspotChangeListeners.push(callback);}else if(eventName==='usbStorageChange'){this._usbStorageChangeListeners.push(callback);}},removeEventListener:function(eventName,callback){if(eventName==='incompatibleSettings'){this._removeEventListener(this._incompatibleSettingsListeners,callback);}else if(eventName==='wifiHotspotChange'){this._removeEventListener(this._hotspotChangeListeners,callback);}else if(eventName==='usbHotspotChange'){this._removeEventListener(this._usbHotspotChangeListeners,callback);}else if(eventName==='usbStorageChange'){this._removeEventListener(this._usbStorageChangeListeners,callback);}},get wifiHotspotSetting(){return this._hotspotSetting;},get usbHotspotSetting(){return this._usbHotspotSetting;},get usbStorageSetting(){return this._usbStorageSetting;},set hotspotSetting(value){this._setWifiTetheringSetting(value);},set usbHotspotSetting(value){this._setUsbTetheringSetting(value);}};return function ctor_hotspot(){return new Hotspot();};});define('panels/hotspot/hotspot_settings',['require','shared/settings_listener','modules/settings_cache','modules/base/module','modules/mvvm/observable'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SettingsCache=require('modules/settings_cache');var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var HotspotSettings=Module.create(function HotspotSettings(){this.super(Observable).call(this);this._init();}).extend(Observable);Object.defineProperty(HotspotSettings.prototype,'tetheringSSIDKey',{get:function(){return'tethering.wifi.ssid';}});Object.defineProperty(HotspotSettings.prototype,'tetheringSecurityKey',{get:function(){return'tethering.wifi.security.type';}});Object.defineProperty(HotspotSettings.prototype,'tetheringPasswordKey',{get:function(){return'tethering.wifi.security.password';}});Observable.defineObservableProperty(HotspotSettings.prototype,'hotspotSSID',{readonly:true,value:''});Observable.defineObservableProperty(HotspotSettings.prototype,'hotspotSecurity',{readonly:true,value:''});Observable.defineObservableProperty(HotspotSettings.prototype,'hotspotPassword',{readonly:true,value:''});HotspotSettings.prototype._init=function(){this._settings=navigator.mozSettings;this._bindEvents();this._updatePasswordIfNeeded();};HotspotSettings.prototype._generateHotspotPassword=function(){var words=['amsterdam','ankara','auckland','belfast','berlin','boston','calgary','caracas','chicago','dakar','delhi','dubai','dublin','houston','jakarta','lagos','lima','madrid','newyork','osaka','oslo','porto','santiago','saopaulo','seattle','stockholm','sydney','taipei','tokyo','toronto'];var password=words[Math.floor(Math.random()*words.length)];for(var i=0;i<4;i++){password+=Math.floor(Math.random()*10);}
|
||||
return password;};HotspotSettings.prototype._updatePasswordIfNeeded=function(){var self=this;SettingsCache.getSettings(function(results){if(!results[self.tetheringPasswordKey]){var pwd=self._generateHotspotPassword();self.setHotspotPassword(pwd);}});};HotspotSettings.prototype.setHotspotSSID=function(value){var cset={};cset[this.tetheringSSIDKey]=value;this._settings.createLock().set(cset);};HotspotSettings.prototype.setHotspotSecurity=function(value){var cset={};cset[this.tetheringSecurityKey]=value;this._settings.createLock().set(cset);};HotspotSettings.prototype.setHotspotPassword=function(value){var cset={};cset[this.tetheringPasswordKey]=value;this._settings.createLock().set(cset);};HotspotSettings.prototype._onSSIDChange=function(value){this._hotspotSSID=value;};HotspotSettings.prototype._onSecurityChange=function(value){this._hotspotSecurity=value;};HotspotSettings.prototype._onPasswordChange=function(value){this._hotspotPassword=value;};HotspotSettings.prototype._bindEvents=function(){SettingsListener.observe(this.tetheringSSIDKey,'',this._onSSIDChange.bind(this));SettingsListener.observe(this.tetheringSecurityKey,'wpa-psk',this._onSecurityChange.bind(this));SettingsListener.observe(this.tetheringPasswordKey,'',this._onPasswordChange.bind(this));};return HotspotSettings;});define('panels/hotspot/panel',['require','modules/dialog_service','modules/settings_panel','panels/hotspot/hotspot','panels/hotspot/hotspot_settings'],function(require){'use strict';var DialogService=require('modules/dialog_service');var SettingsPanel=require('modules/settings_panel');var Hotspot=require('panels/hotspot/hotspot');var HotspotSettings=require('panels/hotspot/hotspot_settings');return function ctor_hotspot(){var elements;var hotspot=Hotspot();var hotspotSettings=HotspotSettings();var hotspotSSID;return SettingsPanel({onInit:function(panel){this._incompatibleSettingsDialog='incompatible-settings-dialog';elements={panel:panel,hotspotSettingBtn:panel.querySelector('#hotspot-settings-section a'),hotspotElement:panel.querySelector('#tethering-wifi-enabled'),hotspotMsg:panel.querySelector('#wifi-hotspot-msg'),usbTetheringElement:panel.querySelector('#tethering-usb-enabled')};this.incompatibleSettingsHandler=this._openIncompatibleSettingsDialog.bind(this);hotspot.init();},onBeforeShow:function(panel,options){hotspot.addEventListener('wifiHotspotChange',this._setHotspotSettingsEnabled);hotspot.addEventListener('usbHotspotChange',this._setUSBTetheringCheckbox);hotspot.addEventListener('incompatibleSettings',this.incompatibleSettingsHandler);elements.hotspotElement.addEventListener('change',this._onWifiHotspotChange);elements.usbTetheringElement.addEventListener('change',this._onUsbHotspotChange);elements.hotspotSettingBtn.addEventListener('click',this._onHotspotSettingsClick);hotspotSettings.observe('hotspotSSID',this._updateHotspotSSID);this._updateUI();},onBeforeHide:function(panel,options){hotspot.removeEventListener('wifiHotspotChange',this._setHotspotSettingsEnabled);hotspot.removeEventListener('usbHotspotChange',this._setUSBTetheringCheckbox);hotspot.removeEventListener('incompatibleSettings',this.incompatibleSettingsHandler);elements.hotspotElement.removeEventListener('change',this._onWifiHotspotChange);elements.usbTetheringElement.removeEventListener('change',this._onUsbHotspotChange);elements.hotspotSettingBtn.removeEventListener('click',this._onHotspotSettingsClick);hotspotSettings.unobserve('hotspotSSID');},_updateHotspotSSID:function(newValue){hotspotSSID=newValue;},_setHotspotSettingsEnabled:function(enabled){elements.hotspotElement.checked=enabled;if(enabled){document.l10n.setAttributes(elements.hotspotMsg,'wifi-hotspot-enabled-msg',{hotspotSSID:hotspotSSID});}else{elements.hotspotMsg.setAttribute('data-l10n-id','disabled');}},_setUSBTetheringCheckbox:function(enabled){elements.usbTetheringElement.checked=enabled;},_onWifiHotspotChange:function(event){var checkbox=event.target;hotspot.checkIncompatibleSettings(hotspot.tetheringWifiKey,checkbox.checked);},_onUsbHotspotChange:function(event){var checkbox=event.target;hotspot.checkIncompatibleSettings(hotspot.tetheringUsbKey,checkbox.checked);},_onHotspotSettingsClick:function(){DialogService.show('hotspot-wifiSettings',{settings:hotspotSettings}).then((result)=>{if(result.type==='submit'){hotspot.reEnableWifiTetheringSetting();}});},_openIncompatibleSettingsDialog:function(newSetting,oldSetting,bothConflicts){if(bothConflicts){return this._openIncompatibleSettingsDialog(hotspot.tetheringUsbKey,hotspot.tetheringWifiKey,null).then((updated)=>{updated&&this._openIncompatibleSettingsDialog(hotspot.tetheringUsbKey,hotspot.usbStorageKey,null);});}
|
||||
var headerL10nMap={'ums.enabled':'is-warning-storage-header','tethering.usb.enabled':'is-warning-tethering-header','tethering.wifi.enabled':'is-warning-wifi-header'};var messageL10nMap={'ums.enabled':{'tethering.usb.enabled':'is-warning-storage-tethering-message'},'tethering.usb.enabled':{'ums.enabled':'is-warning-tethering-storage-message','tethering.wifi.enabled':'is-warning-tethering-wifi-message'},'tethering.wifi.enabled':{'tethering.usb.enabled':'is-warning-wifi-tethering-message'}};var headerL10n=headerL10nMap[newSetting];var messageL10n=messageL10nMap[newSetting]&&messageL10nMap[newSetting][oldSetting];return DialogService.confirm(messageL10n,{title:headerL10n,submitButton:{id:'enable',style:'recommend'},cancelButton:{id:'cancel'},}).then((result)=>{var enabled=result.type==='submit';var lock=navigator.mozSettings.createLock();var cset={};cset[newSetting]=enabled;cset[oldSetting]=!enabled;lock.set(cset);return enabled;});},_updateUI:function(){this._setHotspotSettingsEnabled(hotspot.wifiHotspotSetting);this._setUSBTetheringCheckbox(hotspot.usbHotspotSetting);this._updateHotspotSSID(hotspotSettings.hotspotSSID);}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define('panels/hotspot_wifi_settings/panel',['require','modules/dialog_panel'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');return function ctor_hotspot_wifi_settings(){var elements;var hotspotSettings;return DialogPanel({onInit:function(panel){elements={panel:panel,securityTypeSelector:panel.querySelector('.security-selector'),passwordItem:panel.querySelector('.password'),passwordInput:panel.querySelector('input[name="password"]'),submitBtn:panel.querySelector('button.save-hotspotSettings'),showPassword:panel.querySelector('[name="show_password"]'),passwordDesc:panel.querySelector('.password-description'),tethering_ssid:panel.querySelector('[data-setting="tethering.wifi.ssid"]'),allFields:panel.querySelectorAll('[data-setting]:not([data-ignore])')};this._initSecurityOptions();elements.showPassword.addEventListener('change',function(){elements.passwordInput.type=this.checked?'text':'password';});elements.securityTypeSelector.addEventListener('change',(evt)=>{this._settingsTouched=true;this._updatePasswordItemVisibility(evt.target.value);this._updateSubmitButtonState();});elements.tethering_ssid.addEventListener('input',()=>{this._settingsTouched=true;this._updateSubmitButtonState();});elements.passwordInput.addEventListener('input',()=>{this._settingsTouched=true;this._updateSubmitButtonState();});},onBeforeShow:function(panel,options){hotspotSettings=options.settings;this._initWifiSettingsDialog();},onSubmit:function(){if(this._isNotSubmitable()){return Promise.reject();}else{this._submit();return Promise.resolve();}},_initSecurityOptions:function(){var types=['open','wpa-psk','wpa2-psk'];types.forEach((type)=>{var option=document.createElement('option');option.value=type;option.setAttribute('data-l10n-id','hotspot-security-'+type);elements.securityTypeSelector.appendChild(option);});},_initWifiSettingsDialog:function(){elements.showPassword.checked=false;elements.passwordInput.type='password';this._reset();this._settingsTouched=false;this._updateSubmitButtonState();},_updateSubmitButtonState:function(){elements.submitBtn.disabled=this._isNotSubmitable();},_updatePasswordItemVisibility:function(securityType){elements.passwordItem.hidden=elements.passwordDesc.hidden=(securityType==='open');},_reset:function(){var fields=elements.allFields;this._updatePasswordItemVisibility(hotspotSettings.hotspotSecurity);for(var i=0,len=fields.length;i<len;i++){this._configInput(fields[i]);}},_isNotSubmitable:function(){var securityType=elements.securityTypeSelector.value;var pwdLength=elements.passwordInput.value.length;var ssidLength=elements.tethering_ssid.value.trim().length;if(ssidLength===0){return true;}
|
||||
return(pwdLength<8||pwdLength>63)&&(securityType!=='open')||!this._settingsTouched;},_configInput:function(input){var key=input.dataset.setting;var setting;switch(key){case hotspotSettings.tetheringSSIDKey:setting=hotspotSettings.hotspotSSID;break;case hotspotSettings.tetheringPasswordKey:setting=hotspotSettings.hotspotPassword;break;case hotspotSettings.tetheringSecurityKey:setting=hotspotSettings.hotspotSecurity;break;}
|
||||
input.value=setting||'';if(input.nodeName==='SELECT'){var evt=document.createEvent('Event');evt.initEvent('change',true,true);input.dispatchEvent(evt);}},_submit:function(){var fields=elements.allFields;var ignorePassword=(elements.securityTypeSelector.value=='open');for(var i=0;i<fields.length;i++){var input=fields[i];var key=input.dataset.setting;switch(key){case hotspotSettings.tetheringSSIDKey:hotspotSettings.setHotspotSSID(input.value);break;case hotspotSettings.tetheringPasswordKey:if(!(ignorePassword&&key==hotspotSettings.tetheringPasswordKey)){hotspotSettings.setHotspotPassword(input.value);}
|
||||
break;case hotspotSettings.tetheringSecurityKey:hotspotSettings.setHotspotSecurity(input.value);break;}}}});};});
|
||||
45
assets/webapps/settings.gaiamobile.org/js/panels/icc/icc.js
Normal file
45
assets/webapps/settings.gaiamobile.org/js/panels/icc/icc.js
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
require(['shared/stk_helper'],function(STKHelper){'use strict';(function(){var iccManager=window.navigator.mozIccManager;function getIcc(iccId){window.DUMP('ICC Getting ICC for '+iccId);return iccManager.getIccById(iccId);}
|
||||
function reopenSettings(){navigator.mozApps.getSelf().onsuccess=function getSelfCB(evt){var app=evt.target.result;app.launch('settings');};}
|
||||
const STK_NEXT_ACTION_INDICATOR={16:'stkItemsNaiSetUpCall',17:'stkItemsNaiSendSs',18:'stkItemsNaiSendUssd',19:'stkItemsNaiSendSms',32:'stkItemsNaiPlayTone',33:'stkItemsNaiDisplayText',34:'stkItemsNaiGetInkey',35:'stkItemsNaiGetInput',36:'stkItemsNaiSelectItem',37:'stkItemsNaiSetUpMenu',40:'stkItemsNaiSetIdleModeText',48:'stkItemsNaiPerformCardApdu',49:'stkItemsNaiPowerOnCard',50:'stkItemsNaiPowerOffCard',51:'stkItemsNaiGetReaderStatus',64:'stkItemsNaiOpenChannel',65:'stkItemsNaiCloseChannel',66:'stkItemsNaiReceiveData',67:'stkItemsNaiSendData',68:'stkItemsNaiGetChannelStatus',96:'Reserved',129:'stkItemsNaiEndOfTheProactiveSession'};var iccStkList=document.getElementById('icc-stk-list');var iccStkMainHeader=document.getElementById('icc-stk-main-header');var iccStkHeader=document.getElementById('icc-stk-header');var iccStkSubheader=document.getElementById('icc-stk-subheader');var stkOpenAppName=null;var stkLastSelectedText=null;var goBackTimer={timer:null,timeout:0};var selectTimer={timer:null,timeout:0};var _visibilityChangeHandler=null;var _backHandler=null;init();function localizeElement(element,l10n){if(typeof(l10n)==='string'){element.setAttribute('data-l10n-id',l10n);}else if(l10n.raw){element.removeAttribute('data-l10n-id');element.textContent=l10n.raw;}else{document.l10n.setAttributes(element,l10n.id,l10n.attrs);}}
|
||||
function sendVisibilityChangeEvent(){navigator.mozApps.getSelf().onsuccess=function(evt){var app=evt.target.result;app.connect('settingsstk').then(function onConnAccepted(ports){window.DUMP('STK_Settings IAC: '+ports);ports.forEach(function(port){window.DUMP('STK_Settings IAC: '+port);port.postMessage('StkMenuHidden');});},function onConnRejected(reason){window.DUMP('STK_Settings IAC is rejected');window.DUMP(reason);});};}
|
||||
function getNextActionString(nextActionList,index){window.DUMP('STK NAL: '+nextActionList);var nextActionString;if(nextActionList&&nextActionList[index]!==null&&nextActionList[index]!==96&&STK_NEXT_ACTION_INDICATOR[nextActionList[index]]){nextActionString=STK_NEXT_ACTION_INDICATOR[nextActionList[index]];}else{nextActionString=null;}
|
||||
return nextActionString;}
|
||||
function visibilityChangeHandler(){if(document.hidden&&Settings&&Settings.currentPanel=='#icc'){window.DUMP('STK_Settings visibilityChangeHandler');sendVisibilityChangeEvent();}}
|
||||
function init(){window.addEventListener('stkasynccommand',function do_handleAsyncSTKCmd(event){handleSTKMessage(event.detail.message);});window.addEventListener('stkmenuselection',function do_handleAsyncSTKCmd(event){updateMenu(event.detail.menu);});document.addEventListener('visibilitychange',visibilityChangeHandler,false);iccStkMainHeader.addEventListener('action',function onBack(){if(typeof _backHandler==='function'){_backHandler();}});}
|
||||
function addCloseNotificationsEvents(message){function onVisibilityChange(){if(document.hidden&&Settings&&Settings.currentPanel=='#icc'){document.removeEventListener('visibilitychange',_visibilityChangeHandler,false);stkResTerminate(message);}}
|
||||
document.removeEventListener('visibilitychange',_visibilityChangeHandler,false);_visibilityChangeHandler=onVisibilityChange;document.addEventListener('visibilitychange',_visibilityChangeHandler,false);window.onbeforeunload=function(){responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_NO_RESPONSE_FROM_USER},true);};}
|
||||
function returnToSettingsMainMenu(){if(Settings){Settings.currentPanel='#root';}}
|
||||
function stkResTerminate(message){returnToSettingsMainMenu();responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_UICC_SESSION_TERM_BY_USER},true);}
|
||||
function stkResGoBack(message){responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_BACKWARD_MOVE_BY_USER});var reqTimerGoBack=window.navigator.mozSettings.createLock().get('icc.goBackTimeout');reqTimerGoBack.onsuccess=function icc_getTimerGoBackSuccess(){goBackTimer.timeout=reqTimerGoBack.result['icc.goBackTimeout'];goBackTimer.timer=setTimeout(function(){returnToSettingsMainMenu();},goBackTimer.timeout);};}
|
||||
function stkResNoResponse(message){var reqTimerSelect=window.navigator.mozSettings.createLock().get('icc.selectTimeout');reqTimerSelect.onsuccess=function icc_getTimerSelectSuccess(){selectTimer.timeout=reqTimerSelect.result['icc.selectTimeout'];selectTimer.timer=setTimeout(function(){responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_NO_RESPONSE_FROM_USER},true);returnToSettingsMainMenu();},selectTimer.timeout);};}
|
||||
function stkCancelGoBack(){if(goBackTimer.timer){window.clearTimeout(goBackTimer.timer);goBackTimer.timer=null;}
|
||||
if(selectTimer.timer){window.clearTimeout(selectTimer.timer);selectTimer.timer=null;}}
|
||||
function responseSTKCommand(message,response){window.DUMP('sendStkResponse to message: ',message);window.DUMP('sendStkResponse -- # response = ',response);getIcc(message.iccId).sendStkResponse(message.command,response);}
|
||||
function handleSTKMessage(message){window.DUMP('STK Proactive Message:',message);stkCancelGoBack();reopenSettings();switch(message.command.typeOfCommand){case iccManager.STK_CMD_SELECT_ITEM:addCloseNotificationsEvents(message);updateSelection(message);Settings.currentPanel='#icc';_backHandler=stkResGoBack.bind(null,message);break;default:window.DUMP('STK Message not managed... response OK');responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_OK});}}
|
||||
function updateMenu(menu){window.DUMP('Showing STK main menu: ',menu);stkOpenAppName=null;stkCancelGoBack();clearList();if(!menu||!menu.entries||!menu.entries.items||(menu.entries.items.length==1&&menu.entries.items[0]===null)){return;}
|
||||
window.DUMP('STK Main App Menu title: '+menu.entries.title);window.DUMP('STK Main App Menu default item: '+
|
||||
menu.entries.defaultItem);showTitle({raw:menu.entries.title});menu.entries.items.forEach(function(menuItem,index){window.DUMP('STK Main App Menu item: '+menuItem.text+' # '+
|
||||
menuItem.identifier);var nextActionString=getNextActionString(menu.entries.nextActionList,index);var icon=STKHelper.getFirstIconRawData(menuItem);if(icon){iccStkList.dataset.customIcon=true;}
|
||||
window.DUMP('STK NEXTACTION: '+nextActionString);iccStkList.appendChild(buildMenuEntry({id:'stk-menuitem-'+menuItem.identifier,icon:icon,text:{raw:menuItem.text},nai:nextActionString,onclick:onMainMenuItemClick,attributes:[['stk-menu-item-identifier',menuItem.identifier],['stk-menu-item-iccId',menu.iccId]]}));});if(menu.entries.isHelpAvailable){iccStkList.appendChild(buildMenuEntry({id:'stk-helpmenuitem',text:'operatorServices-helpmenu',onclick:function __onHelpClick__(event){showHelpMenu(menu,event);},attributes:[]}));}
|
||||
getIcc(menu.iccId).onstksessionend=function handleSTKSessionEnd(event){updateMenu(menu);Settings.currentPanel='#icc';};_backHandler=function backToRootPanel(){Settings.currentPanel='#root';};}
|
||||
function onMainMenuItemClick(event){var iccId=event.target.getAttribute('stk-menu-item-iccId');var identifier=event.target.getAttribute('stk-menu-item-identifier');window.DUMP('sendStkMenuSelection: ',identifier);getIcc(iccId).sendStkMenuSelection(identifier,false);stkLastSelectedText=event.target.textContent;stkOpenAppName=stkLastSelectedText;}
|
||||
function showHelpMenu(menu,event){window.DUMP('Showing STK help menu');stkOpenAppName=null;clearList();showTitle('operatorServices-helpmenu');menu.entries.items.forEach(function(menuItem){window.DUMP('STK Main App Help item: '+menuItem.text+' # '+
|
||||
menuItem.identifier);var icon=STKHelper.getFirstIconRawData(menuItem);if(icon){iccStkList.dataset.customIcon=true;}
|
||||
iccStkList.appendChild(buildMenuEntry({id:'stk-helpitem-'+menuItem.identifier,text:{raw:menuItem.text},icon:icon,onclick:onMainMenuHelpItemClick,attributes:[['stk-help-item-identifier',menuItem.identifier],['stk-menu-item-iccId',menu.iccId]]}));});_backHandler=updateMenu.bind(null,menu);}
|
||||
function onMainMenuHelpItemClick(event){var iccId=event.target.getAttribute('stk-menu-item-iccId');var identifier=event.target.getAttribute('stk-help-item-identifier');window.DUMP('sendStkHelpMenuSelection: ',identifier);getIcc(iccId).sendStkMenuSelection(identifier,true);stkLastSelectedText=event.target.textContent;stkOpenAppName=stkLastSelectedText;}
|
||||
function updateSelection(message){var menu=message.command.options;window.DUMP('Showing STK menu');clearList();window.DUMP('STK App Menu title: '+menu.title);window.DUMP('STK App Menu default item: '+menu.defaultItem);showTitle({raw:menu.title});menu.items.forEach(function(menuItem,index){window.DUMP('STK App Menu item: '+menuItem.text+' # '+
|
||||
menuItem.identifier);var nextActionString=getNextActionString(menu.nextActionList,index);window.DUMP('STK NEXTACTION: '+nextActionString);var icon=STKHelper.getFirstIconRawData(menuItem);if(icon){iccStkList.dataset.customIcon=true;}
|
||||
iccStkList.appendChild(buildMenuEntry({id:'stk-menuitem-'+menuItem.identifier,text:{raw:menuItem.text},icon:icon,nai:nextActionString,onclick:function onSelectOptionClick(event){document.removeEventListener('visibilitychange',_visibilityChangeHandler,false);onSelectOption(message,event);},attributes:[['stk-select-option-identifier',menuItem.identifier]]}));});if(menu.isHelpAvailable){iccStkList.appendChild(buildMenuEntry({id:'stk-helpmenuitem',text:'operatorServices-helpmenu',onclick:function __onHelpClick__(event){showHelpSelection(message,event);},attributes:[]}));}
|
||||
stkResNoResponse(message);}
|
||||
function onSelectOption(message,event){var identifier=event.target.getAttribute('stk-select-option-identifier');responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_OK,itemIdentifier:identifier});stkLastSelectedText=event.target.textContent;}
|
||||
function showHelpSelection(message,event){var menu=message.command.options;window.DUMP('Showing STK help menu');stkOpenAppName=null;clearList();showTitle('operatorServices-helpmenu');menu.items.forEach(function(menuItem){window.DUMP('STK Main App Help item: '+menuItem.text+' # '+
|
||||
menuItem.identifier);var icon=STKHelper.getFirstIconRawData(menuItem);if(icon){iccStkList.dataset.customIcon=true;}
|
||||
iccStkList.appendChild(buildMenuEntry({id:'stk-helpitem-'+menuItem.identifier,text:{raw:menuItem.text},icon:icon,onclick:function onSelectOptionClick(event){onSelectionHelpItemClick(message,event);},attributes:[['stk-help-item-identifier',menuItem.identifier],['stk-menu-item-iccId',menu.iccId]]}));});_backHandler=updateSelection.bind(null,message);}
|
||||
function onSelectionHelpItemClick(message,event){var identifier=event.target.getAttribute('stk-help-item-identifier');window.DUMP('sendStkHelpMenuSelection: ',identifier);responseSTKCommand(message,{resultCode:iccManager.STK_RESULT_HELP_INFO_REQUIRED,itemIdentifier:identifier});stkLastSelectedText=event.target.textContent;}
|
||||
function showTitle(titleL10n){if(!stkOpenAppName){stkOpenAppName=titleL10n;}
|
||||
localizeElement(iccStkHeader,stkOpenAppName);if(stkOpenAppName!=titleL10n){localizeElement(iccStkSubheader,titleL10n);iccStkSubheader.parentNode.classList.remove('hiddenheader');iccStkSubheader.classList.remove('hidden');}else{localizeElement(iccStkSubheader,{raw:''});iccStkSubheader.parentNode.classList.add('hiddenheader');iccStkSubheader.classList.add('hidden');}}
|
||||
function clearList(){while(iccStkList.hasChildNodes()){iccStkList.removeChild(iccStkList.lastChild);}}
|
||||
function buildMenuEntry(entry){var li=document.createElement('li');if(entry.nai){var small=document.createElement('small');localizeElement(small,entry.nai);li.appendChild(small);}
|
||||
if(entry.icon){var iconContainer=document.createElement('span');iconContainer.appendChild(STKHelper.getIconCanvas(entry.icon));li.appendChild(iconContainer);}
|
||||
var a=document.createElement('a');a.id=entry.id;entry.attributes.forEach(function attrIterator(attr){a.setAttribute(attr[0],attr[1]);});localizeElement(a,entry.text);a.onclick=entry.onclick;a.href='#icc';li.appendChild(a);return li;}})();window.dispatchEvent(new CustomEvent('iccPageLoaded',{detail:{}}));});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define(['require','modules/settings_panel','modules/settings_cache'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var SettingsCache=require('modules/settings_cache');const METRICLEVELSETTING='metrics.selectedMetrics.level';const DOGFOODSETTING='debug.performance_data.dogfooding';const SHAREDATASETTING='debug.performance_data.shared';const DEVTOOLSOVERLAY='devtools.overlay';const LEVELSMAP={'Basic':'Basic','Enhanced':'Enhanced','None':'None'};return function ctor_improveBrowserOS(){return SettingsPanel({onInit:function(panel){var appUsage=panel.querySelector('#appUsageByRegion');var metricsBasic=panel.querySelector('#metrics-basic');var metricsEnhanced=panel.querySelector('#metrics-enhanced');var metricsNone=panel.querySelector('#metrics-none');appUsage.addEventListener('click',this);metricsBasic.addEventListener('click',this);metricsEnhanced.addEventListener('click',this);metricsNone.addEventListener('click',this);return new Promise((resolve)=>{SettingsCache.getSettings((results)=>{var metricsLevel=results[METRICLEVELSETTING];switch(metricsLevel){case'Basic':metricsBasic.checked=true;break;case'Enhanced':metricsEnhanced.checked=true;break;case'None':metricsNone.checked=true;break;default:if(results[SHAREDATASETTING]){metricsBasic.checked=true;this._setMetricLevel('Basic');}else{metricsNone.checked=true;this._setMetricLevel('None');}}
|
||||
if(results[DOGFOODSETTING]){metricsBasic.setAttribute('disabled','true');metricsEnhanced.setAttribute('disabled','true');metricsNone.setAttribute('disabled','true');}else{metricsBasic.removeAttribute('disabled');metricsEnhanced.removeAttribute('disabled');metricsNone.removeAttribute('disabled');}
|
||||
resolve(this._setMetricLevel);});});},handleEvent:function(event){switch(event.target.id){case'appUsageByRegion':var activity=new window.MozActivity({name:'marketplace-search',data:{type:'firefox-os-app-stats'}});activity.onerror=function(){console.log('Error opening app stats page in Marketplace');};break;case'metrics-basic':case'metrics-enhanced':case'metrics-none':this._setMetricLevel(event.target.value);break;}},_setMetricLevel:function(level){level=LEVELSMAP[level];if(level){updateSetting(METRICLEVELSETTING,level);if(level===LEVELSMAP.Enhanced){updateSetting(DEVTOOLSOVERLAY,true);}else{updateSetting(DEVTOOLSOVERLAY,false);}}
|
||||
function updateSetting(name,value){var setting={};setting[name]=value;navigator.mozSettings.createLock().set(setting);}},});};});
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
define('panels/keyboard/keyboard_template',['require'],function(require){'use strict';return function kp_keyboardTemplate(keyboard,recycled){var container=null;var a;var span;if(recycled){container=recycled;a=container.querySelector('a');span=container.querySelector('span');}else{container=document.createElement('li');a=document.createElement('a');span=document.createElement('span');a.href='#';a.className='menu-item';a.appendChild(span);container.appendChild(a);}
|
||||
container.onclick=function(){keyboard.app.launch();};span.textContent=keyboard.name;return container;};});define('panels/keyboard/layout_template',['require'],function(require){'use strict';var layoutTemplate=function layoutTemplate(layout,recycled){var container=null;var nameBdi;var small;if(recycled){container=recycled;nameBdi=container.querySelector('bdi');small=container.querySelector('small');}else{container=document.createElement('li');nameBdi=document.createElement('bdi');small=document.createElement('small');container.appendChild(document.createElement('span'));container.lastChild.appendChild(nameBdi);container.appendChild(small);}
|
||||
var refreshName=function(){nameBdi.textContent=layout.name;if(layout.nameL10nId){nameBdi.dataset.l10nId=layout.nameL10nId;}
|
||||
small.textContent=layout.appName;};refreshName();layout.observe('appName',refreshName);layout.observe('name',refreshName);return container;};return layoutTemplate;});define('panels/keyboard/installed_keyboards',['require','modules/mvvm/list_view'],function(require){'use strict';var ListView=require('modules/mvvm/list_view');function KeyboardCore(context,template){this._enabled=false;this._listView=null;this._keyboardContext=context;this._keyboardTemplate=template;}
|
||||
KeyboardCore.prototype={get enabled(){return this._enabled;},set enabled(value){this._enabled=value;if(this._listView){this._listView.enabled=this._enabled;}},_initAllKeyboardListView:function k_initListView(listViewRoot,keyboards,keyboardTemplate){listViewRoot.hidden=(keyboards.length===0);this._listView=ListView(listViewRoot,keyboards,keyboardTemplate);},init:function k_init(elements){var that=this;this._keyboardContext.init(function(){that._keyboardContext.keyboards(function(keyboards){that._initAllKeyboardListView(elements.listViewRoot,keyboards,that._keyboardTemplate);that.enabled=true;});});}};return function ctor_keyboardCore(context,template){return new KeyboardCore(context,template);};});define('panels/keyboard/enabled_layouts',['require','modules/mvvm/list_view'],function(require){'use strict';var ListView=require('modules/mvvm/list_view');function KeyboardEnabledLayoutsCore(context,template){this._enabled=false;this._listView=null;this._keyboardContext=context;this._layoutTemplate=template;}
|
||||
KeyboardEnabledLayoutsCore.prototype={get enabled(){return this._enabled;},set enabled(value){this._enabled=value;if(this._listView){this._listView.enabled=this._enabled;}},_initEnabledLayoutListView:function kepl_initListView(listViewRoot,layouts,layoutTemplate){this._listView=ListView(listViewRoot,layouts,layoutTemplate);},init:function kepl_onInit(elements){var that=this;this._keyboardContext.init(function(){that._keyboardContext.enabledLayouts(function(layouts){that._initEnabledLayoutListView(elements.listViewRoot,layouts,that._layoutTemplate);that.enabled=true;});});}};return function ctor_keplCore(context,template){return new KeyboardEnabledLayoutsCore(context,template);};});define('panels/keyboard/panel',['require','modules/settings_panel','modules/keyboard_context','panels/keyboard/keyboard_template','panels/keyboard/layout_template','panels/keyboard/installed_keyboards','panels/keyboard/enabled_layouts'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var KeyboardContext=require('modules/keyboard_context');var keyboardTemplate=require('panels/keyboard/keyboard_template');var layoutTemplate=require('panels/keyboard/layout_template');var InstalledKeyboards=require('panels/keyboard/installed_keyboards');var EnabledLayouts=require('panels/keyboard/enabled_layouts');return function ctor_keyboardPanel(){var installedKeyboards=InstalledKeyboards(KeyboardContext,keyboardTemplate);var enabledLayouts=EnabledLayouts(KeyboardContext,layoutTemplate);return SettingsPanel({onInit:function kp_onInit(rootElement){installedKeyboards.init({listViewRoot:rootElement.querySelector('.allKeyboardList')});enabledLayouts.init({listViewRoot:rootElement.querySelector('.enabledKeyboardList')});},onBeforeShow:function kp_onBeforeShow(){installedKeyboards.enabled=true;enabledLayouts.enabled=true;},onHide:function kp_onHide(){installedKeyboards.enabled=false;enabledLayouts.enabled=false;}});};});
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define('panels/languages/languages',['require','modules/settings_cache','shared/keyboard_helper','shared/language_list','modules/date_time'],function(require){'use strict';var SettingsCache=require('modules/settings_cache');var KeyboardHelper=require('shared/keyboard_helper');var LanguageList=require('shared/language_list');require('modules/date_time');var Languages=function(){};Languages.prototype={buildList:function(){LanguageList.get(function fillList(languages,currentLang){var options=document.createDocumentFragment();for(var lang in languages){var isCurrent=(lang===currentLang);var option=document.createElement('option');option.value=lang;option.innerHTML=LanguageList.wrapBidi(lang,languages[lang]);option.selected=isCurrent;options.appendChild(option);}
|
||||
this.elements.langSel.innerHTML='';this.elements.langSel.appendChild(options);}.bind(this));},updateDateTime:function(){if(this.panel.children.length){var d=new Date();var dateString=d.toLocaleString(navigator.languages,{weekday:'long',day:'numeric',month:'long',year:'numeric'});var timeString=d.toLocaleString(navigator.languages,{hour12:navigator.mozHour12,hour:'numeric',minute:'numeric'});this.panel.querySelector('#region-date').textContent=dateString;this.panel.querySelector('#region-time').textContent=timeString;}},showMoreLanguages:function(){this.elements.moreLanguages.blur();SettingsCache.getSettings(function(result){var version=result['langpack.channel'];new window.MozActivity({name:'marketplace-category',data:{slug:'langpacks',fxos_version:version.split('.').slice(0,2).join('.')}});});},onInit:function(panel,elements){this.panel=panel;this.elements=elements;if(this.elements.moreLanguages.offsetParent){this.elements.moreLanguages.addEventListener('click',this.showMoreLanguages.bind(this));}
|
||||
this.elements.langSel.addEventListener('blur',this.buildList.bind(this));},onLocalized:function(){var lang=document.documentElement.lang;KeyboardHelper.changeDefaultLayouts(lang);this.updateDateTime();}};return function ctor_languages(){return new Languages();};});define('panels/languages/panel',['require','modules/settings_panel','panels/languages/languages'],function(require){var SettingsPanel=require('modules/settings_panel');var Languages=require('panels/languages/languages');return function ctor_languages_panel(){var languages=Languages();var onLocalized=languages.onLocalized.bind(languages);var onAdditionalLanguagesChange=languages.buildList.bind(languages);return SettingsPanel({onBeforeShow:function(){languages.buildList();languages.updateDateTime();document.addEventListener('DOMRetranslated',onLocalized);navigator.mozSettings.addObserver('accessibility.screenreader',onAdditionalLanguagesChange);document.addEventListener('additionallanguageschange',onAdditionalLanguagesChange);},onBeforeHide:function(){document.removeEventListener('DOMRetranslated',onLocalized);navigator.mozSettings.removeObserver('accessibility.screenreader',onAdditionalLanguagesChange);document.removeEventListener('additionallanguageschange',onAdditionalLanguagesChange);},onInit:function(panel){var elements={moreLanguages:panel.querySelector('.menuItem-more-languages'),langSel:panel.querySelector('select[name="language.current"]')};languages.onInit(panel,elements);}});};});
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
define(['require','modules/dialog_service','modules/settings_cache','modules/storage_helper','shared/toaster'],function(require){'use strict';var DialogService=require('modules/dialog_service');var SettingsCache=require('modules/settings_cache');var StorageHelper=require('modules/storage_helper');var Toaster=require('shared/toaster');const MEDIA_TYPE=['music','pictures','videos','sdcard'];const ITEM_TYPE=['music','pictures','videos','free'];const DEFAULT_MEDIA_VOLUME_KEY='device.storage.writable.name';const EXTERNAL_UNRECOGNISED_KEY='volume.external.unrecognised';const LATENCY_CHECK_STATUS_AFTER_IDLE_IN_MILLISECONDS=600;var Volume=function(name,external,externalIndex,storages){this.name=name;this.external=external;this.isUnrecognised=false;this.externalIndex=externalIndex;this.storages=storages;this.currentStorageStatus=null;this.rootElement=null;this.stackedbar=null;};Volume.prototype.getVolumeId=function volume_getVolumeId(){return(this.external)?'external-'+this.externalIndex:'internal';};Volume.prototype.getL10nId=function volume_getL10nId(useShort){var prefix=useShort?'short-storage-name-':'storage-name-';return prefix+this.getVolumeId();};Volume.prototype.createView=function volume_createView(listRoot){var l10nId,li,label,text,size,anchor,button,buttonType;var h2=document.createElement('h2');l10nId=this.getL10nId();h2.setAttribute('data-l10n-id',l10nId);var header=document.createElement('header');header.appendChild(h2);header.dataset.id=this.getVolumeId();listRoot.appendChild(header);this.rootElement=document.createElement('ul');listRoot.appendChild(this.rootElement);var stackedbarDiv=document.createElement('div');stackedbarDiv.id=this.name+'-space-stackedbar';stackedbarDiv.classList.add('space-stackedbar');li=document.createElement('li');li.appendChild(stackedbarDiv);this.rootElement.appendChild(li);this.stackedbar=StackedBar(stackedbarDiv);var self=this;ITEM_TYPE.forEach(function(type){label=document.createElement('span');label.classList.add('stackedbar-color-label');anchor=document.createElement('a');size=document.createElement('span');size.classList.add('size');size.hidden=true;text=document.createElement('span');l10nId=type+'-space';text.setAttribute('data-l10n-id',l10nId);anchor.appendChild(text);anchor.appendChild(size);li=document.createElement('li');li.classList.add('color-'+type);li.appendChild(label);li.appendChild(anchor);self.rootElement.appendChild(li);});anchor=document.createElement('a');size=document.createElement('span');size.classList.add('size');size.hidden=true;text=document.createElement('span');l10nId='total-space';text.setAttribute('data-l10n-id',l10nId);anchor.appendChild(text);anchor.appendChild(size);li=document.createElement('li');li.classList.add('total-space');li.appendChild(anchor);this.rootElement.appendChild(li);if(this.storages.sdcard.canBeFormatted){buttonType='format-sdcard-'+this.getVolumeId();button=document.createElement('button');button.classList.add('format-btn');button.setAttribute('data-l10n-id',buttonType);button.disabled=true;button.onclick=this.formatSDCard.bind(this);label=document.createElement('label');label.appendChild(button);li=document.createElement('li');li.appendChild(label);this.rootElement.appendChild(li);}
|
||||
if(this.external&&this.storages.sdcard.canBeMounted){buttonType='eject-sdcard-'+this.getVolumeId();button=document.createElement('button');button.classList.add('eject-btn');button.setAttribute('data-l10n-id',buttonType);button.disabled=true;button.onclick=this.unmountSDCard.bind(this);label=document.createElement('label');label.appendChild(button);li=document.createElement('li');li.classList.add('eject-btn');li.appendChild(label);this.rootElement.appendChild(li);}};Volume.prototype.updateStorageInfo=function volume_updateStorageInfo(){var self=this;this.getStats(function(sizes){self.stackedbar.reset();ITEM_TYPE.forEach(function(type){var element=self.rootElement.querySelector('.color-'+type+' .size');StorageHelper.showFormatedSize(element,'storageSize',sizes[type]);element.hidden=false;self.stackedbar.add({'type':type,'value':sizes[type]});});self.stackedbar.refreshUI();var element=self.rootElement.querySelector('[data-l10n-id="total-space"] + .size');StorageHelper.showFormatedSize(element,'storageSize',sizes.sdcard+sizes.free);element.hidden=false;});};Volume.prototype.enableStorageInfo=function volume_enableStorageInfo(enabled){ITEM_TYPE.forEach(function(type){var rule='li[class="color-'+type+'"]';var element=this.rootElement.querySelector(rule);element.setAttribute('aria-disabled',!enabled);}.bind(this));var rule='li[class="total-space"]';var element=this.rootElement.querySelector(rule);element.setAttribute('aria-disabled',!enabled);};Volume.prototype.updateStorageUIState=function volume_updateStorageUIState(enabled,isUnrecognisedEventUpdate){if(this.isFormatting&&!enabled){return;}
|
||||
if(this.isUnrecognised&&!enabled){return;}
|
||||
if(isUnrecognisedEventUpdate&&!enabled&&(this.currentStorageStatus==='Mounted')){return;}
|
||||
if(this.getVolumeId()==='internal'){return;}
|
||||
var rule='header[data-id='+this.getVolumeId()+']';this.rootElement.parentNode.querySelector(rule).hidden=!enabled;this.rootElement.hidden=!enabled;if(isUnrecognisedEventUpdate){this.rootElement.querySelector('.space-stackedbar').parentNode.hidden=enabled;this.setUnmountSDCardBtnVisible(!enabled);if(enabled){ITEM_TYPE.forEach(function(type){this.rootElement.querySelector('li[class="color-'+type+'"]').hidden=enabled;}.bind(this));this.rootElement.querySelector('li[class="total-space"]').hidden=enabled;}
|
||||
return;}
|
||||
ITEM_TYPE.forEach(function(type){this.rootElement.querySelector('li[class="color-'+type+'"]').hidden=!enabled;}.bind(this));this.rootElement.querySelector('li[class="total-space"]').hidden=!enabled;};Volume.prototype.getStats=function volume_getStats(callback){var results={};var current=MEDIA_TYPE.length;var storages=this.storages;MEDIA_TYPE.forEach(function(type){var storage=storages[type];storage.usedSpace().onsuccess=function(e){results[type]=e.target.result;current--;if(current===0){storage.freeSpace().onsuccess=function(e){results.free=e.target.result;if(callback){callback(results);}};}};});};Volume.prototype.updateInfo=function volume_updateInfo(callback){var self=this;var availreq=this.storages.sdcard.available();availreq.onsuccess=function availSuccess(evt){var state=evt.target.result;switch(state){case'shared':self.updateStorageUIState(true);self.setInfoUnavailable();self.enableStorageInfo(false);break;case'unavailable':self.setInfoUnavailable();self.enableStorageInfo(false);self.updateStorageUIState(false);break;case'available':self.updateStorageUIState(true);self.updateStorageInfo();self.enableStorageInfo(true);self.enableUnmountSDCardBtn(true);self.enableFormatSDCardBtn(true);break;}
|
||||
if(callback){callback(state);}};};Volume.prototype.updateUIState=function volume_updateUIState(storageStatus){switch(storageStatus){case'Init':case'NoMedia':case'Pending':case'Unmounting':this.updateStorageUIState(false);this.enableUnmountSDCardBtn(false);this.enableFormatSDCardBtn(false);break;case'Shared':case'Shared-Mounted':this.updateStorageUIState(true);this.enableUnmountSDCardBtn(false);this.enableFormatSDCardBtn(false);break;case'Formatting':this.enableUnmountSDCardBtn(false);this.enableFormatSDCardBtn(false,true);this.isFormatting=false;break;case'Checking':this.isFormatting=false;break;case'Idle':if(this.isUnmounting){this.isUnmounting=false;var toast={messageL10nId:'sdcardUnmounted',latency:3000,useTransition:true};Toaster.showToast(toast);}
|
||||
this.updateStorageUIState(false);this.enableUnmountSDCardBtn(false);break;case'Mounted':this.updateStorageUIState(true);this.enableUnmountSDCardBtn(true);this.enableFormatSDCardBtn(true);break;}};Volume.prototype.setInfoUnavailable=function volume_setInfoUnavailable(){var self=this;ITEM_TYPE.forEach(function(type){var rule='.color-'+type+' .size';var element=self.rootElement.querySelector(rule);element.setAttribute('data-l10n-id','size-not-available');});var element=this.rootElement.querySelector('.total-space .size');element.setAttribute('data-l10n-id','size-not-available');this.stackedbar.reset();};Volume.prototype.mountSDCard=function volume_mountSDCard(evt){this.storages.sdcard.mount();};Volume.prototype.unmountSDCard=function volume_unmountSDCard(evt){var self=this;DialogService.confirm('unmount-sdcard-confirmation',{submitButton:{id:'ok',style:'recommend'},cancelButton:'cancel'}).then(function(result){if(result.type==='submit'){self.storages.sdcard.unmount();self.isUnmounting=true;}});};Volume.prototype.formatSDCard=function volume_formatSDCard(evt){var dialogHeaderID,dialogContentID;var self=this;if(!this.external){dialogHeaderID='format-sdcard-internal-title';dialogContentID='format-sdcard-internal-message';}else{dialogHeaderID='format-sdcard-title';dialogContentID='format-sdcard-message';}
|
||||
DialogService.confirm({id:dialogContentID},{title:dialogHeaderID,submitButton:{id:'format-sdcard-btnformat',style:'danger'},cancelButton:'cancel'}).then(function(result){if(result.type==='submit'){self.isFormatting=true;self.storages.sdcard.format();}});};Volume.prototype.enableUnmountSDCardBtn=function volume_enableUnmountSDCardBtn(enabled){if(this.external&&this.storages.sdcard.canBeMounted){var rule='button[class="eject-btn"]';this.rootElement.querySelector(rule).disabled=!enabled;if(enabled){this.setUnmountSDCardBtnVisible(enabled);}}};Volume.prototype.setUnmountSDCardBtnVisible=function volume_setUnmountSDCardBtnVisible(visible){if(this.external&&this.storages.sdcard.canBeMounted){var rule='li[class="eject-btn"]';this.rootElement.querySelector(rule).hidden=!visible;}};Volume.prototype.enableFormatSDCardBtn=function volume_enableFormatSDCardBtn(enabled,isFormatting){if(this.storages.sdcard.canBeFormatted){var formatBtn=this.rootElement.querySelector('.format-btn');formatBtn.disabled=!enabled;var l10nId='format-sdcard-'+this.getVolumeId();if(!enabled&&isFormatting){l10nId='formatting';}
|
||||
formatBtn.setAttribute('data-l10n-id',l10nId);}};var MediaStorage={init:function ms_init(){this._volumeList=this.initAllVolumeObjects();this._handleExternalUnrecognisedChanged=this.handleExternalUnrecognisedChanged.bind(this);this._updateInfo=this.updateInfo.bind(this);this.documentStorageListener=false;this.usmEnabledVolume={};this.umsVolumeShareState=false;this.updateListeners(this._updateInfo);document.addEventListener('visibilitychange',this);this.defaultMediaLocationList=document.querySelector('.default-media-location');this.defaultMediaLocation=document.getElementById('defaultMediaLocation');this.defaultMediaLocation.addEventListener('click',this);this.makeDefaultLocationMenu();document.addEventListener('DOMRetranslated',this);},initAllVolumeObjects:function ms_initAllVolumeObjects(){var volumes={};var totalVolumes=0;MEDIA_TYPE.forEach(function(type){var storages=navigator.getDeviceStorages(type);storages.forEach(function(storage){var name=storage.storageName;if(!volumes.hasOwnProperty(name)){volumes[name]={};totalVolumes++;}
|
||||
volumes[name][type]=storage;});});var volumeList=[];var externalIndex=0;var volumeListRootElement=document.getElementById('volume-list');for(var name in volumes){var volume;if(totalVolumes>1&&name==='sdcard'){volume=new Volume(name,false,0,volumes[name]);}else{volume=new Volume(name,true,externalIndex++,volumes[name]);}
|
||||
volume.createView(volumeListRootElement);volumeList.push(volume);}
|
||||
return volumeList;},handleEvent:function ms_handleEvent(evt){switch(evt.type){case'DOMRetranslated':this.updateInfo();break;case'change':if(evt.target.id==='defaultMediaLocation'){this.defaultLocationName=this.defaultMediaLocation.value;}else{this.updateInfo();}
|
||||
break;case'storage-state-change':var storageStatus=evt.reason;var storageName=evt.currentTarget.storageName;this.updateStorageStatus(storageStatus,storageName);break;case'click':this.showChangingDefaultStorageConfirmation();break;case'visibilitychange':this.updateListeners(this._updateInfo,true);break;}},makeDefaultLocationMenu:function ms_makeDefaultLocationMenu(){var self=this;SettingsCache.getSettings(function(allSettings){self.defaultLocationName=allSettings[DEFAULT_MEDIA_VOLUME_KEY];var defaultName=allSettings[DEFAULT_MEDIA_VOLUME_KEY];var selectionMenu=self.defaultMediaLocation;var selectedIndex=0;self._volumeList.forEach(function(volume,index){var option=document.createElement('option');option.value=volume.name;var l10nId=volume.getL10nId(true);option.setAttribute('data-l10n-id',l10nId);selectionMenu.appendChild(option);if(defaultName&&volume.name===defaultName){selectedIndex=index;}});var selectedOption=selectionMenu.options[selectedIndex];selectedOption.selected=true;if(self._volumeList.length===1){self.enableDefaultMediaLocationSelection(false);var obj={};obj[DEFAULT_MEDIA_VOLUME_KEY]=selectedOption.value;navigator.mozSettings.createLock().set(obj);}else if(self._volumeList.length>1){self.updateDefaultMediaLocation();selectionMenu.addEventListener('change',self);}});},showChangingDefaultStorageConfirmation:function ms_showChangingDefaultStorageConfirmation(){this.defaultMediaLocation.blur();var self=this;DialogService.confirm('change-default-media-location-confirmation',{submitButton:'change',cancelButton:'cancel'}).then(function(result){if(result.type==='submit'){setTimeout(function(){self.defaultMediaLocation.focus();});}});},updateListeners:function ms_updateListeners(callback,isVisibilitychange){var self=this;if(document.hidden){if(this.documentStorageListener){this._volumeList.forEach(function(volume){var volumeStorage=volume.storages.sdcard;volumeStorage.removeEventListener('change',self);volumeStorage.removeEventListener('storage-state-change',self);});navigator.mozSettings.removeObserver(EXTERNAL_UNRECOGNISED_KEY,this._handleExternalUnrecognisedChanged);this.documentStorageListener=false;}}else{if(!this.documentStorageListener){this._volumeList.forEach(function(volume){var volumeStorage=volume.storages.sdcard;volumeStorage.addEventListener('change',self);volumeStorage.addEventListener('storage-state-change',self);});SettingsCache.getSettings(function(allSettings){var isUnrecognised=allSettings[EXTERNAL_UNRECOGNISED_KEY];this.enableFormatSDCardBtnForUnrecognisedStorage(isUnrecognised);if(callback){callback();}
|
||||
if(isVisibilitychange&&(this._volumeList.length>1)){this.updateDefaultMediaLocation();}}.bind(this));navigator.mozSettings.addObserver(EXTERNAL_UNRECOGNISED_KEY,this._handleExternalUnrecognisedChanged);this.documentStorageListener=true;}}},enableFormatSDCardBtnForUnrecognisedStorage:function ms_enableFormatSDCardBtnForUnrecognisedStorage(enabled){if(this._volumeList.length===1){this._volumeList[0].isUnrecognised=enabled;this._volumeList[0].updateStorageUIState(enabled,true);this._volumeList[0].enableFormatSDCardBtn(enabled);}else if(this._volumeList.length>1){this._volumeList.forEach(function(volume){if(volume.external){volume.isUnrecognised=enabled;volume.updateStorageUIState(enabled,true);volume.enableFormatSDCardBtn(enabled);}}.bind(this));}},handleExternalUnrecognisedChanged:function ms_handleExternalUnrecognisedChanged(event){this.enableFormatSDCardBtnForUnrecognisedStorage(event.settingValue);},updateInfo:function ms_updateInfo(){var self=this;this.umsVolumeShareState=false;this._volumeList.forEach(function(volume){volume.updateInfo(function(state){if(state==='shared'){self.umsVolumeShareState=true;}});});},updateStorageStatus:function ms_updateStorageStatus(storageStatus,storageName){if(this._volumeList.length===1){this._volumeList[0].currentStorageStatus=storageStatus;this._volumeList[0].updateUIState(storageStatus);}else if(this._volumeList.length>1){this._volumeList.forEach(function(volume){if((storageName!=='sdcard')&&volume.external){volume.currentStorageStatus=storageStatus;volume.updateUIState(storageStatus);}else if((storageName==='sdcard')&&!volume.external){volume.currentStorageStatus=storageStatus;volume.updateUIState(storageStatus);}}.bind(this));if(storageStatus!=='Mounted'){this.enableDefaultMediaLocationSelection(false);if((storageName!=='sdcard')&&(this.defaultLocationName!=='sdcard')){if(storageStatus==='NoMedia'){this.setInternalStorageBeDefaultMediaLocation();}else if(storageStatus==='Idle'){setTimeout(function(){if(this._volumeList[1].currentStorageStatus==='Idle'){this.setInternalStorageBeDefaultMediaLocation();}}.bind(this),LATENCY_CHECK_STATUS_AFTER_IDLE_IN_MILLISECONDS);}}}else if(storageName!=='sdcard'){this.enableDefaultMediaLocationSelection(true);}}},updateDefaultMediaLocation:function ms_updateDefaultMediaLocation(){var externalVolume=this._volumeList[1];if(externalVolume.storages&&externalVolume.storages.sdcard){var self=this;var storageStatusReq=externalVolume.storages.sdcard.storageStatus();storageStatusReq.onsuccess=function storageStatusSuccess(evt){self._volumeList[1].currentStorageStatus=evt.target.result;var storageStatus=evt.target.result;if(storageStatus!=='Mounted'){self.enableDefaultMediaLocationSelection(false);if(self.defaultLocationName!=='sdcard'){if(storageStatus==='NoMedia'){self.setInternalStorageBeDefaultMediaLocation();}else if(storageStatus==='Idle'){setTimeout(function(){if(self._volumeList[1].currentStorageStatus==='Idle'){self.setInternalStorageBeDefaultMediaLocation();}},LATENCY_CHECK_STATUS_AFTER_IDLE_IN_MILLISECONDS);}}}else{self.enableDefaultMediaLocationSelection(true);}};}},setInternalStorageBeDefaultMediaLocation:function ms_setInternalStorageBeDefaultMediaLocation(){var selectedOption=this.defaultMediaLocation.options[0];selectedOption.selected=true;var obj={};obj[DEFAULT_MEDIA_VOLUME_KEY]=selectedOption.value;navigator.mozSettings.createLock().set(obj);},enableDefaultMediaLocationSelection:function ms_enableDefaultMediaLocationSelection(enabled){this.defaultMediaLocationList.setAttribute('aria-disabled',!enabled);this.defaultMediaLocation.disabled=!enabled;this.defaultMediaLocation.parentNode.setAttribute('aria-disabled',!enabled);}};var StackedBar=function(div){var container=div;var items=[];var totalSize=0;return{add:function sb_add(item){totalSize+=item.value;items.push(item);},refreshUI:function sb_refreshUI(){container.parentNode.setAttribute('aria-disabled',false);container.parentNode.hidden=false;items.forEach(function(item){var className='color-'+item.type;var ele=container.querySelector('.'+className);if(!ele){ele=document.createElement('span');ele.classList.add(className);ele.classList.add('stackedbar-item');container.appendChild(ele);}
|
||||
ele.style.width=(item.value*100)/totalSize+'%';});},reset:function sb_reset(){items=[];totalSize=0;container.parentNode.setAttribute('aria-disabled',true);container.parentNode.hidden=true;}};};return MediaStorage;});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/media_storage/media_storage'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var MediaStorage=require('panels/media_storage/media_storage');return function ctor_media_storage_panel(){return SettingsPanel({onInit:function(){MediaStorage.init();}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define('panels/messaging/panel',['require','shared/simslot_manager','shared/mobile_operator','modules/messaging','modules/settings_panel','modules/settings_service'],function(require){'use strict';var SIMSlotManager=require('shared/simslot_manager');var MobileOperator=require('shared/mobile_operator');var Messaging=require('modules/messaging');var SettingsPanel=require('modules/settings_panel');var SettingsService=require('modules/settings_service');var settings=window.navigator.mozSettings;return function ctor_messaing_panel(){var elements={};return SettingsPanel({onInit:function(panel){elements.optionsContainer=panel.querySelector('.options-container');elements.simcardsContainer=panel.querySelector('.simcards-container');elements.sim1=panel.querySelector('.sim1');elements.sim2=panel.querySelector('.sim2');if(!SIMSlotManager.isMultiSIM()){return Promise.resolve().then(Messaging.injectCBSTemplate(elements.optionsContainer)).then(Messaging.initCBS.bind(Messaging,panel,0)).then(Messaging.disableItems.bind(Messaging,panel)).then(function(){if(!elements.smsc){elements.smsc=panel.querySelector('.smsc .explanation');}}).then(this._updateSmsc.bind(null,0)).then(this._initDeliveryReportSettings);}},onBeforeShow:function(panel){if(SIMSlotManager.isMultiSIM()){return Promise.resolve().then(Messaging.disableItems.bind(Messaging,panel)).then(this._showDsds).then(this._initDeliveryReportSettings).then(this._initCarrierNames.bind(this)).then(this._bindSimcardsClickEvent.bind(this));}},_navigate:function(cardIndex){SettingsService.navigate('messaging-details',{cardIndex:cardIndex});},_bindSimcardsClickEvent:function(){var max=SIMSlotManager.getSlots().length;for(var cardIndex=0;cardIndex<max;cardIndex++){var simNode=elements['sim'+(cardIndex+1)];if(!simNode.hasAttribute('aria-disabled')){simNode.onclick=this._navigate.bind(this,cardIndex);}}},_initDeliveryReportSettings:function(){var requestStatusReportKeyForSms='ril.sms.requestStatusReport.enabled';var requestStatusReportKeyForMms='ril.mms.requestStatusReport.enabled';function setDeliveryReportSetting(key,value){var lock=settings.createLock();var setting={};setting[key]=value;lock.set(setting);}
|
||||
var request=settings.createLock().get(requestStatusReportKeyForSms);request.onsuccess=function onSuccessCb(){setDeliveryReportSetting(requestStatusReportKeyForMms,request.result[requestStatusReportKeyForSms]);};settings.addObserver(requestStatusReportKeyForSms,function addObserverCb(event){setDeliveryReportSetting(requestStatusReportKeyForMms,event.settingValue);});},_initCarrierNames:function(){var max=SIMSlotManager.getSlots().length;for(var cardIndex=0;cardIndex<max;cardIndex++){var simNode=elements['sim'+(cardIndex+1)];var holderNode=simNode.querySelector('small');var conn=SIMSlotManager.getMobileConnection(cardIndex);var operatorInfo=MobileOperator.userFacingInfo(conn);holderNode.textContent=operatorInfo.operator||'';}},_showDsds:function(){var max=SIMSlotManager.getSlots().length;for(var cardIndex=0;cardIndex<max;cardIndex++){var simNode=elements['sim'+(cardIndex+1)];if(SIMSlotManager.isSIMCardAbsent(cardIndex)){simNode.setAttribute('aria-disabled',true);}else{simNode.removeAttribute('aria-disabled');}}
|
||||
elements.simcardsContainer.hidden=false;},_updateSmsc:function(cardIndex){elements.smsc.innerHTML='';SIMSlotManager.get(cardIndex).getSmsc(function(result){if(result){var bdi=document.createElement('bdi');bdi.textContent=result;elements.smsc.appendChild(bdi);}else{elements.smsc.setAttribute('data-l10n-id','unknown-SMSC');}});}});};});
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define('panels/messaging_details/panel',['require','shared/simslot_manager','modules/messaging','modules/settings_panel'],function(require){'use strict';var SIMSlotManager=require('shared/simslot_manager');var Messaging=require('modules/messaging');var SettingsPanel=require('modules/settings_panel');var l10n=document.l10n;return function ctor_messaging_details_panel(){var elements={};var isInitialized=false;return SettingsPanel({onInit:function(panel){elements.optionsContainer=panel.querySelector('.options-container');elements.header=panel.querySelector('gaia-header > h1');},onBeforeShow:function(panel,options){var self=this;var injectPromise;var cardIndex=options.cardIndex;if(!isInitialized){isInitialized=true;injectPromise=Messaging.injectCBSTemplate(elements.optionsContainer);}
|
||||
return Promise.resolve(injectPromise).then(function updateElementReference(){if(!elements.smsc){elements.smsc=panel.querySelector('.smsc .explanation');}}).then(function updateUI(){Messaging.initCBS(panel,cardIndex);Messaging.disableItems(panel);self._updateHeader(cardIndex);self._updateSmsc(cardIndex);}).catch(function(error){console.error('Error : ',error);});},_updateHeader:function(cardIndex){l10n.setAttributes(elements.header,'messaging-sim-settings',{index:cardIndex+1});},_updateSmsc:function(cardIndex){elements.smsc.innerHTML='';SIMSlotManager.get(cardIndex).getSmsc(function(result){if(result){var bdi=document.createElement('bdi');bdi.textContent=result;elements.smsc.appendChild(bdi);}else{elements.smsc.setAttribute('data-l10n-id','unknown-SMSC');}});}});};});
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
define('panels/operator_settings/models/panel_model',['require','modules/base/module','modules/mvvm/observable','modules/mobile/supported_network_info'],function(require){'use strict';var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var NetworkInfo=require('modules/mobile/supported_network_info');const NETWORK_TYPE_CATEGORY={'gprs':'gsm','edge':'gsm','umts':'gsm','hsdpa':'gsm','hsupa':'gsm','hspa':'gsm','hspa+':'gsm','lte':'gsm','gsm':'gsm','is95a':'cdma','is95b':'cdma','1xrtt':'cdma','evdo0':'cdma','evdoa':'cdma','evdob':'cdma','ehrpd':'cdma'};var PanelModel=Module.create(function OperatorSettingsPanelModel(conn){this.super(Observable).call(this);this._voiceType=conn.voice&&conn.voice.type;NetworkInfo.getSupportedNetworkInfo(conn,(result)=>{if(result.gsm||result.wcdma||result.lte){this._hardwareSupportedMode='gsm';}else{this._hardwareSupportedMode='cdma';}});conn.addEventListener('voicechange',()=>{this._voiceType=conn.voice&&conn.voice.type;});}).extend(Observable);Observable.defineObservableProperty(PanelModel.prototype,'_hardwareSupportedMode',{value:null});Observable.defineObservableProperty(PanelModel.prototype,'_voiceType',{value:null});Observable.defineObservableProperty(PanelModel.prototype,'connectingMode',{dependency:['_voiceType','_hardwareSupportedMode'],get:function(){if(this._voiceType){return NETWORK_TYPE_CATEGORY[this._voiceType];}else{return this._hardwareSupportedMode;}}});return PanelModel;});define('panels/operator_settings/models/network_type_manager',['require','modules/base/module','modules/mvvm/observable','modules/mvvm/observable_array','shared/settings_helper','modules/mobile/supported_network_info'],function(require){'use strict';var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var ObservableArray=require('modules/mvvm/observable_array');var SettingsHelper=require('shared/settings_helper');var NetworkInfo=require('modules/mobile/supported_network_info');const SETTINGS_KEY='ril.radio.preferredNetworkType';var NetworkTypeManager=Module.create(function NetworkTypeManager(conn){if(!conn.setPreferredNetworkType){this.throw(`mobile connection does not support settings preferred network
|
||||
type`);}
|
||||
this.super(Observable).call(this);this._conn=conn;this._serviceId=[].indexOf.call(navigator.mozMobileConnections,conn);this._networkTypes=ObservableArray([]);this._supportedNetworkInfo=null;this._settingsHelper=SettingsHelper(SETTINGS_KEY);this._init(conn);}).extend(Observable);Object.defineProperty(NetworkTypeManager.prototype,'networkTypes',{enumerable:true,get:function(){return this._networkTypes;}});Observable.defineObservableProperty(NetworkTypeManager.prototype,'preferredNetworkType',{readonly:true,value:null});NetworkTypeManager.prototype._init=function(){this.getSupportedNetworkInfo().then((info)=>{if(!info.networkTypes){return Promise.reject('not-supported');}
|
||||
this._networkTypes.reset(info.networkTypes);return this._conn.getPreferredNetworkType();}).then((preferredNetworkType)=>{this._preferredNetworkType=preferredNetworkType;}).catch((error)=>{if(error==='not-supported'){this.debug('_init: not-supported');}else{this.error('_init: could not retrieve network type: '+error);}});};NetworkTypeManager.prototype.getSupportedNetworkInfo=function(){if(this._supportedNetworkInfo){return Promise.resolve(this._supportedNetworkInfo);}else{return new Promise((resolve)=>{NetworkInfo.getSupportedNetworkInfo(this._conn,(info)=>{this._supportedNetworkInfo=info;resolve(info);});});}};NetworkTypeManager.prototype.setPreferredNetworkType=function(networkType){return this._conn.setPreferredNetworkType(networkType).then(()=>{this._settingsHelper.get((values)=>{values[this._serviceId]=networkType;this._settingsHelper.set(values);});this._preferredNetworkType=networkType;},(error)=>{this.error('setPreferredNetworkType: '+error);});};return NetworkTypeManager;});define('panels/operator_settings/models/roaming_preference_manager',['require','modules/base/module','modules/mvvm/observable','shared/settings_helper'],function(require){'use strict';var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var SettingsHelper=require('shared/settings_helper');const SETTINGS_KEY='ril.roaming.preference';var RoamingPreferenceManager=Module.create(function RoamingPreferenceManager(conn){if(!conn.setRoamingPreference){this.throw(`mobile connection does not support setting roaming
|
||||
preference`);}
|
||||
this.super(Observable).call(this);this._conn=conn;this._serviceId=[].indexOf.call(navigator.mozMobileConnections,conn);var defaultRoamingPreferences=[].map.call(navigator.mozMobileConnections,()=>{return'any';});this._settingsHelper=SettingsHelper(SETTINGS_KEY,defaultRoamingPreferences);this._init(conn);}).extend(Observable);Observable.defineObservableProperty(RoamingPreferenceManager.prototype,'preference',{readonly:true,value:null});RoamingPreferenceManager.prototype._init=function(conn){this._conn.getRoamingPreference().then((preference)=>{this._preference=preference;}).catch((error)=>{this.error('_init: could not retrieve roaming preference type: '+error);});};RoamingPreferenceManager.prototype.setRoamingPreference=function(pref){return this._conn.setRoamingPreference(pref).then(()=>{this._settingsHelper.get((values)=>{values[this._serviceId]=pref;this._settingsHelper.set(values);});this._preference=pref;},(error)=>{this.error('setRoamingPreference: '+error);});};return RoamingPreferenceManager;});define('panels/operator_settings/models/operator_item',['require','modules/base/module','modules/mvvm/observable'],function(require){'use strict';var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');const STATE={IDLE:'idle',CONNECTING:'connecting',CONNECTED:'connected',FAILED:'failed'};const TYPE={AVAILABLE:'available',FORBIDDEN:'forbidden',UNKNOWN:'unknown'};var OperatorItem=Module.create(function OperatorItem(network){this.super(Observable).call(this);this._network=network;this._name=network.shortName||network.longName;switch(network.state){case'connected':case'current':this._state=STATE.CONNECTED;this._type=TYPE.AVAILABLE;break;case'available':this._state=STATE.IDLE;this._type=TYPE.AVAILABLE;break;case'forbidden':this._state=STATE.IDLE;this._type=TYPE.FORBIDDEN;break;default:this._state=STATE.IDLE;this._type=TYPE.UNKNOWN;break;}
|
||||
this.observe('state',this._updateInfo.bind(this));this._updateInfo();}).extend(Observable);Object.defineProperty(OperatorItem,'STATE',{get:function(){return STATE;}});Object.defineProperty(OperatorItem,'TYPE',{get:function(){return TYPE;}});Object.defineProperty(OperatorItem.prototype,'name',{get:function(){return this._name;}});Object.defineProperty(OperatorItem.prototype,'network',{get:function(){return this._network;}});Observable.defineObservableProperty(OperatorItem.prototype,'state',{readonly:true,value:null});Observable.defineObservableProperty(OperatorItem.prototype,'info',{readonly:true,value:''});OperatorItem.prototype.setState=function oi_setState(state){this._state=state;};OperatorItem.prototype._updateInfo=function oi__updateInfo(){this._info=this._state===STATE.IDLE?this._type:this._state;this._info=this._info||TYPE.UNKNOWN;};return OperatorItem;});define('panels/operator_settings/models/mobile_connection_wrapper',['require','modules/base/module','modules/mvvm/observable'],function(require){'use strict';var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');const STATE={IDLE:0,BUSY:1};function Task(promise){var canceled=false;var task=new Promise((resolve,reject)=>{promise.then((result)=>{if(!canceled){resolve(result);}else{reject('canceled');}},(error)=>{if(!canceled){reject(error);}else{reject('canceled');}});});task.cancel=function(){canceled=true;};return task;}
|
||||
var Wrapper=Module.create(function MobileConnetionWrapper(conn){this.super(Observable).call(this);this._conn=conn;this._curSearch=null;this._state=STATE.IDLE;}).extend(Observable);Object.defineProperty(Wrapper,'STATE',{get:function(){return STATE;}});Observable.defineObservableProperty(Wrapper.prototype,'state',{readonly:true});Object.defineProperty(Wrapper.prototype,'networkSelectionMode',{get:function(){return this._conn.networkSelectionMode;}});Wrapper.prototype.search=function mcw_search(){this.debug('search');if(this._state!==STATE.IDLE){this.error('mobile connection is busy');return Promise.reject('busy');}
|
||||
this._state=STATE.BUSY;this._curSearch=Task(this._conn.getNetworks());return this._curSearch.then((networks)=>{this.debug('search completed');this._state=STATE.IDLE;return networks;}).catch((error)=>{this._state=STATE.IDLE;if(error==='canceled'){this.debug('search canceled');}else{this.debug('search error: '+error);}
|
||||
return Promise.reject(error);});};Wrapper.prototype.stop=function mcw_stop(){this.debug('stop');if(this._curSearch){this._curSearch.cancel();this._curSearch=null;}};Wrapper.prototype.connect=function mcw_connect(network){this.debug('connect');if(this._state!==STATE.IDLE){return Promise.reject('busy');}
|
||||
this._state=STATE.BUSY;return this._conn.selectNetwork(network).then(()=>{this.debug('select network succeed');this._state=STATE.IDLE;}).catch((error)=>{this.debug('select network error: '+error);this._state=STATE.IDLE;return Promise.reject(error);});};Wrapper.prototype.setAutoSelection=function mcw_setAutoSelection(){this.debug('setAutoSelection');if(this._state!==STATE.IDLE){return Promise.reject('busy');}
|
||||
this._state=STATE.BUSY;return this._conn.selectNetworkAutomatically().then(()=>{this.debug('setAutoSelection succeed');this._state=STATE.IDLE;}).catch((error)=>{this.debug('setAutoSelection error: '+error);this._state=STATE.IDLE;return Promise.reject(error);});};return Wrapper;});define('panels/operator_settings/models/auto_selection_model',['require','modules/defer','modules/state_model','panels/operator_settings/models/mobile_connection_wrapper'],function(require){'use strict';var Defer=require('modules/defer');var StateModel=require('modules/state_model');var MobileConnectionWrapper=require('panels/operator_settings/models/mobile_connection_wrapper');const AS_STATE={UNKNOWN:0,ENABLED:1,DISABLED:2};const AS_STATE_MAP={'manual':AS_STATE.DISABLED,'automatic':AS_STATE.ENABLED};var AutoSelectionModel=function(connWrapper){return StateModel({onInit:function(){this._pendingRequest=null;connWrapper.observe('state',(newState)=>{this._checkPendingRequest(newState);});return AS_STATE_MAP[connWrapper.networkSelectionMode]||AS_STATE.UNKNOWN;},onGetState:function(){return Promise.resolve(AS_STATE_MAP[connWrapper.networkSelectionMode]||AS_STATE.UNKNOWN);},onSetState:function(state){switch(connWrapper.state){case MobileConnectionWrapper.STATE.IDLE:if(state===AS_STATE.ENABLED){return connWrapper.setAutoSelection().then(()=>{return AS_STATE.ENABLED;},()=>{return Promise.reject(AS_STATE_MAP[connWrapper.networkSelectionMode]);});}else{return Promise.resolve(AS_STATE.DISABLED);}
|
||||
break;case MobileConnectionWrapper.STATE.BUSY:return this._getPendingRequest(state).promise;}},_getPendingRequest:function(state){if(!this._pendingRequest){this._pendingRequest=Defer();}
|
||||
this._pendingRequest.state=state;return this._pendingRequest;},_checkPendingRequest:function(newState){var pendingRequest=this._pendingRequest;if(newState!==MobileConnectionWrapper.STATE.IDLE||pendingRequest===null){return;}
|
||||
this._pendingRequest=null;switch(pendingRequest.state){case AS_STATE.ENABLED:connWrapper.setAutoSelection().then(()=>{pendingRequest.resolve(AS_STATE.ENABLED);},()=>{pendingRequest.reject(AS_STATE_MAP[connWrapper.networkSelectionMode]);});break;case AS_STATE.DISABLED:pendingRequest.resolve(AS_STATE.DISABLED);break;}}});};Object.defineProperty(AutoSelectionModel,'STATE',{get:function(){return AS_STATE;}});return AutoSelectionModel;});define('panels/operator_settings/models/operator_manager',['require','modules/base/module','modules/mvvm/observable','modules/mvvm/observable_array','panels/operator_settings/models/operator_item','panels/operator_settings/models/mobile_connection_wrapper','panels/operator_settings/models/auto_selection_model'],function(require){'use strict';var Module=require('modules/base/module');var Observable=require('modules/mvvm/observable');var ObservableArray=require('modules/mvvm/observable_array');var OperatorItem=require('panels/operator_settings/models/operator_item');var MobileConnectionWrapper=require('panels/operator_settings/models/mobile_connection_wrapper');var AutoSelectionModel=require('panels/operator_settings/models/auto_selection_model');const RECONNECT_TIMEOUT=5000;var OperatorManager=Module.create(function OperatorManager(conn){this.super(Observable).call(this);this._connWrapper=MobileConnectionWrapper(conn);this._operators=ObservableArray();this._autoSelectionModel=AutoSelectionModel(this._connWrapper);this._autoSelectionState=this._autoSelectionModel.targetState;this._autoSelectionModel.observe('targetState',(newState)=>{this._autoSelectionState=newState;});this.observe('_autoSelectionState',(newState)=>{this._autoSelectionModel.targetState=newState;});this.observe('_autoSelectionState',(newState)=>{if(newState===AutoSelectionModel.STATE.ENABLED){this._connectedOperatorItem=null;}else if(newState===AutoSelectionModel.STATE.DISABLED){this.search();}});this._connecting=false;this._connectedOperatorItem=null;}).extend(Observable);Object.defineProperty(OperatorManager,'AUTO_SELECTION_STATE',{get:function(){return AutoSelectionModel.STATE;}});Object.defineProperty(OperatorManager.prototype,'operators',{get:function(){return this._operators;}});Observable.defineObservableProperty(OperatorManager.prototype,'autoSelectionState',{readonly:true,value:null});Observable.defineObservableProperty(OperatorManager.prototype,'connectedOperatorItem',{readonly:true,value:null});Observable.defineObservableProperty(OperatorManager.prototype,'searching',{readonly:true,value:false});OperatorManager.prototype.search=function(){if(this._searching){return Promise.resolve();}
|
||||
this.debug('search');this._searching=true;return this._connWrapper.search().then((networks)=>{networks=networks||[];var operators=networks.map((network)=>OperatorItem(network));operators.forEach((operator)=>{if(operator.network.state===OperatorItem.STATE.CONNECTED){this._connectedOperatorItem=operator;}});this._operators.reset(operators);}).catch((error)=>{if(error!=='busy'){this._operators.reset([]);}
|
||||
this.error('could not retrieve any network operator: '+error);}).then(()=>{this._searching=false;});};OperatorManager.prototype.stop=function(){this._connWrapper.stop();this._searching=false;};OperatorManager.prototype.connect=function(operatorItem){if(this._connecting||operatorItem===this._connectedOperatorItem){return Promise.resolve();}
|
||||
this.debug('connect');this._connecting=true;operatorItem.setState(OperatorItem.STATE.CONNECTING);return this._connWrapper.connect(operatorItem.network).then(()=>{operatorItem.setState(OperatorItem.STATE.CONNECTED);this._connectedOperatorItem=operatorItem;}).catch((error)=>{this.error('unable to connect to the network: '+error);operatorItem.setState(OperatorItem.STATE.FAILED);setTimeout(function(originalOperatorItem){operatorItem.setState(OperatorItem.STATE.IDLE);if(originalOperatorItem&&this.autoSelectionState===AutoSelectionModel.STATE.DISABLED){this.connect(originalOperatorItem);}}.bind(this,this._connectedOperatorItem),RECONNECT_TIMEOUT);}).then(()=>{this._connecting=false;});};OperatorManager.prototype.setAutoSelection=function(enabled){this.debug('setAutoSelection: '+enabled);this._autoSelectionModel.targetState=enabled?AutoSelectionModel.STATE.ENABLED:AutoSelectionModel.STATE.DISABLED;};return OperatorManager;});define('panels/operator_settings/views/network_type_item_template',['require'],function(require){'use strict';function Template(networkTypeMap,networkType,recycled){var container=null;if(recycled){container=recycled;}else{container=document.createElement('option');}
|
||||
container.value=networkType;var textInfo=networkTypeMap(networkType);if(textInfo.l10nId){container.setAttribute('data-l10n-id',textInfo.l10nId);}else if(textInfo.text){container.textContent=textInfo.text;}else{container.textContent=networkType;}
|
||||
return container;}
|
||||
return function TemplateFactory(networkTypeMap){return Template.bind(null,networkTypeMap);};});define('panels/operator_settings/views/network_type_selector',['require','modules/dialog_service','modules/base/module','modules/customized_network_type_map','modules/mvvm/list_view','panels/operator_settings/views/network_type_item_template'],function(require){'use strict';var DialogService=require('modules/dialog_service');var Module=require('modules/base/module');var CustomizedNetworkTypeMap=require('modules/customized_network_type_map');var ListView=require('modules/mvvm/list_view');var NetworkTypeItemTemplate=require('panels/operator_settings/views/network_type_item_template');var NetworkTypeSelector=Module.create(function NetworkTypeSelector(root){this._root=root;this._manager=null;this._customizedNetworkTypeMap=null;this._networkTypeMap=null;var networkTypeItemTemplate=NetworkTypeItemTemplate(this._getTextInfoForNetworkType.bind(this));this._networkTypeOptions=ListView(this._root,null,networkTypeItemTemplate);this._root.addEventListener('blur',()=>{this._manager.setPreferredNetworkType(this._root.value).catch(()=>{DialogService.alert('preferredNetworkTypeAlertErrorMessage',{title:'preferredNetworkTypeAlertTitle'});});});this._boundUpdateSelector=this._updateSelector.bind(this);});NetworkTypeSelector.prototype._getTextInfoForNetworkType=function(type){if(this._customizedNetworkTypeMap&&type in this._customizedNetworkTypeMap){return{text:this._customizedNetworkTypeMap[type]};}else if(this._networkTypeMap){return{l10nId:this._networkTypeMap(type)};}else{return type;}};NetworkTypeSelector.prototype._updateSelector=function(type){this._root.value=type;};NetworkTypeSelector.prototype.init=function(networkTypeManager){this._manager=networkTypeManager;if(!this._manager){return;}
|
||||
return CustomizedNetworkTypeMap.get().then((customizedMap)=>{this._customizedNetworkTypeMap=customizedMap;}).then(()=>{return this._manager.getSupportedNetworkInfo();}).then((info)=>{this._networkTypeMap=info.l10nIdForType;this._networkTypeOptions.set(this._manager.networkTypes);this._networkTypeOptions.enabled=true;this._manager.observe('preferredNetworkType',this._boundUpdateSelector);this._updateSelector(this._manager.preferredNetworkType);});};NetworkTypeSelector.prototype.uninit=function(){if(!this._manager){return;}
|
||||
this._manager.unobserve('preferredNetworkType',this._boundUpdateSelector);this._networkTypeOptions.set(null);this._networkTypeOptions.enabled=false;this._manager=null;};return NetworkTypeSelector;});define('panels/operator_settings/views/roaming_preference_selector',['require','modules/base/module'],function(require){'use strict';var Module=require('modules/base/module');var RoamingPreferenceSelector=Module.create(function RoamingPreferenceSelector(root){this._root=root;this._manager=null;this._root.addEventListener('blur',()=>{this._manager.setRoamingPreference(this._root.value);});this._boundUpdateSelector=this._updateSelector.bind(this);});RoamingPreferenceSelector.prototype._updateSelector=function(preference){this._root.value=preference;};RoamingPreferenceSelector.prototype.init=function(manager){this._manager=manager;if(!this._manager){return;}
|
||||
this._manager.observe('preference',this._boundUpdateSelector);this._boundUpdateSelector(this._manager.preference);};RoamingPreferenceSelector.prototype.uninit=function(){if(!this._manager){return;}
|
||||
this._manager.unobserve('preference',this._boundUpdateSelector);this._manager=null;};return RoamingPreferenceSelector;});define('panels/operator_settings/views/auto_selection_checkbox',['require','modules/base/module','panels/operator_settings/models/operator_manager'],function(require){'use strict';var Module=require('modules/base/module');var OperatorManager=require('panels/operator_settings/models/operator_manager');var AutoSelectionCheckbox=Module.create(function AutoSelectionCheckbox(root){this._root=root;this._manager=null;this._root.addEventListener('change',()=>{this._manager.setAutoSelection(this._root.checked);});this._boundUpdate=this._update.bind(this);});AutoSelectionCheckbox.prototype._update=function(state){this._root.checked=state===OperatorManager.AUTO_SELECTION_STATE.ENABLED||state===OperatorManager.AUTO_SELECTION_STATE.ENABLING;};AutoSelectionCheckbox.prototype.init=function(manager){this._manager=manager;if(!this._manager){return;}
|
||||
this._manager.observe('autoSelectionState',this._boundUpdate);this._boundUpdate(this._manager.autoSelectionState);};AutoSelectionCheckbox.prototype.uninit=function(){if(!this._manager){return;}
|
||||
this._manager.unobserve('autoSelectionState',this._boundUpdate);this._manager=null;};return AutoSelectionCheckbox;});define('panels/operator_settings/views/operator_item_template',['require'],function(require){'use strict';function OperatorItemTemplate(onItemClick,operatorItem,recycled){var container=null;var name;var info;var link;if(recycled){container=recycled;name=container.querySelector('span');info=container.querySelector('small');link=container.querySelector('a');}else{name=document.createElement('span');info=document.createElement('small');link=document.createElement('a');container=document.createElement('li');link.appendChild(name);link.appendChild(info);container.appendChild(link);container.classList.add('operatorItem');}
|
||||
name.textContent=operatorItem.name;operatorItem.observe('info',function(){info.setAttribute('data-l10n-id','operator-info-'+operatorItem.info);});info.setAttribute('data-l10n-id','operator-info-'+operatorItem.info);if(typeof onItemClick==='function'){container.onclick=function(){onItemClick(operatorItem);};}
|
||||
return container;}
|
||||
return function OperatorItemTemplateFactory(onItemClick){return OperatorItemTemplate.bind(null,onItemClick);};});define('panels/operator_settings/views/available_operator_list',['require','modules/mvvm/list_view','panels/operator_settings/models/operator_manager','panels/operator_settings/views/operator_item_template'],function(require){'use strict';var ListView=require('modules/mvvm/list_view');var OperatorManager=require('panels/operator_settings/models/operator_manager');var OperatorItemTemplate=require('panels/operator_settings/views/operator_item_template');function AvailableOperatorList(root){this._operatorManager=null;this._root=root;this._elements={operatorListRoot:root.querySelector('.available-operators-list'),searchBtnListItem:root.querySelector('.search-btn-li'),searchBtn:root.querySelector('.search-btn'),operatorListInfo:root.querySelector('.search-info')};this._operatorListView=ListView(this._elements.operatorListRoot,null,OperatorItemTemplate((operatorItem)=>{this._operatorManager.connect(operatorItem);}));this._elements.searchBtn.addEventListener('click',()=>{this._operatorManager.search();});this._boundUpdateVisibility=this._updateVisibility.bind(this);this._boundUpdateInfo=this._updateInfo.bind(this);}
|
||||
AvailableOperatorList.prototype.init=function(operatorManager){this._operatorManager=operatorManager;if(!this._operatorManager){return;}
|
||||
this._operatorManager.observe('autoSelectionState',this._boundUpdateVisibility);this._boundUpdateVisibility(this._operatorManager.autoSelectionState);this._operatorManager.observe('autoSelectionState',this._boundUpdateInfo);this._operatorManager.observe('searching',this._boundUpdateInfo);this._boundUpdateInfo();this._operatorListView.set(this._operatorManager.operators);this._operatorListView.enabled=true;};AvailableOperatorList.prototype.uninit=function(){if(!this._operatorManager){return;}
|
||||
this._operatorManager.unobserve('autoSelectionState',this._boundUpdateVisibility);this._operatorManager.unobserve('autoSelectionState',this._boundUpdateInfo);this._operatorManager.unobserve('searching',this._boundUpdateInfo);this._operatorListView.set(null);this._operatorListView.enabled=false;this._operatorManager=null;};AvailableOperatorList.prototype._updateVisibility=function(autoSelectionState){switch(autoSelectionState){case OperatorManager.AUTO_SELECTION_STATE.ENABLED:this._elements.operatorListRoot.hidden=true;this._elements.searchBtnListItem.hidden=true;break;case OperatorManager.AUTO_SELECTION_STATE.DISABLED:this._elements.operatorListRoot.hidden=false;this._elements.searchBtnListItem.hidden=false;break;}};AvailableOperatorList.prototype._updateInfo=function(){switch(this._operatorManager.autoSelectionState){case OperatorManager.AUTO_SELECTION_STATE.ENABLED:this._elements.operatorListInfo.hidden=false;this._elements.operatorListInfo.setAttribute('data-l10n-id','operator-turnAutoSelectionOff');break;case OperatorManager.AUTO_SELECTION_STATE.DISABLED:if(this._operatorManager.searching){this._elements.operatorListInfo.hidden=false;this._elements.operatorListInfo.setAttribute('data-l10n-id','scanning');}else{this._elements.operatorListInfo.hidden=true;}
|
||||
break;}};return function(root){return new AvailableOperatorList(root);};});define('panels/operator_settings/panel',['require','modules/settings_panel','dsds_settings','panels/operator_settings/models/panel_model','panels/operator_settings/models/network_type_manager','panels/operator_settings/models/roaming_preference_manager','panels/operator_settings/models/operator_manager','panels/operator_settings/views/network_type_selector','panels/operator_settings/views/roaming_preference_selector','panels/operator_settings/views/auto_selection_checkbox','panels/operator_settings/views/available_operator_list'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var DsdsSettings=require('dsds_settings');var PanelModel=require('panels/operator_settings/models/panel_model');var NetworkTypeManager=require('panels/operator_settings/models/network_type_manager');var RoamingPreferenceManager=require('panels/operator_settings/models/roaming_preference_manager');var OperatorManager=require('panels/operator_settings/models/operator_manager');var NetworkTypeSelector=require('panels/operator_settings/views/network_type_selector');var RoamingPreferenceSelector=require('panels/operator_settings/views/roaming_preference_selector');var AutoSelectionCheckbox=require('panels/operator_settings/views/auto_selection_checkbox');var AvailableOperatorList=require('panels/operator_settings/views/available_operator_list');return function(){return SettingsPanel({onInit:function(panel){this._panel=panel;this._elements={header:panel.querySelector('gaia-header'),networkTypeSelector:panel.querySelector('.preferred-network-type select'),roamingPreferenceMenuItem:panel.querySelector('.operator-roaming-preference'),roamingPreferenceSelector:panel.querySelector('.operator-roaming-preference select'),autoSelectionMenuItem:panel.querySelector('.auto-select'),autoSelectionCheckbox:panel.querySelector('.auto-select gaia-switch'),availableOperators:panel.querySelector('.available-operators')};if(navigator.mozMobileConnections.length>1){this._elements.header.dataset.href='#carrier-detail';}else{this._elements.header.dataset.href='#carrier';}
|
||||
this._networkTypeSelector=NetworkTypeSelector(this._elements.networkTypeSelector);this._roamingPreferenceSelector=RoamingPreferenceSelector(this._elements.roamingPreferenceSelector);this._autoSelectionCheckbox=AutoSelectionCheckbox(this._elements.autoSelectionCheckbox);this._availableOperatorList=AvailableOperatorList(this._elements.availableOperators);this._boundOnConnectingModeChange=this._onConnectingModeChange.bind(this);},onBeforeShow:function(panel){var serviceId=DsdsSettings.getIccCardIndexForCellAndDataSettings();var panelModel=this._getInstance(PanelModel,serviceId);var operatorManager=this._getInstance(OperatorManager,serviceId);var roamingPreferenceManager=this._getInstance(RoamingPreferenceManager,serviceId);var networkTypeManager=this._getInstance(NetworkTypeManager,serviceId);this._setPanelModel(panelModel);this._availableOperatorList.init(operatorManager);this._roamingPreferenceSelector.init(roamingPreferenceManager);this._autoSelectionCheckbox.init(operatorManager);return this._networkTypeSelector.init(networkTypeManager);},onHide:function(){this._setPanelModel(null);this._networkTypeSelector.uninit();this._roamingPreferenceSelector.uninit();this._autoSelectionCheckbox.uninit();this._availableOperatorList.uninit();},_getInstance:function(ctor,serviceId){if(!this._instances){this._instances=new Map();}
|
||||
if(!this._instances.has(ctor)){this._instances.set(ctor,{});}
|
||||
var instance=this._instances.get(ctor)[serviceId];if(!instance){var conn=navigator.mozMobileConnections[serviceId];instance=ctor(conn);this._instances.get(ctor)[serviceId]=instance;}
|
||||
return instance;},_setPanelModel:function(panelModel){if(this._panelModel){this._panelModel.unobserve('connectingMode',this._boundOnConnectingModeChange);}
|
||||
this._panelModel=panelModel;if(this._panelModel){this._panelModel=panelModel;panelModel.observe('connectingMode',this._boundOnConnectingModeChange);this._onConnectingModeChange(panelModel.connectingMode);}},_onConnectingModeChange:function(mode){this._elements.roamingPreferenceMenuItem.hidden=(mode!=='cdma');this._elements.autoSelectionMenuItem.hidden=this._elements.availableOperators.hidden=(mode!=='gsm');}});};});
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
|
||||
define('panels/root/bluetooth_item',['require','modules/settings_service','modules/bluetooth/bluetooth_context'],function(require){'use strict';var SettingsService=require('modules/settings_service');var BtContext=require('modules/bluetooth/bluetooth_context');var _debug=false;var debug=function(){};if(_debug){debug=function bti_debug(msg){console.log('--> [BluetoothItem]: '+msg);};}
|
||||
function BluetoothItem(element){this._enabled=false;this._element=element;this._boundRefreshMenuDescription=this._refreshMenuDescription.bind(this,element);}
|
||||
BluetoothItem.prototype={_refreshMenuDescription:function bt__refreshMenuDescription(element){if(!document.l10n){return;}
|
||||
if(BtContext.enabled){if(BtContext.numberOfPairedDevices===0){element.setAttribute('data-l10n-id','bt-status-nopaired');}else{document.l10n.setAttributes(element,'bt-status-paired',{name:BtContext.firstPairedDeviceName,n:BtContext.numberOfPairedDevices-1});}}else{element.setAttribute('data-l10n-id','bt-status-turnoff');}},get enabled(){return this._enabled;},set enabled(value){if(this._enabled===value){return;}
|
||||
this._enabled=value;if(this._enabled){BtContext.observe('enabled',this._boundRefreshMenuDescription);BtContext.observe('numberOfPairedDevices',this._boundRefreshMenuDescription);this._boundRefreshMenuDescription();}else{BtContext.unobserve('enabled',this._boundRefreshMenuDescription);BtContext.unobserve('numberOfPairedDevices',this._boundRefreshMenuDescription);}},_navigatePanelWithVersionCheck:function bt__navigatePanelWithVersionCheck(){debug('navigate bluetooth panel');SettingsService.navigate('bluetooth');}};return function ctor_bluetoothItem(element){return new BluetoothItem(element);};});define('panels/root/nfc_item',['require','shared/settings_listener'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');function NFCItem(elements){if(!navigator.mozNfc){return;}
|
||||
elements.nfcMenuItem.hidden=false;this._checkbox=elements.nfcCheckBox;this._checkbox.addEventListener('change',()=>this._onCheckboxChanged());SettingsListener.observe('nfc.status',undefined,(status)=>this._onNfcStatusChanged(status));}
|
||||
NFCItem.prototype={_onCheckboxChanged:function ni_onCheckboxChanged(){this._checkbox.disabled=true;},_onNfcStatusChanged:function ni_onNfcStatusChanged(status){if(status==='enabling'||status==='disabling'){this._checkbox.disabled=true;}else if(status==='enabled'||status==='disabled'){this._checkbox.disabled=false;}}};return function ctor_nfcItem(elements){return new NFCItem(elements);};});define('panels/root/language_item',['require','shared/language_list'],function(require){'use strict';var LanguageList=require('shared/language_list');function LanguageItem(element){this._enabled=false;this._boundRefreshText=this._refreshText.bind(this,element);}
|
||||
LanguageItem.prototype={_refreshText:function l_refeshText(element){LanguageList.get(function displayLang(languages,currentLanguage){element.textContent=LanguageList.wrapBidi(currentLanguage,languages[currentLanguage]);});},get enabled(){return this._enabled;},set enabled(value){if(this._enabled===value||!document.l10n){return;}
|
||||
this._enabled=value;if(this._enabled){document.addEventListener('DOMRetranslated',this._boundRefreshText);this._boundRefreshText();}else{document.removeEventListener('DOMRetranslated',this._boundRefreshText);}}};return function ctor_languageItem(element){return new LanguageItem(element);};});define('panels/root/battery_item',['require','modules/battery'],function(require){'use strict';var Battery=require('modules/battery');function BatteryItem(element){this._enabled=false;this._element=element;this._boundRefreshText=this._refreshText.bind(this,element);}
|
||||
BatteryItem.prototype={_refreshText:function b_refreshText(element){if(!document.l10n){return;}
|
||||
document.l10n.setAttributes(element,'battery-level-percent',{level:Battery.level});if(element.hidden){element.hidden=false;}},get enabled(){return this._enabled;},set enabled(value){if(this._enabled===value){return;}
|
||||
this._enabled=value;if(this._enabled){Battery.observe('level',this._boundRefreshText);Battery.observe('state',this._boundRefreshText);this._boundRefreshText();}else{Battery.unobserve('level',this._boundRefreshText);Battery.unobserve('state',this._boundRefreshText);}}};return function ctor_batteryItem(element){return new BatteryItem(element);};});define('panels/root/findmydevice_item',['require'],function(require){'use strict';function FindMyDeviceItem(element){this._itemEnabled=false;this._FMDEnabled=false;this._boundRefreshText=this._refreshText.bind(this,element);this._boundFMDEnabledChanged=this._onFMDEnabledChanged.bind(this);}
|
||||
FindMyDeviceItem.prototype={_refreshText:function fmd_refresh_text(element){if(!document.l10n){return;}
|
||||
element.setAttribute('data-l10n-id',this._FMDEnabled?'enabled':'disabled');element.hidden=false;},_onFMDEnabledChanged:function fmd_enabled_changed(value){this._FMDEnabled=value;if(this._itemEnabled){this._boundRefreshText();}},get enabled(){return this._itemEnabled;},set enabled(value){if(this._itemEnabled===value){return;}
|
||||
this._itemEnabled=value;if(this._itemEnabled){SettingsListener.observe('findmydevice.enabled',false,this._boundFMDEnabledChanged);}else{SettingsListener.unobserve('findmydevice.enabled',this._boundFMDEnabledChanged);}}};return function ctor_findMyDeviceItem(element){return new FindMyDeviceItem(element);};});define('modules/storage_helper',['require'],function(require){'use strict';var StorageHelper={_getReadableFileSize:function getReadableFileSize(bytes,digits){if(bytes===undefined){return{};}
|
||||
var units=['B','KB','MB','GB','TB','PB','EB','ZB','YB'];var size,e;if(bytes){e=Math.floor(Math.log(bytes)/Math.log(1024));size=(bytes/Math.pow(1024,e)).toFixed(digits||0);}else{e=0;size='0';}
|
||||
return{size:size,unit:units[e]};},showFormatedSize:function showFormatedSize(element,l10nId,size){if(size===undefined||isNaN(size)){element.textContent='';return;}
|
||||
var fixedDigits=(size<1024*1024)?0:2;var sizeInfo=this._getReadableFileSize(size,fixedDigits);document.l10n.formatValue('byteUnit-'+sizeInfo.unit).then(unit=>{document.l10n.setAttributes(element,l10nId,{size:sizeInfo.size,unit:unit});});}};return StorageHelper;});define('panels/root/storage_usb_item',['require','shared/settings_listener','modules/media_storage','modules/storage_helper'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var MediaStorage=require('modules/media_storage');var StorageHelper=require('modules/storage_helper');var _debug=false;var debug=function(){};if(_debug){debug=function storage_debug(msg){console.log('--> [USBStorageItem]: '+msg);};}
|
||||
function USBStorageItem(elements){this._enabled=false;this._elements=elements;this._keyUmsEnabled='ums.enabled';this._boundUmsEnabledHandler=this._umsEnabledHandler.bind(this);this._boundUpdateVolumeState=this._updateVolumeState.bind(this);}
|
||||
USBStorageItem.prototype={get enabled(){return this._enabled;},set enabled(value){if(this._enabled===value){return;}else{this._enabled=value;}
|
||||
if(value){SettingsListener.observe(this._keyUmsEnabled,false,this._boundUmsEnabledHandler);MediaStorage.observe('volumeState',this._boundUpdateVolumeState);MediaStorage.observe('freeSize',this._boundUpdateVolumeState);document.addEventListener('DOMRetranslated',this);}else{SettingsListener.unobserve(this._keyUmsEnabled,this._boundUmsEnabledHandler);MediaStorage.unobserve('volumeState',this._boundUpdateVolumeState);MediaStorage.unobserve('freeSize',this._boundUpdateVolumeState);document.removeEventListener('DOMRetranslated',this);}},_umsEnabledHandler:function storage_umsEnabledHandler(enabled){debug('_umsEnabledHandler');this._enabled=enabled;this._updateUmsDesc();},handleEvent:function storage_handleEvent(evt){switch(evt.type){case'DOMRetranslated':this._updateVolumeState();break;}},_updateUmsDesc:function storage_updateUmsDesc(){var key;debug('enabled:'+this._enabled+'/'+'volumeState:'+MediaStorage.volumeState);if(this._enabled){key='enabled';}else if(MediaStorage.volumeState==='shared'){key='umsUnplugToDisable';}else{key='disabled';}
|
||||
this._elements.usbEnabledInfoBlock.setAttribute('data-l10n-id',key);},_updateVolumeState:function storage_updateVolumeState(){debug('_updateVolumeState');this._updateUmsDesc();switch(MediaStorage.volumeState){case'available':StorageHelper.showFormatedSize(this._elements.mediaStorageDesc,'availableSize',MediaStorage.freeSize);this._lockMediaStorageMenu(false);break;case'shared':this._elements.mediaStorageDesc.removeAttribute('data-l10n-id');this._elements.mediaStorageDesc.textContent='';this._lockMediaStorageMenu(false);break;case'unavailable':this._elements.mediaStorageDesc.setAttribute('data-l10n-id','no-storage');this._lockMediaStorageMenu(true);break;}},_lockMediaStorageMenu:function storage_setMediaMenuState(lock){if(lock){this._elements.mediaStorageSection.setAttribute('aria-disabled',true);}else{this._elements.mediaStorageSection.removeAttribute('aria-disabled');}}};return function ctor_usb_storage_item(elements){return new USBStorageItem(elements);};});define('panels/root/storage_app_item',['require','modules/app_storage','modules/storage_helper'],function(require){'use strict';var AppStorage=require('modules/app_storage');var StorageHelper=require('modules/storage_helper');function AppStorageItem(element){this._enabled=false;this._element=element;this._boundUpdateAppFreeSpace=this._updateAppFreeSpace.bind(this);}
|
||||
AppStorageItem.prototype={get enabled(){return this._enabled;},set enabled(value){if(this._enabled===value){return;}else{this._enabled=value;}
|
||||
if(value){AppStorage.observe('freeSize',this._boundUpdateAppFreeSpace);this._updateAppFreeSpace();document.addEventListener('DOMRetranslated',this);}else{AppStorage.unobserve('freeSize',this._boundUpdateAppFreeSpace);document.removeEventListener('DOMRetranslated',this);}},_updateAppFreeSpace:function storage_updateAppFreeSpace(){StorageHelper.showFormatedSize(this._element,'availableSize',AppStorage.freeSize);},handleEvent:function storage_handleEvent(evt){switch(evt.type){case'DOMRetranslated':this._updateAppFreeSpace();break;}}};return function ctor_app_storage_item(element){return new AppStorageItem(element);};});define('panels/root/wifi_item',['require','modules/wifi_context'],function(require){'use strict';var WifiContext=require('modules/wifi_context');function WifiItem(element){this._enabled=false;this._boundUpdateWifiDesc=this._updateWifiDesc.bind(this,element);}
|
||||
WifiItem.prototype={set enabled(value){if(value===this._enabled||!navigator.mozWifiManager){return;}
|
||||
this._enabled=value;if(this._enabled){this._boundUpdateWifiDesc();WifiContext.addEventListener('wifiStatusTextChange',this._boundUpdateWifiDesc);}else{WifiContext.removeEventListener('wifiStatusTextChange',this._boundUpdateWifiDesc);}},get enabled(){return this._enabled;},_updateWifiDesc:function root_updateWifiDesc(element){element.setAttribute('data-l10n-id',WifiContext.wifiStatusText.id);if(WifiContext.wifiStatusText.args){element.setAttribute('data-l10n-args',JSON.stringify(WifiContext.wifiStatusText.args));}else{element.removeAttribute('data-l10n-args');}
|
||||
window.dispatchEvent(new CustomEvent('wificontext-ready'));}};return function ctor_wifiItem(element){return new WifiItem(element);};});define('panels/root/screen_lock_item',['require','shared/settings_listener'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');function ScreenLockItem(element){this._itemEnabled=false;this._lockscreenEnable=false;this._lockscreenEnableEvent='lockscreen.enabled';this._lockscreenPasscodeEnableEvent='lockscreen.passcode-lock.enabled';this._element=element;this._boundUpdateEnable=this._updateEnable.bind(this);this._boundUpdatePasscodeEnable=this._updatePasscodeEnable.bind(this);}
|
||||
ScreenLockItem.prototype={set enabled(value){if(value===this._itemEnabled){return;}else{this._itemEnabled=value;if(this._itemEnabled){SettingsListener.observe(this._lockscreenEnableEvent,false,this._boundUpdateEnable);SettingsListener.observe(this._lockscreenPasscodeEnableEvent,false,this._boundUpdatePasscodeEnable);}else{SettingsListener.unobserve(this._lockscreenEnableEvent,this._boundUpdateEnable);SettingsListener.unobserve(this._lockscreenPasscodeEnableEvent,this._boundUpdatePasscodeEnable);}}},get enabled(){return this._itemEnabled;},_updateEnable:function sl_updateEnable(enabled){this._lockscreenEnable=enabled;var l10nId=enabled?'screenLock-enabled-with-no-passcode':'disabled';this._element.setAttribute('data-l10n-id',l10nId);},_updatePasscodeEnable:function sl_updatePasscodeEnable(enabled){var l10nId='disabled';if(this._lockscreenEnable){l10nId=enabled?'screenLock-enabled-with-passcode':'screenLock-enabled-with-no-passcode';}
|
||||
this._element.setAttribute('data-l10n-id',l10nId);}};return function ctor_screen_lock_item(element){return new ScreenLockItem(element);};});define('panels/root/sim_security_item',['require','shared/simslot_manager','shared/airplane_mode_helper','modules/sim_security'],function(require){'use strict';var SIMSlotManager=require('shared/simslot_manager');var AirplaneModeHelper=require('shared/airplane_mode_helper');var SimSecurity=require('modules/sim_security');function SimSecurityItem(element){this._element=element;this._itemEnabled=false;this._cardIndex=0;this._activeSlot=this._getActiveSlot();this._boundUpdateUI=this._updateUI.bind(this);SimSecurity.addEventListener('pin-enabled',()=>{this._boundUpdateUI();});SimSecurity.addEventListener('pin-disabled',()=>{this._boundUpdateUI();});}
|
||||
SimSecurityItem.prototype={set enabled(enabled){if(SIMSlotManager.isMultiSIM()||!this._activeSlot||enabled===this._itemEnabled){return;}
|
||||
this._itemEnabled=enabled;if(this._itemEnabled){this._boundUpdateUI();AirplaneModeHelper.addEventListener('statechange',this._boundUpdateUI);}else{AirplaneModeHelper.removeEventListener('statechange',this._boundUpdateUI);}},get enabled(){return this._itemEnabled;},_updateUI:function(){var promise=new Promise((resolve)=>{AirplaneModeHelper.ready(()=>{this._element.style.fontStyle='italic';var airplaneModeStatus=AirplaneModeHelper.getStatus();if(airplaneModeStatus==='enabled'){this._element.setAttribute('data-l10n-id','simCardNotReady');return resolve();}
|
||||
var cardState=this._activeSlot.simCard.cardState;switch(cardState){case null:this._element.setAttribute('data-l10n-id','noSimCard');return resolve();case'unknown':this._element.setAttribute('data-l10n-id','unknownSimCardState');return resolve();}
|
||||
this._element.style.fontStyle='normal';SimSecurity.getCardLock(this._cardIndex,'pin').then((result)=>{var enabled=result.enabled;this._element.setAttribute('data-l10n-id',enabled?'enabled':'disabled');return resolve();});});});return promise;},_getActiveSlot:function(){var slot=SIMSlotManager.get(this._cardIndex);if(slot&&!slot.isAbsent()){return slot;}}};return function ctor_sim_security_item(element){return new SimSecurityItem(element);};});/* VULPES_ROOT_CAPABILITIES */
|
||||
/** Load only panels supported by this platform; never invent hardware values. */
|
||||
(function() {
|
||||
'use strict';
|
||||
var definitions = [
|
||||
['BluetoothItem', 'bluetooth_item', !!navigator.mozBluetooth, '.bluetooth-desc'],
|
||||
['NFCItem', 'nfc_item', !!navigator.mozNfc, '.nfc-settings'],
|
||||
['LanguageItem', 'language_item', true, '.language-desc'],
|
||||
['BatteryItem', 'battery_item', !!(navigator.battery || navigator.mozBattery), '.battery-desc'],
|
||||
['FindMyDeviceItem', 'findmydevice_item', !!navigator.mozId, '.findmydevice-desc'],
|
||||
['StorageUSBItem', 'storage_usb_item', !!navigator.getDeviceStorages, '.media-storage-section, #menuItem-enableStorage'],
|
||||
['StorageAppItem', 'storage_app_item', !!navigator.getDeviceStorage, '.application-storage-desc'],
|
||||
['WifiItem', 'wifi_item', !!navigator.mozWifiManager, '#wifi-desc'],
|
||||
['ScreenLockItem', 'screen_lock_item', true, '.screenLock-desc'],
|
||||
['SimSecurityItem', 'sim_security_item', !!navigator.mozMobileConnections, '.simCardLock-desc']
|
||||
];
|
||||
var supported = definitions.filter(function(item) {return item[2];});
|
||||
define('panels/root/low_priority_items', supported.map(function(item) {
|
||||
return 'panels/root/' + item[1];
|
||||
}), function() {
|
||||
var modules = arguments, items = {};
|
||||
supported.forEach(function(item, index) {items[item[0]] = modules[index];});
|
||||
definitions.filter(function(item) {return !item[2];}).forEach(function(item) {
|
||||
Array.prototype.forEach.call(document.querySelectorAll(item[3]), function(element) {
|
||||
(element.closest('li') || element).hidden = true;
|
||||
});
|
||||
});
|
||||
return items;
|
||||
});
|
||||
})();
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
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;}});};});
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
define('panels/screen_lock_passcode/panel',['require','modules/settings_utils','modules/dialog_panel','shared/passcode_helper'],function(require){'use strict';var SettingsUtils=require('modules/settings_utils');var DialogPanel=require('modules/dialog_panel');var PasscodeHelper=require('shared/passcode_helper');return function ctor_screenlockPasscode(){var mozSettings=window.navigator.mozSettings;return DialogPanel({_elements:{},_mode:'create',_leftApp:false,_passcodeBuffer:'',_checkingLength:{'create':8,'new':8,'edit':4,'confirm':4,'confirmLock':4},_headerL10nIdMapping:{'create':'new-passcode','edit':'current-passcode','new':'new-passcode','confirm':'enter-passcode','confirmLock':'enter-passcode'},_submitButtonL10nIdMapping:{'new':'change','create':'create','edit':'','confirm':'','confirmLock':''},onInit:function(panel){this._elements.panel=panel;this._elements.gaiaHeader=panel.querySelector('gaia-header');this._elements.header=panel.querySelector('gaia-header h1');this._elements.passcodeInput=panel.querySelector('.passcode-input');this._elements.passcodeDigits=panel.querySelectorAll('.passcode-digit');this._elements.passcodeContainer=panel.querySelector('.passcode-container');this._elements.submitButton=panel.querySelector('button[type="submit"]');this._elements.submitButtonText=this._elements.submitButton.querySelector('span');this._bindEvents();},_bindEvents:function(){this._elements.passcodeInput.onkeypress=this._onPasscodeInputKeypress.bind(this);this._elements.passcodeContainer.onclick=this._onPasscodeContainerClick.bind(this);},_onPasscodeContainerClick:function(evt){evt.preventDefault();this._elements.passcodeInput.focus();},_onPasscodeInputKeypress:function(evt){var keyCode=evt.keyCode;if(keyCode!==0&&keyCode!==8){return;}
|
||||
evt.preventDefault();if(this._passcodeBuffer===''){this._hideErrorMessage();}
|
||||
var code=evt.charCode;if(code!==0&&(code<0x30||code>0x39)){return;}
|
||||
var key=String.fromCharCode(code);if(evt.charCode===0){if(this._passcodeBuffer.length>0){this._passcodeBuffer=this._getPasscodeBuffer('all');if(this._elements.panel.dataset.passcodeStatus==='success'){this._resetPasscodeStatus();}}}else if(this._passcodeBuffer.length<8){this._passcodeBuffer+=key;}
|
||||
this._updatePassCodeUI();this._processPasscode();},_updateHeaderAndButtonUI:function(){var headerL10nId=this._headerL10nIdMapping[this._mode];var buttonL10nId=this._submitButtonL10nIdMapping[this._mode];if(headerL10nId){this._elements.header.setAttribute('data-l10n-id',headerL10nId);}
|
||||
if(buttonL10nId===''){this._elements.submitButton.disabled=true;this._elements.submitButtonText.removeAttribute('data-l10n-id');this._elements.submitButtonText.textContent='';}else if(buttonL10nId){this._elements.submitButton.disabled=false;this._elements.submitButtonText.setAttribute('data-l10n-id',buttonL10nId);}
|
||||
SettingsUtils.runHeaderFontFit(this._elements.gaiaHeader);},_updatePassCodeUI:function(){for(var i=0;i<8;i++){if(i<this._passcodeBuffer.length){this._elements.passcodeDigits[i].dataset.dot=true;}else{delete this._elements.passcodeDigits[i].dataset.dot;}}},_processPasscode:function(){if(this._passcodeBuffer.length===this._checkingLength[this._mode]){switch(this._mode){case'create':case'new':var originalPasscode=this._getPasscodeBuffer('original');var confirmPasscode=this._getPasscodeBuffer('confirm');if(originalPasscode!==confirmPasscode){this._passcodeBuffer='';this._updatePassCodeUI();this._showErrorMessage();}else{this._showSuccessPasscodeStatus();}
|
||||
break;case'confirm':this._checkPasscode().then((result)=>{if(result){mozSettings.createLock().set({'lockscreen.passcode-lock.enabled':false}).then(()=>{this._showSuccessPasscodeStatus();this.cancel();}).catch((error)=>{console.log(error);});}else{this._passcodeBuffer='';this._updatePassCodeUI();}});break;case'confirmLock':this._checkPasscode().then((result)=>{if(result){mozSettings.createLock().set({'lockscreen.enabled':false,'lockscreen.passcode-lock.enabled':false}).then(()=>{this._showSuccessPasscodeStatus();this.cancel();}).catch((error)=>{console.log(error);});}else{this._passcodeBuffer='';this._updatePassCodeUI();}});break;case'edit':this._checkPasscode().then((result)=>{if(result){this._passcodeBuffer='';this._updatePassCodeUI();this._showDialogInMode('new');}else{this._passcodeBuffer='';this._updatePassCodeUI();}});break;}}},_showDialogInMode:function(mode){this._mode=mode;this._elements.panel.dataset.mode=mode;this._hideErrorMessage();this._updatePassCodeUI();this._updateHeaderAndButtonUI();},onSubmit:function(){if(this._elements.panel.dataset.passcodeStatus!=='success'){this._showErrorMessage();this._elements.passcodeInput.focus();return Promise.reject();}else{var originalPasscode=this._getPasscodeBuffer('original');return mozSettings.createLock().set({'lockscreen.passcode-lock.enabled':true}).then(()=>{return PasscodeHelper.set(originalPasscode);});}},onCancel:function(){this._elements.passcodeInput.blur();},onBeforeShow:function(panel,options){this._mode=options.mode;if(!this._leftApp){this._showDialogInMode(this._mode);}
|
||||
this._leftApp=false;},onShow:function(){this._elements.passcodeInput.focus();},onHide:function(){this._leftApp=document.hidden;if(!this._leftApp){this._passcodeBuffer='';}},_checkPasscode:function(){return PasscodeHelper.check(this._passcodeBuffer).then((result)=>{if(result){this._hideErrorMessage();}else{this._showErrorMessage();}
|
||||
return result;}).catch(()=>{this._showErrorMessage();});},_showErrorMessage:function(){this._elements.panel.dataset.passcodeStatus='error';},_hideErrorMessage:function(){this._elements.panel.dataset.passcodeStatus='';},_resetPasscodeStatus:function(){this._elements.panel.dataset.passcodeStatus='';},_showSuccessPasscodeStatus:function(){this._elements.panel.dataset.passcodeStatus='success';},_getPasscodeBuffer:function(part){if(part==='original'){return this._passcodeBuffer.substring(0,4);}else if(part==='confirm'){return this._passcodeBuffer.substring(4,8);}else if(part==='all'){return this._passcodeBuffer.substring(0,this._passcodeBuffer.length-1);}else{console.log('You are using _getPasscodeBuffer wrongly, '+'please check your argument again - '+part);}}});};});
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
var Format={padLeft:function(input,len,padWith){padWith=padWith||' ';var pad=len-(input+'').length;while(--pad>-1){input=padWith+input;}
|
||||
return input;}};define("shared/format",function(){});(function(exports){var VERSION=3;var SEARCH_CACHE_KEY='search.cache';var SEARCH_PROVIDER_KEY='search.provider';var DEFAULT_PROVIDERS_URL='/shared/js/search_providers.json';var provider=null;var providers={};var defaultEngine=null;var updatedFun;var readyPromise;var resolver;function extend(dest,source){for(var k in source){if(source.hasOwnProperty(k)){var value=source[k];if(dest.hasOwnProperty(k)&&typeof dest[k]==='object'&&typeof value==='object'){extend(dest[k],value);}else{dest[k]=value;}}}
|
||||
return dest;}
|
||||
function resolveUrl(urlConf){var params=Object.keys(urlConf.params).map(function(k){return k+'='+urlConf.params[k];}).join('&');return urlConf.url+(params?'?'+params:'');}
|
||||
function loadProviderConfig(){LazyLoader.getJSON(DEFAULT_PROVIDERS_URL).then(result=>{var conns=navigator.mozMobileConnections||[];var mccs=Array.prototype.slice.call(conns).map(function(conn){if(conn.voice&&conn.voice.network){return Format.padLeft(conn.voice.network.mcc,3,'0')+'-'+
|
||||
Format.padLeft(conn.voice.network.mnc,3,'0');}});var engines=SearchProvider.pickEngines(result,mccs,result.partner_code||null,navigator.language);defaultEngine=engines.defaultEngine;providers=engines.providers;var cache={};cache[SEARCH_CACHE_KEY]={};cache[SEARCH_CACHE_KEY].defaultEngine=defaultEngine;cache[SEARCH_CACHE_KEY].providers=providers;cache[SEARCH_CACHE_KEY].version=VERSION;navigator.mozSettings.createLock().set(cache);providersLoaded();});}
|
||||
function providersLoaded(){SettingsListener.observe(SEARCH_PROVIDER_KEY,false,value=>{if(value===false||!(value in providers)){provider=defaultEngine;}else{provider=value;}
|
||||
if(resolver&&isReady()){resolver();resolver=null;}
|
||||
if(updatedFun){updatedFun();}});}
|
||||
function isReady(){return provider!==null&&Object.keys(providers).length;}
|
||||
var SearchProvider=function(key){if(!provider||!(key in providers[provider])){return false;}
|
||||
return providers[provider][key];};SearchProvider.providerUpdated=function(cb){updatedFun=cb;};SearchProvider.setProvider=function(value){if(!(value in providers)){return false;}
|
||||
var setting={};setting[SEARCH_PROVIDER_KEY]=value;navigator.mozSettings.createLock().set(setting);};SearchProvider.selected=function(){return provider;};SearchProvider.providers=function(){return providers;};SearchProvider.pickEngines=function(config,sims,partnerCode,locale){config=JSON.parse(JSON.stringify(config));var engine=config.defaultEngines;var usersConfig={defaultEngine:null,providers:{}};if(partnerCode in config.partnerConfig&&locale in config.partnerConfig[partnerCode]){engine=config.partnerConfig[partnerCode][locale];}
|
||||
sims.forEach(function(sim){if(sim in config.simConfigs&&locale in config.simConfigs[sim]){engine=config.simConfigs[sim][locale];}});usersConfig.defaultEngine=engine.defaultEngine;Object.keys(engine.providers).forEach(function(provider){var obj=config.search_providers[provider];if(locale in config.locales&&provider in config.locales[locale]){obj=extend(obj,config.locales[locale][provider]);}
|
||||
obj=extend(obj,engine.providers[provider]);usersConfig.providers[provider]={'title':obj.title,'searchUrl':resolveUrl(obj.search),'suggestUrl':resolveUrl(obj.suggest)};});return usersConfig;};SearchProvider.ready=function(){if(readyPromise){return readyPromise;}
|
||||
var req=navigator.mozSettings.createLock().get(SEARCH_CACHE_KEY);req.onsuccess=function(){if(req.result[SEARCH_CACHE_KEY]&&req.result[SEARCH_CACHE_KEY].version===VERSION){defaultEngine=req.result[SEARCH_CACHE_KEY].defaultEngine;providers=req.result[SEARCH_CACHE_KEY].providers;providersLoaded();}else{loadProviderConfig();}};readyPromise=new Promise(resolve=>{resolver=resolve;});return readyPromise;};exports.SearchProvider=SearchProvider;})(window);define("shared/search_provider",(function(global){return function(){var ret,fn;return ret||global.SearchProvider;};}(this)));define('panels/search/search',['require','shared/format','shared/search_provider'],function(require){require('shared/format');var SearchProvider=require('shared/search_provider');function Search(){this._searchEngineSelect=null;}
|
||||
Search.prototype.init=function(searchEngineSelect){this._searchEngineSelect=searchEngineSelect;SearchProvider.ready().then(()=>{this.drawProviders();SearchProvider.providerUpdated(this.drawProviders.bind(this));});};Search.prototype.drawProviders=function(){if(!this._searchEngineSelect){return;}
|
||||
this._searchEngineSelect.innerHTML='';var selectFragment=document.createDocumentFragment();var optionNode=document.createElement('option');var providers=SearchProvider.providers();Object.keys(providers).forEach(function(provider){var option=optionNode.cloneNode();option.value=provider;option.text=providers[provider].title;if(provider===SearchProvider.selected()){option.selected=true;}
|
||||
selectFragment.appendChild(option);});this._searchEngineSelect.appendChild(selectFragment);};return function(){return new Search();};});define('panels/search/panel',['require','modules/settings_panel','panels/search/search'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var Search=require('panels/search/search');var search;function onInit(panel){var searchEngineSelect=panel.querySelector('[name="search.provider"]');search=Search();search.init(searchEngineSelect);}
|
||||
return function(){return SettingsPanel({onInit:onInit});};});
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
define('panels/simcard_manager/sim_ui_model',['require'],function(require){'use strict';var SimUIModel=function(cardIndex){this._cardIndex=cardIndex;this._enabled=false;this._absent=false;this._locked=false;this._defaultName={id:'simWithIndex',args:{index:this._cardIndex+1}};this._name=this._defaultName;this._number='';this._operator=null;};SimUIModel.prototype={getInfo:function(){var keys=['enabled','absent','locked','name','number','operator'];var info={};keys.forEach(function(key){info[key]=this['_'+key];}.bind(this));return info;},setState:function(key,options){switch(key){case'nosim':this._enabled=false;this._absent=true;this._locked=false;this._number='';this._operator={id:'noSimCard'};this._name=this._defaultName;break;case'locked':this._enabled=false;this._absent=false;this._locked=true;this._number='';this._operator={id:'sim-pin-locked'};this._name=this._defaultName;break;case'blocked':this._enabled=true;this._absent=true;this._locked=false;this._number='';this._operator=null;this._name={id:'noSimCard'};break;case'normal':this._enabled=true;this._absent=false;this._locked=false;this._number=options.number;if(options.operator){this._operator={text:options.operator};}else{this._operator={id:'no-operator'};}
|
||||
this._name=this._defaultName;break;}}};return function ctor_simUIModel(cardIndex){return new SimUIModel(cardIndex);};});define('panels/simcard_manager/simcard_manager',['require','shared/sanitizer','shared/sim_settings_helper','shared/airplane_mode_helper','shared/mobile_operator','panels/simcard_manager/sim_ui_model'],function(require){'use strict';var l10n=document.l10n;var Sanitizer=require('shared/sanitizer');var SimSettingsHelper=require('shared/sim_settings_helper');var AirplaneModeHelper=require('shared/airplane_mode_helper');var MobileOperator=require('shared/mobile_operator');var SimUIModel=require('panels/simcard_manager/sim_ui_model');var SimCardManager=function(elements){this._elements=elements;this._simcards=[];this._isAirplaneMode=false;};SimCardManager.prototype={init:function scm_init(){this._elements.outgoingCallSelect.addEventListener('change',this);this._elements.outgoingMessagesSelect.addEventListener('change',this);this._addOutgoingDataSelectEvent();this._addVoiceChangeEventOnConns();this._addCardStateChangeEventOnIccs();this._addLocalizedChangeEventOnIccs();SimSettingsHelper.observe('outgoingData',this._outgoingDataChangeEvent.bind(this));this._addAirplaneModeChangeEvent();this._isAirplaneMode=AirplaneModeHelper.getStatus()==='enabled'?true:false;this._initSimCardsInfo();this._initSimCardManagerUI();},simItemView:function({simIndex}){return Sanitizer.escapeHTML`<li class="sim-card sim-card-${simIndex}">
|
||||
<div class="sim-card-icon"></div>
|
||||
<div class="information-container">
|
||||
<p class="sim-card-name"></p>
|
||||
<p class="sim-card-operator"></p>
|
||||
<bdi class="sim-card-number"></bdi>
|
||||
</div>
|
||||
</li>`;},_initSimCardsInfo:function scm__initSimCardsInfo(){var conns=window.navigator.mozMobileConnections;for(var cardIndex=0;cardIndex<conns.length;cardIndex++){var conn=conns[cardIndex];var iccId=conn.iccId;var simcard=SimUIModel(cardIndex);this._simcards.push(simcard);this._updateCardState(cardIndex,iccId);}},handleEvent:function scm_handlEvent(evt){var cardIndex=evt.target.value;if(cardIndex===SimSettingsHelper.EMPTY_OPTION_VALUE){return;}
|
||||
switch(evt.target){case this._elements.outgoingCallSelect:SimSettingsHelper.setServiceOnCard('outgoingCall',cardIndex);break;case this._elements.outgoingMessagesSelect:SimSettingsHelper.setServiceOnCard('outgoingMessages',cardIndex);break;}},_outgoingDataChangeEvent:function scm__outgoingDataChangeEvent(cardIndex){this._elements.outgoingDataSelect.value=cardIndex;},_addOutgoingDataSelectEvent:function scm__addOutgoingDataSelectEvent(){var prevCardIndex;var newCardIndex;this._elements.outgoingDataSelect.addEventListener('focus',function(){prevCardIndex=this.selectedIndex;newCardIndex=this.selectedIndex;});this._elements.outgoingDataSelect.addEventListener('blur',function(){newCardIndex=this.selectedIndex;if(prevCardIndex!==newCardIndex){l10n.formatValue('change-outgoing-data-confirm').then(value=>{var wantToChange=window.confirm(value);if(wantToChange){SimSettingsHelper.setServiceOnCard('outgoingData',newCardIndex);}else{this.selectedIndex=prevCardIndex;}});}});},_getSimCardsCount:function scm__getSimCardsCount(){return this._simcards.length;},_getSimCardInfo:function scm__getSimCardInfo(cardIndex){return this._simcards[cardIndex].getInfo();},_getSimCard:function scm__getSimCard(cardIndex){return this._simcards[cardIndex];},_updateSimCardsUI:function scm__updateSimCardsUI(){this._simcards.forEach(function(simcard,cardIndex){this._updateSimCardUI(cardIndex);}.bind(this));},_updateSimCardUI:function scm__updateSimCardUI(cardIndex){var simcardInfo=this._getSimCardInfo(cardIndex);var selectors=['name','number','operator'];var cardSelector='.sim-card-'+cardIndex;var cardDom=this._elements.simCardContainer.querySelector(cardSelector);cardDom.classList.toggle('absent',simcardInfo.absent);cardDom.classList.toggle('locked',simcardInfo.locked);cardDom.classList.toggle('enabled',simcardInfo.enabled);cardDom.classList.toggle('with-number',!!simcardInfo.number);selectors.forEach(function(selector){var targetSelector=cardSelector+' .sim-card-'+selector;var element=this._elements.simCardContainer.querySelector(targetSelector);if(selector==='number'){element.textContent=simcardInfo[selector];}else{var l10nObj=simcardInfo[selector];if(l10nObj.id){l10n.setAttributes(element,l10nObj.id,l10nObj.args);}else{element.removeAttribute('data-l10n-id');element.textContent=l10nObj.text;}}}.bind(this));},_initSimCardManagerUI:function scm__initSimCardManagerUI(){this._initSimCardsUI();this._updateSelectOptionsUI();this._updateSimCardsUI();this._updateSimSettingsUI();},_initSimCardsUI:function scm__initSimCardsUI(){var simItemHTMLs=[];this._simcards.forEach(function(simcard,index){simItemHTMLs.push(this.simItemView({simIndex:index.toString()}));}.bind(this));this._elements.simCardContainer.innerHTML=simItemHTMLs.join('');},_updateSimSettingsUI:function scm__updateSimSettingsUI(){var firstCardInfo=this._simcards[0].getInfo();var secondCardInfo=this._simcards[1].getInfo();var hidden=firstCardInfo.absent&&secondCardInfo.absent||this._isAirplaneMode;this._elements.simSettingsHeader.hidden=hidden;this._elements.simSettingsList.hidden=hidden;},_updateSelectOptionsUI:function scm__updateSelectOptionsUI(){var firstCardInfo=this._simcards[0].getInfo();var secondCardInfo=this._simcards[1].getInfo();if(!firstCardInfo.absent&&!secondCardInfo.absent){SimSettingsHelper.getCardIndexFrom('outgoingCall',function(cardIndex){this._updateSelectOptionUI('outgoingCall',cardIndex,this._elements.outgoingCallSelect);}.bind(this));SimSettingsHelper.getCardIndexFrom('outgoingMessages',function(cardIndex){this._updateSelectOptionUI('outgoingMessages',cardIndex,this._elements.outgoingMessagesSelect);}.bind(this));SimSettingsHelper.getCardIndexFrom('outgoingData',function(cardIndex){this._updateSelectOptionUI('outgoingData',cardIndex,this._elements.outgoingDataSelect);}.bind(this));}else{var selectedCardIndex;if(firstCardInfo.absent&&secondCardInfo.absent){selectedCardIndex=0;}else{selectedCardIndex=firstCardInfo.absent?1:0;}
|
||||
this._elements.outgoingCallSelect.disabled=true;this._elements.outgoingMessagesSelect.disabled=true;this._elements.outgoingDataSelect.disabled=true;this._updateSelectOptionUI('outgoingCall',selectedCardIndex,this._elements.outgoingCallSelect);this._updateSelectOptionUI('outgoingMessages',selectedCardIndex,this._elements.outgoingMessagesSelect);this._updateSelectOptionUI('outgoingData',selectedCardIndex,this._elements.outgoingDataSelect);}},_updateSelectOptionUI:function scm__updateSelectOptionUI(storageKey,selectedCardIndex,selectDOM){while(selectDOM.firstChild){selectDOM.removeChild(selectDOM.firstChild);}
|
||||
this._simcards.forEach(function(simcard,index){var simcardInfo=simcard.getInfo();var option=document.createElement('option');option.value=index;if(simcardInfo.absent){option.value=SimSettingsHelper.EMPTY_OPTION_VALUE;option.text=SimSettingsHelper.EMPTY_OPTION_TEXT;}else{if(simcardInfo.name.id){l10n.setAttributes(option,simcardInfo.name.id,simcardInfo.name.args);}else{option.text=simcardInfo.name.text;}}
|
||||
if(index==selectedCardIndex){option.selected=true;}
|
||||
selectDOM.add(option);});if(storageKey==='outgoingCall'||storageKey==='outgoingMessages'){var option=document.createElement('option');option.value=SimSettingsHelper.ALWAYS_ASK_OPTION_VALUE;option.setAttribute('data-l10n-id','sim-manager-always-ask');if(SimSettingsHelper.ALWAYS_ASK_OPTION_VALUE===selectedCardIndex){option.selected=true;}
|
||||
selectDOM.add(option);}},_isSimCardLocked:function scm__isSimCardLocked(cardState){var lockedState=['pinRequired','pukRequired','networkLocked','serviceProviderLocked','corporateLocked','network1Locked','network2Locked','hrpdNetworkLocked','ruimCorporateLocked','ruimServiceProviderLocked'];return lockedState.indexOf(cardState)!==-1;},_isSimCardBlocked:function scm__isSimCardBlocked(cardState){var uselessState=['permanentBlocked'];return uselessState.indexOf(cardState)!==-1;},_addVoiceChangeEventOnConns:function scm__addVoiceChangeEventOnConns(){var conns=window.navigator.mozMobileConnections;for(var i=0;i<conns.length;i++){var iccId=conns[i].iccId;conns[i].addEventListener('voicechange',this._updateCardStateWithUI.bind(this,i,iccId));}},_addCardStateChangeEventOnIccs:function scm__addCardStateChangeEventOnIccs(){var conns=window.navigator.mozMobileConnections;var iccManager=window.navigator.mozIccManager;for(var i=0;i<conns.length;i++){var iccId=conns[i].iccId;var icc=iccManager.getIccById(iccId);if(icc){this._addChangeEventOnIccByIccId(iccId);}}},_addLocalizedChangeEventOnIccs:function scm__addLocalizedChangeEventOnIccs(){var conns=window.navigator.mozMobileConnections;document.addEventListener('DOMRetranslated',function(){for(var i=0;i<conns.length;i++){var iccId=conns[i].iccId;this._updateCardStateWithUI(i,iccId);}}.bind(this));},_addChangeEventOnIccByIccId:function scm__addChangeEventOnIccByIccId(iccId){var self=this;var icc=window.navigator.mozIccManager.getIccById(iccId);if(icc){icc.addEventListener('cardstatechange',function(){var cardIndex=self._getCardIndexByIccId(iccId);self._updateCardStateWithUI(cardIndex,iccId);if(self._isSimCardBlocked(icc.cardState)){self._updateSelectOptionsUI();}});}},_addAirplaneModeChangeEvent:function scm__addAirplaneModeChangeEvent(){var self=this;AirplaneModeHelper.addEventListener('statechange',function(state){if(state==='enabled'||state==='disabled'){var enabled=(state==='enabled')?true:false;self._isAirplaneMode=enabled;self._updateCardsState();self._updateSimCardsUI();self._updateSimSettingsUI();}});},_updateCardsState:function scm__updateCardsState(){var conns=window.navigator.mozMobileConnections;for(var cardIndex=0;cardIndex<conns.length;cardIndex++){var iccId=conns[cardIndex].iccId;this._updateCardState(cardIndex,iccId);}},_updateCardState:function scm__updateCardState(cardIndex,iccId){var iccManager=window.navigator.mozIccManager;var conn=window.navigator.mozMobileConnections[cardIndex];var simcard=this._simcards[cardIndex];if(!iccId||this._isAirplaneMode){simcard.setState('nosim');}else{var icc=iccManager.getIccById(iccId);var iccInfo=icc.iccInfo;var cardState=icc.cardState;var operatorInfo=MobileOperator.userFacingInfo(conn);if(this._isSimCardLocked(cardState)){simcard.setState('locked');}else if(this._isSimCardBlocked(cardState)){simcard.setState('blocked');}else{simcard.setState('normal',{number:iccInfo.msisdn||iccInfo.mdn||'',operator:operatorInfo.operator});}}},_updateCardStateWithUI:function scm__updateCardStateWithUI(cardIndex,iccId){this._updateCardState(cardIndex,iccId);this._updateSimCardUI(cardIndex);this._updateSimSettingsUI();},_getCardIndexByIccId:function scm__getCardIndexByIccId(iccId){var conns=window.navigator.mozMobileConnections;var cardIndex;for(var i=0;i<conns.length;i++){if(conns[i].iccId==iccId){cardIndex=i;}}
|
||||
return cardIndex;}};return SimCardManager;});define('panels/simcard_manager/panel',['require','modules/settings_panel','panels/simcard_manager/simcard_manager'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var SimCardManager=require('panels/simcard_manager/simcard_manager');return function ctor_sim_manager_panel(){return SettingsPanel({onInit:function(panel){var simcardManager=new SimCardManager({simCardContainer:panel.querySelector('.sim-card-container'),simSettingsHeader:panel.querySelector('.sim-manager-settings-header'),simSettingsList:panel.querySelector('.sim-manager-select-list'),outgoingCallSelect:panel.querySelector('.sim-manager-outgoing-call-select'),outgoingMessagesSelect:panel.querySelector('.sim-manager-outgoing-messages-select'),outgoingDataSelect:panel.querySelector('.sim-manager-outgoing-data-select'),});simcardManager.init();}});};});
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['modules/dialog_panel','panels/simpin_dialog/simpin_dialog'],function(){'use strict';var DialogPanel=require('modules/dialog_panel');var SimPinDialog=require('panels/simpin_dialog/simpin_dialog');return function ctor_simpin_dialog(){var elements={};return DialogPanel({onInit:function(panel){this._method='';this._simpinDialog=null;elements.panel=panel;elements.dialogTitle=panel.querySelector('gaia-header h1');elements.dialogDone=panel.querySelector('button[type="submit"]');elements.triesLeftMsg=panel.querySelector('.sim-triesLeft');elements.errorMsg=panel.querySelector('.sim-errorMsg');elements.errorMsgHeader=panel.querySelector('.sim-messageHeader');elements.errorMsgBody=panel.querySelector('.sim-messageBody');elements.pinArea=panel.querySelector('.sim-pinArea');elements.pinInput=elements.pinArea.querySelector('input');elements.pukArea=panel.querySelector('.sim-pukArea');elements.pukInput=elements.pukArea.querySelector('input');elements.newPinArea=panel.querySelector('.sim-newPinArea');elements.newPinInput=elements.newPinArea.querySelector('input');elements.confirmPinArea=panel.querySelector('.sim-confirmPinArea');elements.confirmPinInput=elements.confirmPinArea.querySelector('input');},onBeforeShow:function(panel,options){options.cardIndex=options.cardIndex||0;options.pinOptions=options.pinOptions||{};this._method=options.method;this._simpinDialog=SimPinDialog(elements);this._simpinDialog.init(options);},onShow:function(){if(this._method==='unlock_puk'||this._method==='unlock_puk2'){elements.pukInput.focus();}else{elements.pinInput.focus();}},onSubmit:function(){return this._simpinDialog.verify();},onHide:function(){this._simpinDialog.clear();}});};});
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
define(['require','modules/sim_security','modules/dialog_service'],function(require){'use strict';var SimSecurity=require('modules/sim_security');var DialogService=require('modules/dialog_service');var l10n=document.l10n;var _debug=false;var debug=function(){};if(_debug){debug=function spd_debug(msg){console.log('--> [SimPinDialog]: '+msg);};}
|
||||
function SimPinDialog(elements){this._localize=l10n.setAttributes;this._elements=elements;this._method='';this._mode='';this._cardIndex=0;this._pinOptions={};this._allowedRetryCounts={pin:3,pin2:3,puk:10,puk2:10};}
|
||||
SimPinDialog.prototype={init:function(options){this._method=options.method;this._cardIndex=options.cardIndex;this._pinOptions=options.pinOptions;this._bindInputClickEvent();this._initUI();},verify:function(){switch(this._method){case'unlock_pin':return this._unlockPin();case'unlock_puk':return this._unlockPuk('puk');case'unlock_puk2':return this._unlockPuk('puk2');case'enable_lock':return this._enableLock(true);case'disable_lock':return this._enableLock(false);case'change_pin':return this._changePin('pin');case'get_pin2':return this._updateFdnContact();case'enable_fdn':return this._enableFdn(true);case'disable_fdn':return this._enableFdn(false);case'change_pin2':return this._changePin('pin2');default:return Promise.reject();}},clear:function(){this._elements.errorMsgHeader.textContent='';this._elements.errorMsgBody.textContent='';this._elements.triesLeftMsg.textContent='';this._elements.pinInput.value='';this._elements.pukInput.value='';this._elements.newPinInput.value='';this._elements.confirmPinInput.value='';this._elements.errorMsg.hidden=true;this._elements.triesLeftMsg.hidden=true;},_unlockPin:function(){var pin=this._elements.pinInput.value;if(pin===''){return Promise.reject();}
|
||||
return this._unlockCardLock({lockType:'pin',pin:pin});},_unlockPuk:function(lockType){lockType=lockType||'puk';var puk=this._elements.pukInput.value;var newPin=this._elements.newPinInput.value;var confirmPin=this._elements.confirmPinInput.value;if(puk===''||newPin===''||confirmPin===''){return Promise.reject();}
|
||||
if(newPin!==confirmPin){this._showMessage('newPinErrorMsg');this._elements.newPinInput.value='';this._elements.confirmPinInput.value='';this._elements.pukInput.value='';this._elements.pukInput.focus();return Promise.reject();}
|
||||
return this._unlockCardLock({lockType:lockType,puk:puk,newPin:newPin});},_unlockCardLock:function(options){return SimSecurity.unlockCardLock(this._cardIndex,options).then(()=>{},(error)=>{var needToCloseDialog=this._handleCardLockError({lockType:options.lockType,error:error});if(!needToCloseDialog){return Promise.reject();}});},_enableLock:function(enabled){var pin=this._elements.pinInput.value;if(pin===''){return Promise.reject();}
|
||||
return this._setCardLock({lockType:'pin',pin:pin,enabled:enabled});},_enableFdn:function(enabled){var pin=this._elements.pinInput.value;if(pin===''){return Promise.reject();}
|
||||
return this._setCardLock({lockType:'fdn',pin2:pin,enabled:enabled});},_changePin:function(lockType){lockType=lockType||'pin';var pin=this._elements.pinInput.value;var newPin=this._elements.newPinInput.value;var confirmPin=this._elements.confirmPinInput.value;if(pin===''||newPin===''||confirmPin===''){return Promise.reject();}
|
||||
if(newPin!==confirmPin){this._showMessage('newPinErrorMsg');this._elements.newPinInput.value='';this._elements.confirmPinInput.value='';this._elements.pinInput.value='';this._elements.pinInput.focus();return Promise.reject();}
|
||||
return this._setCardLock({lockType:lockType,pin:pin,newPin:newPin});},_setCardLock:function(options){return SimSecurity.setCardLock(this._cardIndex,options).then(()=>{},(error)=>{var needToCloseDialog=this._handleCardLockError({lockType:options.lockType,error:error});if(!needToCloseDialog){return Promise.reject();}});},_updateFdnContact:function(){var fdnContact=this._pinOptions.fdnContact;return SimSecurity.updateContact(this._cardIndex,'fdn',fdnContact,this._elements.pinInput.value).then(()=>{return fdnContact;},(error)=>{switch(error.name){case'IncorrectPassword':case'SimPin2':this._initUI('get_pin2');this._showMessage('fdnErrorMsg');this._elements.pinInput.value='';this._elements.pinInput.focus();return Promise.reject();case'SimPuk2':this._initUI('unlock_puk2');this._elements.pukInput.focus();return Promise.reject();case'NoFreeRecordFound':DialogService.alert('fdnNoFDNFreeRecord');return fdnContact;default:console.error('Could not edit FDN contact on SIM card - ',error);return fdnContact;}});},_handleCardLockError:function(options){var error=options.error;var lockType=options.lockType;var retryCount=error.retryCount;var errorName=error.name;debug('_handleCardLockError: '+errorName);if(!lockType){console.error('`handleCardLockError` called without a lockType. '+'This should never even happen.',error);return true;}
|
||||
switch(errorName){case'SimPuk2':case'IncorrectPassword':return this._handleRetryPassword(lockType,retryCount);default:DialogService.alert('genericLockError');console.error('Error of type '+errorName+' happened coming from an IccCardLockError event',error);return true;}},_handleRetryPassword:function(lockType,retryCount){if(retryCount<=0){debug('_handleRetryPassword lockType:'+lockType);if(lockType==='pin'){return true;}else if(lockType==='fdn'||lockType==='pin2'){this._initUI('unlock_puk2');this._elements.pukInput.focus();return false;}else{DialogService.alert('genericLockError');return true;}}else{var msgId=(retryCount>1)?'AttemptMsg3':'LastChanceMsg';this._showMessage(lockType+'ErrorMsg',lockType+msgId,{n:retryCount});this._showRetryCount(retryCount);if(lockType==='pin'||lockType==='fdn'){this._elements.pinInput.value='';this._elements.pinInput.focus();}else if(lockType==='puk'){this._elements.pukInput.value='';this._elements.pukInput.focus();}else if(lockType==='puk2'){this._elements.pinInput.value='';this._elements.pukInput.value='';this._elements.pukInput.focus();}
|
||||
return false;}},_setMode:function(mode){this._mode=mode;this._elements.pinArea.hidden=(mode==='puk');this._elements.pukArea.hidden=(mode!=='puk');this._elements.newPinArea.hidden=this._elements.confirmPinArea.hidden=(mode==='pin');},_showMessage:function(headerL10nId,bodyL10nId,args){if(!headerL10nId){this._elements.errorMsg.hidden=true;return;}
|
||||
this._elements.errorMsgHeader.setAttribute('data-l10n-id',headerL10nId);if(bodyL10nId){this._localize(this._elements.errorMsgBody,bodyL10nId,args);}
|
||||
this._elements.errorMsg.hidden=false;},_showRetryCount:function(retryCount){if(!retryCount){this._elements.triesLeftMsg.hidden=true;}else{this._localize(this._elements.triesLeftMsg,'inputCodeRetriesLeft',{n:retryCount});this._elements.triesLeftMsg.hidden=false;}},_bindInputClickEvent:function(){var elements=this._elements;var inputs=['pinInput','pukInput','newPinInput','confirmPinInput'];inputs.forEach((inputName)=>{var input=elements[inputName];input.oninput=()=>{this._updateDoneButtonState();};});},_updateDoneButtonState:function(){var elements=this._elements;switch(this._mode){case'change_pin':if(elements.pinInput.value.length<4||elements.newPinInput.value.length<4||elements.confirmPinInput.value.length<4||elements.newPinInput.value.length!==elements.confirmPinInput.value.length){elements.dialogDone.disabled=true;}else{elements.dialogDone.disabled=false;}
|
||||
break;case'pin':elements.dialogDone.disabled=(elements.pinInput.value.length<4);break;case'puk':elements.dialogDone.disabled=(elements.pukInput.value.length<4);break;default:console.error('we should not jump to this condition');break;}},_initUI:function(method){if(method){this._method=method;}
|
||||
this._showMessage();this._showRetryCount();this._elements.dialogDone.disabled=true;var lockType='pin';debug('initUI method: '+this._method);switch(this._method){case'get_pin2':lockType='pin2';this._setMode('pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin2');this._localize(this._elements.dialogTitle,lockType+'Title');break;case'unlock_pin':this._setMode('pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin');this._localize(this._elements.dialogTitle,'pinTitle');break;case'unlock_puk':lockType='puk';this._setMode('puk');this._showMessage('simCardLockedMsg','enterPukMsg');this._localize(this._elements.pukArea.querySelector('div'),'pukCode');this._localize(this._elements.dialogTitle,'pukTitle');this._localize(this._elements.newPinArea.querySelector('div'),'newSimPinMsg');this._localize(this._elements.confirmPinArea.querySelector('div'),'confirmNewSimPinMsg');break;case'unlock_puk2':lockType='puk2';this._setMode('puk');this._showMessage('simCardLockedMsg','enterPuk2Msg');this._localize(this._elements.pukArea.querySelector('div'),'puk2Code');this._localize(this._elements.dialogTitle,'puk2Title');this._localize(this._elements.newPinArea.querySelector('div'),'newSimPin2Msg');this._localize(this._elements.confirmPinArea.querySelector('div'),'confirmNewSimPin2Msg');break;case'enable_lock':this._setMode('pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin');this._localize(this._elements.dialogTitle,'pinTitle');break;case'disable_lock':this._setMode('pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin');this._localize(this._elements.dialogTitle,'pinTitle');break;case'change_pin':this._setMode('change_pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin');this._localize(this._elements.newPinArea.querySelector('div'),'newSimPinMsg');this._localize(this._elements.confirmPinArea.querySelector('div'),'confirmNewSimPinMsg');this._localize(this._elements.dialogTitle,'newpinTitle');break;case'enable_fdn':lockType='pin2';this._setMode('pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin2');this._localize(this._elements.dialogTitle,'fdnEnable');break;case'disable_fdn':lockType='pin2';this._setMode('pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin2');this._localize(this._elements.dialogTitle,'fdnDisable');break;case'change_pin2':lockType='pin2';this._setMode('change_pin');this._localize(this._elements.pinArea.querySelector('div'),'simPin2');this._localize(this._elements.newPinArea.querySelector('div'),'newSimPin2Msg');this._localize(this._elements.confirmPinArea.querySelector('div'),'confirmNewSimPin2Msg');this._localize(this._elements.dialogTitle,'fdnReset');break;default:console.error('unsupported "'+this._method+'" method');break;}
|
||||
SimSecurity.getCardLockRetryCount(this._cardIndex,lockType).then((result)=>{var retryCount=result.retryCount;if(retryCount===this._allowedRetryCounts[lockType]){retryCount=null;}
|
||||
this._showRetryCount(retryCount);});}};return function ctor_simPinDialog(elements){return new SimPinDialog(elements);};});
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
define('panels/sound/slider_handler',['require','shared/settings_listener','modules/settings_cache'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SettingsCache=require('modules/settings_cache');var INTERVAL=500;var DELAY=800;var BASESHAREURL='/shared/resources/media/';var TONEURLS={'content':BASESHAREURL+'notifications/notifier_firefox.opus','notification':BASESHAREURL+'ringtones/ringer_firefox.opus','alarm':BASESHAREURL+'alarms/ac_awake.opus'};var TONEKEYS={'content':'media.ringtone','notification':'dialer.ringtone','alarm':'alarm.ringtone'};var SliderHandler=function(){this._element=null;this._channelType='';this._channelKey='';this._toneURL='';this._toneKey='';this._previous=null;this._isTouching=false;this._isFirstInput=false;this._intervalID=null;this._timeoutID=null;this._player=new Audio();};SliderHandler.prototype={init:function sh_init(element,channelType){this._element=element;this._channelType=channelType;this._channelKey='audio.volume.'+channelType;this._toneURL=TONEURLS[channelType];this._toneKey=TONEKEYS[channelType];this._boundSetSliderValue=function(value){this._setSliderValue(value);}.bind(this);SettingsListener.observe(this._channelKey,'',this._boundSetSliderValue);this._element.addEventListener('touchstart',this._touchStartHandler.bind(this));this._element.addEventListener('input',this._inputHandler.bind(this));this._element.addEventListener('touchend',this._touchEndHandler.bind(this));},_stopTone:function vm_stopTone(){this._player.pause();this._player.removeAttribute('src');this._player.load();},_setupTone:function vm_setupTone(blob){if(this._channelType!=='content'){this._player.mozAudioChannelType=this._channelType;}
|
||||
this._player.src=URL.createObjectURL(blob);this._player.load();this._player.loop=true;},_setSliderValue:function vm_setSliderValue(value){this._element.value=value;if(this._element.style.opacity!==1){this._element.style.opacity=1;}
|
||||
if(this._previous===null){this._previous=value;}},_getDefaultTone:function vm_getDefaultTone(callback){var xhr=new XMLHttpRequest();xhr.open('GET',this._toneURL);xhr.overrideMimeType('audio/ogg');xhr.responseType='blob';xhr.send();xhr.onload=function(){callback(xhr.response);};},_getToneBlob:function vm_getToneBlob(callback){SettingsCache.getSettings(function(results){if(results[this._toneKey]){callback(results[this._toneKey]);}else{this._getDefaultTone(function(blob){var settingObject={};settingObject[this._toneKey]=blob;navigator.mozSettings.createLock().set(settingObject);callback(blob);});}}.bind(this));},_touchStartHandler:function sh_touchStartHandler(event){this._isTouching=true;this._isFirstInput=true;this._stopTone();SettingsListener.unobserve(this._channelKey,this._boundSetSliderValue);this._getToneBlob(function(blob){this._setupTone(blob);}.bind(this));},_setVolume:function sh_setVolume(){var value=parseInt(this._element.value);var settingObject={};settingObject[this._channelKey]=value;if(value!==this._previous){navigator.mozSettings.createLock().set(settingObject);this._player.play();this._previous=value;}},_inputHandler:function sh_inputHandler(event){if(this._isFirstInput){this._isFirstInput=false;this._setVolume();this._intervalID=setInterval(this._setVolume.bind(this),INTERVAL);}
|
||||
clearTimeout(this._timeoutID);this._timeoutID=setTimeout(function(){if(!this._isTouching){SettingsListener.observe(this._channelKey,'',this._boundSetSliderValue);this._stopTone();}}.bind(this),DELAY);},_touchEndHandler:function sh_touchEndHandler(event){this._isTouching=false;clearInterval(this._intervalID);this._setVolume();}};return function ctor_sliderHandler(){return new SliderHandler();};});define('panels/sound/volume_manager',['require','panels/sound/slider_handler'],function(require){'use strict';var SliderHandler=require('panels/sound/slider_handler');var VolumeManager=function(){this._elements=null;};VolumeManager.prototype={init:function vm_init(elements){this._elements=elements;var contentHandler=SliderHandler();contentHandler.init(this._elements.media,'content');var notification=SliderHandler();notification.init(this._elements.notification,'notification');var alarm=SliderHandler();alarm.init(this._elements.alarm,'alarm');}};return function ctor_volumeManager(){return new VolumeManager();};});define('panels/sound/tone_manager',['require','shared/settings_listener','modules/settings_cache','shared/omadrm/fl'],function(require){'use strict';var SettingsListener=require('shared/settings_listener');var SettingsCache=require('modules/settings_cache');var ForwardLock=require('shared/omadrm/fl');var ToneManager=function(){this._elements=null;this._tones=null;};ToneManager.prototype={init:function tm_init(elements){this._elements=elements;this._configureTones();this._handleTones();this._elements.manageTones.addEventListener('click',this._manageTonesClickHandler);},_configureTones:function tm_configureTones(){this._tones=[{pickType:'alerttone',settingsKey:'notification.ringtone',allowNone:true,button:this._elements.alertToneSelection,desc:this._elements.alertToneSelectionDesc}];if(navigator.mozTelephony){this._tones.push({pickType:'ringtone',settingsKey:'dialer.ringtone',allowNone:false,button:this._elements.ringToneSelection,desc:this._elements.ringToneSelectionDesc});this._elements.ringer.hidden=false;}},_renderToneName:function tm_renderToneName(tone,tonename){var l10nID=tonename&&tonename.l10nID;if(l10nID){tone.desc.setAttribute('data-l10n-id',l10nID);}else{tone.desc.removeAttribute('data-l10n-id');tone.desc.textContent=tonename;}},_renderTone:function tm_renderTone(tone,result,secret){var oldRingtoneName=null;var l10nId=tone.desc.getAttribute('data-l10n-id');if(!l10nId){oldRingtoneName=tone.desc.textContent;}
|
||||
tone.desc.setAttribute('data-l10n-id','saving-tone');var getBlob;if(result.blob.type.split('/')[1]===ForwardLock.mimeSubtype){getBlob=new Promise((resolve,reject)=>{ForwardLock.unlockBlob(secret,result.blob,(unlocked)=>{resolve(unlocked);});});}else{getBlob=Promise.resolve(result.blob);}
|
||||
var getIsPlayable=getBlob.then((blob)=>{return this._isPlayableTone(blob);});return Promise.all([getBlob,getIsPlayable]).then(([blob,isPlayable])=>{if(isPlayable){this._setRingtone(tone.settingsKey,result.l10nID,result.name,blob,result.id);}else{if(l10nId){tone.desc.setAttribute('data-l10n-id',l10nId);}else{tone.desc.removeAttribute('data-l10n-id');tone.desc.textContent=oldRingtoneName;}
|
||||
document.l10n.formatValue('unplayable-ringtone').then(msg=>alert(msg));}});},_pickTone:function tm_pickRingTone(tone,currentToneID,secret){var self=this;var activity=new MozActivity({name:'pick',data:{type:tone.pickType,allowNone:tone.allowNone,currentToneID:currentToneID,includeLocked:(secret!==null)}});activity.onsuccess=function(){var result=activity.result;if(!result.blob){if(tone.allowNone){self._setRingtone(tone.settingsKey,result.l10nID,result.name,result.blob,result.id);}else{document.l10n.formatValue('unplayable-ringtone').then(msg=>alert(msg));}
|
||||
return;}
|
||||
self._renderTone(tone,result,secret);};},_handleTones:function tm_handleTones(){this._tones.forEach(function(tone){var nameKey=tone.settingsKey+'.name';var idKey=tone.settingsKey+'.id';SettingsListener.observe(nameKey,'',this._renderToneName.bind(this,tone));var self=this;tone.button.addEventListener('click',function(){SettingsCache.getSettings(function(results){var currentToneID=results[idKey];ForwardLock.getKey(function(secret){self._pickTone(tone,currentToneID,secret);});});});}.bind(this));},_setRingtone:function tm_setRingtone(settingsKey,l10nID,toneName,blob,id){var blobKey=settingsKey;var nameKey=settingsKey+'.name';var idKey=settingsKey+'.id';var values={};var name=l10nID?{l10nID:l10nID}:toneName;values[blobKey]=blob;values[nameKey]=name||'';values[idKey]=id;navigator.mozSettings.createLock().set(values);},_isPlayableTone:function tm_isPlayableTone(blob){return new Promise(function(resolve,reject){var player=new Audio();player.preload='metadata';player.src=URL.createObjectURL(blob);player.oncanplay=function(){release();resolve(true);};player.onerror=function(){release();resolve(false);};function release(){URL.revokeObjectURL(player.src);player.removeAttribute('src');player.load();}});},_manageTonesClickHandler:function tm_manageTonesClickHandler(){var activity=new MozActivity({name:'configure',data:{target:'ringtone'}});activity.onerror=function(){console.log(this.error);if(this.error.name==='NO_PROVIDER'){document.l10n.formatValue('no-ringtone-app').then(msg=>alert(msg));}};}};return function ctor_toneManager(){return new ToneManager();};});define('panels/sound/panel',['require','modules/settings_panel','panels/sound/volume_manager','panels/sound/tone_manager','shared/lazy_loader','modules/mobile/supported_network_info'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var VolumeManager=require('panels/sound/volume_manager');var ToneManager=require('panels/sound/tone_manager');var LazyLoader=require('shared/lazy_loader');var NetworkInfo=require('modules/mobile/supported_network_info');return function ctor_sound_panel(){var volumeManager=VolumeManager();var toneManager=ToneManager();return SettingsPanel({onInit:function(panel){var _elements={vibrationSetting:panel.querySelector('.vibration-setting'),toneSelector:panel.querySelector('.touch-tone-selector')};this._customize(_elements);var vmElements={media:panel.querySelector('.volume.media input'),notification:panel.querySelector('.volume.notification input'),alarm:panel.querySelector('.volume.alarm input')};volumeManager.init(vmElements);var tmElements={alertToneSelection:panel.querySelector('.alert-tone-selection'),alertToneSelectionDesc:panel.querySelector('.alert-tone-selection .desc'),ringToneSelection:panel.querySelector('.ring-tone-selection'),ringToneSelectionDesc:panel.querySelector('.ring-tone-selection .desc'),ringer:panel.querySelector('.ringer'),manageTones:panel.querySelector('.manage-tones-button')};toneManager.init(tmElements);},_customize:function(elements){LazyLoader.getJSON('/resources/device-features.json').then(function(data){elements.vibrationSetting.hidden=!data.vibration;});if(window.navigator.mozMobileConnections){var mobileConnections=window.navigator.mozMobileConnections;var toneSelector=elements.toneSelector;Array.prototype.forEach.call(mobileConnections,function(mobileConnection){NetworkInfo.getSupportedNetworkInfo(mobileConnection,function(result){toneSelector.hidden=toneSelector.hidden&&!result.cdma;});});}}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define(['require'],function(require){'use strict';return function th_layoutTemplate(theme,recycled){var container=null;var label,radio;var RADIO_GROUP='personalization.themesheader.value';if(recycled){container=recycled;radio=container.querySelector('gaia-radio');label=container.querySelector('label');}else{container=document.createElement('li');radio=document.createElement('gaia-radio');label=document.createElement('label');radio.name=RADIO_GROUP;radio.value=theme.manifestURL;radio.appendChild(label);container.appendChild(radio);}
|
||||
label.textContent=theme.name;radio.addEventListener('click',function(evt){if(evt.target.checked){return;}
|
||||
theme.onclick(theme.manifestURL);});return container;};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define(['require','modules/settings_panel','panels/themes/themes'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var Themes=require('panels/themes/themes');return function ctor_themes(){var themes=Themes();return SettingsPanel({onInit:function(panel){themes.onInit(panel);},onBeforeShow:function(){themes.onBeforeShow();}});};});
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
define(['require','modules/apps_cache','shared/manifest_helper','modules/settings_cache','modules/mvvm/list_view','./layout_template'],function(require){'use strict';var AppsCache=require('modules/apps_cache');var ManifestHelper=require('shared/manifest_helper');var SettingsCache=require('modules/settings_cache');var ListView=require('modules/mvvm/list_view');var template=require('./layout_template');var THEME_SELECTED='theme.selected';var WALLPAPER_LIST='/wallpaper.json';var WALLPAPER_KEY='wallpaper.image';var Themes=function ctor_themes(){return{_container:null,_settings:null,_selectedTheme:null,_previousTheme:null,_themes:null,_config:{},onInit:function th_onInit(panel){this._container=panel.querySelector('.theme-list');this._settings=navigator.mozSettings;},onBeforeShow:function th_onBeforeShow(){this._themes=[];this.getInstalledThemes((this.setTheme));},getInstalledThemes:function th_getInstalledThemes(callback){AppsCache.apps().then(function(apps){apps=apps.filter(function(app){var manifest=app.manifest||app.updateManifest;return manifest&&manifest.type&&manifest.type==='certified'&&manifest.role&&manifest.role==='theme';});for(var app in apps){var manifest=new ManifestHelper(apps[app].manifest);var theme={'name':manifest.name,'manifestURL':apps[app].manifestURL,'onclick':callback.bind(this)};this._themes.push(theme);}
|
||||
this._themes.sort(function(a,b){return a.name.localeCompare(b.name);});this.renderThemes();}.bind(this));},renderThemes:function th_renderThemes(){this._listView=ListView(this._container,this._themes,template);this.updateRadioButtons();},updateRadioButtons:function th_updateRadioButtons(){var currentSetting=SettingsCache.cache;if(!currentSetting){return;}
|
||||
var theme=this._selectedTheme=currentSetting[THEME_SELECTED];this._updateRow(theme,true);},_doSetTheme:function th_doSetTheme(theme){if(this._selectedTheme===theme){return Promise.resolve();}
|
||||
return new Promise((function(resolve,reject){var setting={};this._previousTheme=this._selectedTheme;setting[THEME_SELECTED]=this._selectedTheme=theme;var req=this._settings.createLock().set(setting);req.onsuccess=(function(){this.getWallpaperPath().then((this.loadWallpaper).bind(this)).then((this.setWallpaper).bind(this)).then((this.saveConfig).bind(this)).then(resolve,reject);}).bind(this);req.onerror=reject;}).bind(this));},setTheme:function th_setTheme(theme){this.disableSelection();return this._doSetTheme(theme).then(this.enableSelection.bind(this),this.rollbackTheme.bind(this));},rollbackTheme:function th_rollbackTheme(){this._config={};if(this._previousTheme===this._selectedTheme||this._previousTheme===null){return Promise.reject('No previous theme to rollback');}
|
||||
var previous=''+this._previousTheme;var current=''+this._selectedTheme;return this._doSetTheme(this._previousTheme).then((function(){this._updateRow(previous,true);this._updateRow(current,false);this.enableSelection();}).bind(this));},_updateRow:function th_updateRow(theme,checked){var rule='gaia-radio[value="'+theme+'"]';var node=this._container.querySelector(rule);if(node){node.checked=!!checked;}},disableSelection:function th_disableSelection(){var nodes=this._container.querySelectorAll('gaia-radio:not([value="'+
|
||||
this._selectedTheme+'"])');if(nodes){Array.prototype.slice.call(nodes).forEach(function(node){node.parentNode.parentNode.classList.add('disabled');});}},enableSelection:function th_enableSelection(){var nodes=this._container.querySelectorAll('gaia-radio');if(nodes){Array.prototype.slice.call(nodes).forEach(function(node){node.parentNode.parentNode.classList.remove('disabled');});}},getWallpaperPath:function th_getWallpaper(){var url=this._selectedTheme.substring(0,this._selectedTheme.lastIndexOf('/'))+WALLPAPER_LIST;var xhr=new XMLHttpRequest({mozSystem:true});xhr.open('GET',url,true);xhr.responseType='json';return new Promise(function(resolve,reject){xhr.onload=function successGettingWallpaperList(){if(xhr.status!==200){reject(xhr.status);return;}
|
||||
var filename=xhr.response.homescreen;resolve(filename);};xhr.send(null);});},loadWallpaper:function th_loadWallpaper(filename){if(!filename){return Promise.resolve(null);}
|
||||
var url=this._selectedTheme.substring(0,this._selectedTheme.lastIndexOf('/'))+filename;var xhr=new XMLHttpRequest({mozSystem:true});xhr.open('GET',url,true);xhr.responseType='blob';return new Promise(function(resolve,reject){xhr.onload=function(){if(xhr.status!==200){reject(xhr.status);return;}
|
||||
resolve(xhr.response);};xhr.send(null);});},setWallpaper:function th_setWallpaper(blob){this._config[WALLPAPER_KEY]=blob;return Promise.resolve(this._config);},saveConfig:function th_saveConfig(){var self=this;return new Promise(function(resolve,reject){var request=self._settings.createLock().set(self._config);request.onerror=reject;request.onsuccess=resolve;});}};};return Themes;});
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define('panels/wifi_auth/panel',['require','modules/dialog_panel','modules/wifi_utils'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');var WifiUtils=require('modules/wifi_utils');return function ctor_wifiAuth(){var elements={};return DialogPanel({onInit:function(panel,options){elements.ssid=panel.querySelector('[data-ssid]');elements.signal=panel.querySelector('[data-signal]');elements.security=panel.querySelector('[data-security]');elements.identity=panel.querySelector('input[name=identity]');elements.password=panel.querySelector('input[name=password]');elements.showPassword=panel.querySelector('gaia-checkbox[name=show-pwd]');elements.eap=panel.querySelector('li.eap select');elements.authPhase2=panel.querySelector('li.auth-phase2 select');elements.certificate=panel.querySelector('li.server-certificate select');},onBeforeShow:function(panel,options){var network=options.network;WifiUtils.initializeAuthFields(panel,network);WifiUtils.changeDisplay(panel,options.security);panel.dataset.security=options.security;elements.ssid.textContent=network.ssid;elements.signal.setAttribute('data-l10n-id','signalLevel'+options.sl);if(options.security){elements.security.removeAttribute('data-l10n-id');elements.security.textContent=options.security;}else{elements.security.setAttribute('data-l10n-id','securityNone');}},onHide:function(){elements.identity.value='';elements.password.value='';elements.showPassword.checked=false;},onSubmit:function(){return Promise.resolve({password:elements.password.value,identity:elements.identity.value,eap:elements.eap.value,authPhase2:elements.authPhase2.value,certificate:elements.certificate.value});}});};});
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
define('panels/wifi_enter_certificate_nickname/panel',['require','modules/dialog_panel'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');return function ctor_wifiEnterCertificateNickname(){var elements={};return DialogPanel({onInit:function(panel){elements.panel=panel;elements.nicknameInput=panel.querySelector('.certificate-file-nickname');elements.submitButton=panel.querySelector('button[type=submit]');elements.nicknameInput.oninput=this._onInputChange;},onBeforeShow:function(panel,options){elements.nicknameInput.value=options.certificateName;},onSubmit:function(){return Promise.resolve({nickname:elements.nicknameInput.value});},_onInputChange:function(){elements.submitButton.disabled=!this.value.length;}});};});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
define('panels/wifi_join_hidden/panel',['require','modules/dialog_panel','shared/wifi_helper','modules/wifi_utils'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');var WifiHelper=require('shared/wifi_helper');var WifiUtils=require('modules/wifi_utils');return function ctor_joinHiddenWifi(){var elements={};var network;var isHomeKeyPressed=false;return DialogPanel({onInit:function(panel){elements.panel=panel;elements.ssid=panel.querySelector('input[name="ssid"]');elements.eap=panel.querySelector('select[name="eap"]');elements.password=panel.querySelector('input[name="password"]');elements.identity=panel.querySelector('input[name="identity"]');elements.securitySelect=panel.querySelector('select[name="security"]');elements.submitButton=panel.querySelector('button[type=submit]');elements.showPassword=panel.querySelector('gaia-checkbox[name=show-pwd]');elements.ssid.addEventListener('input',this._onSSIDchange);elements.securitySelect.onchange=this._onSecurityChange;},onBeforeShow:function(panel){if(!isHomeKeyPressed){network={};this._onSecurityChange.call(elements.securitySelect);WifiUtils.initializeAuthFields(panel,network);}
|
||||
isHomeKeyPressed=false;},onShow:function(){elements.ssid.focus();},onHide:function(){isHomeKeyPressed=document.hidden;if(!isHomeKeyPressed){elements.password.value='';elements.identity.value='';elements.showPassword.checked=false;}},onSubmit:function(){network.ssid=elements.ssid.value;network.hidden=true;return Promise.resolve({password:elements.password.value,identity:elements.identity.value,eap:elements.eap.value,network:network});},_onSecurityChange:function(){var key=this.selectedIndex?this.value:'';var password=elements.password.value;var identity=elements.identity.value;var eap=elements.eap.value;elements.panel.dataset.security=key;elements.submitButton.disabled=!WifiHelper.isValidInput(key,password,identity,eap)||!WifiHelper.isSSIDValid(elements.ssid.value);WifiHelper.setSecurity(network,[key]);WifiUtils.changeDisplay(elements.panel,key);},_onSSIDchange:function(event){if(event.isComposing){return;}
|
||||
var str=this.value;var encoder=new TextEncoder('utf-8');while(encoder.encode(str).length>32){str=str.substring(0,str.length-1);}
|
||||
if(str!==this.value){this.value=str;}}});};});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
define('panels/wifi_manage_certificates/panel',['require','modules/settings_panel','modules/wifi_utils','shared/wifi_helper'],function(require){'use strict';var SettingsPanel=require('modules/settings_panel');var WifiUtils=require('modules/wifi_utils');var WifiHelper=require('shared/wifi_helper');var wifiManager=WifiHelper.getWifiManager();return function ctor_manageCertificatedWifi(){var elements={};return SettingsPanel({onInit:function(panel){elements={};elements.panel=panel;elements.certificateList=panel.querySelector('.wifi-certificateList');elements.deleteCertificateFailedDialog=panel.querySelector('.certificate-deletion-failed');elements.importCertificateBtn=panel.querySelector('.importCertificate');elements.deleteCertificateBtn=panel.querySelector('.deleteCertificate');elements.deleteCertificateBtn.onclick=this._deleteCertificate.bind(this);},onBeforeShow:function(panel){this._scan();},_scan:function(){var list=elements.certificateList;this._cleanup();wifiManager.getImportedCerts().then((result)=>{var certList=result;var certificateList=certList.ServerCert;if(certificateList.length){for(var i=0;i<certificateList.length;i++){list.appendChild(this._newCertificateItem(certificateList[i]));}
|
||||
var toggleBtnsWhenClicked=()=>{var option=this._isItemSelected();this._toggleDeleteCertificateBtn(option);this._toggleImportCertificateBtn(!option);};var inputItems=list.querySelectorAll('gaia-checkbox');for(var j=0;j<inputItems.length;j++){inputItems[j].addEventListener('change',toggleBtnsWhenClicked.bind(this));}}else{list.appendChild(WifiUtils.newExplanationItem('noImportedCertificates'));}},()=>{console.warn('getImportedCerts failed');});this._toggleDeleteCertificateBtn(false);this._toggleImportCertificateBtn(true);},_cleanup:function(){while(elements.certificateList.hasChildNodes()){elements.certificateList.removeChild(elements.certificateList.lastChild);}},_deleteCertificate:function(){var countItemDeleted=0;var checkedInputList=Array.prototype.filter.call(elements.certificateList.querySelectorAll('gaia-checkbox'),(node)=>node.checked);var scanWhenDeleteFinish=(totalLength)=>{if(++countItemDeleted==totalLength){countItemDeleted=0;this._scan();}};var scanWhenDeleteError=(totalLength)=>{if(++countItemDeleted==totalLength){countItemDeleted=0;this._scan();}
|
||||
var dialog=elements.deleteCertificateFailedDialog;dialog.hidden=false;dialog.onsubmit=()=>{dialog.hidden=true;};};for(var i=0;i<checkedInputList.length;i++){var nickname=checkedInputList[i].name;wifiManager.deleteCert(nickname).then(()=>{scanWhenDeleteFinish(checkedInputList.length);},()=>{scanWhenDeleteError(checkedInputList.length);});}},_isItemSelected:function(){var checkedInputList=Array.prototype.filter.call(elements.certificateList.querySelectorAll('gaia-checkbox'),(node)=>node.checked);return checkedInputList.length>0;},_toggleImportCertificateBtn:function(enabled){elements.importCertificateBtn.disabled=!enabled;},_toggleDeleteCertificateBtn:function(enabled){elements.deleteCertificateBtn.disabled=!enabled;},_newCertificateItem:function(caName){var checkbox=document.createElement('gaia-checkbox');checkbox.name=caName;var label=document.createElement('label');label.textContent=caName;checkbox.appendChild(label);var li=document.createElement('li');li.appendChild(checkbox);return li;}});};});
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
define('panels/wifi_manage_networks/wifi_known_networks',['require','shared/wifi_helper'],function(require){'use strict';var WifiHelper=require('shared/wifi_helper');var wifiManager=WifiHelper.getWifiManager();var WifiKnownNetworks={_networks:{},_scanning:false,_cachedCallbacks:[],get:function(callback){if(this._scanning){this._cachedCallbacks.push(callback);}else{callback(this._networks);}},scan:function(callback){var i;var req=wifiManager.getKnownNetworks();this._scanning=true;req.onsuccess=function(){this._networks={};this._scanning=false;var allNetworks=req.result;for(i=0;i<allNetworks.length;++i){var network=allNetworks[i];var key=network.ssid+'+'+
|
||||
WifiHelper.getSecurity(network).join('+');this._networks[key]=network;}
|
||||
var cachedCb;while(this._cachedCallbacks.length>0){cachedCb=this._cachedCallbacks.pop();cachedCb(this._networks);}
|
||||
if(callback){callback(this._networks);}}.bind(this);req.onerror=function(error){this._scanning=false;console.warn('Error : ',error);console.warn('could not retrieve any known network.');}.bind(this);}};WifiKnownNetworks.scan();return WifiKnownNetworks;});define('panels/wifi_manage_networks/panel',['require','modules/dialog_service','shared/settings_listener','modules/settings_panel','modules/wifi_context','modules/wifi_utils','shared/wifi_helper','panels/wifi_manage_networks/wifi_known_networks'],function(require){'use strict';var DialogService=require('modules/dialog_service');var SettingsListener=require('shared/settings_listener');var SettingsPanel=require('modules/settings_panel');var WifiContext=require('modules/wifi_context');var WifiUtils=require('modules/wifi_utils');var WifiHelper=require('shared/wifi_helper');var WifiKnownNetworks=require('panels/wifi_manage_networks/wifi_known_networks');return function ctor_wifi_manage_networks_panel(){var elements={};var listItems={};return SettingsPanel({onInit:function(panel){var self=this;elements.panel=panel;elements.knownNetworkListWrapper=panel.querySelector('.wifi-knownNetworks');elements.forgetNetworkDialog=panel.querySelector('form');elements.macAddress=panel.querySelector('[data-name="deviceinfo.mac"]');elements.joinHiddenBtn=panel.querySelector('.joinHidden');elements.joinHiddenBtn.addEventListener('click',function(){DialogService.show('wifi-joinHidden').then(function(result){var network;var type=result.type;var value=result.value;if(type==='submit'){if(window.MozWifiNetwork!==undefined){network=new window.MozWifiNetwork(value.network);}
|
||||
WifiHelper.setPassword(network,value.password,value.identity,value.eap);WifiContext.associateNetwork(network,function(error){if(error){}
|
||||
self._cleanup();self._scan();});}});});SettingsListener.observe('deviceinfo.mac','',function(macAddress){elements.macAddress.textContent=macAddress;});WifiContext.addEventListener('wifiEnabled',function(event){var activeItem=elements.knownNetworkListWrapper.querySelector('.active');WifiUtils.updateListItemStatus({listItems:listItems,activeItemDOM:activeItem,network:event.network,networkStatus:event.status});});WifiContext.addEventListener('wifiStatusChange',function(event){var activeItem=elements.knownNetworkListWrapper.querySelector('.active');WifiUtils.updateListItemStatus({listItems:listItems,activeItemDOM:activeItem,network:event.network,networkStatus:event.status});});},onBeforeShow:function(panel){this._cleanup();this._scan();},_cleanup:function(){var wrapper=elements.knownNetworkListWrapper;while(wrapper.hasChildNodes()){wrapper.removeChild(wrapper.firstChild);}
|
||||
listItems={};},_scan:function(){WifiKnownNetworks.scan(function(networks){var networkKeys=Object.getOwnPropertyNames(networks);var network;if(networkKeys.length){networkKeys.sort();for(var i=0;i<networkKeys.length;i++){network=networks[networkKeys[i]];var aItem=WifiUtils.newListItem({network:network,onClick:this._forgetNetwork.bind(this),showNotInRange:false});if(WifiHelper.isConnected(network)){elements.knownNetworkListWrapper.insertBefore(aItem,elements.knownNetworkListWrapper.firstChild);}else{elements.knownNetworkListWrapper.appendChild(aItem);}
|
||||
listItems[networkKeys[i]]=aItem;}}else{elements.knownNetworkListWrapper.appendChild(WifiUtils.newExplanationItem('noKnownNetworks'));}}.bind(this));},_forgetNetwork:function(network){var self=this;var forgetNetworkDialog=elements.forgetNetworkDialog;forgetNetworkDialog.hidden=false;forgetNetworkDialog.onsubmit=function forget(){WifiContext.forgetNetwork(network,error=>{if(!error){self._cleanup();self._scan();forgetNetworkDialog.hidden=true;}});return false;};forgetNetworkDialog.onreset=function cancel(){forgetNetworkDialog.hidden=true;return false;};}});};});
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
define('panels/wifi_status/panel',['require','modules/dialog_panel','shared/wifi_helper','modules/wifi_context'],function(require){'use strict';var DialogPanel=require('modules/dialog_panel');var WifiHelper=require('shared/wifi_helper');var WifiContext=require('modules/wifi_context');var wifiManager=WifiHelper.getWifiManager();return function ctor_statusWifi(){var elements={};return DialogPanel({onInit:function(panel){elements={};elements.ip=panel.querySelector('[data-ip]');elements.speed=panel.querySelector('[data-speed]');elements.ssid=panel.querySelector('[data-ssid]');elements.signal=panel.querySelector('[data-signal]');elements.security=panel.querySelector('[data-security]');},onBeforeShow:function(panel,options){this._updateNetworkInfo();elements.ssid.textContent=options.network.ssid;elements.signal.setAttribute('data-l10n-id','signalLevel'+options.sl);if(options.security){elements.security.removeAttribute('data-l10n-id');elements.security.textContent=options.security;}else{elements.security.setAttribute('data-l10n-id','securityNone');}
|
||||
WifiContext.addEventListener('wifiConnectionInfoUpdate',this._updateNetworkInfo);},onBeforeHide:function(){WifiContext.removeEventListener('wifiConnectionInfoUpdate',this._updateNetworkInfo);},_updateNetworkInfo:function(){var info=wifiManager.connectionInformation||{};elements.ip.textContent=info.ipAddress||'';document.l10n.setAttributes(elements.speed,'linkSpeedMbs',{linkSpeed:info.linkSpeed});}});};});
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue