Fix NPE in shareSelectedContacts
Protect against null lookupUri's.
Bug:23306201
Change-Id: Iab1e6b08e0a596b999c6829b1afd8c5aa0dc81c7
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 97c6ea0..9103a53 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1239,15 +1239,24 @@
*/
private void shareSelectedContacts() {
final StringBuilder uriListBuilder = new StringBuilder();
- boolean firstIteration = true;
for (Long contactId : mAllFragment.getSelectedContactIds()) {
- if (!firstIteration)
- uriListBuilder.append(':');
final Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), contactUri);
- List<String> pathSegments = lookupUri.getPathSegments();
- uriListBuilder.append(Uri.encode(pathSegments.get(pathSegments.size() - 2)));
- firstIteration = false;
+ if (lookupUri == null) {
+ continue;
+ }
+ final List<String> pathSegments = lookupUri.getPathSegments();
+ if (pathSegments.size() < 2) {
+ continue;
+ }
+ final String lookupKey = pathSegments.get(pathSegments.size() - 2);
+ if (uriListBuilder.length() > 0) {
+ uriListBuilder.append(':');
+ }
+ uriListBuilder.append(Uri.encode(lookupKey));
+ }
+ if (uriListBuilder.length() == 0) {
+ return;
}
final Uri uri = Uri.withAppendedPath(
Contacts.CONTENT_MULTI_VCARD_URI,