diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-03-12 23:53:30 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-03-12 23:53:30 +0000 |
commit | c8039e034838a030848bb040d10997835153427e (patch) | |
tree | fbe3fc71bf85c6cd17487c0dd2b1be777f110701 | |
parent | c28ea9a02c30c3a4a4424a6f5b61788b7b2ef7b8 (diff) | |
parent | 6b56ebf4753ba9f6db95c7ce3b380ed8556ede55 (diff) |
Merge "Use config provider for OEM MMI codes"
-rw-r--r-- | java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java b/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java index 3321d93f2..d88bac3f7 100644 --- a/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java +++ b/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java @@ -59,14 +59,15 @@ import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.Selec import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.compat.telephony.TelephonyManagerCompat; +import com.android.dialer.configprovider.ConfigProviderBindings; import com.android.dialer.oem.MotorolaUtils; import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.util.PermissionsUtil; +import com.google.common.collect.ImmutableSet; import com.google.zxing.BarcodeFormat; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; @@ -93,17 +94,8 @@ public class SpecialCharSequenceMgr { private static final String ADN_NAME_COLUMN_NAME = "name"; private static final int ADN_QUERY_TOKEN = -1; - @VisibleForTesting - static final List<String> TRANSSION_CODES = - new ArrayList<String>() { - { - add("*#07#"); - add("*#87#"); - add("*#43#"); - add("*#2727#"); - add("*#88#"); - } - }; + /** Comma separated MMI codes specific to OEM/device. */ + @VisibleForTesting static final String CONFIG_OEM_MMI_CODES_CSV = "oem_mmi_codes_csv"; /** * Remembers the previous {@link QueryHandler} and cancel the operation when needed, to prevent @@ -172,7 +164,8 @@ public class SpecialCharSequenceMgr { TelephonyManagerCompat.handleSecretCode(context, secretCode); return true; } - if (TRANSSION_CODES.contains(input)) { + + if (getOemSecretCodes(context).contains(input)) { String secretCode = input.substring(2, input.length() - 1); TelephonyManagerCompat.handleSecretCode(context, secretCode); return true; @@ -181,6 +174,18 @@ public class SpecialCharSequenceMgr { } /** + * Get the OEM codes from the config provider. The config provider should be aware of the device + * and manufacturer. + */ + private static ImmutableSet<String> getOemSecretCodes(Context context) { + String csv = ConfigProviderBindings.get(context).getString(CONFIG_OEM_MMI_CODES_CSV, null); + if (TextUtils.isEmpty(csv)) { + return ImmutableSet.of(); + } + return ImmutableSet.copyOf(csv.split(",")); + } + + /** * Handle ADN requests by filling in the SIM contact number into the requested EditText. * * <p>This code works alongside the Asynchronous query handler {@link QueryHandler} and query |