Add EXTRA_PEOPLE to the dialer notifications.
Bug: 14489962
Change-Id: I8e83cf04fc4acaefcb83fa2ea7c37d091c99f5c1
diff --git a/InCallUI/src/com/android/incallui/CallerInfo.java b/InCallUI/src/com/android/incallui/CallerInfo.java
index 2e89e48..c004dc2 100644
--- a/InCallUI/src/com/android/incallui/CallerInfo.java
+++ b/InCallUI/src/com/android/incallui/CallerInfo.java
@@ -90,6 +90,7 @@
public int photoResource;
public long person_id;
+ public String lookupKey;
public boolean needUpdate;
public Uri contactRefUri;
@@ -204,6 +205,14 @@
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/InCallUI/src/com/android/incallui/ContactInfoCache.java b/InCallUI/src/com/android/incallui/ContactInfoCache.java
index 54de705..0359529 100644
--- a/InCallUI/src/com/android/incallui/ContactInfoCache.java
+++ b/InCallUI/src/com/android/incallui/ContactInfoCache.java
@@ -333,6 +333,13 @@
} 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 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/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index 807e44b..2ce1ac6 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/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 @@
addAnswerAction(builder);
}
+ addPersonReference(builder, contactInfo, call);
+
/*
* Fire off the notification
*/
@@ -371,6 +374,15 @@
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.
*/