summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormike dooley <mdooley@google.com>2016-03-17 13:54:27 -0700
committermike dooley <mdooley@google.com>2016-03-17 15:37:14 -0700
commit5360a5f1cd8f025020f2ce932602cd1b296dae03 (patch)
tree01574190efd222400fa12ce97024c1c0478a5929
parentfb2993167fcb6315c95e9925a1526c36b0bc0602 (diff)
Fixing bug that prevented 'Emergency call' from being displayed
For some accounts the call info lookup results were not being passed to the ContactInfoCache, causing the Ui to not display emergency calls correctly. Bug: 27621628 Change-Id: Ic4b6e43d7033e4a869bac8435f5abba75bd3d504
-rw-r--r--InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java18
1 files changed, 9 insertions, 9 deletions
diff --git a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
index 6dbbfc1fb..2839fbbf0 100644
--- a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
+++ b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
@@ -352,12 +352,13 @@ public class CallerInfoAsyncQuery {
@Override
public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
Log.d(LOG_TAG, "contactsProviderQueryCompleteListener done");
- if (ci != null && ci.contactExists) {
- if (listener != null) {
+ // If there are no other directory queries, make sure that the listener is
+ // notified of this result. see b/27621628
+ if ((ci != null && ci.contactExists) ||
+ !startOtherDirectoriesQuery(token, context, info, listener, cookie)) {
+ if (listener != null && ci != null) {
listener.onQueryComplete(token, cookie, ci);
}
- } else {
- startOtherDirectoriesQuery(token, context, info, listener, cookie);
}
}
};
@@ -420,15 +421,13 @@ public class CallerInfoAsyncQuery {
return c;
}
- private static void startOtherDirectoriesQuery(int token, Context context, CallerInfo info,
+ // Return value indicates if listener was notified.
+ private static boolean startOtherDirectoriesQuery(int token, Context context, CallerInfo info,
OnQueryCompleteListener listener, Object cookie) {
long[] directoryIds = getDirectoryIds(context);
int size = directoryIds.length;
if (size == 0) {
- if (listener != null) {
- listener.onQueryComplete(token, cookie, info);
- }
- return;
+ return false;
}
DirectoryQueryCompleteListenerFactory listenerFactory =
@@ -448,6 +447,7 @@ public class CallerInfoAsyncQuery {
listenerFactory.newListener(directoryId);
startQueryInternal(token, context, info, intermediateListener, cookie, uri);
}
+ return true;
}
/* Directory lookup related code - START */