diff options
author | Dmitri Plotnikov <dplotnikov@google.com> | 2010-11-22 10:18:46 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-11-22 10:18:46 -0800 |
commit | a87222cb76b42f9a1d869f8ad0737271310a956b (patch) | |
tree | 59f797429977e6106df736a656cb235fb26b3d98 /src/com | |
parent | ab59660a17e896593f2a07c2e1191c2c23e3e353 (diff) | |
parent | 5096815f263545aa22f33e5aebe5a45f3118c5e9 (diff) | |
download | packages_apps_Contacts-a87222cb76b42f9a1d869f8ad0737271310a956b.tar.gz packages_apps_Contacts-a87222cb76b42f9a1d869f8ad0737271310a956b.tar.bz2 packages_apps_Contacts-a87222cb76b42f9a1d869f8ad0737271310a956b.zip |
Merge "Adding support for new field: Groups.GROUP_IS_READ_ONLY"
Diffstat (limited to 'src/com')
3 files changed, 19 insertions, 9 deletions
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java index 2548a45e6..c72f0d8fb 100644 --- a/src/com/android/contacts/activities/ContactBrowserActivity.java +++ b/src/com/android/contacts/activities/ContactBrowserActivity.java @@ -890,23 +890,25 @@ public class ContactBrowserActivity extends Activity mRequest.getActionCode() == ContactsRequest.ACTION_DEFAULT); } - boolean groupSelected = false; + boolean groupActionsEnabled = false; if (mListFragment instanceof DefaultContactBrowseListFragment) { ContactListFilter filter = ((DefaultContactBrowseListFragment)mListFragment).getFilter(); - if (filter != null && filter.filterType == ContactListFilter.FILTER_TYPE_GROUP) { - groupSelected = true; + if (filter != null + && filter.filterType == ContactListFilter.FILTER_TYPE_GROUP + && !filter.groupReadOnly) { + groupActionsEnabled = true; } } MenuItem renameGroup = menu.findItem(R.id.menu_rename_group); if (renameGroup != null) { - renameGroup.setVisible(groupSelected); + renameGroup.setVisible(groupActionsEnabled); } MenuItem deleteGroup = menu.findItem(R.id.menu_delete_group); if (deleteGroup != null) { - deleteGroup.setVisible(groupSelected); + deleteGroup.setVisible(groupActionsEnabled); } return true; diff --git a/src/com/android/contacts/list/ContactListFilter.java b/src/com/android/contacts/list/ContactListFilter.java index 2b212fd9c..dcaf60878 100644 --- a/src/com/android/contacts/list/ContactListFilter.java +++ b/src/com/android/contacts/list/ContactListFilter.java @@ -40,6 +40,7 @@ public final class ContactListFilter implements Comparable<ContactListFilter> { private static final String KEY_ACCOUNT_TYPE = "filter.accountType"; private static final String KEY_GROUP_ID = "filter.groupId"; private static final String KEY_GROUP_SOURCE_ID = "filter.groupSourceId"; + private static final String KEY_GROUP_READ_ONLY = "filter.groupReadOnly"; public int filterType; public String accountType; @@ -47,6 +48,7 @@ public final class ContactListFilter implements Comparable<ContactListFilter> { public Drawable icon; public long groupId; public String groupSourceId; + public boolean groupReadOnly; public String title; private String mId; @@ -63,13 +65,14 @@ public final class ContactListFilter implements Comparable<ContactListFilter> { this.title = title; } - public ContactListFilter( - String accountType, String accountName, long groupId, String groupSourceId, String title) { + public ContactListFilter(String accountType, String accountName, long groupId, + String groupSourceId, boolean groupReadOnly, String title) { this.filterType = ContactListFilter.FILTER_TYPE_GROUP; this.accountType = accountType; this.accountName = accountName; this.groupId = groupId; this.groupSourceId = groupSourceId; + this.groupReadOnly = groupReadOnly; this.title = title; } @@ -159,6 +162,7 @@ public final class ContactListFilter implements Comparable<ContactListFilter> { .putString(KEY_ACCOUNT_TYPE, filter == null ? null : filter.accountType) .putLong(KEY_GROUP_ID, filter == null ? -1 : filter.groupId) .putString(KEY_GROUP_SOURCE_ID, filter == null ? null : filter.groupSourceId) + .putBoolean(KEY_GROUP_READ_ONLY, filter == null ? false : filter.groupReadOnly) .apply(); } @@ -173,6 +177,7 @@ public final class ContactListFilter implements Comparable<ContactListFilter> { filter.accountType = prefs.getString(KEY_ACCOUNT_TYPE, null); filter.groupId = prefs.getLong(KEY_GROUP_ID, -1); filter.groupSourceId = prefs.getString(KEY_GROUP_SOURCE_ID, null); + filter.groupReadOnly = prefs.getBoolean(KEY_GROUP_READ_ONLY, false); return filter; } diff --git a/src/com/android/contacts/list/ContactListFilterLoader.java b/src/com/android/contacts/list/ContactListFilterLoader.java index adb7c7fcc..8ad9168f4 100644 --- a/src/com/android/contacts/list/ContactListFilterLoader.java +++ b/src/com/android/contacts/list/ContactListFilterLoader.java @@ -45,6 +45,7 @@ public class ContactListFilterLoader extends AsyncTaskLoader<List<ContactListFil Groups.TITLE, Groups.AUTO_ADD, Groups.SOURCE_ID, + Groups.GROUP_IS_READ_ONLY, }; public static final int ID = 0; @@ -53,6 +54,7 @@ public class ContactListFilterLoader extends AsyncTaskLoader<List<ContactListFil public static final int TITLE = 3; public static final int IS_DEFAULT_GROUP = 4; // Using the AUTO_ADD group as default public static final int SOURCE_ID = 5; + public static final int GROUP_IS_READ_ONLY = 6; private static final String SELECTION = Groups.DELETED + "=0 AND " + Groups.FAVORITES + "=0"; @@ -88,6 +90,7 @@ public class ContactListFilterLoader extends AsyncTaskLoader<List<ContactListFil while (cursor.moveToNext()) { long groupId = cursor.getLong(GroupQuery.ID); String groupSourceId = cursor.getString(GroupQuery.SOURCE_ID); + boolean groupReadOnly = cursor.getInt(GroupQuery.GROUP_IS_READ_ONLY) != 0; String accountType = cursor.getString(GroupQuery.ACCOUNT_TYPE); String accountName = cursor.getString(GroupQuery.ACCOUNT_NAME); boolean defaultGroup = false; @@ -106,8 +109,8 @@ public class ContactListFilterLoader extends AsyncTaskLoader<List<ContactListFil } } else { String title = cursor.getString(GroupQuery.TITLE); - results.add(new ContactListFilter( - accountType, accountName, groupId, groupSourceId, title)); + results.add(new ContactListFilter(accountType, accountName, groupId, + groupSourceId, groupReadOnly, title)); } } } finally { |