summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsaac Katzenelson <isaack@android.com>2011-07-07 16:15:06 -0700
committerIsaac Katzenelson <isaack@android.com>2011-07-08 11:03:29 -0700
commit267073407439d7df012a2e0df577e39a1f89c4a8 (patch)
treeb73d19a35443df2e7ee7dc7de722eb3a2d5c280b
parent58fc577bd7966e6566cdcac09589a0d3e05128e7 (diff)
downloadpackages_apps_Contacts-267073407439d7df012a2e0df577e39a1f89c4a8.tar.gz
packages_apps_Contacts-267073407439d7df012a2e0df577e39a1f89c4a8.tar.bz2
packages_apps_Contacts-267073407439d7df012a2e0df577e39a1f89c4a8.zip
Remove deleted groups from GroupBrowserList
Change-Id: Iea7435c6b1f569dd8ac5416b35470b9ae2f48761
-rw-r--r--src/com/android/contacts/GroupMetaDataLoader.java2
-rw-r--r--src/com/android/contacts/activities/GroupDetailActivity.java1
-rw-r--r--src/com/android/contacts/group/GroupBrowseListFragment.java6
-rw-r--r--src/com/android/contacts/group/GroupDetailFragment.java27
-rw-r--r--src/com/android/contacts/interactions/GroupDeletionDialogFragment.java14
5 files changed, 40 insertions, 10 deletions
diff --git a/src/com/android/contacts/GroupMetaDataLoader.java b/src/com/android/contacts/GroupMetaDataLoader.java
index d900825c6..8533bb647 100644
--- a/src/com/android/contacts/GroupMetaDataLoader.java
+++ b/src/com/android/contacts/GroupMetaDataLoader.java
@@ -34,6 +34,7 @@ public final class GroupMetaDataLoader extends CursorLoader {
Groups.AUTO_ADD,
Groups.FAVORITES,
Groups.GROUP_IS_READ_ONLY,
+ Groups.DELETED,
};
public final static int ACCOUNT_NAME = 0;
@@ -43,6 +44,7 @@ public final class GroupMetaDataLoader extends CursorLoader {
public final static int AUTO_ADD = 4;
public final static int FAVORITES = 5;
public final static int IS_READ_ONLY = 6;
+ public final static int DELETED = 7;
public GroupMetaDataLoader(Context context, Uri groupUri) {
super(context, ensureIsGroupUri(groupUri), COLUMNS, Groups.ACCOUNT_TYPE + " NOT NULL AND "
diff --git a/src/com/android/contacts/activities/GroupDetailActivity.java b/src/com/android/contacts/activities/GroupDetailActivity.java
index 21900c679..c8f511b37 100644
--- a/src/com/android/contacts/activities/GroupDetailActivity.java
+++ b/src/com/android/contacts/activities/GroupDetailActivity.java
@@ -43,6 +43,7 @@ public class GroupDetailActivity extends ContactsActivity {
R.id.group_detail_fragment);
fragment.setListener(mFragmentListener);
fragment.loadGroup(getIntent().getData());
+ fragment.closeActivityAfterDelete(true);
ActionBar actionBar = getActionBar();
if (actionBar != null) {
diff --git a/src/com/android/contacts/group/GroupBrowseListFragment.java b/src/com/android/contacts/group/GroupBrowseListFragment.java
index 59b0cecda..4443a53f3 100644
--- a/src/com/android/contacts/group/GroupBrowseListFragment.java
+++ b/src/com/android/contacts/group/GroupBrowseListFragment.java
@@ -196,6 +196,8 @@ public class GroupBrowseListFragment extends Fragment
String accountType = mGroupListCursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
long groupId = mGroupListCursor.getLong(GroupMetaDataLoader.GROUP_ID);
String title = mGroupListCursor.getString(GroupMetaDataLoader.TITLE);
+ boolean deleted =
+ (mGroupListCursor.getInt(GroupMetaDataLoader.DELETED) == 1);
boolean defaultGroup = mGroupListCursor.isNull(GroupMetaDataLoader.AUTO_ADD)
? false
: mGroupListCursor.getInt(GroupMetaDataLoader.AUTO_ADD) != 0;
@@ -204,8 +206,8 @@ public class GroupBrowseListFragment extends Fragment
: mGroupListCursor.getInt(GroupMetaDataLoader.FAVORITES) != 0;
// Don't show the "auto-added" (i.e. My Contacts) or "favorites" groups because
- // they show up elsewhere in the app
- if (defaultGroup || favorites) {
+ // they show up elsewhere in the app. Also skip groups that are marked as "deleted"
+ if (defaultGroup || favorites || deleted) {
continue;
}
diff --git a/src/com/android/contacts/group/GroupDetailFragment.java b/src/com/android/contacts/group/GroupDetailFragment.java
index c4824aefa..fe2605ea2 100644
--- a/src/com/android/contacts/group/GroupDetailFragment.java
+++ b/src/com/android/contacts/group/GroupDetailFragment.java
@@ -90,6 +90,7 @@ public class GroupDetailFragment extends Fragment implements OnScrollListener {
private String mGroupName;
private boolean mOptionsMenuEditable;
+ private boolean mCloseActivityAfterDelete;
public GroupDetailFragment() {
}
@@ -190,11 +191,20 @@ public class GroupDetailFragment extends Fragment implements OnScrollListener {
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
- bindGroupMetaData(data);
-
- // Retrieve the list of members
- configureAdapter(mGroupId);
- startGroupMembersLoader();
+ data.moveToPosition(-1);
+ if (data.moveToNext()) {
+ boolean deleted = data.getInt(GroupMetaDataLoader.DELETED) == 1;
+ if (!deleted) {
+ bindGroupMetaData(data);
+
+ // Retrieve the list of members
+ configureAdapter(mGroupId);
+ startGroupMembersLoader();
+ return;
+ }
+ }
+ updateSize(null);
+ updateTitle(null);
}
@Override
@@ -295,10 +305,15 @@ public class GroupDetailFragment extends Fragment implements OnScrollListener {
break;
}
case R.id.menu_delete_group: {
- GroupDeletionDialogFragment.show(getFragmentManager(), mGroupId, mGroupName);
+ GroupDeletionDialogFragment.show(getFragmentManager(), mGroupId, mGroupName,
+ mCloseActivityAfterDelete);
return true;
}
}
return false;
}
+
+ public void closeActivityAfterDelete(boolean closeActivity) {
+ mCloseActivityAfterDelete = closeActivity;
+ }
}
diff --git a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
index 44d31be5b..c9c134214 100644
--- a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
+++ b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
@@ -33,8 +33,15 @@ public class GroupDeletionDialogFragment extends DialogFragment {
private static final String ARG_GROUP_ID = "groupId";
private static final String ARG_LABEL = "label";
- public static void show(FragmentManager fragmentManager, long groupId, String label) {
- GroupDeletionDialogFragment dialog = new GroupDeletionDialogFragment();
+ private boolean mEndActivity;
+
+ public GroupDeletionDialogFragment(boolean endActivity) {
+ mEndActivity = endActivity;
+ }
+
+ public static void show(FragmentManager fragmentManager, long groupId, String label,
+ boolean endActivity) {
+ GroupDeletionDialogFragment dialog = new GroupDeletionDialogFragment(endActivity);
Bundle args = new Bundle();
args.putLong(ARG_GROUP_ID, groupId);
args.putString(ARG_LABEL, label);
@@ -69,5 +76,8 @@ public class GroupDeletionDialogFragment extends DialogFragment {
getActivity().startService(ContactSaveService.createGroupDeletionIntent(
getActivity(), groupId));
+ if (mEndActivity) {
+ getActivity().finish();
+ }
}
}