diff options
author | Ankit Gupta <agupta@cyngn.com> | 2016-04-13 10:55:36 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-04-15 16:17:11 -0700 |
commit | 6685f012c0526ab8304fe468673afd4b6165540b (patch) | |
tree | 1af271624fa6d7fa8748cfba7cd7496224626013 | |
parent | 114b9b51492b5a8eba0787dc5a9ed929b416cb04 (diff) | |
download | android_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.xml | 3 | ||||
-rw-r--r-- | src/com/android/dialer/SpecialCharSequenceMgr.java | 13 |
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; } |