diff options
author | Tyler Gunn <tgunn@google.com> | 2018-04-24 09:52:26 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-04-24 09:52:26 -0700 |
commit | cc9acb51c5bb9f8a74bc1fcec44fdc46fa6d9791 (patch) | |
tree | d1e4f919347cdb1c9eb127dcfbce710f20b243fb /telecomm/java/android/telecom/Log.java | |
parent | 26123f6efdfc4fc6c0700ac5a919cbce349e5319 (diff) | |
parent | a355552bfe9b1313b0351ede9120363bfd9281bc (diff) |
Merge "Add ability to log last 2 digits of dialed numbers in userdebug builds."
am: a355552bfe
Change-Id: Id58f0268fd6e5a3611b2dc27d456b13fb8dcee6a
Diffstat (limited to 'telecomm/java/android/telecom/Log.java')
-rw-r--r-- | telecomm/java/android/telecom/Log.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/telecomm/java/android/telecom/Log.java b/telecomm/java/android/telecom/Log.java index 83ca4702287d..0eb991777d74 100644 --- a/telecomm/java/android/telecom/Log.java +++ b/telecomm/java/android/telecom/Log.java @@ -46,6 +46,11 @@ public class Log { private static final int EVENTS_TO_CACHE = 10; private static final int EVENTS_TO_CACHE_DEBUG = 20; + /** + * When generating a bug report, include the last X dialable digits when logging phone numbers. + */ + private static final int NUM_DIALABLE_DIGITS_TO_LOG = Build.IS_USER ? 0 : 2; + // Generic tag for all Telecom logging @VisibleForTesting public static String TAG = "TelecomFramework"; @@ -384,9 +389,15 @@ public class Log { String textToObfuscate = uri.getSchemeSpecificPart(); if (PhoneAccount.SCHEME_TEL.equals(scheme)) { + int numDigitsToObfuscate = getDialableCount(textToObfuscate) + - NUM_DIALABLE_DIGITS_TO_LOG; for (int i = 0; i < textToObfuscate.length(); i++) { char c = textToObfuscate.charAt(i); - sb.append(PhoneNumberUtils.isDialable(c) ? "*" : c); + boolean isDialable = PhoneNumberUtils.isDialable(c); + if (isDialable) { + numDigitsToObfuscate--; + } + sb.append(isDialable && numDigitsToObfuscate >= 0 ? "*" : c); } } else if (PhoneAccount.SCHEME_SIP.equals(scheme)) { for (int i = 0; i < textToObfuscate.length(); i++) { @@ -405,6 +416,21 @@ public class Log { } /** + * Determines the number of dialable characters in a string. + * @param toCount The string to count dialable characters in. + * @return The count of dialable characters. + */ + private static int getDialableCount(String toCount) { + int numDialable = 0; + for (char c : toCount.toCharArray()) { + if (PhoneNumberUtils.isDialable(c)) { + numDialable++; + } + } + return numDialable; + } + + /** * Redact personally identifiable information for production users. * If we are running in verbose mode, return the original string, * and return "***" otherwise. |