Loading android/app/src/com/android/bluetooth/Utils.java +44 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,25 @@ public final class Utils { static final int BD_ADDR_LEN = 6; // bytes static final int BD_UUID_LEN = 16; // bytes /* * Special characters * * (See "What is a phone number?" doc) * 'p' --- GSM pause character, same as comma * 'n' --- GSM wild character * 'w' --- GSM wait character */ public static final char PAUSE = ','; public static final char WAIT = ';'; private static boolean isPause(char c) { return c == 'p' || c == 'P'; } private static boolean isToneWait(char c) { return c == 'w' || c == 'W'; } public static String getAddressStringFromByte(byte[] address) { if (address == null || address.length != BD_ADDR_LEN) { return null; Loading Loading @@ -542,4 +561,29 @@ public final class Utils { || parser.getDepth() > outerDepth)) { } } /** * Converts pause and tonewait pause characters * to Android representation. * RFC 3601 says pause is 'p' and tonewait is 'w'. */ public static String convertPreDial(String phoneNumber) { if (phoneNumber == null) { return null; } int len = phoneNumber.length(); StringBuilder ret = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = phoneNumber.charAt(i); if (isPause(c)) { c = PAUSE; } else if (isToneWait(c)) { c = WAIT; } ret.append(c); } return ret.toString(); } } android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java +2 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.text.TextUtils; import android.util.Log; import android.util.StatsLog; import com.android.bluetooth.Utils; import com.android.bluetooth.btservice.AdapterService; import com.android.bluetooth.btservice.ProfileService; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -1588,7 +1589,7 @@ public class HeadsetStateMachine extends StateMachine { if (number.charAt(number.length() - 1) == ';') { number = number.substring(0, number.length() - 1); } dialNumber = PhoneNumberUtils.convertPreDial(number); dialNumber = Utils.convertPreDial(number); } if (!mHeadsetService.dialOutgoingCall(mDevice, dialNumber)) { Log.w(TAG, "processDialCall, failed to dial in service"); Loading Loading
android/app/src/com/android/bluetooth/Utils.java +44 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,25 @@ public final class Utils { static final int BD_ADDR_LEN = 6; // bytes static final int BD_UUID_LEN = 16; // bytes /* * Special characters * * (See "What is a phone number?" doc) * 'p' --- GSM pause character, same as comma * 'n' --- GSM wild character * 'w' --- GSM wait character */ public static final char PAUSE = ','; public static final char WAIT = ';'; private static boolean isPause(char c) { return c == 'p' || c == 'P'; } private static boolean isToneWait(char c) { return c == 'w' || c == 'W'; } public static String getAddressStringFromByte(byte[] address) { if (address == null || address.length != BD_ADDR_LEN) { return null; Loading Loading @@ -542,4 +561,29 @@ public final class Utils { || parser.getDepth() > outerDepth)) { } } /** * Converts pause and tonewait pause characters * to Android representation. * RFC 3601 says pause is 'p' and tonewait is 'w'. */ public static String convertPreDial(String phoneNumber) { if (phoneNumber == null) { return null; } int len = phoneNumber.length(); StringBuilder ret = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = phoneNumber.charAt(i); if (isPause(c)) { c = PAUSE; } else if (isToneWait(c)) { c = WAIT; } ret.append(c); } return ret.toString(); } }
android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java +2 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.text.TextUtils; import android.util.Log; import android.util.StatsLog; import com.android.bluetooth.Utils; import com.android.bluetooth.btservice.AdapterService; import com.android.bluetooth.btservice.ProfileService; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -1588,7 +1589,7 @@ public class HeadsetStateMachine extends StateMachine { if (number.charAt(number.length() - 1) == ';') { number = number.substring(0, number.length() - 1); } dialNumber = PhoneNumberUtils.convertPreDial(number); dialNumber = Utils.convertPreDial(number); } if (!mHeadsetService.dialOutgoingCall(mDevice, dialNumber)) { Log.w(TAG, "processDialCall, failed to dial in service"); Loading