Show device "account" in nav drawer menu
If there are contacts with a "null" account name and type (indicating that they
are device local contacts) then an item is included in the account section of
the nav drawer for "Device" contacts.
Bug 28637652
Bug 28637715
Change-Id: I975d20c8ab2bb14b9a9441e585d13237f7c09cb2
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index bea1411..f976807 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -59,6 +59,7 @@
import com.android.contacts.common.preference.ContactsPreferenceActivity;
import com.android.contacts.common.util.AccountFilterUtil;
import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
+import com.android.contacts.common.util.DeviceAccountPresentationValues;
import com.android.contacts.common.util.ImplicitIntentsUtil;
import com.android.contacts.common.util.ViewUtil;
import com.android.contacts.editor.ContactEditorFragment;
@@ -74,6 +75,7 @@
import com.android.contacts.util.SharedPreferenceUtil;
import com.android.contactsbind.Assistants;
import com.android.contactsbind.HelpUtils;
+import com.android.contactsbind.ObjectFactory;
import java.util.HashMap;
import java.util.Iterator;
@@ -171,6 +173,7 @@
// The account the new group will be created under.
private AccountWithDataSet mNewGroupAccount;
+ private DeviceAccountPresentationValues mDeviceAccountPresentationValues;
private int mPositionOfLastGroup;
@@ -183,6 +186,8 @@
super.setContentView(R.layout.contacts_drawer_activity);
+ mDeviceAccountPresentationValues = ObjectFactory.createDeviceAccountPresentationValues(this);
+
// Set up the action bar.
mToolbar = getView(R.id.toolbar);
setSupportActionBar(mToolbar);
@@ -468,12 +473,12 @@
int positionOfLastFilter = mPositionOfLastGroup + GAP_BETWEEN_TWO_MENU_GROUPS;
+ mDeviceAccountPresentationValues.setFilters(accountFilterItems);
+
for (int i = 0; i < accountFilterItems.size(); i++) {
positionOfLastFilter++;
final ContactListFilter filter = accountFilterItems.get(i);
- final String menuName =
- filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS
- ? getString(R.string.account_phone) : filter.accountName;
+ final CharSequence menuName = mDeviceAccountPresentationValues.getLabel(i);
final MenuItem menuItem = subMenu.add(R.id.nav_filters_items, Menu.NONE,
positionOfLastFilter, menuName);
mFilterMenuMap.put(filter, menuItem);
@@ -497,7 +502,7 @@
return true;
}
});
- menuItem.setIcon(filter.icon);
+ menuItem.setIcon(mDeviceAccountPresentationValues.getIcon(i));
// Get rid of the default menu item overlay and show original account icons.
menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP);
// Create a dummy action view to attach extra hidden content description to the menuItem