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
128
gaia/apps/settings/js/panels/messaging/panel.js
Executable file
128
gaia/apps/settings/js/panels/messaging/panel.js
Executable file
|
|
@ -0,0 +1,128 @@
|
|||
define(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() {
|
||||
// smsc is lazy-loaded
|
||||
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);
|
||||
}
|
||||
|
||||
// Since delivery report for sms/mms should be the same, sync the value
|
||||
// while initializing.
|
||||
var request = settings.createLock().get(requestStatusReportKeyForSms);
|
||||
request.onsuccess = function onSuccessCb() {
|
||||
setDeliveryReportSetting(requestStatusReportKeyForMms,
|
||||
request.result[requestStatusReportKeyForSms]);
|
||||
};
|
||||
// Keep both setting synced.
|
||||
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) {
|
||||
// cleanup first
|
||||
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');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
Loading…
Reference in a new issue