Loading packages/SystemUI/src/com/android/systemui/doze/DozeReceiver.java +0 −5 Original line number Diff line number Diff line Loading @@ -21,11 +21,6 @@ package com.android.systemui.doze; */ public interface DozeReceiver { /** * If device enters or leaves doze mode */ void setDozing(boolean dozing); /** * Invoked every time a minute is elapsed in doze mode */ Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateController.java +106 −3 Original line number Diff line number Diff line Loading @@ -18,11 +18,17 @@ package com.android.systemui.statusbar; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.IntDef; import android.util.ArraySet; import android.util.Log; import android.util.FloatProperty; import android.view.animation.Interpolator; import com.android.internal.annotations.GuardedBy; import com.android.systemui.Interpolators; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import com.android.systemui.statusbar.phone.StatusBar; import java.lang.annotation.Retention; import java.util.ArrayList; import java.util.Comparator; Loading @@ -38,14 +44,51 @@ public class StatusBarStateController { private static final Comparator <RankedListener> mComparator = (o1, o2) -> Integer.compare(o1.rank, o2.rank); private static final FloatProperty<StatusBarStateController> SET_DARK_AMOUNT_PROPERTY = new FloatProperty<StatusBarStateController>("mDozeAmount") { @Override public void setValue(StatusBarStateController object, float value) { object.setDozeAmountInternal(value); } @Override public Float get(StatusBarStateController object) { return object.mDozeAmount; } }; private final ArrayList<RankedListener> mListeners = new ArrayList<>(); private boolean mIsDozing; private int mState; private int mLastState; private boolean mLeaveOpenOnKeyguardHide; private boolean mKeyguardRequested; /** * If the device is currently dozing or not. */ private boolean mIsDozing; /** * Current {@link #mDozeAmount} animator. */ private ValueAnimator mDarkAnimator; /** * Current doze amount in this frame. */ private float mDozeAmount; /** * Where the animator will stop. */ private float mDozeAmountTarget; /** * The type of interpolator that should be used to the doze animation. */ private Interpolator mDozeInterpolator = Interpolators.FAST_OUT_SLOW_IN; // TODO: b/115739177 (remove this explicit ordering if we can) @Retention(SOURCE) @IntDef({RANK_STATUS_BAR, RANK_STATUS_BAR_WINDOW_CONTROLLER, RANK_STACK_SCROLLER, RANK_SHELF}) Loading Loading @@ -94,6 +137,14 @@ public class StatusBarStateController { return mIsDozing; } public float getDozeAmount() { return mDozeAmount; } public float getInterpolatedDozeAmount() { return mDozeInterpolator.getInterpolation(mDozeAmount); } /** * Update the dozing state from {@link StatusBar}'s perspective * @param isDozing well, are we dozing? Loading @@ -116,6 +167,51 @@ public class StatusBarStateController { return true; } /** * Changes the current doze amount. * * @param dozeAmount New doze/dark amount. * @param animated If change should be animated or not. This will cancel current animations. */ public void setDozeAmount(float dozeAmount, boolean animated) { if (mDarkAnimator != null && mDarkAnimator.isRunning()) { if (animated && mDozeAmountTarget == dozeAmount) { return; } else { mDarkAnimator.cancel(); } } mDozeAmountTarget = dozeAmount; if (animated) { startDozeAnimation(); } else { setDozeAmountInternal(dozeAmount); } } private void startDozeAnimation() { if (mDozeAmount == 0f || mDozeAmount == 1f) { mDozeInterpolator = mIsDozing ? Interpolators.FAST_OUT_SLOW_IN : Interpolators.TOUCH_RESPONSE_REVERSE; } mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, mDozeAmountTarget); mDarkAnimator.setInterpolator(Interpolators.LINEAR); mDarkAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); mDarkAnimator.start(); } private void setDozeAmountInternal(float dozeAmount) { mDozeAmount = dozeAmount; float interpolatedAmount = mDozeInterpolator.getInterpolation(dozeAmount); synchronized (mListeners) { for (RankedListener rl : new ArrayList<>(mListeners)) { rl.listener.onDozeAmountChanged(mDozeAmount, interpolatedAmount); } } } public boolean goingToFullShade() { return mState == StatusBarState.SHADE && mLeaveOpenOnKeyguardHide; } Loading Loading @@ -230,5 +326,12 @@ public class StatusBarStateController { * @param isDozing {@code true} if dozing according to {@link StatusBar} */ public default void onDozingChanged(boolean isDozing) {} /** * Callback to be notified when the doze amount changes. Useful for animations. * @param linear A number from 0 to 1, where 1 means that the device is dozing. * @param eased Same as {@code linear} but transformed by an interpolator. */ default void onDozeAmountChanged(float linear, float eased) {} } } packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java +3 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.widget.ImageView; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import java.util.function.Consumer; Loading Loading @@ -63,13 +63,14 @@ public class NotificationDozeHelper { } } // TODO: this should be using StatusBarStateController#getDozeAmount public void startIntensityAnimation(ValueAnimator.AnimatorUpdateListener updateListener, boolean dark, long delay, Animator.AnimatorListener listener) { float startIntensity = dark ? 0f : 1f; float endIntensity = dark ? 1f : 0f; ValueAnimator animator = ValueAnimator.ofFloat(startIntensity, endIntensity); animator.addUpdateListener(updateListener); animator.setDuration(NotificationPanelView.DOZE_ANIMATION_DURATION); animator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); animator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN); animator.setStartDelay(delay); if (listener != null) { Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +0 −10 Original line number Diff line number Diff line Loading @@ -4398,16 +4398,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd } } @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER) public long getDarkAnimationDuration(boolean dark) { long duration = StackStateAnimator.ANIMATION_DURATION_WAKEUP; // Longer animation when sleeping with more than 1 notification if (dark && getNotGoneChildCount() > 2) { duration *= 1.2f; } return duration; } @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER) private int findDarkAnimationOriginIndex(@Nullable PointF screenLocation) { if (screenLocation == null || screenLocation.y < mTopPadding) { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +15 −61 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.app.ActivityManager; import android.app.Fragment; Loading @@ -41,7 +40,6 @@ import android.graphics.Rect; import android.os.PowerManager; import android.os.SystemProperties; import android.util.AttributeSet; import android.util.FloatProperty; import android.util.Log; import android.util.MathUtils; import android.view.LayoutInflater; Loading @@ -51,7 +49,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; import android.view.accessibility.AccessibilityManager; import android.view.animation.Interpolator; import android.widget.FrameLayout; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -104,7 +101,7 @@ public class NotificationPanelView extends PanelView implements View.OnClickListener, NotificationStackScrollLayout.OnOverscrollTopChangedListener, KeyguardAffordanceHelper.Callback, NotificationStackScrollLayout.OnEmptySpaceClickListener, OnHeadsUpChangedListener, QS.HeightListener, ZenModeController.Callback, ConfigurationController.ConfigurationListener { ConfigurationController.ConfigurationListener, StateListener { private static final boolean DEBUG = false; Loading Loading @@ -139,25 +136,9 @@ public class NotificationPanelView extends PanelView implements private static final Rect mDummyDirtyRect = new Rect(0, 0, 1, 1); public static final long DOZE_ANIMATION_DURATION = 700; private static final AnimationProperties CLOCK_ANIMATION_PROPERTIES = new AnimationProperties() .setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); private static final FloatProperty<NotificationPanelView> SET_DARK_AMOUNT_PROPERTY = new FloatProperty<NotificationPanelView>("mInterpolatedDarkAmount") { @Override public void setValue(NotificationPanelView object, float value) { object.setDarkAmount(value, object.mDarkInterpolator.getInterpolation(value)); } @Override public Float get(NotificationPanelView object) { return object.mLinearDarkAmount; } }; private Interpolator mDarkInterpolator; private final PowerManager mPowerManager; private final AccessibilityManager mAccessibilityManager; Loading Loading @@ -295,11 +276,9 @@ public class NotificationPanelView extends PanelView implements */ private boolean mSemiAwake; private float mDarkAmountTarget; private boolean mPulsing; private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger(); private boolean mNoVisibleNotifications = true; private ValueAnimator mDarkAnimator; private boolean mUserSetupComplete; private int mQsNotificationTopPadding; private float mExpandOffset; Loading Loading @@ -339,7 +318,6 @@ public class NotificationPanelView extends PanelView implements private final NotificationEntryManager mEntryManager = Dependency.get(NotificationEntryManager.class); private final StateListener mListener = this::setBarState; private final CommandQueue mCommandQueue; private final NotificationLockscreenUserManager mLockscreenUserManager = Dependency.get(NotificationLockscreenUserManager.class); Loading Loading @@ -388,7 +366,7 @@ public class NotificationPanelView extends PanelView implements protected void onAttachedToWindow() { super.onAttachedToWindow(); FragmentHostManager.get(this).addTagListener(QS.TAG, mFragmentListener); Dependency.get(StatusBarStateController.class).addListener(mListener); Dependency.get(StatusBarStateController.class).addListener(this); Dependency.get(ZenModeController.class).addCallback(this); Dependency.get(ConfigurationController.class).addCallback(this); } Loading @@ -397,7 +375,7 @@ public class NotificationPanelView extends PanelView implements protected void onDetachedFromWindow() { super.onDetachedFromWindow(); FragmentHostManager.get(this).removeTagListener(QS.TAG, mFragmentListener); Dependency.get(StatusBarStateController.class).removeListener(mListener); Dependency.get(StatusBarStateController.class).removeListener(this); Dependency.get(ZenModeController.class).removeCallback(this); Dependency.get(ConfigurationController.class).removeCallback(this); } Loading Loading @@ -475,7 +453,8 @@ public class NotificationPanelView extends PanelView implements mKeyguardBottomArea.initFrom(oldBottomArea); addView(mKeyguardBottomArea, index); initBottomArea(); setDarkAmount(mLinearDarkAmount, mInterpolatedDarkAmount); onDozeAmountChanged(mStatusBarStateController.getDozeAmount(), mStatusBarStateController.getInterpolatedDozeAmount()); if (mKeyguardStatusBar != null) { mKeyguardStatusBar.onThemeChanged(); Loading Loading @@ -1221,7 +1200,8 @@ public class NotificationPanelView extends PanelView implements } } private void setBarState(int statusBarState) { @Override public void onStateChanged(int statusBarState) { boolean goingToFullShade = mStatusBarStateController.goingToFullShade(); boolean keyguardFadingAway = mKeyguardMonitor.isKeyguardFadingAway(); int oldState = mBarState; Loading Loading @@ -2806,24 +2786,10 @@ public class NotificationPanelView extends PanelView implements updateDozingVisibilities(animate); } final float darkAmount = dozing ? 1 : 0; if (mDarkAnimator != null && mDarkAnimator.isRunning()) { if (animate && mDarkAmountTarget == darkAmount) { return; } else { mDarkAnimator.cancel(); } if (mSemiAwake) { setDarkAmount(0, 0); } } mDarkAmountTarget = darkAmount; if (!mSemiAwake) { final float darkAmount = dozing && !mSemiAwake ? 1 : 0; mStatusBarStateController.setDozeAmount(darkAmount, animate); if (animate) { startDarkAnimation(); } else { setDarkAmount(darkAmount, darkAmount); } mNotificationStackScroller.notifyDarkAnimationStart(mDozing); } } Loading @@ -2831,21 +2797,8 @@ public class NotificationPanelView extends PanelView implements return mSemiAwake; } private void startDarkAnimation() { if (mInterpolatedDarkAmount == 0f || mInterpolatedDarkAmount == 1f) { mDarkInterpolator = mDozing ? Interpolators.FAST_OUT_SLOW_IN : Interpolators.TOUCH_RESPONSE_REVERSE; } mNotificationStackScroller.notifyDarkAnimationStart(mDozing); mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, mDozing ? 1 : 0); mDarkAnimator.setInterpolator(Interpolators.LINEAR); mDarkAnimator.setDuration( mNotificationStackScroller.getDarkAnimationDuration(mDozing)); mDarkAnimator.start(); } private void setDarkAmount(float linearAmount, float amount) { @Override public void onDozeAmountChanged(float linearAmount, float amount) { mInterpolatedDarkAmount = amount; mLinearDarkAmount = linearAmount; mKeyguardStatusBar.setDarkAmount(mInterpolatedDarkAmount); Loading Loading @@ -3047,7 +3000,8 @@ public class NotificationPanelView extends PanelView implements mSemiAwake = false; mNotificationStackScroller.setDark(false /* dark */, true /* animate */, null /* touchLocation */); startDarkAnimation(); mStatusBarStateController.setDozeAmount(0f, true /* animated */); mNotificationStackScroller.notifyDarkAnimationStart(mDozing); mStatusBar.updateScrimController(); return WAKE_UP_TO_SHADE; Loading Loading
packages/SystemUI/src/com/android/systemui/doze/DozeReceiver.java +0 −5 Original line number Diff line number Diff line Loading @@ -21,11 +21,6 @@ package com.android.systemui.doze; */ public interface DozeReceiver { /** * If device enters or leaves doze mode */ void setDozing(boolean dozing); /** * Invoked every time a minute is elapsed in doze mode */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateController.java +106 −3 Original line number Diff line number Diff line Loading @@ -18,11 +18,17 @@ package com.android.systemui.statusbar; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.IntDef; import android.util.ArraySet; import android.util.Log; import android.util.FloatProperty; import android.view.animation.Interpolator; import com.android.internal.annotations.GuardedBy; import com.android.systemui.Interpolators; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import com.android.systemui.statusbar.phone.StatusBar; import java.lang.annotation.Retention; import java.util.ArrayList; import java.util.Comparator; Loading @@ -38,14 +44,51 @@ public class StatusBarStateController { private static final Comparator <RankedListener> mComparator = (o1, o2) -> Integer.compare(o1.rank, o2.rank); private static final FloatProperty<StatusBarStateController> SET_DARK_AMOUNT_PROPERTY = new FloatProperty<StatusBarStateController>("mDozeAmount") { @Override public void setValue(StatusBarStateController object, float value) { object.setDozeAmountInternal(value); } @Override public Float get(StatusBarStateController object) { return object.mDozeAmount; } }; private final ArrayList<RankedListener> mListeners = new ArrayList<>(); private boolean mIsDozing; private int mState; private int mLastState; private boolean mLeaveOpenOnKeyguardHide; private boolean mKeyguardRequested; /** * If the device is currently dozing or not. */ private boolean mIsDozing; /** * Current {@link #mDozeAmount} animator. */ private ValueAnimator mDarkAnimator; /** * Current doze amount in this frame. */ private float mDozeAmount; /** * Where the animator will stop. */ private float mDozeAmountTarget; /** * The type of interpolator that should be used to the doze animation. */ private Interpolator mDozeInterpolator = Interpolators.FAST_OUT_SLOW_IN; // TODO: b/115739177 (remove this explicit ordering if we can) @Retention(SOURCE) @IntDef({RANK_STATUS_BAR, RANK_STATUS_BAR_WINDOW_CONTROLLER, RANK_STACK_SCROLLER, RANK_SHELF}) Loading Loading @@ -94,6 +137,14 @@ public class StatusBarStateController { return mIsDozing; } public float getDozeAmount() { return mDozeAmount; } public float getInterpolatedDozeAmount() { return mDozeInterpolator.getInterpolation(mDozeAmount); } /** * Update the dozing state from {@link StatusBar}'s perspective * @param isDozing well, are we dozing? Loading @@ -116,6 +167,51 @@ public class StatusBarStateController { return true; } /** * Changes the current doze amount. * * @param dozeAmount New doze/dark amount. * @param animated If change should be animated or not. This will cancel current animations. */ public void setDozeAmount(float dozeAmount, boolean animated) { if (mDarkAnimator != null && mDarkAnimator.isRunning()) { if (animated && mDozeAmountTarget == dozeAmount) { return; } else { mDarkAnimator.cancel(); } } mDozeAmountTarget = dozeAmount; if (animated) { startDozeAnimation(); } else { setDozeAmountInternal(dozeAmount); } } private void startDozeAnimation() { if (mDozeAmount == 0f || mDozeAmount == 1f) { mDozeInterpolator = mIsDozing ? Interpolators.FAST_OUT_SLOW_IN : Interpolators.TOUCH_RESPONSE_REVERSE; } mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, mDozeAmountTarget); mDarkAnimator.setInterpolator(Interpolators.LINEAR); mDarkAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); mDarkAnimator.start(); } private void setDozeAmountInternal(float dozeAmount) { mDozeAmount = dozeAmount; float interpolatedAmount = mDozeInterpolator.getInterpolation(dozeAmount); synchronized (mListeners) { for (RankedListener rl : new ArrayList<>(mListeners)) { rl.listener.onDozeAmountChanged(mDozeAmount, interpolatedAmount); } } } public boolean goingToFullShade() { return mState == StatusBarState.SHADE && mLeaveOpenOnKeyguardHide; } Loading Loading @@ -230,5 +326,12 @@ public class StatusBarStateController { * @param isDozing {@code true} if dozing according to {@link StatusBar} */ public default void onDozingChanged(boolean isDozing) {} /** * Callback to be notified when the doze amount changes. Useful for animations. * @param linear A number from 0 to 1, where 1 means that the device is dozing. * @param eased Same as {@code linear} but transformed by an interpolator. */ default void onDozeAmountChanged(float linear, float eased) {} } }
packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java +3 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.widget.ImageView; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import java.util.function.Consumer; Loading Loading @@ -63,13 +63,14 @@ public class NotificationDozeHelper { } } // TODO: this should be using StatusBarStateController#getDozeAmount public void startIntensityAnimation(ValueAnimator.AnimatorUpdateListener updateListener, boolean dark, long delay, Animator.AnimatorListener listener) { float startIntensity = dark ? 0f : 1f; float endIntensity = dark ? 1f : 0f; ValueAnimator animator = ValueAnimator.ofFloat(startIntensity, endIntensity); animator.addUpdateListener(updateListener); animator.setDuration(NotificationPanelView.DOZE_ANIMATION_DURATION); animator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); animator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN); animator.setStartDelay(delay); if (listener != null) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +0 −10 Original line number Diff line number Diff line Loading @@ -4398,16 +4398,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd } } @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER) public long getDarkAnimationDuration(boolean dark) { long duration = StackStateAnimator.ANIMATION_DURATION_WAKEUP; // Longer animation when sleeping with more than 1 notification if (dark && getNotGoneChildCount() > 2) { duration *= 1.2f; } return duration; } @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER) private int findDarkAnimationOriginIndex(@Nullable PointF screenLocation) { if (screenLocation == null || screenLocation.y < mTopPadding) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +15 −61 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.app.ActivityManager; import android.app.Fragment; Loading @@ -41,7 +40,6 @@ import android.graphics.Rect; import android.os.PowerManager; import android.os.SystemProperties; import android.util.AttributeSet; import android.util.FloatProperty; import android.util.Log; import android.util.MathUtils; import android.view.LayoutInflater; Loading @@ -51,7 +49,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; import android.view.accessibility.AccessibilityManager; import android.view.animation.Interpolator; import android.widget.FrameLayout; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -104,7 +101,7 @@ public class NotificationPanelView extends PanelView implements View.OnClickListener, NotificationStackScrollLayout.OnOverscrollTopChangedListener, KeyguardAffordanceHelper.Callback, NotificationStackScrollLayout.OnEmptySpaceClickListener, OnHeadsUpChangedListener, QS.HeightListener, ZenModeController.Callback, ConfigurationController.ConfigurationListener { ConfigurationController.ConfigurationListener, StateListener { private static final boolean DEBUG = false; Loading Loading @@ -139,25 +136,9 @@ public class NotificationPanelView extends PanelView implements private static final Rect mDummyDirtyRect = new Rect(0, 0, 1, 1); public static final long DOZE_ANIMATION_DURATION = 700; private static final AnimationProperties CLOCK_ANIMATION_PROPERTIES = new AnimationProperties() .setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); private static final FloatProperty<NotificationPanelView> SET_DARK_AMOUNT_PROPERTY = new FloatProperty<NotificationPanelView>("mInterpolatedDarkAmount") { @Override public void setValue(NotificationPanelView object, float value) { object.setDarkAmount(value, object.mDarkInterpolator.getInterpolation(value)); } @Override public Float get(NotificationPanelView object) { return object.mLinearDarkAmount; } }; private Interpolator mDarkInterpolator; private final PowerManager mPowerManager; private final AccessibilityManager mAccessibilityManager; Loading Loading @@ -295,11 +276,9 @@ public class NotificationPanelView extends PanelView implements */ private boolean mSemiAwake; private float mDarkAmountTarget; private boolean mPulsing; private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger(); private boolean mNoVisibleNotifications = true; private ValueAnimator mDarkAnimator; private boolean mUserSetupComplete; private int mQsNotificationTopPadding; private float mExpandOffset; Loading Loading @@ -339,7 +318,6 @@ public class NotificationPanelView extends PanelView implements private final NotificationEntryManager mEntryManager = Dependency.get(NotificationEntryManager.class); private final StateListener mListener = this::setBarState; private final CommandQueue mCommandQueue; private final NotificationLockscreenUserManager mLockscreenUserManager = Dependency.get(NotificationLockscreenUserManager.class); Loading Loading @@ -388,7 +366,7 @@ public class NotificationPanelView extends PanelView implements protected void onAttachedToWindow() { super.onAttachedToWindow(); FragmentHostManager.get(this).addTagListener(QS.TAG, mFragmentListener); Dependency.get(StatusBarStateController.class).addListener(mListener); Dependency.get(StatusBarStateController.class).addListener(this); Dependency.get(ZenModeController.class).addCallback(this); Dependency.get(ConfigurationController.class).addCallback(this); } Loading @@ -397,7 +375,7 @@ public class NotificationPanelView extends PanelView implements protected void onDetachedFromWindow() { super.onDetachedFromWindow(); FragmentHostManager.get(this).removeTagListener(QS.TAG, mFragmentListener); Dependency.get(StatusBarStateController.class).removeListener(mListener); Dependency.get(StatusBarStateController.class).removeListener(this); Dependency.get(ZenModeController.class).removeCallback(this); Dependency.get(ConfigurationController.class).removeCallback(this); } Loading Loading @@ -475,7 +453,8 @@ public class NotificationPanelView extends PanelView implements mKeyguardBottomArea.initFrom(oldBottomArea); addView(mKeyguardBottomArea, index); initBottomArea(); setDarkAmount(mLinearDarkAmount, mInterpolatedDarkAmount); onDozeAmountChanged(mStatusBarStateController.getDozeAmount(), mStatusBarStateController.getInterpolatedDozeAmount()); if (mKeyguardStatusBar != null) { mKeyguardStatusBar.onThemeChanged(); Loading Loading @@ -1221,7 +1200,8 @@ public class NotificationPanelView extends PanelView implements } } private void setBarState(int statusBarState) { @Override public void onStateChanged(int statusBarState) { boolean goingToFullShade = mStatusBarStateController.goingToFullShade(); boolean keyguardFadingAway = mKeyguardMonitor.isKeyguardFadingAway(); int oldState = mBarState; Loading Loading @@ -2806,24 +2786,10 @@ public class NotificationPanelView extends PanelView implements updateDozingVisibilities(animate); } final float darkAmount = dozing ? 1 : 0; if (mDarkAnimator != null && mDarkAnimator.isRunning()) { if (animate && mDarkAmountTarget == darkAmount) { return; } else { mDarkAnimator.cancel(); } if (mSemiAwake) { setDarkAmount(0, 0); } } mDarkAmountTarget = darkAmount; if (!mSemiAwake) { final float darkAmount = dozing && !mSemiAwake ? 1 : 0; mStatusBarStateController.setDozeAmount(darkAmount, animate); if (animate) { startDarkAnimation(); } else { setDarkAmount(darkAmount, darkAmount); } mNotificationStackScroller.notifyDarkAnimationStart(mDozing); } } Loading @@ -2831,21 +2797,8 @@ public class NotificationPanelView extends PanelView implements return mSemiAwake; } private void startDarkAnimation() { if (mInterpolatedDarkAmount == 0f || mInterpolatedDarkAmount == 1f) { mDarkInterpolator = mDozing ? Interpolators.FAST_OUT_SLOW_IN : Interpolators.TOUCH_RESPONSE_REVERSE; } mNotificationStackScroller.notifyDarkAnimationStart(mDozing); mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, mDozing ? 1 : 0); mDarkAnimator.setInterpolator(Interpolators.LINEAR); mDarkAnimator.setDuration( mNotificationStackScroller.getDarkAnimationDuration(mDozing)); mDarkAnimator.start(); } private void setDarkAmount(float linearAmount, float amount) { @Override public void onDozeAmountChanged(float linearAmount, float amount) { mInterpolatedDarkAmount = amount; mLinearDarkAmount = linearAmount; mKeyguardStatusBar.setDarkAmount(mInterpolatedDarkAmount); Loading Loading @@ -3047,7 +3000,8 @@ public class NotificationPanelView extends PanelView implements mSemiAwake = false; mNotificationStackScroller.setDark(false /* dark */, true /* animate */, null /* touchLocation */); startDarkAnimation(); mStatusBarStateController.setDozeAmount(0f, true /* animated */); mNotificationStackScroller.notifyDarkAnimationStart(mDozing); mStatusBar.updateScrimController(); return WAKE_UP_TO_SHADE; Loading