Adding toStrings() to the API.
Bug: 16979045
Change-Id: Ibbe1bcea6ab7981f62e7fb4bbe35f71e881166bd
diff --git a/telecomm/java/android/telecom/Log.java b/telecomm/java/android/telecom/Log.java
index 3f32dbe..2ab0525 100644
--- a/telecomm/java/android/telecom/Log.java
+++ b/telecomm/java/android/telecom/Log.java
@@ -16,7 +16,10 @@
package android.telecom;
+import android.net.Uri;
import android.os.AsyncTask;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -152,10 +155,37 @@
public static String pii(Object pii) {
if (pii == null || VERBOSE) {
return String.valueOf(pii);
+ } if (pii instanceof Uri) {
+ return piiUri((Uri) pii);
}
return "[" + secureHash(String.valueOf(pii).getBytes()) + "]";
}
+ private static String piiUri(Uri handle) {
+ StringBuilder sb = new StringBuilder();
+ String scheme = handle.getScheme();
+ if (!TextUtils.isEmpty(scheme)) {
+ sb.append(scheme).append(":");
+ }
+ String value = handle.getSchemeSpecificPart();
+ if (!TextUtils.isEmpty(value)) {
+ for (int i = 0; i < value.length(); i++) {
+ char c = value.charAt(i);
+ if (PhoneNumberUtils.isStartsPostDial(c)) {
+ sb.append(c);
+ } else if (PhoneNumberUtils.isDialable(c)) {
+ sb.append("*");
+ } else if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) {
+ sb.append("*");
+ } else {
+ sb.append(c);
+ }
+ }
+ }
+ return sb.toString();
+
+ }
+
private static String secureHash(byte[] input) {
if (sMessageDigest != null) {
sMessageDigest.reset();