OSDN Git Service

Support launch QuickContactActivity from upgraded shortcut
authorBai Tao <michaelbai@google.com>
Wed, 24 Mar 2010 00:50:35 +0000 (08:50 +0800)
committerBai Tao <michaelbai@google.com>
Wed, 24 Mar 2010 01:09:54 +0000 (09:09 +0800)
bug: 2535107
Change-Id: I7d7aa33e600c885180f1c8443d4e79a382785855

AndroidManifest.xml
src/com/android/contacts/ui/QuickContactActivity.java

index 27590c0..a0ca083 100644 (file)
                 <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>
 
index 897d912..7f6e39b 100644 (file)
 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 @@ public final class QuickContactActivity extends Activity implements
         }
 
         // 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