Adding support for new field: Groups.GROUP_IS_READ_ONLY
Bug: 3214137
Change-Id: I8cbae752b9ed417c8050cd74d7ba1d7d33d10b5b
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 2548a45..c72f0d8 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -890,23 +890,25 @@
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 2b212fd..dcaf608 100644
--- a/src/com/android/contacts/list/ContactListFilter.java
+++ b/src/com/android/contacts/list/ContactListFilter.java
@@ -40,6 +40,7 @@
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 Drawable icon;
public long groupId;
public String groupSourceId;
+ public boolean groupReadOnly;
public String title;
private String mId;
@@ -63,13 +65,14 @@
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 @@
.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 @@
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 adb7c7f..8ad9168 100644
--- a/src/com/android/contacts/list/ContactListFilterLoader.java
+++ b/src/com/android/contacts/list/ContactListFilterLoader.java
@@ -45,6 +45,7 @@
Groups.TITLE,
Groups.AUTO_ADD,
Groups.SOURCE_ID,
+ Groups.GROUP_IS_READ_ONLY,
};
public static final int ID = 0;
@@ -53,6 +54,7 @@
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 @@
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 @@
}
} 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 {