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()) {