Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f354d186 authored by Gary Mai's avatar Gary Mai
Browse files

Side nav accounts menu a11y improvements

Add account type string to the content description for the
account filters menu items so Talkback reads them as well.

Bug: 29152997

Change-Id: Id7034b79769dce36479615b7e841b096f998ac28
parent 5de24579
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.android.contacts.activities.GroupMembersActivity;
@@ -53,6 +54,7 @@ import com.android.contacts.common.list.AccountFilterActivity;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.ContactListFilterController;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.preference.ContactsPreferenceActivity;
import com.android.contacts.common.util.AccountFilterUtil;
@@ -488,6 +490,16 @@ public abstract class ContactsDrawerActivity extends AppCompatContactsActivity i
            menuItem.setIcon(filter.icon);
            // 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
            // for Talkback. We want Talkback to read out the account type but not have it be part
            // of the menuItem title.
            final AccountType account = AccountTypeManager.getInstance(this)
                    .getAccountType(filter.accountType, filter.dataSet);
            LinearLayout view = (LinearLayout) LayoutInflater.from(this)
                    .inflate(R.layout.account_type_info, null);
            view.setContentDescription(account.getDisplayLabel(this));
            view.setVisibility(View.VISIBLE);
            menuItem.setActionView(view);
        }

        if (getContactListFilter() != null) {