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

Commit 2464dc9a authored by Casey Burkhardt's avatar Casey Burkhardt
Browse files

Ensures Accessibility button always overrides IME switcher

In the case of both the IME switcher and Accessibility button
appearing within NavigationBarView, we want to allow the
accessibility button to always override the appearance of the IME
switcher as our target users will most-often be using
dead-reckoning to interact with the Accessibility button,
requiring consistent appearance, location, and visibility.

Bug: 35267032
Test: Manual
Change-Id: Ib39d2336efe7073f686d94b3f71fc853af3186bb
parent 479bb430
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -417,7 +417,10 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
            getHomeButton().setImageDrawable(mHomeDefaultIcon);
        }

        final boolean showImeButton = ((hints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) != 0);
        // The Accessibility button always overrides the appearance of the IME switcher
        final boolean showImeButton =
                !mShowAccessibilityButton && ((hints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN)
                        != 0);
        getImeSwitchButton().setVisibility(showImeButton ? View.VISIBLE : View.INVISIBLE);
        getImeSwitchButton().setImageDrawable(mImeIcon);

@@ -545,8 +548,9 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
        mShowAccessibilityButton = visible;
        mLongClickableAccessibilityButton = longClickable;
        if (visible) {
            // Accessibility button overrides Menu button.
            // Accessibility button overrides Menu and IME switcher buttons.
            setMenuVisibility(false, true);
            getImeSwitchButton().setVisibility(View.INVISIBLE);
        }

        getAccessibilityButton().setVisibility(visible ? View.VISIBLE : View.INVISIBLE);