Showing a toast when a contact shortcut leads nowhere.
This is a temporary patch to prevent a crash. We need a better UI solution.
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index 36d9ee6..65489bb 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -196,11 +196,18 @@
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
- mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
final Intent intent = getIntent();
- mUri = intent.getData();
- resolveContactUriFromIntent(intent);
+ if (!resolveContactUriFromIntent(intent)) {
+
+ // TODO either figure out a way to prevent a flash of black background or
+ // use some other UI than a toast
+ Toast.makeText(this, R.string.invalidContactMessage, Toast.LENGTH_SHORT).show();
+ Log.e(TAG, "invalid contact uri: " + mOriginalUri);
+ finish();
+ return;
+ }
+
+ mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.contact_card_layout);
@@ -251,9 +258,10 @@
startEntityQuery();
}
- private void resolveContactUriFromIntent(final Intent intent) {
+ private boolean resolveContactUriFromIntent(final Intent intent) {
mOriginalUri = intent.getData();
mUri = ContactsContract.Contacts.lookupContact(getContentResolver(), mOriginalUri);
+ return mUri != null;
}
@Override