STK Call Control feature implementation.
Support to display the exact call failure reason
for STK cc.
Bug: 22928843
Change-Id: Ib37fa59d75d036da6c51cfd022d2f3cae07199ef
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 08a5a95..05b86a5 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -50,6 +50,9 @@
static final int RESPONSE_ERROR = 400;
static final int RADIO_OFF_ERROR = 500;
static final int FDN_CHECK_FAILURE = 600;
+ static final int STK_CC_SS_TO_DIAL_ERROR = 700;
+ static final int STK_CC_SS_TO_USSD_ERROR = 800;
+ static final int STK_CC_SS_TO_SS_ERROR = 900;
private final ArrayList<String> mBusyList = new ArrayList<String>();
@@ -77,7 +80,8 @@
}
if (id == RESPONSE_ERROR || id == RADIO_OFF_ERROR || id == EXCEPTION_ERROR
- || id == FDN_CHECK_FAILURE) {
+ || id == FDN_CHECK_FAILURE || id == STK_CC_SS_TO_DIAL_ERROR
+ || id == STK_CC_SS_TO_USSD_ERROR || id == STK_CC_SS_TO_SS_ERROR) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
int msgId;
@@ -97,6 +101,18 @@
msgId = R.string.fdn_check_failure;
builder.setPositiveButton(R.string.close_dialog, mDismiss);
break;
+ case STK_CC_SS_TO_DIAL_ERROR:
+ msgId = R.string.stk_cc_ss_to_dial_error;
+ builder.setPositiveButton(R.string.close_dialog, mDismiss);
+ break;
+ case STK_CC_SS_TO_USSD_ERROR:
+ msgId = R.string.stk_cc_ss_to_ussd_error;
+ builder.setPositiveButton(R.string.close_dialog, mDismiss);
+ break;
+ case STK_CC_SS_TO_SS_ERROR:
+ msgId = R.string.stk_cc_ss_to_ss_error;
+ builder.setPositiveButton(R.string.close_dialog, mDismiss);
+ break;
case EXCEPTION_ERROR:
default:
msgId = R.string.exception_error;
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 4a92847..81fc7aa 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -120,6 +120,9 @@
case android.telephony.DisconnectCause.TIMED_OUT:
case android.telephony.DisconnectCause.UNOBTAINABLE_NUMBER:
case android.telephony.DisconnectCause.VOICEMAIL_NUMBER_MISSING:
+ case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_USSD:
+ case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_SS:
+ case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_DIAL:
case android.telephony.DisconnectCause.ERROR_UNSPECIFIED:
return DisconnectCause.ERROR;
@@ -251,6 +254,18 @@
resourceId = R.string.callFailed_dsac_restricted_normal;
break;
+ case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_USSD:
+ resourceId = R.string.callFailed_dialToUssd;
+ break;
+
+ case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_SS:
+ resourceId = R.string.callFailed_dialToSs;
+ break;
+
+ case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_DIAL:
+ resourceId = R.string.callFailed_dialToDial;
+ break;
+
case android.telephony.DisconnectCause.OUTGOING_FAILURE:
// We couldn't successfully place the call; there was some
// failure in the telephony layer.