Bug 879680 - (mmi-result-cf) [MMI] Use MMIResult for Call Forwarding related functionality. r=ferjm

This commit is contained in:
Jose Antonio Olivera Ortega 2013-07-01 01:23:52 +08:00
parent 0c699898c9
commit 3160742a8e
3 changed files with 37 additions and 2 deletions

View File

@ -1576,6 +1576,14 @@ RILContentHelper.prototype = {
success = false;
}
// MMI query call forwarding options request returns a set of rules that
// will be exposed in the form of an array of nsIDOMMozMobileCFInfo
// instances.
if (message.mmiServiceCode === RIL.MMI_KS_SC_CALL_FORWARDING &&
message.additionalInformation) {
this._cfRulesToMobileCfInfo(message.additionalInformation);
}
let result = {
serviceCode: message.mmiServiceCode,
additionalInformation: message.additionalInformation

View File

@ -2566,6 +2566,11 @@ this.MMI_SM_KS_PIN_CHANGED = "smPinChanged";
this.MMI_SM_KS_PIN2_CHANGED = "smPin2Changed";
this.MMI_SM_KS_PIN_UNBLOCKED = "smPinUnblocked";
this.MMI_SM_KS_PIN2_UNBLOCKED = "smPin2Unblocked";
this.MMI_SM_KS_SERVICE_ENABLED = "smServiceEnabled";
this.MMI_SM_KS_SERVICE_DISABLED = "smServiceDisabled";
this.MMI_SM_KS_SERVICE_REGISTERED = "smServiceRegistered";
this.MMI_SM_KS_SERVICE_ERASED = "smServiceErased";
this.MMI_SM_KS_SERVICE_INTERROGATED = "smServiceInterrogated";
/**
* CDMA PDU constants

View File

@ -4850,8 +4850,7 @@ RIL[REQUEST_QUERY_CALL_FORWARD_STATUS] =
}
if (!rulesLength) {
options.success = false;
options.errorMsg =
"Invalid rule length while querying call forwarding status.";
options.errorMsg = GECKO_ERROR_GENERIC_FAILURE;
this.sendDOMMessage(options);
return;
}
@ -4867,6 +4866,13 @@ RIL[REQUEST_QUERY_CALL_FORWARD_STATUS] =
rules[i] = rule;
}
options.rules = rules;
if (options.rilMessageType === "sendMMI") {
options.statusMessage = MMI_SM_KS_SERVICE_INTERROGATED;
// MMI query call forwarding options request returns a set of rules that
// will be exposed in the form of an array of nsIDOMMozMobileCFInfo
// instances.
options.additionalInformation = rules;
}
this.sendDOMMessage(options);
};
RIL[REQUEST_SET_CALL_FORWARD] =
@ -4875,6 +4881,22 @@ RIL[REQUEST_SET_CALL_FORWARD] =
if (!options.success) {
options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError];
}
if (options.success && options.isSendMMI) {
switch (options.action) {
case CALL_FORWARD_ACTION_ENABLE:
options.statusMessage = MMI_SM_KS_SERVICE_ENABLED;
break;
case CALL_FORWARD_ACTION_DISABLE:
options.statusMessage = MMI_SM_KS_SERVICE_DISABLED;
break;
case CALL_FORWARD_ACTION_REGISTRATION:
options.statusMessage = MMI_SM_KS_SERVICE_REGISTERED;
break;
case CALL_FORWARD_ACTION_ERASURE:
options.statusMessage = MMI_SM_KS_SERVICE_ERASED;
break;
}
}
this.sendDOMMessage(options);
};
RIL[REQUEST_QUERY_CALL_WAITING] =