Merge "Fixing bug that prevented \'Emergency call\' from being displayed" into nyc-dev am: 624f6c4
am: 3023298
* commit '3023298a09f00b57fee6c2a3bc15c85294fa6ca4':
Fixing bug that prevented 'Emergency call' from being displayed
diff --git a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
index 6dbbfc1..2839fbb 100644
--- a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
+++ b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
@@ -352,12 +352,13 @@
@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 @@
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 @@
listenerFactory.newListener(directoryId);
startQueryInternal(token, context, info, intermediateListener, cookie, uri);
}
+ return true;
}
/* Directory lookup related code - START */