Support launch QuickContactActivity from upgraded shortcut
bug: 2535107
Change-Id: I7d7aa33e600c885180f1c8443d4e79a382785855
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 27590c0..a0ca083 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -292,6 +292,7 @@
<action android:name="com.android.contacts.action.QUICK_CONTACT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/contact" android:host="com.android.contacts" />
+ <data android:mimeType="vnd.android.cursor.item/person" android:host="contacts" />
</intent-filter>
</activity>
diff --git a/src/com/android/contacts/ui/QuickContactActivity.java b/src/com/android/contacts/ui/QuickContactActivity.java
index 897d912..7f6e39b 100644
--- a/src/com/android/contacts/ui/QuickContactActivity.java
+++ b/src/com/android/contacts/ui/QuickContactActivity.java
@@ -17,11 +17,13 @@
package com.android.contacts.ui;
import android.app.Activity;
+import android.content.ContentUris;
import android.content.Intent;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.QuickContact;
+import android.provider.ContactsContract.RawContacts;
import android.util.Log;
/**
@@ -61,7 +63,13 @@
}
// Use our local window token for now
- final Uri lookupUri = intent.getData();
+ Uri lookupUri = intent.getData();
+ // Check to see whether it comes from the old version.
+ if (android.provider.Contacts.AUTHORITY.equals(lookupUri.getAuthority())) {
+ final long rawContactId = ContentUris.parseId(lookupUri);
+ lookupUri = RawContacts.getContactLookupUri(getContentResolver(),
+ ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId));
+ }
final Bundle extras = intent.getExtras();
// Read requested parameters for displaying