Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +1 −1 Original line number Diff line number Diff line Loading @@ -3338,9 +3338,9 @@ public class NotificationPanelViewController extends PanelViewController { * cases, such as if there's a heads-up notification. */ public void setPanelScrimMinFraction(float minFraction) { mBar.onPanelMinFractionChanged(minFraction); mMinFraction = minFraction; mDepthController.setPanelPullDownMinFraction(mMinFraction); mScrimController.setPanelScrimMinFraction(mMinFraction); } public void clearNotificationEffects() { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +0 −5 Original line number Diff line number Diff line Loading @@ -145,11 +145,6 @@ public abstract class PanelBar extends FrameLayout { return mPanel == null || mPanel.getView().dispatchTouchEvent(event); } /** * Percentage of panel expansion offset, caused by pulling down on a heads-up. */ abstract void onPanelMinFractionChanged(float minFraction); /** * @param frac the fraction from the expansion in [0, 1] * @param expanded whether the panel is currently expanded; this is independent from the Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +0 −24 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package com.android.systemui.statusbar.phone; import static com.android.systemui.ScreenDecorations.DisplayCutoutView.boundsFromDirection; import static java.lang.Float.isNaN; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; Loading Loading @@ -57,7 +55,6 @@ public class PhoneStatusBarView extends PanelBar { StatusBar mBar; private ScrimController mScrimController; private float mMinFraction; private Runnable mHideExpandedRunnable = new Runnable() { @Override public void run() { Loading Loading @@ -267,21 +264,9 @@ public class PhoneStatusBarView extends PanelBar { return mBar.interceptTouchEvent(event) || super.onInterceptTouchEvent(event); } @Override public void onPanelMinFractionChanged(float minFraction) { if (isNaN(minFraction)) { throw new IllegalArgumentException("minFraction cannot be NaN"); } if (mMinFraction != minFraction) { mMinFraction = minFraction; updateScrimFraction(); } } @Override public void panelExpansionChanged(float frac, boolean expanded) { super.panelExpansionChanged(frac, expanded); updateScrimFraction(); if ((frac == 0 || frac == 1)) { if (mPanelExpansionStateChangedListener != null) { mPanelExpansionStateChangedListener.onPanelExpansionStateChanged(); Loading @@ -302,15 +287,6 @@ public class PhoneStatusBarView extends PanelBar { mPanelEnabledProvider = panelEnabledProvider; } private void updateScrimFraction() { float scrimFraction = mPanelFraction; if (mMinFraction < 1.0f) { scrimFraction = Math.max((mPanelFraction - mMinFraction) / (1.0f - mMinFraction), 0); } mScrimController.setPanelExpansion(scrimFraction); } public void updateResources() { mCutoutSideNudge = getResources().getDimensionPixelSize( R.dimen.display_cutout_margin_consumption); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +40 −11 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.ViewTreeObserver; import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import androidx.annotation.FloatRange; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -183,8 +184,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA; private final float mDefaultScrimAlpha; // Assuming the shade is expanded during initialization private float mPanelExpansion = 1f; private float mRawPanelExpansionFraction; private float mPanelScrimMinFraction; // Calculated based on mRawPanelExpansionFraction and mPanelScrimMinFraction private float mPanelExpansionFraction = 1f; // Assume shade is expanded during initialization private float mQsExpansion; private boolean mQsBottomVisible; Loading Loading @@ -483,14 +486,39 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump * * The expansion fraction is tied to the scrim opacity. * * @param fraction From 0 to 1 where 0 means collapsed and 1 expanded. * See {@link PanelBar#panelExpansionChanged}. * * @param rawPanelExpansionFraction From 0 to 1 where 0 means collapsed and 1 expanded. */ public void setPanelExpansion(float fraction) { if (isNaN(fraction)) { throw new IllegalArgumentException("Fraction should not be NaN"); public void setRawPanelExpansionFraction( @FloatRange(from = 0.0, to = 1.0) float rawPanelExpansionFraction) { if (isNaN(rawPanelExpansionFraction)) { throw new IllegalArgumentException("rawPanelExpansionFraction should not be NaN"); } mRawPanelExpansionFraction = rawPanelExpansionFraction; calculateAndUpdatePanelExpansion(); } /** See {@link NotificationPanelViewController#setPanelScrimMinFraction(float)}. */ public void setPanelScrimMinFraction(float minFraction) { if (isNaN(minFraction)) { throw new IllegalArgumentException("minFraction should not be NaN"); } if (mPanelExpansion != fraction) { mPanelExpansion = fraction; mPanelScrimMinFraction = minFraction; calculateAndUpdatePanelExpansion(); } private void calculateAndUpdatePanelExpansion() { float panelExpansionFraction = mRawPanelExpansionFraction; if (mPanelScrimMinFraction < 1.0f) { panelExpansionFraction = Math.max( (mRawPanelExpansionFraction - mPanelScrimMinFraction) / (1.0f - mPanelScrimMinFraction), 0); } if (mPanelExpansionFraction != panelExpansionFraction) { mPanelExpansionFraction = panelExpansionFraction; boolean relevantState = (mState == ScrimState.UNLOCKED || mState == ScrimState.KEYGUARD Loading Loading @@ -892,7 +920,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } private float getInterpolatedFraction() { return Interpolators.getNotificationScrimAlpha(mPanelExpansion, false /* notification */); return Interpolators.getNotificationScrimAlpha( mPanelExpansionFraction, false /* notification */); } private void setScrimAlpha(ScrimView scrim, float alpha) { Loading Loading @@ -1228,8 +1257,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump pw.println(mTracking); pw.print(" mDefaultScrimAlpha="); pw.println(mDefaultScrimAlpha); pw.print(" mExpansionFraction="); pw.println(mPanelExpansion); pw.print(" mPanelExpansionFraction="); pw.println(mPanelExpansionFraction); pw.print(" mExpansionAffectsAlpha="); pw.println(mExpansionAffectsAlpha); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +13 −3 Original line number Diff line number Diff line Loading @@ -900,6 +900,8 @@ public class StatusBar extends SystemUI implements lockscreenShadeTransitionController.setStatusbar(this); mExpansionChangedListeners = new ArrayList<>(); addExpansionChangedListener( (expansion, expanded) -> mScrimController.setRawPanelExpansionFraction(expansion)); mBubbleExpandListener = (isExpanding, key) -> mContext.getMainExecutor().execute(() -> { Loading Loading @@ -1405,6 +1407,12 @@ public class StatusBar extends SystemUI implements mDeviceProvisionedController.addCallback(mUserSetupObserver); mUserSetupObserver.onUserSetupChanged(); for (ExpansionChangedListener listener : mExpansionChangedListeners) { // The initial expansion amount comes from mNotificationPanelViewController, so we // should send the amount once we've fully set up that controller. sendInitialExpansionAmount(listener); } // disable profiling bars, since they overlap and clutter the output on app windows ThreadedRenderer.overrideProperty("disableProfileBars", "true"); Loading Loading @@ -4246,10 +4254,12 @@ public class StatusBar extends SystemUI implements } private void sendInitialExpansionAmount(ExpansionChangedListener expansionChangedListener) { if (mNotificationPanelViewController != null) { expansionChangedListener.onExpansionChanged( mNotificationPanelViewController.getExpandedFraction(), mNotificationPanelViewController.isExpanded()); } } public void removeExpansionChangedListener(@NonNull ExpansionChangedListener listener) { mExpansionChangedListeners.remove(listener); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +1 −1 Original line number Diff line number Diff line Loading @@ -3338,9 +3338,9 @@ public class NotificationPanelViewController extends PanelViewController { * cases, such as if there's a heads-up notification. */ public void setPanelScrimMinFraction(float minFraction) { mBar.onPanelMinFractionChanged(minFraction); mMinFraction = minFraction; mDepthController.setPanelPullDownMinFraction(mMinFraction); mScrimController.setPanelScrimMinFraction(mMinFraction); } public void clearNotificationEffects() { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +0 −5 Original line number Diff line number Diff line Loading @@ -145,11 +145,6 @@ public abstract class PanelBar extends FrameLayout { return mPanel == null || mPanel.getView().dispatchTouchEvent(event); } /** * Percentage of panel expansion offset, caused by pulling down on a heads-up. */ abstract void onPanelMinFractionChanged(float minFraction); /** * @param frac the fraction from the expansion in [0, 1] * @param expanded whether the panel is currently expanded; this is independent from the Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +0 −24 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package com.android.systemui.statusbar.phone; import static com.android.systemui.ScreenDecorations.DisplayCutoutView.boundsFromDirection; import static java.lang.Float.isNaN; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; Loading Loading @@ -57,7 +55,6 @@ public class PhoneStatusBarView extends PanelBar { StatusBar mBar; private ScrimController mScrimController; private float mMinFraction; private Runnable mHideExpandedRunnable = new Runnable() { @Override public void run() { Loading Loading @@ -267,21 +264,9 @@ public class PhoneStatusBarView extends PanelBar { return mBar.interceptTouchEvent(event) || super.onInterceptTouchEvent(event); } @Override public void onPanelMinFractionChanged(float minFraction) { if (isNaN(minFraction)) { throw new IllegalArgumentException("minFraction cannot be NaN"); } if (mMinFraction != minFraction) { mMinFraction = minFraction; updateScrimFraction(); } } @Override public void panelExpansionChanged(float frac, boolean expanded) { super.panelExpansionChanged(frac, expanded); updateScrimFraction(); if ((frac == 0 || frac == 1)) { if (mPanelExpansionStateChangedListener != null) { mPanelExpansionStateChangedListener.onPanelExpansionStateChanged(); Loading @@ -302,15 +287,6 @@ public class PhoneStatusBarView extends PanelBar { mPanelEnabledProvider = panelEnabledProvider; } private void updateScrimFraction() { float scrimFraction = mPanelFraction; if (mMinFraction < 1.0f) { scrimFraction = Math.max((mPanelFraction - mMinFraction) / (1.0f - mMinFraction), 0); } mScrimController.setPanelExpansion(scrimFraction); } public void updateResources() { mCutoutSideNudge = getResources().getDimensionPixelSize( R.dimen.display_cutout_margin_consumption); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +40 −11 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.ViewTreeObserver; import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import androidx.annotation.FloatRange; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -183,8 +184,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA; private final float mDefaultScrimAlpha; // Assuming the shade is expanded during initialization private float mPanelExpansion = 1f; private float mRawPanelExpansionFraction; private float mPanelScrimMinFraction; // Calculated based on mRawPanelExpansionFraction and mPanelScrimMinFraction private float mPanelExpansionFraction = 1f; // Assume shade is expanded during initialization private float mQsExpansion; private boolean mQsBottomVisible; Loading Loading @@ -483,14 +486,39 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump * * The expansion fraction is tied to the scrim opacity. * * @param fraction From 0 to 1 where 0 means collapsed and 1 expanded. * See {@link PanelBar#panelExpansionChanged}. * * @param rawPanelExpansionFraction From 0 to 1 where 0 means collapsed and 1 expanded. */ public void setPanelExpansion(float fraction) { if (isNaN(fraction)) { throw new IllegalArgumentException("Fraction should not be NaN"); public void setRawPanelExpansionFraction( @FloatRange(from = 0.0, to = 1.0) float rawPanelExpansionFraction) { if (isNaN(rawPanelExpansionFraction)) { throw new IllegalArgumentException("rawPanelExpansionFraction should not be NaN"); } mRawPanelExpansionFraction = rawPanelExpansionFraction; calculateAndUpdatePanelExpansion(); } /** See {@link NotificationPanelViewController#setPanelScrimMinFraction(float)}. */ public void setPanelScrimMinFraction(float minFraction) { if (isNaN(minFraction)) { throw new IllegalArgumentException("minFraction should not be NaN"); } if (mPanelExpansion != fraction) { mPanelExpansion = fraction; mPanelScrimMinFraction = minFraction; calculateAndUpdatePanelExpansion(); } private void calculateAndUpdatePanelExpansion() { float panelExpansionFraction = mRawPanelExpansionFraction; if (mPanelScrimMinFraction < 1.0f) { panelExpansionFraction = Math.max( (mRawPanelExpansionFraction - mPanelScrimMinFraction) / (1.0f - mPanelScrimMinFraction), 0); } if (mPanelExpansionFraction != panelExpansionFraction) { mPanelExpansionFraction = panelExpansionFraction; boolean relevantState = (mState == ScrimState.UNLOCKED || mState == ScrimState.KEYGUARD Loading Loading @@ -892,7 +920,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } private float getInterpolatedFraction() { return Interpolators.getNotificationScrimAlpha(mPanelExpansion, false /* notification */); return Interpolators.getNotificationScrimAlpha( mPanelExpansionFraction, false /* notification */); } private void setScrimAlpha(ScrimView scrim, float alpha) { Loading Loading @@ -1228,8 +1257,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump pw.println(mTracking); pw.print(" mDefaultScrimAlpha="); pw.println(mDefaultScrimAlpha); pw.print(" mExpansionFraction="); pw.println(mPanelExpansion); pw.print(" mPanelExpansionFraction="); pw.println(mPanelExpansionFraction); pw.print(" mExpansionAffectsAlpha="); pw.println(mExpansionAffectsAlpha); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +13 −3 Original line number Diff line number Diff line Loading @@ -900,6 +900,8 @@ public class StatusBar extends SystemUI implements lockscreenShadeTransitionController.setStatusbar(this); mExpansionChangedListeners = new ArrayList<>(); addExpansionChangedListener( (expansion, expanded) -> mScrimController.setRawPanelExpansionFraction(expansion)); mBubbleExpandListener = (isExpanding, key) -> mContext.getMainExecutor().execute(() -> { Loading Loading @@ -1405,6 +1407,12 @@ public class StatusBar extends SystemUI implements mDeviceProvisionedController.addCallback(mUserSetupObserver); mUserSetupObserver.onUserSetupChanged(); for (ExpansionChangedListener listener : mExpansionChangedListeners) { // The initial expansion amount comes from mNotificationPanelViewController, so we // should send the amount once we've fully set up that controller. sendInitialExpansionAmount(listener); } // disable profiling bars, since they overlap and clutter the output on app windows ThreadedRenderer.overrideProperty("disableProfileBars", "true"); Loading Loading @@ -4246,10 +4254,12 @@ public class StatusBar extends SystemUI implements } private void sendInitialExpansionAmount(ExpansionChangedListener expansionChangedListener) { if (mNotificationPanelViewController != null) { expansionChangedListener.onExpansionChanged( mNotificationPanelViewController.getExpandedFraction(), mNotificationPanelViewController.isExpanded()); } } public void removeExpansionChangedListener(@NonNull ExpansionChangedListener listener) { mExpansionChangedListeners.remove(listener); Loading