Show "Device" in account filter if no writable accounts. (1/2)
BUG 29879881
Change-Id: I62e70b0250866b0cfe21179b9bed2f3231192775
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 1dc7092..28816f5 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -354,9 +354,11 @@
for (int i = 0; i < accountFilterItems.size(); i++) {
final ContactListFilter filter = accountFilterItems.get(i);
- final String accountName = filter.accountName;
+ final String menuName =
+ filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS
+ ? getString(R.string.account_phone) : filter.accountName;
final MenuItem menuItem = subMenu.add(R.id.nav_filters_items, Menu.NONE, Menu.NONE,
- accountName);
+ menuName);
mFilterMenuMap.put(filter, menuItem);
final Intent intent = new Intent();
intent.putExtra(AccountFilterUtil.EXTRA_CONTACT_LIST_FILTER, filter);
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 7b5f3e6..31c047a 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -489,7 +489,9 @@
final ContactListFilter currentFilter = mContactListFilterController.getFilter();
final AccountWithDataSet accountOfCurrentFilter = new AccountWithDataSet(
currentFilter.accountName, currentFilter.accountType, currentFilter.dataSet);
- return mWritableAccounts != null && mWritableAccounts.contains(accountOfCurrentFilter);
+ return accountOfCurrentFilter.isLocalAccount()
+ || (mWritableAccounts != null
+ && mWritableAccounts.contains(accountOfCurrentFilter));
}
private void showFabWithAnimation(boolean showFab) {
@@ -1350,7 +1352,7 @@
// If we are in account view, we pass the account explicitly in order to
// create contact in the account. This will prevent the default account dialog
// from being displayed.
- if (!isAllContactsFilter(filter)) {
+ if (!isAllContactsFilter(filter) && !isDeviceContactsFilter(filter)) {
final Account account = new Account(filter.accountName, filter.accountType);
extras.putParcelable(Intents.Insert.EXTRA_ACCOUNT, account);
extras.putString(Intents.Insert.EXTRA_DATA_SET, filter.dataSet);
@@ -1392,8 +1394,14 @@
updateFilterMenu(filter);
if (getSupportActionBar() != null) {
- final String actionBarTitle = TextUtils.isEmpty(filter.accountName) ?
- getString(R.string.contactsList) : filter.accountName;
+ String actionBarTitle = null;
+ if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
+ actionBarTitle = getString(R.string.account_phone);
+ } else if (!TextUtils.isEmpty(filter.accountName)) {
+ actionBarTitle = filter.accountName;
+ } else {
+ actionBarTitle = getString(R.string.contactsList);
+ }
getSupportActionBar().setTitle(actionBarTitle);
}
}
@@ -1408,6 +1416,10 @@
return filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS;
}
+ private boolean isDeviceContactsFilter(ContactListFilter filter) {
+ return filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS;
+ }
+
@Override
protected boolean shouldFinish() {
return false;