summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog
diff options
context:
space:
mode:
authorzachh <zachh@google.com>2018-01-12 20:10:12 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-12 20:40:35 -0800
commit7f909de2ff58747e4756a1b9c0128f0602c9bb61 (patch)
treefb9cff639a2c0233f119edeb3352672e39a15c97 /java/com/android/dialer/calllog
parentfe74cd537684a97df239fde462536244529fa4dd (diff)
Clear the cache in RealtimeRowProcessor when there's new data.
Otherwise changes to "incomplete" rows won't take effect until a new adapter is created. Test: unit and manual PiperOrigin-RevId: 181823087 Change-Id: I24e1b1b465c8d37cf794312b88b6cdd3ad394b5d
Diffstat (limited to 'java/com/android/dialer/calllog')
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogAdapter.java1
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java3
-rw-r--r--java/com/android/dialer/calllog/ui/RealtimeRowProcessor.java8
3 files changed, 10 insertions, 2 deletions
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
index a4a67d712..24324b073 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
@@ -64,6 +64,7 @@ final class NewCallLogAdapter extends RecyclerView.Adapter<ViewHolder> {
void updateCursor(Cursor updatedCursor) {
this.cursor = updatedCursor;
+ this.realtimeRowProcessor.clearCache();
setHeaderPositions();
notifyDataSetChanged();
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
index 5b526b49d..7c33c8721 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -33,7 +33,6 @@ import com.android.dialer.calllogutils.CallLogContactTypes;
import com.android.dialer.calllogutils.CallLogEntryText;
import com.android.dialer.calllogutils.CallLogIntents;
import com.android.dialer.calllogutils.CallTypeIconsView;
-import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.contactphoto.ContactPhotoManager;
@@ -208,7 +207,7 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
@Override
public void onFailure(Throwable throwable) {
- LogUtil.e("RealtimeRowFutureCallback.onFailure", "realtime processing failed", throwable);
+ throw new RuntimeException("realtime processing failed", throwable);
}
}
}
diff --git a/java/com/android/dialer/calllog/ui/RealtimeRowProcessor.java b/java/com/android/dialer/calllog/ui/RealtimeRowProcessor.java
index 2cfe0b4ad..393482ab0 100644
--- a/java/com/android/dialer/calllog/ui/RealtimeRowProcessor.java
+++ b/java/com/android/dialer/calllog/ui/RealtimeRowProcessor.java
@@ -21,6 +21,7 @@ import android.util.ArrayMap;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.NumberAttributes;
import com.android.dialer.calllog.model.CoalescedRow;
+import com.android.dialer.common.Assert;
import com.android.dialer.common.concurrent.Annotations.Ui;
import com.android.dialer.phonelookup.PhoneLookupInfo;
import com.android.dialer.phonelookup.PhoneLookupInfo.Cp2Info;
@@ -94,6 +95,13 @@ public final class RealtimeRowProcessor {
uiExecutor /* ensures the cache is updated on a single thread */);
}
+ /** Clears the internal cache. */
+ @MainThread
+ public void clearCache() {
+ Assert.isMainThread();
+ cache.clear();
+ }
+
private CoalescedRow applyCp2LocalInfoToRow(Cp2Info cp2Info, CoalescedRow row) {
PhoneLookupInfo phoneLookupInfo = PhoneLookupInfo.newBuilder().setCp2LocalInfo(cp2Info).build();
// It is safe to overwrite any existing data because CP2 always has highest priority.