diff --git a/packages/SystemUI/res/layout/qs_customize_panel_content.xml b/packages/SystemUI/res/layout/qs_customize_panel_content.xml index 09f512f72f841..7cce1ba36bd93 100644 --- a/packages/SystemUI/res/layout/qs_customize_panel_content.xml +++ b/packages/SystemUI/res/layout/qs_customize_panel_content.xml @@ -52,7 +52,7 @@ android:scrollIndicators="top" android:scrollbars="vertical" android:scrollbarStyle="outsideOverlay" - android:importantForAccessibility="no" /> + android:importantForAccessibility="auto" /> implements TileSta return true; } + private void setSelectableForHeaders(View view) { + if (mAccessibilityManager.isTouchExplorationEnabled()) { + final boolean selectable = mAccessibilityAction == ACTION_NONE; + view.setFocusable(selectable); + view.setImportantForAccessibility(selectable + ? View.IMPORTANT_FOR_ACCESSIBILITY_YES + : View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + view.setFocusableInTouchMode(selectable); + } + } + @Override public void onBindViewHolder(final Holder holder, int position) { if (holder.getItemViewType() == TYPE_HEADER) { + setSelectableForHeaders(holder.itemView); return; } if (holder.getItemViewType() == TYPE_DIVIDER) { @@ -260,6 +272,8 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta } ((TextView) holder.itemView.findViewById(android.R.id.title)).setText(titleText); + setSelectableForHeaders(holder.itemView); + return; } if (holder.getItemViewType() == TYPE_ACCESSIBLE_DROP) { @@ -306,6 +320,7 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta holder.mTileView.setImportantForAccessibility(selectable ? View.IMPORTANT_FOR_ACCESSIBILITY_YES : View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + holder.mTileView.setFocusableInTouchMode(selectable); if (selectable) { holder.mTileView.setOnClickListener(new OnClickListener() { @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/UiModeNightTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/UiModeNightTile.java index dc9a2ce1beef5..9fe9703e41816 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/UiModeNightTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/UiModeNightTile.java @@ -22,6 +22,7 @@ import android.content.res.Configuration; import android.provider.Settings; import android.service.quicksettings.Tile; import android.text.TextUtils; +import android.widget.Switch; import com.android.internal.logging.nano.MetricsProto; import com.android.systemui.R; @@ -112,6 +113,7 @@ public class UiModeNightTile extends QSTileImpl implements state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE; } state.showRippleEffect = false; + state.expandedAccessibilityClassName = Switch.class.getName(); } @Override