summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnkit Gupta <agupta@cyngn.com>2016-04-13 10:55:36 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-04-15 16:17:11 -0700
commit6685f012c0526ab8304fe468673afd4b6165540b (patch)
tree1af271624fa6d7fa8748cfba7cd7496224626013
parent114b9b51492b5a8eba0787dc5a9ed929b416cb04 (diff)
downloadandroid_packages_apps_Dialer-6685f012c0526ab8304fe468673afd4b6165540b.tar.gz
android_packages_apps_Dialer-6685f012c0526ab8304fe468673afd4b6165540b.tar.bz2
android_packages_apps_Dialer-6685f012c0526ab8304fe468673afd4b6165540b.zip
Dialer: Handle OEM Specific codes.
Handle OEM specific code in their respective hinthandler packages. Issue-id: FEIJ-36 Change-Id: I455b4662687f0299234c47df90c13e58452bdb9d
-rw-r--r--res/values/cm_arrays.xml3
-rw-r--r--src/com/android/dialer/SpecialCharSequenceMgr.java13
2 files changed, 13 insertions, 3 deletions
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
index f2dcc61c1..29d5846ff 100644
--- a/res/values/cm_arrays.xml
+++ b/res/values/cm_arrays.xml
@@ -87,4 +87,7 @@
<item>"1"</item>
</string-array>
+ <string-array name="oem_specific_code" translatable="false">
+ </string-array>
+
</resources>
diff --git a/src/com/android/dialer/SpecialCharSequenceMgr.java b/src/com/android/dialer/SpecialCharSequenceMgr.java
index 602bf2bd4..721bc704e 100644
--- a/src/com/android/dialer/SpecialCharSequenceMgr.java
+++ b/src/com/android/dialer/SpecialCharSequenceMgr.java
@@ -195,7 +195,8 @@ public class SpecialCharSequenceMgr {
}
/**
- * Handles secret codes to launch arbitrary activities in the form of *#*#<code>#*#*.
+ * Handles secret codes to launch arbitrary activities in the form of *#*#<code>#*#* or
+ * any other code that is present in the oem_codes overlay list
* If a secret code is encountered an Intent is started with the android_secret_code://<code>
* URI.
*
@@ -204,11 +205,17 @@ public class SpecialCharSequenceMgr {
* @return true if a secret code was encountered
*/
static boolean handleSecretCode(Context context, String input) {
- // Secret codes are in the form *#*#<code>#*#*
int len = input.length();
+ String sanitizedInput = null;
+ String[] oemCodes = context.getResources().getStringArray(R.array.oem_specific_code);
if (len > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) {
+ sanitizedInput = input.substring(4, len - 4);
+ } else if (Arrays.asList(oemCodes).contains(input)) {
+ sanitizedInput = input.replaceAll("[^0-9.]", "");
+ }
+ if (sanitizedInput != null) {
final Intent intent = new Intent(SECRET_CODE_ACTION,
- Uri.parse("android_secret_code://" + input.substring(4, len - 4)));
+ Uri.parse("android_secret_code://" + sanitizedInput));
context.sendBroadcast(intent);
return true;
}