Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
5 lines
No EOL
2.2 KiB
JavaScript
5 lines
No EOL
2.2 KiB
JavaScript
;'use strict';var DataMobile={key:'ril.data.enabled',keySV:'ftu.ril.data.enabled',STEP_DATA_3G:2,apnRetrieved:false,init:function dm_init(){var settings=navigator.mozSettings;if(!settings){console.log('Settings is not available');return;}
|
|
this.settings=settings;},removeSVStatusObserver:function dm_removeSVStatusObserver(){this.settings.removeObserver(this.keySV,this.getStatus);},getStatus:function dm_getStatus(aCallback){var self=this;var reqSV=this.settings.createLock().get(this.keySV);reqSV.onsuccess=function gst_svsuccess(){var svStatus=reqSV.result[self.keySV];if(svStatus!==undefined&&!UIManager.dataConnectionChangedByUsr){self.settings.removeObserver(self.keySV,self.getStatus);if(Navigation.currentStep===self.STEP_DATA_3G){self.toggle(svStatus);if(typeof aCallback==='function'){aCallback(svStatus);}}else{self.getRealStatus(aCallback);}}else{self.getRealStatus(aCallback);}};reqSV.onerror=function gst_error(){console.log('Error retrieving '+self.keySV);};this.settings.addObserver(this.keySV,this.getStatus.bind(this,aCallback));},getRealStatus:function dm_getRealStatus(callback){var request=this.settings.createLock().get(this.key);var self=this;request.onsuccess=function gst_success(){var currentStatus=request.result[self.key];self.isDataAvailable=currentStatus;callback(currentStatus);};request.onerror=function gst_error(){console.log('Error retrieving '+self.key);};},toggle:function dm_toggle(status,callback){var options={};options[this.key]=status;if(!this.apnRetrieved){var self=this;this.getAPN(function apn_recovered(){self.settings.createLock().set(options);self.apnRetrieved=true;self.isDataAvailable=status;if(callback){callback();}});return;}
|
|
this.settings.createLock().set(options);this.apnRetrieved=true;this.isDataAvailable=status;if(callback){callback();}},getAPN:function dm_getapn(callback){var _self=this;function ensureApnSettings(){var req=_self.settings.createLock().get('ril.data.apnSettings');req.onsuccess=function loadApn(){var apnSettings=req.result['ril.data.apnSettings'];if(apnSettings){if(callback){callback(req.result);}
|
|
_self.settings.removeObserver('ril.data.apnSettings',ensureApnSettings);}};}
|
|
ensureApnSettings();this.settings.addObserver('ril.data.apnSettings',ensureApnSettings);}}; |