Add ime back button logic to the init block of NavbarButtonsViewController

Fixes: 338320015
Test: Run adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.SetupWizardTestActivity. Make sure the back key shows by default but hides when IME renders back arrow.
Change-Id: I8baeb10d3f5b13c3bac084872d77d881c1513733
This commit is contained in:
Tracy Zhou
2024-05-01 17:45:56 -07:00
parent e07207678b
commit 4b43cfbc04
@@ -378,6 +378,12 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
return (flags & FLAG_DISABLE_BACK) == 0
&& ((flags & FLAG_KEYGUARD_VISIBLE) == 0 || showingOnKeyguard);
}));
// Hide back button in SUW if keyboard is showing (IME draws its own back).
if (mIsImeRenderingNavButtons) {
mPropertyHolders.add(new StatePropertyHolder(
mBackButtonAlpha.get(ALPHA_INDEX_SUW),
flags -> (flags & FLAG_IME_VISIBLE) == 0));
}
mPropertyHolders.add(new StatePropertyHolder(mBackButton,
flags -> (flags & FLAG_IME_VISIBLE) != 0,
ROTATION_DRAWABLE_PERCENT, 1f, 0f));
@@ -791,13 +797,6 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
if (isInSetup) {
handleSetupUi();
// Hide back button in SUW if keyboard is showing (IME draws its own back).
if (mIsImeRenderingNavButtons) {
mPropertyHolders.add(new StatePropertyHolder(
mBackButtonAlpha.get(ALPHA_INDEX_SUW),
flags -> (flags & FLAG_IME_VISIBLE) == 0));
}
} else if (isInKidsMode) {
int iconSize = res.getDimensionPixelSize(
R.dimen.taskbar_icon_size_kids);