Loading src/com/android/contacts/group/GroupListItem.java +34 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ package com.android.contacts.group; import java.util.Objects; /** * Meta-data for a contact group. We load all groups associated with the contact's * constituent accounts. Loading Loading @@ -83,4 +85,36 @@ public final class GroupListItem { public String getSystemId() { return mSystemId; } @Override public int hashCode() { return Objects.hash(mAccountName, mAccountType, mDataSet, mGroupId, mTitle, mIsFirstGroupInAccount, mMemberCount, mIsReadOnly, mSystemId); } @Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof GroupListItem)) { return false; } final GroupListItem otherGroup = (GroupListItem) other; if (!Objects.equals(mAccountName, otherGroup.getAccountName()) || !Objects.equals(mAccountType, otherGroup.getAccountType()) || !Objects.equals(mDataSet, otherGroup.getDataSet()) || !(mGroupId == otherGroup.getGroupId()) || !Objects.equals(mTitle, otherGroup.getTitle()) || !(mIsFirstGroupInAccount == otherGroup.isFirstGroupInAccount()) || !(mMemberCount == otherGroup.getMemberCount()) || !(mIsReadOnly == otherGroup.isReadOnly()) || !Objects.equals(mSystemId, otherGroup.getSystemId())) { return false; } return true; } } No newline at end of file src/com/android/contacts/group/GroupsFragment.java +19 −3 Original line number Diff line number Diff line Loading @@ -18,11 +18,11 @@ package com.android.contacts.group; import android.app.Fragment; import android.app.LoaderManager; import android.content.Context; import android.content.CursorLoader; import android.content.Loader; import android.database.Cursor; import android.os.Bundle; import android.util.Log; import com.android.contacts.GroupListLoader; Loading @@ -34,6 +34,8 @@ import java.util.List; */ public final class GroupsFragment extends Fragment { private static final String TAG = GroupsFragment.class.getSimpleName(); private static final int LOADER_GROUPS = 1; /** Loading @@ -57,12 +59,26 @@ public final class GroupsFragment extends Fragment { @Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { mGroupListItems.clear(); final List<GroupListItem> newGroupListItems = new ArrayList<>(); for (int i = 0; i < data.getCount(); i++) { if (data.moveToNext()) { mGroupListItems.add(GroupUtil.getGroupListItem(data, i)); newGroupListItems.add(GroupUtil.getGroupListItem(data, i)); } } if (mGroupListItems.equals(newGroupListItems)) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "The same groups loaded, returning."); } return; } if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "New group(s) loaded."); } mGroupListItems.clear(); mGroupListItems.addAll(newGroupListItems); if (mListener != null) { mListener.onGroupsLoaded(mGroupListItems); } Loading Loading
src/com/android/contacts/group/GroupListItem.java +34 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ package com.android.contacts.group; import java.util.Objects; /** * Meta-data for a contact group. We load all groups associated with the contact's * constituent accounts. Loading Loading @@ -83,4 +85,36 @@ public final class GroupListItem { public String getSystemId() { return mSystemId; } @Override public int hashCode() { return Objects.hash(mAccountName, mAccountType, mDataSet, mGroupId, mTitle, mIsFirstGroupInAccount, mMemberCount, mIsReadOnly, mSystemId); } @Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof GroupListItem)) { return false; } final GroupListItem otherGroup = (GroupListItem) other; if (!Objects.equals(mAccountName, otherGroup.getAccountName()) || !Objects.equals(mAccountType, otherGroup.getAccountType()) || !Objects.equals(mDataSet, otherGroup.getDataSet()) || !(mGroupId == otherGroup.getGroupId()) || !Objects.equals(mTitle, otherGroup.getTitle()) || !(mIsFirstGroupInAccount == otherGroup.isFirstGroupInAccount()) || !(mMemberCount == otherGroup.getMemberCount()) || !(mIsReadOnly == otherGroup.isReadOnly()) || !Objects.equals(mSystemId, otherGroup.getSystemId())) { return false; } return true; } } No newline at end of file
src/com/android/contacts/group/GroupsFragment.java +19 −3 Original line number Diff line number Diff line Loading @@ -18,11 +18,11 @@ package com.android.contacts.group; import android.app.Fragment; import android.app.LoaderManager; import android.content.Context; import android.content.CursorLoader; import android.content.Loader; import android.database.Cursor; import android.os.Bundle; import android.util.Log; import com.android.contacts.GroupListLoader; Loading @@ -34,6 +34,8 @@ import java.util.List; */ public final class GroupsFragment extends Fragment { private static final String TAG = GroupsFragment.class.getSimpleName(); private static final int LOADER_GROUPS = 1; /** Loading @@ -57,12 +59,26 @@ public final class GroupsFragment extends Fragment { @Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { mGroupListItems.clear(); final List<GroupListItem> newGroupListItems = new ArrayList<>(); for (int i = 0; i < data.getCount(); i++) { if (data.moveToNext()) { mGroupListItems.add(GroupUtil.getGroupListItem(data, i)); newGroupListItems.add(GroupUtil.getGroupListItem(data, i)); } } if (mGroupListItems.equals(newGroupListItems)) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "The same groups loaded, returning."); } return; } if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "New group(s) loaded."); } mGroupListItems.clear(); mGroupListItems.addAll(newGroupListItems); if (mListener != null) { mListener.onGroupsLoaded(mGroupListItems); } Loading