Fix 3 button mode issues in AllSetActivity
- Set system bars appearance to light/dark depending on device
theme to ensure visibility
- Also fix issue where taskbar icons would appear partially
offscreen and prevent pressing nav buttons if you rotated
Fixes: 293438087
Test: adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.SetupWizardTestActivity
- Skip to the end (AllSetActivity), and ensure 3 buttons are visible
- Rotate device and ensure 3 buttons are still visible and functional
- Will also flash / wipe to the build once it's created
Flag: None
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:286fc215e632280fe0b401bfd713621104861288)
Merged-In: Ie2d9bf1e1d95a6ccbd1f9c592adb51390b21ad85
Change-Id: Ie2d9bf1e1d95a6ccbd1f9c592adb51390b21ad85
diff --git a/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java b/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java
index 6619dd8..521ade0 100644
--- a/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java
+++ b/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java
@@ -15,6 +15,9 @@
*/
package com.android.quickstep.interaction;
+import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS;
+import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS;
+
import static com.android.launcher3.Utilities.mapBoundToRange;
import static com.android.launcher3.Utilities.mapRange;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
@@ -47,6 +50,8 @@
import android.util.Log;
import android.view.View;
import android.view.View.AccessibilityDelegate;
+import android.view.Window;
+import android.view.WindowInsetsController;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.widget.ImageView;
@@ -122,6 +127,17 @@
Resources resources = getResources();
int mode = resources.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
boolean isDarkTheme = mode == Configuration.UI_MODE_NIGHT_YES;
+
+ int systemBarsMask = APPEARANCE_LIGHT_STATUS_BARS | APPEARANCE_LIGHT_NAVIGATION_BARS;
+ int systemBarsAppearance = isDarkTheme ? 0 : systemBarsMask;
+ Window window = getWindow();
+ WindowInsetsController insetsController = window == null
+ ? null
+ : window.getInsetsController();
+ if (insetsController != null) {
+ insetsController.setSystemBarsAppearance(systemBarsAppearance, systemBarsMask);
+ }
+
Intent intent = getIntent();
int accentColor = intent.getIntExtra(
isDarkTheme ? EXTRA_ACCENT_COLOR_DARK_MODE : EXTRA_ACCENT_COLOR_LIGHT_MODE,
@@ -298,7 +314,9 @@
if (mBackgroundAnimatorListener != null) {
mAnimatedBackground.removeAnimatorListener(mBackgroundAnimatorListener);
}
- dispatchLauncherAnimStartEnd();
+ if (!isChangingConfigurations()) {
+ dispatchLauncherAnimStartEnd();
+ }
}
private AnimatedFloat createSwipeUpProxy(GestureState state) {