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

Commit ad315253 authored by Cosmin Băieș's avatar Cosmin Băieș
Browse files

Rename BACK_ALT flag to BACK_DISMISS_IME

The NAVIGATION_HINT_BACK_ALT flag was originally introduced in [1],
alongside a few other flags which affected the navigation bar buttons.
The other flags were eventually removed in [2], leaving only this.
Unfortunately, the flag name is not very explicit, and it lacks clear
documentation.

This redefines the flag as BACK_DISMISS_IME, representing whether the
back button is visually adjusted to indicate that it will dismiss the
IME when pressed.

  [1]: Ie64369e3df3178178f35b56763ea96d380b6ddd4
  [2]: Ifd1f8c9f400d90542f0ca858b9a4deacabbd518a

Flag: EXEMPT refactor
Bug: 366129400
Test: n/a
Change-Id: I90b8cecaad879c2defc3e18711d5d4761bf64671
parent cd4b17aa
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ public class StatusBarManager {
     *
     * @hide
     */
    public static final int NAVIGATION_HINT_BACK_ALT = 1 << 0;
    public static final int NAVIGATION_HINT_BACK_DISMISS_IME = 1 << 0;
    /**
     * The IME is visible.
     *
@@ -224,7 +224,7 @@ public class StatusBarManager {
     * @hide
     */
    @IntDef(flag = true, prefix = { "NAVIGATION_HINT_" }, value = {
            NAVIGATION_HINT_BACK_ALT,
            NAVIGATION_HINT_BACK_DISMISS_IME,
            NAVIGATION_HINT_IME_VISIBLE,
            NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE,
    })
@@ -1357,8 +1357,8 @@ public class StatusBarManager {
    @NonNull
    public static String navigationHintsToString(@NavigationHint int hints) {
        final var hintStrings = new ArrayList<String>();
        if ((hints & NAVIGATION_HINT_BACK_ALT) != 0) {
            hintStrings.add("NAVIGATION_HINT_BACK_ALT");
        if ((hints & NAVIGATION_HINT_BACK_DISMISS_IME) != 0) {
            hintStrings.add("NAVIGATION_HINT_BACK_DISMISS_IME");
        }
        if ((hints & NAVIGATION_HINT_IME_VISIBLE) != 0) {
            hintStrings.add("NAVIGATION_HINT_IME_VISIBLE");
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package android.inputmethodservice;

import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_DISMISS_IME;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_VISIBLE;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE;
import static android.view.WindowInsets.Type.captionBar;
@@ -243,7 +243,7 @@ final class NavigationBarController {
                if (navigationBarView != null) {
                    // TODO(b/213337792): Support InputMethodService#setBackDisposition().
                    // TODO(b/213337792): Set NAVIGATION_HINT_IME_VISIBLE only when necessary.
                    final int hints = NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_VISIBLE
                    final int hints = NAVIGATION_HINT_BACK_DISMISS_IME | NAVIGATION_HINT_IME_VISIBLE
                            | (mShouldShowImeSwitcherWhenImeIsShown
                                    ? NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE : 0);
                    navigationBarView.setNavigationIconHints(hints);
@@ -516,7 +516,7 @@ final class NavigationBarController {
                if (navigationBarView != null) {
                    // TODO(b/213337792): Support InputMethodService#setBackDisposition().
                    // TODO(b/213337792): Set NAVIGATION_HINT_IME_VISIBLE only when necessary.
                    final int hints = NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_VISIBLE
                    final int hints = NAVIGATION_HINT_BACK_DISMISS_IME | NAVIGATION_HINT_IME_VISIBLE
                            | (mShouldShowImeSwitcherWhenImeIsShown
                                    ? NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE : 0);
                    navigationBarView.setNavigationIconHints(hints);
+11 −9
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package android.inputmethodservice.navigationbar;

import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_DISMISS_IME;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE;
import static android.inputmethodservice.navigationbar.NavigationBarConstants.DARK_MODE_ICON_COLOR_SINGLE_TONE;
import static android.inputmethodservice.navigationbar.NavigationBarConstants.LIGHT_MODE_ICON_COLOR_SINGLE_TONE;
@@ -245,9 +245,10 @@ public final class NavigationBarView extends FrameLayout {
    }

    private void orientBackButton(KeyButtonDrawable drawable) {
        final boolean useAltBack = (mNavigationIconHints & NAVIGATION_HINT_BACK_ALT) != 0;
        final boolean isBackDismissIme =
                (mNavigationIconHints & NAVIGATION_HINT_BACK_DISMISS_IME) != 0;
        final boolean isRtl = mConfiguration.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
        float degrees = useAltBack ? (isRtl ? 90 : -90) : 0;
        float degrees = isBackDismissIme ? (isRtl ? 90 : -90) : 0;
        if (drawable.getRotation() == degrees) {
            return;
        }
@@ -259,7 +260,7 @@ public final class NavigationBarView extends FrameLayout {

        // Animate the back button's rotation to the new degrees and only in portrait move up the
        // back button to line up with the other buttons
        float targetY = useAltBack
        float targetY = isBackDismissIme
                ? -dpToPx(NAVBAR_BACK_BUTTON_IME_OFFSET, getResources())
                : 0;
        ObjectAnimator navBarAnimator = ObjectAnimator.ofPropertyValuesHolder(drawable,
@@ -291,11 +292,12 @@ public final class NavigationBarView extends FrameLayout {
        if (hints == mNavigationIconHints) {
            return;
        }
        final boolean newBackAlt = (hints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0;
        final boolean oldBackAlt =
                (mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0;
        if (newBackAlt != oldBackAlt) {
            //onBackAltChanged(newBackAlt);
        final boolean backDismissIme =
                (hints & StatusBarManager.NAVIGATION_HINT_BACK_DISMISS_IME) != 0;
        final boolean oldBackDismissIme =
                (mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_DISMISS_IME) != 0;
        if (backDismissIme != oldBackDismissIme) {
            //onBackDismissImeChanged(backDismissIme);
        }

        if (DEBUG) {
+18 −13
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.systemui.navigationbar.views;

import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_DISMISS_IME;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_VISIBLE;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE;
import static android.inputmethodservice.InputMethodService.BACK_DISPOSITION_ADJUST_NOTHING;
@@ -31,7 +31,7 @@ import static com.android.systemui.assist.AssistManager.INVOCATION_TYPE_HOME_BUT
import static com.android.systemui.navigationbar.views.NavigationBar.NavBarActionEvent.NAVBAR_ASSIST_LONGPRESS;
import static com.android.systemui.navigationbar.views.buttons.KeyButtonView.NavBarButtonEvent.NAVBAR_IME_SWITCHER_BUTTON_LONGPRESS;
import static com.android.systemui.navigationbar.views.buttons.KeyButtonView.NavBarButtonEvent.NAVBAR_IME_SWITCHER_BUTTON_TAP;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_ALT_BACK;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISMISS_IME;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_VISIBLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SWITCHER_BUTTON_VISIBLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING;
@@ -503,7 +503,7 @@ public class NavigationBarTest extends SysuiTestCase {
                BACK_DISPOSITION_DEFAULT, true /* showImeSwitcher */);
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_VISIBLE), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_SWITCHER_BUTTON_VISIBLE), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_ALT_BACK), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_BACK_DISMISS_IME), eq(true));
    }

    /**
@@ -518,7 +518,7 @@ public class NavigationBarTest extends SysuiTestCase {
                BACK_DISPOSITION_DEFAULT, false /* showImeSwitcher */);
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_VISIBLE), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_SWITCHER_BUTTON_VISIBLE), eq(false));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_ALT_BACK), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_BACK_DISMISS_IME), eq(true));
    }

    /**
@@ -536,7 +536,7 @@ public class NavigationBarTest extends SysuiTestCase {
                BACK_DISPOSITION_DEFAULT, true /* showImeSwitcher */);
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_VISIBLE), eq(false));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_SWITCHER_BUTTON_VISIBLE), eq(false));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_ALT_BACK), eq(false));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_BACK_DISMISS_IME), eq(false));
    }

    /**
@@ -551,7 +551,7 @@ public class NavigationBarTest extends SysuiTestCase {
                BACK_DISPOSITION_ADJUST_NOTHING, true /* showImeSwitcher */);
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_VISIBLE), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_SWITCHER_BUTTON_VISIBLE), eq(true));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_IME_ALT_BACK), eq(false));
        verify(mMockSysUiState).setFlag(eq(SYSUI_STATE_BACK_DISMISS_IME), eq(false));
    }

    @Test
@@ -572,10 +572,11 @@ public class NavigationBarTest extends SysuiTestCase {
                BACK_DISPOSITION_DEFAULT, true);

        // Verify IME window state will be updated in default NavBar & external NavBar state reset.
        assertEquals(NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_VISIBLE
        assertEquals(NAVIGATION_HINT_BACK_DISMISS_IME | NAVIGATION_HINT_IME_VISIBLE
                        | NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE,
                defaultNavBar.getNavigationIconHints());
        assertFalse((externalNavBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
        assertFalse((externalNavBar.getNavigationIconHints()
                & NAVIGATION_HINT_BACK_DISMISS_IME) != 0);
        assertFalse((externalNavBar.getNavigationIconHints() & NAVIGATION_HINT_IME_VISIBLE) != 0);
        assertFalse((externalNavBar.getNavigationIconHints()
                & NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE) != 0);
@@ -585,10 +586,11 @@ public class NavigationBarTest extends SysuiTestCase {
        defaultNavBar.setImeWindowStatus(DEFAULT_DISPLAY, 0 /* vis */,
                BACK_DISPOSITION_DEFAULT, false);
        // Verify IME window state will be updated in external NavBar & default NavBar state reset.
        assertEquals(NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_VISIBLE
        assertEquals(NAVIGATION_HINT_BACK_DISMISS_IME | NAVIGATION_HINT_IME_VISIBLE
                        | NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE,
                externalNavBar.getNavigationIconHints());
        assertFalse((defaultNavBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
        assertFalse((defaultNavBar.getNavigationIconHints()
                & NAVIGATION_HINT_BACK_DISMISS_IME) != 0);
        assertFalse((defaultNavBar.getNavigationIconHints() & NAVIGATION_HINT_IME_VISIBLE) != 0);
        assertFalse((defaultNavBar.getNavigationIconHints()
                & NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE) != 0);
@@ -607,7 +609,8 @@ public class NavigationBarTest extends SysuiTestCase {
        // Verify navbar altered back icon when an app is showing IME
        mNavigationBar.setImeWindowStatus(DEFAULT_DISPLAY, IME_VISIBLE,
                BACK_DISPOSITION_DEFAULT, true);
        assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
        assertTrue((mNavigationBar.getNavigationIconHints()
                & NAVIGATION_HINT_BACK_DISMISS_IME) != 0);
        assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_VISIBLE) != 0);
        assertTrue((mNavigationBar.getNavigationIconHints()
                & NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE) != 0);
@@ -617,7 +620,8 @@ public class NavigationBarTest extends SysuiTestCase {
        doReturn(true).when(mKeyguardStateController).isShowing();
        mNavigationBar.setImeWindowStatus(DEFAULT_DISPLAY, IME_VISIBLE,
                BACK_DISPOSITION_DEFAULT, true);
        assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
        assertFalse((mNavigationBar.getNavigationIconHints()
                & NAVIGATION_HINT_BACK_DISMISS_IME) != 0);
        assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_VISIBLE) != 0);
        assertFalse((mNavigationBar.getNavigationIconHints()
                & NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE) != 0);
@@ -628,7 +632,8 @@ public class NavigationBarTest extends SysuiTestCase {
        doReturn(windowInsets).when(mockShadeWindowView).getRootWindowInsets();
        mNavigationBar.setImeWindowStatus(DEFAULT_DISPLAY, IME_VISIBLE,
                BACK_DISPOSITION_DEFAULT, true);
        assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
        assertTrue((mNavigationBar.getNavigationIconHints()
                & NAVIGATION_HINT_BACK_DISMISS_IME) != 0);
        assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_VISIBLE) != 0);
        assertTrue((mNavigationBar.getNavigationIconHints()
                & NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE) != 0);
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.systemui.shared.recents.utilities;

import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_DISMISS_IME;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_VISIBLE;
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_BUTTON_VISIBLE;

@@ -123,13 +123,13 @@ public class Utilities {
            case InputMethodService.BACK_DISPOSITION_WILL_NOT_DISMISS:
            case InputMethodService.BACK_DISPOSITION_WILL_DISMISS:
                if (isImeVisible) {
                    hints |= NAVIGATION_HINT_BACK_ALT;
                    hints |= NAVIGATION_HINT_BACK_DISMISS_IME;
                } else {
                    hints &= ~NAVIGATION_HINT_BACK_ALT;
                    hints &= ~NAVIGATION_HINT_BACK_DISMISS_IME;
                }
                break;
            case InputMethodService.BACK_DISPOSITION_ADJUST_NOTHING:
                hints &= ~NAVIGATION_HINT_BACK_ALT;
                hints &= ~NAVIGATION_HINT_BACK_DISMISS_IME;
                break;
        }
        if (isImeVisible) {
Loading