diff options
author | linyuh <linyuh@google.com> | 2018-02-20 12:46:54 -0800 |
---|---|---|
committer | Eric Erfanian <erfanian@google.com> | 2018-02-22 21:08:26 +0000 |
commit | 43c978b616363bcd364693dde24209384b264319 (patch) | |
tree | 937f001e840973720fa567970b013fff03af2291 /java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java | |
parent | e2bf3e9d45aa8c1a6dbf39212f7ba32cbbd53185 (diff) |
Use a broadcast receiver to refresh the annotated call log.
Bug: 73347270
Test: Existing tests + RefreshAnnotatedCallLogNotifierTest
PiperOrigin-RevId: 186347066
Change-Id: I5a530416bdaa9edc7131a0d5ced44f1b5ee1692b
Diffstat (limited to 'java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java')
-rw-r--r-- | java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java index ee484d95e..e9f7c00bf 100644 --- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java +++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java @@ -47,6 +47,7 @@ import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.Ann import com.android.dialer.calllog.datasources.CallLogDataSource; import com.android.dialer.calllog.datasources.CallLogMutations; import com.android.dialer.calllog.datasources.util.RowCombiner; +import com.android.dialer.calllog.notifier.RefreshAnnotatedCallLogNotifier; import com.android.dialer.calllogutils.PhoneAccountUtils; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; @@ -79,18 +80,21 @@ public class SystemCallLogDataSource implements CallLogDataSource { static final String PREF_LAST_TIMESTAMP_PROCESSED = "systemCallLogLastTimestampProcessed"; private final ListeningExecutorService backgroundExecutorService; + private final RefreshAnnotatedCallLogNotifier refreshAnnotatedCallLogNotifier; @Nullable private Long lastTimestampProcessed; @Inject - SystemCallLogDataSource(@BackgroundExecutor ListeningExecutorService backgroundExecutorService) { + SystemCallLogDataSource( + @BackgroundExecutor ListeningExecutorService backgroundExecutorService, + RefreshAnnotatedCallLogNotifier refreshAnnotatedCallLogNotifier) { this.backgroundExecutorService = backgroundExecutorService; + this.refreshAnnotatedCallLogNotifier = refreshAnnotatedCallLogNotifier; } @MainThread @Override - public void registerContentObservers( - Context appContext, ContentObserverCallbacks contentObserverCallbacks) { + public void registerContentObservers(Context appContext) { Assert.isMainThread(); LogUtil.enterBlock("SystemCallLogDataSource.registerContentObservers"); @@ -102,7 +106,7 @@ public class SystemCallLogDataSource implements CallLogDataSource { // TODO(zachh): Need to somehow register observers if user enables permission after launch? CallLogObserver callLogObserver = - new CallLogObserver(ThreadUtil.getUiThreadHandler(), appContext, contentObserverCallbacks); + new CallLogObserver(ThreadUtil.getUiThreadHandler(), refreshAnnotatedCallLogNotifier); appContext .getContentResolver() @@ -524,15 +528,14 @@ public class SystemCallLogDataSource implements CallLogDataSource { return ids; } + // TODO(a bug): Consider replacing it with MarkDirtyObserver. private static class CallLogObserver extends ContentObserver { - private final Context appContext; - private final ContentObserverCallbacks contentObserverCallbacks; + private final RefreshAnnotatedCallLogNotifier refreshAnnotatedCallLogNotifier; CallLogObserver( - Handler handler, Context appContext, ContentObserverCallbacks contentObserverCallbacks) { + Handler handler, RefreshAnnotatedCallLogNotifier refreshAnnotatedCallLogNotifier) { super(handler); - this.appContext = appContext; - this.contentObserverCallbacks = contentObserverCallbacks; + this.refreshAnnotatedCallLogNotifier = refreshAnnotatedCallLogNotifier; } @MainThread @@ -552,7 +555,7 @@ public class SystemCallLogDataSource implements CallLogDataSource { * table, which would be too slow. So, we just rely on content observers to trigger rebuilds * when any change is made to the system call log. */ - contentObserverCallbacks.markDirtyAndNotify(appContext); + refreshAnnotatedCallLogNotifier.markDirtyAndNotify(); } } } |