Merge "Add support for FDN contact dial"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 00cc11a..f89ed64 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1363,6 +1363,11 @@
There are too many active calls. Please end or merge existing calls before placing a new one.
</string>
+ <!-- Call failure reason: If the network does not accept the emergency call request, e.g., because IMEI was used as identification and this capability is not supported -->
+ <string name="callFailed_imei_not_accepted">
+ Unable to connect, please insert a valid SIM card.
+ </string>
+
<!-- The title for the change voicemail PIN activity -->
<string name="change_pin_title">Change Voicemail PIN</string>
<!-- The label for the continue button in change voicemail PIN activity -->
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 5a40322..47bb064 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -58,6 +58,7 @@
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.IndentingPrintWriter;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -71,6 +72,9 @@
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
/**
@@ -712,9 +716,41 @@
}
pw.println("CarrierConfigLoader: " + this);
for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
- pw.println(" Phone Id=" + i);
- pw.println(" mConfigFromDefaultApp=" + mConfigFromDefaultApp[i]);
- pw.println(" mConfigFromCarrierApp=" + mConfigFromCarrierApp[i]);
+ pw.println("Phone Id = " + i);
+ // display default values in CarrierConfigManager
+ printConfig(CarrierConfigManager.getDefaultConfig(), pw,
+ "Default Values from CarrierConfigManager");
+ pw.println("");
+ // display ConfigFromDefaultApp
+ printConfig(mConfigFromDefaultApp[i], pw, "mConfigFromDefaultApp");
+ pw.println("");
+ // display ConfigFromCarrierApp
+ printConfig(mConfigFromCarrierApp[i], pw, "mConfigFromCarrierApp");
+ }
+ }
+
+ private void printConfig(PersistableBundle configApp, PrintWriter pw, String name) {
+ IndentingPrintWriter indentPW = new IndentingPrintWriter(pw, " ");
+ if (configApp == null) {
+ indentPW.increaseIndent();
+ indentPW.println(name + " : null ");
+ return;
+ }
+ indentPW.increaseIndent();
+ indentPW.println(name + " : ");
+ List<String> sortedKeys = new ArrayList<String>(configApp.keySet());
+ Collections.sort(sortedKeys);
+ indentPW.increaseIndent();
+ indentPW.increaseIndent();
+ for (String key : sortedKeys) {
+ if (configApp.get(key) != null && configApp.get(key) instanceof Object[]) {
+ indentPW.println(key + " = " +
+ Arrays.toString((Object[]) configApp.get(key)));
+ } else if (configApp.get(key) != null && configApp.get(key) instanceof int[]) {
+ indentPW.println(key + " = " + Arrays.toString((int[]) configApp.get(key)));
+ } else {
+ indentPW.println(key + " = " + configApp.get(key));
+ }
}
}
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 6eb4a4e..534f510 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -129,6 +129,7 @@
case android.telephony.DisconnectCause.DATA_DISABLED:
case android.telephony.DisconnectCause.DATA_LIMIT_REACHED:
case android.telephony.DisconnectCause.DIALED_ON_WRONG_SLOT:
+ case android.telephony.DisconnectCause.IMEI_NOT_ACCEPTED:
return DisconnectCause.ERROR;
case android.telephony.DisconnectCause.DIALED_MMI:
@@ -381,6 +382,10 @@
resourceId = R.string.callFailed_data_limit_reached_description;
break;
+ case android.telephony.DisconnectCause.IMEI_NOT_ACCEPTED:
+ resourceId = R.string.callFailed_imei_not_accepted;
+ break;
+
default:
break;
}
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 77f4077..ef2b414 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -885,7 +885,7 @@
String[] filteredCnapNames = null;
if (carrierConfig != null) {
filteredCnapNames = carrierConfig.getStringArray(
- CarrierConfigManager.FILTERED_CNAP_NAMES_STRING_ARRAY);
+ CarrierConfigManager.KEY_FILTERED_CNAP_NAMES_STRING_ARRAY);
}
if (filteredCnapNames != null) {
long cnapNameMatches = Arrays.asList(filteredCnapNames)
@@ -961,6 +961,12 @@
b != null && b.getBoolean(CarrierConfigManager.KEY_WIFI_CALLS_CAN_BE_HD_AUDIO);
boolean canVideoCallsBeHdAudio =
b != null && b.getBoolean(CarrierConfigManager.KEY_VIDEO_CALLS_CAN_BE_HD_AUDIO);
+ boolean shouldDisplayHdAudio =
+ b != null && b.getBoolean(CarrierConfigManager.KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL);
+
+ if (!shouldDisplayHdAudio) {
+ return false;
+ }
if (isVideoCall && !canVideoCallsBeHdAudio) {
return false;