Replaced HashMaps with LongSparseArray
- Also fixed a compiler warning in SuggestedMemberListAdapter
- Fixed two hints in ContactSaveService
Change-Id: Ia1d8ad7efba5f54f94c762a779f7b228e79ca978
diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index b7cc87d..bb76aea 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -56,6 +56,7 @@
import android.provider.ContactsContract.StreamItems;
import android.text.TextUtils;
import android.util.Log;
+import android.util.LongSparseArray;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
@@ -63,7 +64,6 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -118,7 +118,7 @@
private final Integer mPresence;
private final ArrayList<Entity> mEntities;
private final ArrayList<StreamItemEntry> mStreamItems;
- private final HashMap<Long, DataStatus> mStatuses;
+ private final LongSparseArray<DataStatus> mStatuses;
private final ArrayList<AccountType> mInvitableAccountTypes;
private String mDirectoryDisplayName;
@@ -197,7 +197,7 @@
mId = id;
mEntities = new ArrayList<Entity>();
mStreamItems = new ArrayList<StreamItemEntry>();
- mStatuses = new HashMap<Long, DataStatus>();
+ mStatuses = new LongSparseArray<DataStatus>();
mNameRawContactId = nameRawContactId;
mDisplayNameSource = displayNameSource;
mPhotoId = photoId;
@@ -390,7 +390,7 @@
return mStreamItems;
}
- public HashMap<Long, DataStatus> getStatuses() {
+ public LongSparseArray<DataStatus> getStatuses() {
return mStatuses;
}
@@ -730,7 +730,7 @@
Entity entity = null;
Result result = loadContactHeaderData(cursor, contactUri);
ArrayList<Entity> entities = result.getEntities();
- HashMap<Long, DataStatus> statuses = result.getStatuses();
+ LongSparseArray<DataStatus> statuses = result.getStatuses();
for (; !cursor.isAfterLast(); cursor.moveToNext()) {
long rawContactId = cursor.getLong(ContactQuery.RAW_CONTACT_ID);
if (rawContactId != currentRawContactId) {
@@ -822,7 +822,7 @@
return;
}
- HashMap<AccountTypeWithDataSet, AccountType> result = Maps.newHashMap(invitables);
+ Map<AccountTypeWithDataSet, AccountType> result = Maps.newHashMap(invitables);
// Remove the ones that already have a raw contact in the current contact
for (Entity entity : contactData.getEntities()) {
@@ -1064,7 +1064,8 @@
.appendPath(result.getLookupKey())
.appendPath(Contacts.StreamItems.CONTENT_DIRECTORY).build(),
null, null, null, null);
- Map<Long, StreamItemEntry> streamItemsById = new HashMap<Long, StreamItemEntry>();
+ LongSparseArray<StreamItemEntry> streamItemsById =
+ new LongSparseArray<StreamItemEntry>();
ArrayList<StreamItemEntry> streamItems = new ArrayList<StreamItemEntry>();
try {
while (cursor.moveToNext()) {
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index f475609..6de361d 100644
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -727,7 +727,7 @@
deliverCallback(callbackIntent);
}
- private void addMembersToGroup(ContentResolver resolver, long[] rawContactsToAdd,
+ private static void addMembersToGroup(ContentResolver resolver, long[] rawContactsToAdd,
long groupId) {
if (rawContactsToAdd == null) {
return;
@@ -762,9 +762,8 @@
}
// Apply batch
- ContentProviderResult[] results = null;
if (!rawContactOperations.isEmpty()) {
- results = resolver.applyBatch(ContactsContract.AUTHORITY, rawContactOperations);
+ resolver.applyBatch(ContactsContract.AUTHORITY, rawContactOperations);
}
} catch (RemoteException e) {
// Something went wrong, bail without success
@@ -780,7 +779,7 @@
}
}
- private void removeMembersFromGroup(ContentResolver resolver, long[] rawContactsToRemove,
+ private static void removeMembersFromGroup(ContentResolver resolver, long[] rawContactsToRemove,
long groupId) {
if (rawContactsToRemove == null) {
return;
@@ -789,7 +788,7 @@
// Apply the delete operation on the data row for the given raw contact's
// membership in the given group. If no contact matches the provided selection, then
// nothing will be done. Just continue to the next contact.
- getContentResolver().delete(Data.CONTENT_URI, Data.RAW_CONTACT_ID + "=? AND " +
+ resolver.delete(Data.CONTENT_URI, Data.RAW_CONTACT_ID + "=? AND " +
Data.MIMETYPE + "=? AND " + GroupMembership.GROUP_ROW_ID + "=?",
new String[] { String.valueOf(rawContactId),
GroupMembership.CONTENT_ITEM_TYPE, String.valueOf(groupId)});
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index d8e5a1d..33e2ab4 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -42,7 +42,6 @@
import com.android.contacts.util.DateUtils;
import com.android.contacts.util.PhoneCapabilityTester;
import com.android.contacts.util.StructuredPostalUtils;
-import com.android.contacts.widget.TransitionAnimationView;
import com.android.internal.telephony.ITelephony;
import com.google.common.annotations.VisibleForTesting;
diff --git a/src/com/android/contacts/group/SuggestedMemberListAdapter.java b/src/com/android/contacts/group/SuggestedMemberListAdapter.java
index 08401bf..30718de 100644
--- a/src/com/android/contacts/group/SuggestedMemberListAdapter.java
+++ b/src/com/android/contacts/group/SuggestedMemberListAdapter.java
@@ -295,6 +295,7 @@
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
+ @SuppressWarnings("unchecked")
List<SuggestedMember> suggestionsList = (List<SuggestedMember>) results.values;
if (suggestionsList == null) {
return;