Move navigation bar logic to its own class
Start hacking away at PhoneStatusBar by trying to pull out
as much NavigationBar logic as possible.
Test: runtest systemui
Change-Id: I23b904428be31b91f0747fd60c9f6e0dd323eb44
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java
index 1d4d2d1..0f9f056 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.phone;
import android.animation.ValueAnimator;
+import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
@@ -28,6 +29,7 @@
public class LightBarTransitionsController {
public static final long DEFAULT_TINT_ANIMATION_DURATION = 120;
+ private static final String EXTRA_DARK_INTENSITY = "dark_intensity";
private final Handler mHandler;
private final DarkIntensityApplier mApplier;
@@ -40,6 +42,7 @@
private float mPendingDarkIntensity;
private ValueAnimator mTintAnimator;
private float mDarkIntensity;
+ private float mNextDarkIntensity;
private final Runnable mTransitionDeferringDoneRunnable = new Runnable() {
@Override
@@ -53,6 +56,16 @@
mHandler = new Handler();
}
+ public void saveState(Bundle outState) {
+ float intensity = mTintAnimator != null && mTintAnimator.isRunning()
+ ? mNextDarkIntensity : mDarkIntensity;
+ outState.putFloat(EXTRA_DARK_INTENSITY, intensity);
+ }
+
+ public void restoreState(Bundle savedInstanceState) {
+ setIconTintInternal(savedInstanceState.getFloat(EXTRA_DARK_INTENSITY, 0));
+ }
+
public void appTransitionPending() {
mTransitionPending = true;
}
@@ -119,6 +132,7 @@
if (mDarkIntensity == targetDarkIntensity) {
return;
}
+ mNextDarkIntensity = targetDarkIntensity;
mTintAnimator = ValueAnimator.ofFloat(mDarkIntensity, targetDarkIntensity);
mTintAnimator.addUpdateListener(
animation -> setIconTintInternal((Float) animation.getAnimatedValue()));