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:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,108 @@
/* global BaseModule, OperatorVariantHandler, SIMSlotManager */
'use strict';
/**
* Singleton object that helps to set some carrier-specific settings on boot.
* Detects the ICC cards on boot and creates objects in charge of setting
* some operator-specific settings relying on the ICC card.
*/
(function() {
var OperatorVariantManager = function(core) {
/** Array of OperatorVariantHandler objects. */
if (core) {
this.mobileConnections = core.mobileConnections;
}
this.operatorVariantHandlers = [];
};
OperatorVariantManager.IMPORTS = [
'js/operator_variant_handler.js',
'shared/js/operator_variant_helper.js'
];
OperatorVariantManager.EVENTS = [
'simslot-updated',
'simslot-iccinfochange'
];
BaseModule.create(OperatorVariantManager, {
name: 'OperatorVariantManager',
_start: function() {
Promise.all([
this.ensureValueUnderKeyIsArray('ril.iccInfo.mbdn'),
this.ensureValueUnderKeyIsArray('ril.cellbroadcast.disabled'),
this.ensureValueUnderKeyIsArray('ril.cellbroadcast.searchlist'),
this.readSetting('deviceinfo.os')
]).then(function(result) {
this.deviceInfoOs = result[3];
this.init();
}.bind(this));
},
_stop: function() {
this._operatorVariantHandlers = [];
},
'_handle_simslot-updated': function(evt) {
var simslot = evt.detail;
this._updateOperatorVariantHandler(simslot);
},
'_handle_simslot-iccinfochange': function(evt) {
var simslot = evt.detail;
this._updateOperatorVariantHandler(simslot);
},
_updateOperatorVariantHandler: function(simslot) {
if (!simslot.simCard ||
!simslot.simCard.iccInfo ||
!simslot.simCard.iccInfo.iccid) {
this.operatorVariantHandlers[simslot.index] = null;
return;
}
if (!this.operatorVariantHandlers[simslot.index]) {
this.operatorVariantHandlers[simslot.index] =
new OperatorVariantHandler(simslot.simCard.iccInfo.iccid,
simslot.index, this);
this.operatorVariantHandlers[simslot.index].start();
}
},
init: function() {
SIMSlotManager.getSlots().forEach(function(slot) {
this._updateOperatorVariantHandler(slot);
}, this);
},
/**
* Helper function. Ensure the value stored under the specified key is an
* array.
*/
ensureValueUnderKeyIsArray: function(key) {
return new Promise(function(resolve, reject) {
this.readSetting(key).then(function(value) {
var originalSetting = value;
var newSetting = null;
if (!originalSetting) {
newSetting = ['', ''];
} else if (!Array.isArray(originalSetting)) {
// Migrate settings field if needed
newSetting = [originalSetting, ''];
}
if (newSetting) {
var obj = {};
obj[key] = newSetting;
this.writeSetting(obj).then(function() {
resolve();
}, function() {
resolve();
});
} else {
resolve();
}
}.bind(this), function() {
resolve();
}.bind(this));
}.bind(this));
}
});
})();