Bug 877560: B2G RIL - support EF_CBMID. r=yoshi

This commit is contained in:
Vicamo Yang 2013-06-05 14:55:36 +08:00
parent cb2aec619e
commit 46e9e2bf89
2 changed files with 40 additions and 10 deletions

View File

@ -430,6 +430,7 @@ this.ICC_EF_SMS = 0x6f3c;
this.ICC_EF_MSISDN = 0x6f40;
this.ICC_EF_CBMI = 0x6f45;
this.ICC_EF_SPN = 0x6f46;
this.ICC_EF_CBMID = 0x6f48;
this.ICC_EF_SDN = 0x6f49;
this.ICC_EF_EXT1 = 0x6f4a;
this.ICC_EF_EXT2 = 0x6f4b;
@ -1073,6 +1074,7 @@ this.GECKO_ICC_SERVICES = {
CBMI: 14,
SPN: 17,
SDN: 18,
DATA_DOWNLOAD_SMS_CB: 25,
DATA_DOWNLOAD_SMS_PP: 26,
CBMIR: 30,
BDN: 31,
@ -1088,6 +1090,7 @@ this.GECKO_ICC_SERVICES = {
CBMIR: 16,
SPN: 19,
DATA_DOWNLOAD_SMS_PP: 28,
DATA_DOWNLOAD_SMS_CB: 29,
PNN: 45,
OPL: 46,
SPDI: 51

View File

@ -43,6 +43,8 @@ importScripts("ril_consts.js", "systemlibs.js");
// set to true in ril_consts.js to see debug messages
let DEBUG = DEBUG_WORKER;
let GLOBAL = this;
const INT32_MAX = 2147483647;
const UINT8_SIZE = 1;
const UINT16_SIZE = 2;
@ -4147,6 +4149,7 @@ let RIL = {
*/
_mergeAllCellBroadcastConfigs: function _mergeAllCellBroadcastConfigs() {
if (!("CBMI" in this.cellBroadcastConfigs)
|| !("CBMID" in this.cellBroadcastConfigs)
|| !("CBMIR" in this.cellBroadcastConfigs)
|| !("MMI" in this.cellBroadcastConfigs)) {
if (DEBUG) {
@ -9741,6 +9744,7 @@ let ICCFileHelper = {
case ICC_EF_SST:
case ICC_EF_PHASE:
case ICC_EF_CBMI:
case ICC_EF_CBMID:
case ICC_EF_CBMIR:
case ICC_EF_OPL:
case ICC_EF_PNN:
@ -9763,6 +9767,7 @@ let ICCFileHelper = {
case ICC_EF_SPN:
case ICC_EF_SPDI:
case ICC_EF_CBMI:
case ICC_EF_CBMID:
case ICC_EF_CBMIR:
case ICC_EF_OPL:
case ICC_EF_PNN:
@ -10263,6 +10268,11 @@ let ICCRecordHelper = {
} else {
RIL.cellBroadcastConfigs.CBMI = null;
}
if (ICCUtilsHelper.isICCServiceAvailable("DATA_DOWNLOAD_SMS_CB")) {
this.readCBMID();
} else {
RIL.cellBroadcastConfigs.CBMID = null;
}
if (ICCUtilsHelper.isICCServiceAvailable("CBMIR")) {
this.readCBMIR();
} else {
@ -10735,12 +10745,7 @@ let ICCRecordHelper = {
callback: callback.bind(this)});
},
/**
* Read EFcbmi (Cell Broadcast Message Identifier selection)
*
* @see 3GPP TS 31.102 v110.02.0 section 4.2.14 EFcbmi
*/
readCBMI: function readCBMI() {
_readCbmiHelper: function _readCbmiHelper(which) {
function callback() {
let strLength = Buf.readUint32();
@ -10759,29 +10764,51 @@ let ICCRecordHelper = {
}
}
if (DEBUG) {
debug("CBMI: " + JSON.stringify(list));
debug(which + ": " + JSON.stringify(list));
}
Buf.readStringDelimiter(strLength);
RIL.cellBroadcastConfigs.CBMI = list;
RIL.cellBroadcastConfigs[which] = list;
RIL._mergeAllCellBroadcastConfigs();
}
function onerror() {
RIL.cellBroadcastConfigs.CBMI = null;
RIL.cellBroadcastConfigs[which] = null;
RIL._mergeAllCellBroadcastConfigs();
}
ICCIOHelper.loadTransparentEF({fileId: ICC_EF_CBMI,
let fileId = GLOBAL["ICC_EF_" + which];
ICCIOHelper.loadTransparentEF({fileId: fileId,
callback: callback.bind(this),
onerror: onerror.bind(this)});
},
/**
* Read EFcbmi (Cell Broadcast Message Identifier selection)
*
* @see 3GPP TS 31.102 v110.02.0 section 4.2.14 EFcbmi
* @see 3GPP TS 51.011 v5.0.0 section 10.3.13 EFcbmi
*/
readCBMI: function readCBMI() {
this._readCbmiHelper("CBMI");
},
/**
* Read EFcbmid (Cell Broadcast Message Identifier for Data Download)
*
* @see 3GPP TS 31.102 v110.02.0 section 4.2.20 EFcbmid
* @see 3GPP TS 51.011 v5.0.0 section 10.3.26 EFcbmid
*/
readCBMID: function readCBMID() {
this._readCbmiHelper("CBMID");
},
/**
* Read EFcbmir (Cell Broadcast Message Identifier Range selection)
*
* @see 3GPP TS 31.102 v110.02.0 section 4.2.22 EFcbmir
* @see 3GPP TS 51.011 v5.0.0 section 10.3.28 EFcbmir
*/
readCBMIR: function readCBMIR() {
function callback() {