Fixing support for contact shortcuts.
diff --git a/src/com/android/contacts/BaseContactCardActivity.java b/src/com/android/contacts/BaseContactCardActivity.java
index bd62b8a..f5b207c 100644
--- a/src/com/android/contacts/BaseContactCardActivity.java
+++ b/src/com/android/contacts/BaseContactCardActivity.java
@@ -16,12 +16,10 @@
package com.android.contacts;
-import java.util.ArrayList;
-
import com.android.contacts.ScrollingTabWidget.OnTabSelectionChangedListener;
import com.android.contacts.model.ContactsSource;
-import com.android.contacts.util.NotifyingAsyncQueryHandler;
import com.android.contacts.model.Sources;
+import com.android.contacts.util.NotifyingAsyncQueryHandler;
import com.android.internal.widget.ContactHeaderWidget;
import android.app.Activity;
@@ -36,6 +34,7 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
+import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
@@ -47,6 +46,8 @@
import android.widget.ImageView;
import android.widget.TextView;
+import java.util.ArrayList;
+
/**
* The base Activity class for viewing and editing a contact.
*/
@@ -56,6 +57,7 @@
private static final String TAG = "BaseContactCardActivity";
private SparseArray<Long> mTabRawContactIdMap;
+ protected Uri mOriginalUri;
protected Uri mUri;
protected ScrollingTabWidget mTabWidget;
protected ContactHeaderWidget mContactHeaderWidget;
@@ -85,7 +87,7 @@
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final Intent intent = getIntent();
- mUri = intent.getData();
+ resolveContactUriFromIntent(intent);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.contact_card_layout);
@@ -110,6 +112,11 @@
}
+ private void resolveContactUriFromIntent(final Intent intent) {
+ mOriginalUri = intent.getData();
+ mUri = ContactsContract.Contacts.lookupContact(getContentResolver(), mOriginalUri);
+ }
+
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
@@ -248,8 +255,8 @@
@Override
public void onNewIntent(Intent newIntent) {
setIntent(newIntent);
+ resolveContactUriFromIntent(newIntent);
selectInitialTab();
- mUri = newIntent.getData();
}
/**