summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog
diff options
context:
space:
mode:
authorzachh <zachh@google.com>2018-01-09 17:44:36 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-09 18:30:15 -0800
commit73ec1ab52956c658654a40c42f4c59806713b15e (patch)
treeead07b921b1f204e54fba836f03f392a064d7063 /java/com/android/dialer/calllog
parent06fee1b28472f1019443c9b63ea9bd8aad9f5757 (diff)
Changed behavior of failures in DialerFutures#firstMatching.
DialerFutures#firstMatching now fails if one of its provided futures fails before a match is found. This is to accomodate the case where no source returns true for isDirty, but one or more fail; we want to be notified of the failure in that case and not silently treat that case as not dirty. Also fixed a bug in NewCallLogFragment where the failed future wasn't causing the application to crash. Also improved some related logging in RefreshAnnotatedCallLogWorker and Cp2PhoneLookup, and fixed a bug where empty numbers were not being handled correctly. Bug: 71504246 Test: unit PiperOrigin-RevId: 181401710 Change-Id: I23e207ac334ff80ac95b08a8f4f775a528a8c511
Diffstat (limited to 'java/com/android/dialer/calllog')
-rw-r--r--java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java11
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogFragment.java7
2 files changed, 13 insertions, 5 deletions
diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
index e5cc3eb89..4c5904ef1 100644
--- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
+++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
@@ -117,10 +117,13 @@ public class RefreshAnnotatedCallLogWorker {
// After determining isDirty, conditionally call rebuild.
return Futures.transformAsync(
isDirtyFuture,
- isDirty ->
- Preconditions.checkNotNull(isDirty)
- ? rebuild(appContext)
- : Futures.immediateFuture(null),
+ isDirty -> {
+ LogUtil.v(
+ "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
+ "isDirty: %b",
+ Preconditions.checkNotNull(isDirty));
+ return isDirty ? rebuild(appContext) : Futures.immediateFuture(null);
+ },
lightweightExecutorService);
}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
index e422b5f83..d0656a433 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
@@ -142,7 +142,12 @@ public final class NewCallLogFragment extends Fragment
? refreshAnnotatedCallLogWorker.refreshWithDirtyCheck()
: refreshAnnotatedCallLogWorker.refreshWithoutDirtyCheck();
refreshAnnotatedCallLogListener.listen(
- getContext(), future, unused -> {}, RuntimeException::new);
+ getContext(),
+ future,
+ unused -> {},
+ throwable -> {
+ throw new RuntimeException(throwable);
+ });
};
ThreadUtil.getUiThreadHandler().postDelayed(refreshAnnotatedCallLogRunnable, WAIT_MILLIS);
}