IMS: UT serviceClass
When CF and CW MMI request will be triggered,
user preferred serviceclass will be sent to
the lower layers.
Change-Id: I3e35e7b5d028dc2aa140a243f55c2c99a6747263
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
index fb6882a..69e9fd3 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
@@ -680,8 +680,18 @@
String dialingNumber,
int timerSeconds,
Message onComplete) {
+ setCallForwardingOption(commandInterfaceCFAction, commandInterfaceCFReason, dialingNumber,
+ CommandsInterface.SERVICE_CLASS_VOICE, timerSeconds, onComplete);
+ }
+
+ public void setCallForwardingOption(int commandInterfaceCFAction,
+ int commandInterfaceCFReason,
+ String dialingNumber,
+ int serviceClass,
+ int timerSeconds,
+ Message onComplete) {
if (DBG) Rlog.d(LOG_TAG, "setCallForwardingOption action=" + commandInterfaceCFAction
- + ", reason=" + commandInterfaceCFReason);
+ + ", reason=" + commandInterfaceCFReason + " serviceClass=" + serviceClass);
if ((isValidCommandInterfaceCFAction(commandInterfaceCFAction)) &&
(isValidCommandInterfaceCFReason(commandInterfaceCFReason))) {
Message resp;
@@ -696,6 +706,7 @@
ut.updateCallForward(getActionFromCFAction(commandInterfaceCFAction),
getConditionFromCFReason(commandInterfaceCFReason),
dialingNumber,
+ serviceClass,
timerSeconds,
onComplete);
} catch (ImsException e) {
@@ -722,13 +733,17 @@
@Override
public void setCallWaiting(boolean enable, Message onComplete) {
+ setCallWaiting(enable, CommandsInterface.SERVICE_CLASS_VOICE, onComplete);
+ }
+
+ public void setCallWaiting(boolean enable, int serviceClass, Message onComplete) {
if (DBG) Rlog.d(LOG_TAG, "setCallWaiting enable=" + enable);
Message resp;
resp = obtainMessage(EVENT_SET_CALL_WAITING_DONE, onComplete);
try {
ImsUtInterface ut = mCT.getUtInterface();
- ut.updateCallWaiting(enable, resp);
+ ut.updateCallWaiting(enable, serviceClass, resp);
} catch (ImsException e) {
sendErrorResponse(onComplete, e);
}
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
index fbdd572..ac7f76e 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
@@ -706,10 +706,10 @@
throw new CallStateException(ImsPhone.CS_FALLBACK);
} else if (isServiceCodeCallForwarding(mSc)) {
Rlog.d(LOG_TAG, "is CF");
- // service group is not supported
String dialingNumber = mSia;
int reason = scToCallForwardReason(mSc);
+ int serviceClass = siToServiceClass(mSib);
int time = siToTime(mSic);
if (isInterrogate()) {
@@ -750,7 +750,7 @@
Rlog.d(LOG_TAG, "is CF setCallForward");
mPhone.setCallForwardingOption(cfAction, reason,
- dialingNumber, time, obtainMessage(
+ dialingNumber, serviceClass, time, obtainMessage(
EVENT_SET_CFF_COMPLETE,
isSettingUnconditional,
isEnableDesired, this));
@@ -890,9 +890,10 @@
}
} else if (mSc != null && mSc.equals(SC_WAIT)) {
// sia = basic service group
- // service group is not supported
+ int serviceClass = siToServiceClass(mSib);
+
if (isActivate() || isDeactivate()) {
- mPhone.setCallWaiting(isActivate(),
+ mPhone.setCallWaiting(isActivate(), serviceClass,
obtainMessage(EVENT_SET_COMPLETE, this));
} else if (isInterrogate()) {
mPhone.getCallWaiting(obtainMessage(EVENT_QUERY_COMPLETE, this));