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

Commit fa3a1c36 authored by Prince's avatar Prince Committed by Prince Donkor
Browse files

Improved TalkBack accessibility across the status bar

Made individual status icons focusable by updating the showIcon() method
Made all extra status bar item views focusable in setExtraStatusBarItemViews()

Fixes: 378584261
Flag: NONE accessibility issue
Test: Device Tested
Change-Id: I8ec6cfec042ff03884dfc6e99a8b6df51255f26f
parent 4b4c56ad
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.unit.IntRect
import androidx.compose.ui.zIndex
import com.android.compose.animation.scene.SceneScope
import com.android.systemui.communal.smartspace.SmartspaceInteractionHandler
import com.android.systemui.communal.ui.compose.section.AmbientStatusBarSection
@@ -59,7 +60,7 @@ constructor(
                    Box(modifier = Modifier.fillMaxSize()) {
                        with(communalPopupSection) { Popup() }
                        with(ambientStatusBarSection) {
                            AmbientStatusBar(modifier = Modifier.fillMaxWidth())
                            AmbientStatusBar(modifier = Modifier.fillMaxWidth().zIndex(1f))
                        }
                        CommunalHub(
                            viewModel = viewModel,
+9 −5
Original line number Diff line number Diff line
@@ -162,11 +162,12 @@ public class AmbientStatusBarView extends ConstraintLayout {

    void showIcon(@StatusIconType int iconType, boolean show, @Nullable String contentDescription) {
        View icon = mStatusIcons.get(iconType);
        if (icon == null) {
            return;
        }
        if (icon == null) return;

        if (show && contentDescription != null) {
            icon.setContentDescription(contentDescription);
            icon.setFocusable(true);
            icon.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
        }
        icon.setVisibility(show ? View.VISIBLE : View.GONE);
        mSystemStatusViewGroup.setVisibility(areAnyStatusIconsVisible() ? View.VISIBLE : View.GONE);
@@ -174,9 +175,12 @@ public class AmbientStatusBarView extends ConstraintLayout {

    void setExtraStatusBarItemViews(List<View> views) {
        removeAllExtraStatusBarItemViews();
        views.forEach(view -> mExtraSystemStatusViewGroup.addView(view));
        views.forEach(view -> {
            view.setFocusable(true);
            view.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
            mExtraSystemStatusViewGroup.addView(view);
        });
    }

    private View fetchStatusIconForResId(int resId) {
        final View statusIcon = findViewById(resId);
        return Objects.requireNonNull(statusIcon);