mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
Bug 1102677 - Part 1: Support change barring password. r=hsinyi
This commit is contained in:
parent
99e242e484
commit
c9f7bd7b3d
@ -2999,6 +2999,10 @@ this.MMI_SC_CLIR = "31";
|
||||
// MMI call waiting service code
|
||||
this.MMI_SC_CALL_WAITING = "43";
|
||||
|
||||
// MMI service code for registration new password as defined in TS 22.030 6.5.4
|
||||
this.MMI_SC_CHANGE_PASSWORD = "03";
|
||||
this.MMI_ZZ_BARRING_SERVICE = "330";
|
||||
|
||||
// MMI call barring service codes
|
||||
this.MMI_SC_BAOC = "33";
|
||||
this.MMI_SC_BAOIC = "331";
|
||||
@ -3031,6 +3035,7 @@ this.MMI_KS_SC_PIN = "scPin";
|
||||
this.MMI_KS_SC_PIN2 = "scPin2";
|
||||
this.MMI_KS_SC_PUK = "scPuk";
|
||||
this.MMI_KS_SC_PUK2 = "scPuk2";
|
||||
this.MMI_KS_SC_CHANGE_PASSWORD = "scChangePassword"
|
||||
this.MMI_KS_SC_IMEI = "scImei";
|
||||
this.MMI_KS_SC_USSD = "scUssd";
|
||||
this.MMI_KS_SC_CALL = "scCall";
|
||||
@ -3040,13 +3045,16 @@ this.MMI_ERROR_KS_ERROR = "emMmiError";
|
||||
this.MMI_ERROR_KS_NOT_SUPPORTED = "emMmiErrorNotSupported";
|
||||
this.MMI_ERROR_KS_INVALID_ACTION = "emMmiErrorInvalidAction";
|
||||
this.MMI_ERROR_KS_MISMATCH_PIN = "emMmiErrorMismatchPin";
|
||||
this.MMI_ERROR_KS_MISMATCH_PASSWORD = "emMmiErrorMismatchPassword";
|
||||
this.MMI_ERROR_KS_BAD_PIN = "emMmiErrorBadPin";
|
||||
this.MMI_ERROR_KS_BAD_PUK = "emMmiErrorBadPuk";
|
||||
this.MMI_ERROR_KS_INVALID_PIN = "emMmiErrorInvalidPin";
|
||||
this.MMI_ERROR_KS_INVALID_PASSWORD = "emMmiErrorInvalidPassword";
|
||||
this.MMI_ERROR_KS_NEEDS_PUK = "emMmiErrorNeedsPuk";
|
||||
this.MMI_ERROR_KS_SIM_BLOCKED = "emMmiErrorSimBlocked";
|
||||
|
||||
// MMI status message.
|
||||
this.MMI_SM_KS_PASSWORD_CHANGED = "smPasswordChanged";
|
||||
this.MMI_SM_KS_PIN_CHANGED = "smPinChanged";
|
||||
this.MMI_SM_KS_PIN2_CHANGED = "smPin2Changed";
|
||||
this.MMI_SM_KS_PIN_UNBLOCKED = "smPinUnblocked";
|
||||
|
@ -2409,6 +2409,33 @@ RilObject.prototype = {
|
||||
return true;
|
||||
}
|
||||
|
||||
function _isValidChangePasswordRequest() {
|
||||
if (mmi.procedure !== MMI_PROCEDURE_REGISTRATION &&
|
||||
mmi.procedure !== MMI_PROCEDURE_ACTIVATION) {
|
||||
_sendMMIError(MMI_ERROR_KS_INVALID_ACTION);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mmi.sia !== "" && mmi.sia !== MMI_ZZ_BARRING_SERVICE) {
|
||||
_sendMMIError(MMI_ERROR_KS_NOT_SUPPORTED);
|
||||
return false;
|
||||
}
|
||||
|
||||
let validPassword = si => /^[0-9]{4}$/.test(si);
|
||||
if (!validPassword(mmi.sib) || !validPassword(mmi.sic) ||
|
||||
!validPassword(mmi.pwd)) {
|
||||
_sendMMIError(MMI_ERROR_KS_INVALID_PASSWORD);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mmi.sic != mmi.pwd) {
|
||||
_sendMMIError(MMI_ERROR_KS_MISMATCH_PASSWORD);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
let _isRadioAvailable = (function() {
|
||||
if (this.radioState !== GECKO_RADIOSTATE_ENABLED) {
|
||||
_sendMMIError(GECKO_ERROR_RADIO_NOT_AVAILABLE);
|
||||
@ -2556,6 +2583,17 @@ RilObject.prototype = {
|
||||
this.setCLIR(options);
|
||||
return;
|
||||
|
||||
// Change call barring password
|
||||
case MMI_SC_CHANGE_PASSWORD:
|
||||
if (!_isRadioAvailable() || !_isValidChangePasswordRequest()) {
|
||||
return;
|
||||
}
|
||||
|
||||
options.pin = mmi.sib;
|
||||
options.newPin = mmi.sic;
|
||||
this.changeCallBarringPassword(options);
|
||||
return;
|
||||
|
||||
// Call barring
|
||||
case MMI_SC_BAOC:
|
||||
case MMI_SC_BAOIC:
|
||||
@ -5986,6 +6024,13 @@ RilObject.prototype[REQUEST_CHANGE_BARRING_PASSWORD] =
|
||||
if (options.rilRequestError) {
|
||||
options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError];
|
||||
}
|
||||
|
||||
if (options.rilMessageType != "sendMMI") {
|
||||
this.sendChromeMessage(options);
|
||||
return;
|
||||
}
|
||||
|
||||
options.statusMessage = MMI_SM_KS_PASSWORD_CHANGED;
|
||||
this.sendChromeMessage(options);
|
||||
};
|
||||
RilObject.prototype[REQUEST_SIM_OPEN_CHANNEL] = function REQUEST_SIM_OPEN_CHANNEL(length, options) {
|
||||
|
@ -907,6 +907,8 @@ TelephonyService.prototype = {
|
||||
return RIL.MMI_KS_SC_CALL_BARRING;
|
||||
case RIL.MMI_SC_CALL_WAITING:
|
||||
return RIL.MMI_KS_SC_CALL_WAITING;
|
||||
case RIL.MMI_SC_CHANGE_PASSWORD:
|
||||
return RIL.MMI_KS_SC_CHANGE_PASSWORD;
|
||||
default:
|
||||
return RIL.MMI_KS_SC_USSD;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user