Have both NAVIGATION_HINT_IME{,_SWITCHER}_SHOWN
This is a mechanical renaming CL with no behavior change. Somehow NAVIGATION_HINT_IME_SHOWN was set when the IME switcher needs to be shown, not when the IME is shown. This CL aims to avoid future confusions by also introducing NAVIGATION_HINT_IME_SWITCHER_SHOWN then setting NAVIGATION_HINT_IME_SHOWN when the IME is actually shown. This CL also updates NavigationBarTest to verify those flags. Bug: 192412909 Bug: 217755059 Test: atest SystemUITests:NavigationBarTest Change-Id: I8bdd58d040689953072c7f384ece2bca677265e1
This commit is contained in:
@@ -180,6 +180,8 @@ public class StatusBarManager {
|
||||
public static final int NAVIGATION_HINT_BACK_ALT = 1 << 0;
|
||||
/** @hide */
|
||||
public static final int NAVIGATION_HINT_IME_SHOWN = 1 << 1;
|
||||
/** @hide */
|
||||
public static final int NAVIGATION_HINT_IME_SWITCHER_SHOWN = 1 << 2;
|
||||
|
||||
/** @hide */
|
||||
public static final int WINDOW_STATUS_BAR = 1;
|
||||
|
||||
@@ -219,7 +219,7 @@ final class NavigationBarController {
|
||||
// TODO(b/213337792): Set NAVIGATION_HINT_IME_SHOWN only when necessary.
|
||||
final int hints = StatusBarManager.NAVIGATION_HINT_BACK_ALT
|
||||
| (mShouldShowImeSwitcherWhenImeIsShown
|
||||
? StatusBarManager.NAVIGATION_HINT_IME_SHOWN
|
||||
? StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN
|
||||
: 0);
|
||||
navigationBarView.setNavigationIconHints(hints);
|
||||
}
|
||||
@@ -470,7 +470,7 @@ final class NavigationBarController {
|
||||
}
|
||||
final int hints = StatusBarManager.NAVIGATION_HINT_BACK_ALT
|
||||
| (shouldShowImeSwitcherWhenImeIsShown
|
||||
? StatusBarManager.NAVIGATION_HINT_IME_SHOWN : 0);
|
||||
? StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN : 0);
|
||||
navigationBarView.setNavigationIconHints(hints);
|
||||
}
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@ public final class NavigationBarView extends FrameLayout {
|
||||
|
||||
// Update IME button visibility, a11y and rotate button always overrides the appearance
|
||||
final boolean imeSwitcherVisible =
|
||||
(mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) != 0;
|
||||
(mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN) != 0;
|
||||
getImeSwitchButton().setVisibility(imeSwitcherVisible ? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
getBackButton().setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.shared.recents.utilities;
|
||||
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
@@ -110,11 +111,16 @@ public class Utilities {
|
||||
hints &= ~NAVIGATION_HINT_BACK_ALT;
|
||||
break;
|
||||
}
|
||||
if (showImeSwitcher) {
|
||||
if (imeShown) {
|
||||
hints |= NAVIGATION_HINT_IME_SHOWN;
|
||||
} else {
|
||||
hints &= ~NAVIGATION_HINT_IME_SHOWN;
|
||||
}
|
||||
if (showImeSwitcher) {
|
||||
hints |= NAVIGATION_HINT_IME_SWITCHER_SHOWN;
|
||||
} else {
|
||||
hints &= ~NAVIGATION_HINT_IME_SWITCHER_SHOWN;
|
||||
}
|
||||
|
||||
return hints;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package com.android.systemui.navigationbar;
|
||||
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN;
|
||||
import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN;
|
||||
import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
|
||||
import static android.app.StatusBarManager.WindowType;
|
||||
@@ -1410,7 +1410,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
.setFlag(SYSUI_STATE_IME_SHOWING,
|
||||
(mNavigationIconHints & NAVIGATION_HINT_BACK_ALT) != 0)
|
||||
.setFlag(SYSUI_STATE_IME_SWITCHER_SHOWING,
|
||||
(mNavigationIconHints & NAVIGATION_HINT_IME_SHOWN) != 0)
|
||||
(mNavigationIconHints & NAVIGATION_HINT_IME_SWITCHER_SHOWN) != 0)
|
||||
.setFlag(SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY,
|
||||
allowSystemGestureIgnoringBarVisibility())
|
||||
.commitUpdate(mDisplayId);
|
||||
|
||||
@@ -778,7 +778,7 @@ public class NavigationBarView extends FrameLayout implements
|
||||
|
||||
// Update IME button visibility, a11y and rotate button always overrides the appearance
|
||||
boolean disableImeSwitcher =
|
||||
(mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) == 0
|
||||
(mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN) == 0
|
||||
|| isImeRenderingNavButtons;
|
||||
mContextualButtonGroup.setButtonVisibility(R.id.ime_switcher, !disableImeSwitcher);
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package com.android.systemui.navigationbar;
|
||||
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN;
|
||||
import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
|
||||
import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR;
|
||||
import static android.view.InsetsState.containsType;
|
||||
@@ -293,7 +293,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
|
||||
.setFlag(SYSUI_STATE_IME_SHOWING,
|
||||
(mNavigationIconHints & NAVIGATION_HINT_BACK_ALT) != 0)
|
||||
.setFlag(SYSUI_STATE_IME_SWITCHER_SHOWING,
|
||||
(mNavigationIconHints & NAVIGATION_HINT_IME_SHOWN) != 0)
|
||||
(mNavigationIconHints & NAVIGATION_HINT_IME_SWITCHER_SHOWN) != 0)
|
||||
.setFlag(SYSUI_STATE_OVERVIEW_DISABLED,
|
||||
(mDisabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0)
|
||||
.setFlag(SYSUI_STATE_HOME_DISABLED,
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.navigationbar;
|
||||
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
|
||||
import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SWITCHER_SHOWN;
|
||||
import static android.inputmethodservice.InputMethodService.BACK_DISPOSITION_DEFAULT;
|
||||
import static android.inputmethodservice.InputMethodService.IME_INVISIBLE;
|
||||
import static android.inputmethodservice.InputMethodService.IME_VISIBLE;
|
||||
@@ -285,20 +286,26 @@ 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_SHOWN,
|
||||
assertEquals(NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_SHOWN
|
||||
| NAVIGATION_HINT_IME_SWITCHER_SHOWN,
|
||||
defaultNavBar.getNavigationIconHints());
|
||||
assertFalse((externalNavBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
|
||||
assertFalse((externalNavBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SHOWN) != 0);
|
||||
assertFalse((externalNavBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SWITCHER_SHOWN)
|
||||
!= 0);
|
||||
|
||||
externalNavBar.setImeWindowStatus(EXTERNAL_DISPLAY_ID, null, IME_VISIBLE,
|
||||
BACK_DISPOSITION_DEFAULT, true);
|
||||
defaultNavBar.setImeWindowStatus(
|
||||
DEFAULT_DISPLAY, null, IME_INVISIBLE, 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_SHOWN,
|
||||
assertEquals(NAVIGATION_HINT_BACK_ALT | NAVIGATION_HINT_IME_SHOWN
|
||||
| NAVIGATION_HINT_IME_SWITCHER_SHOWN,
|
||||
externalNavBar.getNavigationIconHints());
|
||||
assertFalse((defaultNavBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
|
||||
assertFalse((defaultNavBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SHOWN) != 0);
|
||||
assertFalse((defaultNavBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SWITCHER_SHOWN)
|
||||
!= 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -316,6 +323,8 @@ public class NavigationBarTest extends SysuiTestCase {
|
||||
BACK_DISPOSITION_DEFAULT, true);
|
||||
assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
|
||||
assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SHOWN) != 0);
|
||||
assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SWITCHER_SHOWN)
|
||||
!= 0);
|
||||
|
||||
// Verify navbar didn't alter and showing back icon when the keyguard is showing without
|
||||
// requesting IME insets visible.
|
||||
@@ -324,6 +333,8 @@ public class NavigationBarTest extends SysuiTestCase {
|
||||
BACK_DISPOSITION_DEFAULT, true);
|
||||
assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
|
||||
assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SHOWN) != 0);
|
||||
assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SWITCHER_SHOWN)
|
||||
!= 0);
|
||||
|
||||
// Verify navbar altered and showing back icon when the keyguard is showing and
|
||||
// requesting IME insets visible.
|
||||
@@ -333,6 +344,8 @@ public class NavigationBarTest extends SysuiTestCase {
|
||||
BACK_DISPOSITION_DEFAULT, true);
|
||||
assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);
|
||||
assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SHOWN) != 0);
|
||||
assertTrue((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_IME_SWITCHER_SHOWN)
|
||||
!= 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user