use telephony API to sent secret dial code

Telephony provides an API to send secret code broadcast in a
bgcheck-compliant way. The dialer app moves to this new API to
pass O bg-restriction check.

Bug:33753947
Test: Manual
Change-Id: Ib2c623d7d87a7581ae5898d6181c100fac3f12f6
diff --git a/src/com/android/dialer/SpecialCharSequenceMgr.java b/src/com/android/dialer/SpecialCharSequenceMgr.java
index 4303f3e..fe2163f 100644
--- a/src/com/android/dialer/SpecialCharSequenceMgr.java
+++ b/src/com/android/dialer/SpecialCharSequenceMgr.java
@@ -166,23 +166,19 @@
 
     /**
      * Handles secret codes to launch arbitrary activities in the form of *#*#<code>#*#*.
-     * If a secret code is encountered an Intent is started with the android_secret_code://<code>
+     * If a secret code is encountered, an Intent is started with the android_secret_code://<code>
      * URI.
      *
      * @param context the context to use
      * @param input the text to check for a secret code in
-     * @return true if a secret code was encountered
+     * @return true if a secret code was encountered and intent is sent out
      */
     static boolean handleSecretCode(Context context, String input) {
-        // Secret codes are in the form *#*#<code>#*#*
-        int len = input.length();
-        if (len > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) {
-            final Intent intent = new Intent(SECRET_CODE_ACTION,
-                    Uri.parse("android_secret_code://" + input.substring(4, len - 4)));
-            context.sendBroadcast(intent);
-            return true;
+        final TelephonyManager telephonyManager =
+                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        if (telephonyManager != null) {
+            return telephonyManager.sendDialerCode(input);
         }
-
         return false;
     }