summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Attwell <brianattwell@google.com>2014-10-03 15:45:18 -0700
committerBrian Attwell <brianattwell@google.com>2014-10-03 22:46:32 +0000
commitb831b14466d640fe260ba2e752c88c7fcd62a14b (patch)
treeb92a6da4ba33f3201a2cae610208b4d6f65c00cd /src
parentc62cc7931593b4137f8a507689b653e1e15e1260 (diff)
downloadpackages_apps_Contacts-b831b14466d640fe260ba2e752c88c7fcd62a14b.tar.gz
packages_apps_Contacts-b831b14466d640fe260ba2e752c88c7fcd62a14b.tar.bz2
packages_apps_Contacts-b831b14466d640fe260ba2e752c88c7fcd62a14b.zip
Don't crash QuickContacts because of null uri
When composeQuickContactActivity() is passed a null uri, then startActivity throws the following exception: ActivityNotFoundException: No Activity found to handle Intent { act=android.provider.action.QUICK_CONTACT flg=0x20000000 (has extras) } I can't reproduce this. So lets just fix the crash. Inside contact list fragments, ignore clicks on views bound to null uris. We don't need to change Dialer. It already handles these cases. Note that we can't fix this by checking for null URIs inside ContactEntryListFragment. One of the Dialer subclasses of ContactEntryListFragment requires null URIs. Bug: 17807956 Change-Id: I41dd878b23b8cc3e9b8ad49e12675a4da9ced466
Diffstat (limited to 'src')
-rw-r--r--src/com/android/contacts/list/ContactPickerFragment.java3
-rw-r--r--src/com/android/contacts/list/DefaultContactBrowseListFragment.java7
-rw-r--r--src/com/android/contacts/list/EmailAddressPickerFragment.java3
-rw-r--r--src/com/android/contacts/list/PostalAddressPickerFragment.java3
4 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/contacts/list/ContactPickerFragment.java b/src/com/android/contacts/list/ContactPickerFragment.java
index 442f5c7e7..0503d3397 100644
--- a/src/com/android/contacts/list/ContactPickerFragment.java
+++ b/src/com/android/contacts/list/ContactPickerFragment.java
@@ -128,6 +128,9 @@ public class ContactPickerFragment extends ContactEntryListFragment<ContactEntry
} else {
uri = ((ContactListAdapter)getAdapter()).getContactUri(position);
}
+ if (uri == null) {
+ return;
+ }
if (mEditMode) {
editContact(uri);
} else if (mShortcutRequested) {
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index bf1bdcab5..463020287 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -18,6 +18,7 @@ package com.android.contacts.list;
import android.content.Context;
import android.content.CursorLoader;
import android.content.Intent;
+import android.net.Uri;
import android.provider.ContactsContract.Contacts;
import android.text.TextUtils;
import android.util.Log;
@@ -86,7 +87,11 @@ public class DefaultContactBrowseListFragment extends ContactBrowseListFragment
@Override
protected void onItemClick(int position, long id) {
- viewContact(getAdapter().getContactUri(position));
+ final Uri uri = getAdapter().getContactUri(position);
+ if (uri == null) {
+ return;
+ }
+ viewContact(uri);
}
@Override
diff --git a/src/com/android/contacts/list/EmailAddressPickerFragment.java b/src/com/android/contacts/list/EmailAddressPickerFragment.java
index 2146b68f3..f89f74327 100644
--- a/src/com/android/contacts/list/EmailAddressPickerFragment.java
+++ b/src/com/android/contacts/list/EmailAddressPickerFragment.java
@@ -45,6 +45,9 @@ public class EmailAddressPickerFragment extends ContactEntryListFragment<Contact
@Override
protected void onItemClick(int position, long id) {
EmailAddressListAdapter adapter = (EmailAddressListAdapter)getAdapter();
+ if (getAdapter().getItem(position) == null) {
+ return;
+ }
pickEmailAddress(adapter.getDataUri(position));
}
diff --git a/src/com/android/contacts/list/PostalAddressPickerFragment.java b/src/com/android/contacts/list/PostalAddressPickerFragment.java
index a23a78bd0..c64e17337 100644
--- a/src/com/android/contacts/list/PostalAddressPickerFragment.java
+++ b/src/com/android/contacts/list/PostalAddressPickerFragment.java
@@ -46,6 +46,9 @@ public class PostalAddressPickerFragment
@Override
protected void onItemClick(int position, long id) {
+ if (getAdapter().getItem(position) == null) {
+ return;
+ }
if (!isLegacyCompatibilityMode()) {
PostalAddressListAdapter adapter = (PostalAddressListAdapter)getAdapter();
pickPostalAddress(adapter.getDataUri(position));