summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wren <cwren@android.com>2014-05-02 18:47:24 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-05-02 18:47:24 +0000
commitb898082403ca6ae562aa1437230981295dc0877f (patch)
tree878277ad4d35c0d0de4d212b77ba706e98711bc1
parentbe27e631762da84e2f1b085e7c700b59a882c62d (diff)
parenta5f652c2316e6e063a18c20195163da3d2a792e9 (diff)
downloadpackages_apps_InCallUI-b898082403ca6ae562aa1437230981295dc0877f.tar.gz
packages_apps_InCallUI-b898082403ca6ae562aa1437230981295dc0877f.tar.bz2
packages_apps_InCallUI-b898082403ca6ae562aa1437230981295dc0877f.zip
Merge "Add EXTRA_PEOPLE to the dialer notifications."
-rw-r--r--src/com/android/incallui/CallerInfo.java9
-rw-r--r--src/com/android/incallui/ContactInfoCache.java8
-rw-r--r--src/com/android/incallui/StatusBarNotifier.java12
3 files changed, 29 insertions, 0 deletions
diff --git a/src/com/android/incallui/CallerInfo.java b/src/com/android/incallui/CallerInfo.java
index 2e89e48d..c004dc2e 100644
--- a/src/com/android/incallui/CallerInfo.java
+++ b/src/com/android/incallui/CallerInfo.java
@@ -90,6 +90,7 @@ public class CallerInfo {
public int photoResource;
public long person_id;
+ public String lookupKey;
public boolean needUpdate;
public Uri contactRefUri;
@@ -204,6 +205,14 @@ public class CallerInfo {
if (columnIndex != -1) {
info.person_id = cursor.getLong(columnIndex);
Log.v(TAG, "==> got info.person_id: " + info.person_id);
+
+ // cache the lookup key for later use with person_id to create lookup URIs
+ columnIndex = cursor.getColumnIndex(PhoneLookup.LOOKUP_KEY);
+ if ((columnIndex != -1) && (cursor.getString(columnIndex) != null)) {
+ info.lookupKey = cursor.getString(columnIndex);
+ } else {
+ info.lookupKey = null;
+ }
} else {
// No valid columnIndex, so we can't look up person_id.
Log.v(TAG, "Couldn't find person_id column for " + contactRef);
diff --git a/src/com/android/incallui/ContactInfoCache.java b/src/com/android/incallui/ContactInfoCache.java
index 54de7057..0359529e 100644
--- a/src/com/android/incallui/ContactInfoCache.java
+++ b/src/com/android/incallui/ContactInfoCache.java
@@ -333,6 +333,13 @@ public class ContactInfoCache implements ContactsAsyncHelper.OnImageLoadComplete
} else {
cce.personUri = personUri;
}
+
+ if (info.lookupKey == null) {
+ Log.v(TAG, "lookup key is null. Don't create a lookup uri.");
+ cce.lookupUri = null;
+ } else {
+ cce.lookupUri = Contacts.getLookupUri(info.person_id, info.lookupKey);
+ }
}
cce.photo = photo;
@@ -507,6 +514,7 @@ public class ContactInfoCache implements ContactsAsyncHelper.OnImageLoadComplete
public Drawable photo;
public boolean isSipCall;
public Uri personUri; // Used for local photo load
+ public Uri lookupUri; // Sent to NotificationMananger
@Override
public String toString() {
diff --git a/src/com/android/incallui/StatusBarNotifier.java b/src/com/android/incallui/StatusBarNotifier.java
index 807e44b3..2ce1ac6b 100644
--- a/src/com/android/incallui/StatusBarNotifier.java
+++ b/src/com/android/incallui/StatusBarNotifier.java
@@ -16,6 +16,7 @@
package com.android.incallui;
+import android.net.Uri;
import com.google.common.base.Preconditions;
import android.app.Notification;
@@ -309,6 +310,8 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
addAnswerAction(builder);
}
+ addPersonReference(builder, contactInfo, call);
+
/*
* Fire off the notification
*/
@@ -371,6 +374,15 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
return contactInfo.name;
}
+ private void addPersonReference(Notification.Builder builder, ContactCacheEntry contactInfo,
+ Call call) {
+ if (contactInfo.lookupUri != null) {
+ builder.addPerson(contactInfo.lookupUri.toString());
+ } else if (!TextUtils.isEmpty(call.getNumber())) {
+ builder.addPerson(Uri.fromParts("tel", call.getNumber(), null).toString());
+ }
+ }
+
/**
* Gets a large icon from the contact info object to display in the notification.
*/