Add support for forwarding more special codes

Bug: 72162360
Test: SpecialCharSequenceMgrTest, manual
PiperOrigin-RevId: 183138805
Change-Id: I57903a6b3bc30243e4f225d758d1ace550e8ab99
diff --git a/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java b/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java
index e6d405c..7689255 100644
--- a/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java
+++ b/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java
@@ -131,22 +131,29 @@
   }
 
   /**
-   * 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 *#<code_starting_with_number>#.
    *
    * @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 and handled
    */
   static boolean handleSecretCode(Context context, String input) {
-    // Secret codes are accessed by dialing *#*#<code>#*#*
-
-    int len = input.length();
-    if (len <= 8 || !input.startsWith("*#*#") || !input.endsWith("#*#*")) {
-      return false;
+    // Secret codes are accessed by dialing *#*#<code>#*#* or "*#<code_starting_with_number>#"
+    if (input.length() > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) {
+      String secretCode = input.substring(4, input.length() - 4);
+      TelephonyManagerCompat.handleSecretCode(context, secretCode);
+      return true;
     }
-    String secretCode = input.substring(4, len - 4);
-    TelephonyManagerCompat.handleSecretCode(context, secretCode);
-    return true;
+    if (input.length() >= 4
+        && input.startsWith("*#")
+        && input.endsWith("#")
+        && Character.isDigit(input.charAt(2))) {
+      String secretCode = input.substring(2, input.length() - 1);
+      TelephonyManagerCompat.handleSecretCode(context, secretCode);
+      return true;
+    }
+    return false;
   }
 
   /**