VulpesOS/gaia/apps/settings/js/dsds_settings.js
OverSu b38dea0597 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.
2026-09-30 23:13:03 +02:00

111 lines
2.7 KiB
JavaScript
Executable file

'use strict';
window.DsdsSettings = (function() {
var _settings = window.navigator.mozSettings;
var _mobileConnections = null;
if (window.navigator.mozMobileConnections) {
_mobileConnections = window.navigator.mozMobileConnections;
}
/** */
var _iccCardIndexForCallSettings = 0;
/** */
var _iccCardIndexForCellAndDataSettings = 0;
/**
* Init function.
*/
function ds_init() {
if (!_settings || !_mobileConnections) {
return;
}
ds_handleDefaultIccCard();
ds_handleCellAndDataSettingSimPanel();
}
/**
* Get number of ICC slots.
*
* @return {Numeric} Number of ICC slots.
*/
function ds_getNumberOfIccSlots() {
if (_mobileConnections) {
return _mobileConnections.length;
}
}
/**
*
*/
function ds_getIccCardIndexForCallSettings() {
return _iccCardIndexForCallSettings;
}
/**
*
*/
function ds_setIccCardIndexForCallSettings(
iccCardIndexForCallSettings) {
_iccCardIndexForCallSettings = iccCardIndexForCallSettings;
}
/**
*
*/
function ds_getIccCardIndexForCellAndDataSettings() {
return _iccCardIndexForCellAndDataSettings;
}
/**
* Find out first available iccID for default iccID
*/
function ds_handleDefaultIccCard() {
for (var i = 0, len = _mobileConnections.length; i < len; i++) {
if (_mobileConnections[i].iccId !== null) {
ds_setIccCardIndexForCellAndDataSettings(i);
break;
}
}
}
/**
*
*/
function ds_setIccCardIndexForCellAndDataSettings(
iccCardIndexForCellAndDataSettings) {
_iccCardIndexForCellAndDataSettings = iccCardIndexForCellAndDataSettings;
}
/**
* Hide or show the cell and data settings panel in which we show the ICC
* cards.
*/
function ds_handleCellAndDataSettingSimPanel() {
var cellAndDataItem = null;
if (ds_getNumberOfIccSlots() > 1) {
cellAndDataItem = document.getElementById('menuItem-cellularAndData');
if ((_mobileConnections[0].radioState !== 'enabled') ||
(!_mobileConnections[0].iccId &&
!_mobileConnections[1].iccId)) {
return;
}
cellAndDataItem = document.getElementById('data-connectivity');
cellAndDataItem.removeAttribute('aria-disabled');
}
}
// Public API.
return {
init: ds_init,
getNumberOfIccSlots: ds_getNumberOfIccSlots,
getIccCardIndexForCallSettings:
ds_getIccCardIndexForCallSettings,
setIccCardIndexForCallSettings:
ds_setIccCardIndexForCallSettings,
getIccCardIndexForCellAndDataSettings:
ds_getIccCardIndexForCellAndDataSettings,
setIccCardIndexForCellAndDataSettings:
ds_setIccCardIndexForCellAndDataSettings
};
})();