Do not cache non-contacts URI in calllog provider. (2/2)

Bug 19546108

Change-Id: I06d3d9326fac25cd8f84e96121e3c40eaa643cc0
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 914520e..36cf710 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -1169,8 +1169,11 @@
                 values.put(Calls.CACHED_PHOTO_ID, updatedInfo.photoId);
                 needsUpdate = true;
             }
-            if (!UriUtils.areEqual(updatedInfo.photoUri, callLogInfo.photoUri)) {
-                values.put(Calls.CACHED_PHOTO_URI, UriUtils.uriToString(updatedInfo.photoUri));
+            final Uri updatedPhotoUriContactsOnly =
+                    UriUtils.nullForNonContactsUri(updatedInfo.photoUri);
+            if (!UriUtils.areEqual(updatedPhotoUriContactsOnly, callLogInfo.photoUri)) {
+                values.put(Calls.CACHED_PHOTO_URI, UriUtils.uriToString(
+                        updatedPhotoUriContactsOnly));
                 needsUpdate = true;
             }
             if (!TextUtils.equals(updatedInfo.formattedNumber, callLogInfo.formattedNumber)) {
@@ -1186,7 +1189,8 @@
             values.put(Calls.CACHED_MATCHED_NUMBER, updatedInfo.number);
             values.put(Calls.CACHED_NORMALIZED_NUMBER, updatedInfo.normalizedNumber);
             values.put(Calls.CACHED_PHOTO_ID, updatedInfo.photoId);
-            values.put(Calls.CACHED_PHOTO_URI, UriUtils.uriToString(updatedInfo.photoUri));
+            values.put(Calls.CACHED_PHOTO_URI, UriUtils.uriToString(
+                    UriUtils.nullForNonContactsUri(updatedInfo.photoUri)));
             values.put(Calls.CACHED_FORMATTED_NUMBER, updatedInfo.formattedNumber);
             needsUpdate = true;
         }
@@ -1219,7 +1223,8 @@
         info.number = matchedNumber == null ? c.getString(CallLogQuery.NUMBER) : matchedNumber;
         info.normalizedNumber = c.getString(CallLogQuery.CACHED_NORMALIZED_NUMBER);
         info.photoId = c.getLong(CallLogQuery.CACHED_PHOTO_ID);
-        info.photoUri = UriUtils.parseUriOrNull(c.getString(CallLogQuery.CACHED_PHOTO_URI));
+        info.photoUri = UriUtils.nullForNonContactsUri(
+                UriUtils.parseUriOrNull(c.getString(CallLogQuery.CACHED_PHOTO_URI)));
         info.formattedNumber = c.getString(CallLogQuery.CACHED_FORMATTED_NUMBER);
         return info;
     }