From 98f7350f8fec6c718e13bc55aea725ea2b09ac50 Mon Sep 17 00:00:00 2001 From: Tony Mak Date: Wed, 14 Mar 2018 15:40:41 +0000 Subject: [PATCH] Fix accessiblity issue around work tab 1. Instead of always announcing "Apps list", we now announce "personal apps list" and "work apps list" if tab is there. 2. Fix an issue that "personal" and "work" are announced twice. 3. Work footer is now announced as a group FIX: 71703082 Change-Id: I0240bc04df09a5599540cfe67f0f48156f285548 --- .../launcher3/uioverrides/AllAppsState.java | 4 +++- res/layout/work_tab_footer.xml | 1 + res/values/strings.xml | 3 +++ .../launcher3/allapps/AllAppsContainerView.java | 14 ++++++++++++++ .../launcher3/allapps/AllAppsPagedView.java | 7 +++---- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java index ea03a7684c..31261d9853 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java @@ -25,6 +25,7 @@ import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.R; +import com.android.launcher3.allapps.AllAppsContainerView; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; /** @@ -58,7 +59,8 @@ public class AllAppsState extends LauncherState { @Override public String getDescription(Launcher launcher) { - return launcher.getString(R.string.all_apps_button_label); + AllAppsContainerView appsView = launcher.getAppsView(); + return appsView.getDescription(); } @Override diff --git a/res/layout/work_tab_footer.xml b/res/layout/work_tab_footer.xml index 21ff55ebd4..379e9d0b44 100644 --- a/res/layout/work_tab_footer.xml +++ b/res/layout/work_tab_footer.xml @@ -17,6 +17,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" + android:focusable="true" android:paddingBottom="@dimen/all_apps_work_profile_tab_footer_bottom_padding" android:paddingLeft="@dimen/dynamic_grid_cell_padding_x" android:paddingRight="@dimen/dynamic_grid_cell_padding_x" diff --git a/res/values/strings.xml b/res/values/strings.xml index d8b68e74b4..c070064a8e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -80,6 +80,9 @@ Apps list + Personal apps list + Work apps list + Home diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 3fe5d7ae15..39a8df3919 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -25,6 +25,7 @@ import android.graphics.Rect; import android.os.Process; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.Selection; @@ -192,6 +193,19 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo return false; } + public String getDescription() { + @StringRes int descriptionRes; + if (mUsingTabs) { + descriptionRes = + mViewPager.getNextPage() == 0 + ? R.string.all_apps_button_personal_label + : R.string.all_apps_button_work_label; + } else { + descriptionRes = R.string.all_apps_button_label; + } + return getContext().getString(descriptionRes); + } + public AllAppsRecyclerView getActiveRecyclerView() { if (!mUsingTabs || mViewPager.getNextPage() == 0) { return mAH[AdapterHolder.MAIN].recyclerView; diff --git a/src/com/android/launcher3/allapps/AllAppsPagedView.java b/src/com/android/launcher3/allapps/AllAppsPagedView.java index 3b4450bf8a..b2e35a4737 100644 --- a/src/com/android/launcher3/allapps/AllAppsPagedView.java +++ b/src/com/android/launcher3/allapps/AllAppsPagedView.java @@ -17,10 +17,9 @@ package com.android.launcher3.allapps; import android.content.Context; import android.util.AttributeSet; - import android.view.MotionEvent; + import com.android.launcher3.PagedView; -import com.android.launcher3.R; public class AllAppsPagedView extends PagedView { @@ -42,8 +41,8 @@ public class AllAppsPagedView extends PagedView { @Override protected String getCurrentPageDescription() { - return getResources().getString( - getNextPage() == 0 ? R.string.all_apps_personal_tab : R.string.all_apps_work_tab); + // Not necessary, tab-bar already has two tabs with their own descriptions. + return ""; } @Override