Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +25 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.plugins.qs; import android.view.View; import androidx.annotation.FloatRange; import com.android.systemui.plugins.FragmentBase; import com.android.systemui.plugins.annotations.DependsOn; import com.android.systemui.plugins.annotations.ProvidesInterface; Loading Loading @@ -107,10 +109,24 @@ public interface QS extends FragmentBase { void setInSplitShade(boolean shouldTranslate); /** * Set the amount of pixels we have currently dragged down if we're transitioning to the full * shade. 0.0f means we're not transitioning yet. * Sets the progress of the transition to full shade on the lockscreen. * * @param isTransitioningToFullShade * whether the transition to full shade is in progress. This might be {@code true}, even * though {@code qsTransitionFraction} is still 0. * The reason for that is that on some device configurations, the QS transition has a * start delay compared to the overall transition. * * @param qsTransitionFraction * the fraction of the QS transition progress, from 0 to 1. * * @param qsSquishinessFraction * the fraction of the QS "squish" transition progress, from 0 to 1. */ default void setTransitionToFullShadeAmount(float pxAmount, float progress) {} default void setTransitionToFullShadeProgress( boolean isTransitioningToFullShade, @FloatRange(from = 0.0, to = 1.0) float qsTransitionFraction, @FloatRange(from = 0.0, to = 1.0) float qsSquishinessFraction) {} /** * A rounded corner clipping that makes QS feel as if it were behind everything. Loading Loading @@ -139,6 +155,12 @@ public interface QS extends FragmentBase { */ default void setOverScrollAmount(int overScrollAmount) {} /** * Sets whether the notification panel is using the full width of the screen. Typically true on * small screens and false on large screens. */ void setIsNotificationPanelFullWidth(boolean isFullWidth); /** * Callback for when QSPanel container is scrolled */ Loading packages/SystemUI/res/values-sw600dp-land/dimens.xml +10 −35 Original line number Diff line number Diff line Loading @@ -49,54 +49,29 @@ <dimen name="status_view_margin_horizontal">8dp</dimen> <!-- Distance that the full shade transition takes in order to complete by tapping on a button like "expand". --> <!-- Lockscreen shade transition values --> <dimen name="lockscreen_shade_transition_by_tap_distance">200dp</dimen> <!-- Distance that the full shade transition takes in order to complete. --> <dimen name="lockscreen_shade_full_transition_distance">200dp</dimen> <!-- Distance that the full shade transition takes in order for media to fully transition to the shade --> <dimen name="lockscreen_shade_media_transition_distance">200dp</dimen> <!-- Distance that the full shade transition takes in order for scrim to fully transition to the shade (in alpha) --> <!-- Media transition distance = qs delay + qs distance --> <dimen name="lockscreen_shade_media_transition_distance">129.28dp</dimen> <dimen name="lockscreen_shade_scrim_transition_distance">80dp</dimen> <!-- The notifications scrim transition should start when the other scrims' transition is at 95%. --> <dimen name="lockscreen_shade_notifications_scrim_transition_delay">76dp</dimen> <!-- The notifications scrim transition duration is 66.6% of the duration of the other scrims' transition. --> <dimen name="lockscreen_shade_notifications_scrim_transition_distance">53.28dp</dimen> <!-- Distance that the full shade transition takes in order for the keyguard content on NotificationPanelViewController to fully fade (e.g. Clock & Smartspace) --> <dimen name="lockscreen_shade_npvc_keyguard_content_alpha_transition_distance">80dp</dimen> <!-- Distance that the full shade transition takes in order for the notification shell to fully expand. --> <dimen name="lockscreen_shade_notif_shelf_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Distance that the full shade transition takes in order for the Quick Settings to fully fade and expand. --> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Distance that the full shade transition takes in order for depth of the wallpaper to fully change. On split-shade, there should be no depth effect, so setting the value to 0. --> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_notifications_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_qs_transition_delay">@dimen/lockscreen_shade_notifications_scrim_transition_delay</dimen> <dimen name="lockscreen_shade_qs_squish_transition_distance">@dimen/lockscreen_shade_qs_transition_distance</dimen> <!-- On split-shade, the QS squish transition should start from half height. --> <item name="lockscreen_shade_qs_squish_start_fraction" type="dimen" format="float" >0.5</item> <!-- On split-shade, there should be no depth effect, so setting the value to 0. --> <dimen name="lockscreen_shade_depth_controller_transition_distance">0dp</dimen> <!-- Distance that the full shade transition takes in order for the UDFPS Keyguard View to fully fade. --> <dimen name="lockscreen_shade_udfps_keyguard_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Used for StatusBar to know that a transition is in progress. At the moment it only checks whether the progress is > 0, therefore this value is not very important. --> <dimen name="lockscreen_shade_status_bar_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_keyguard_transition_distance">@dimen/lockscreen_shade_media_transition_distance</dimen> <!-- Roughly the same distance as media on LS to media on QS. We will translate by this value Loading packages/SystemUI/res/values-sw600dp/dimens.xml +20 −0 Original line number Diff line number Diff line Loading @@ -73,4 +73,24 @@ <dimen name="large_dialog_width">472dp</dimen> <dimen name="large_screen_shade_header_height">42dp</dimen> <!-- Lockscreen shade transition values --> <dimen name="lockscreen_shade_transition_by_tap_distance">200dp</dimen> <dimen name="lockscreen_shade_full_transition_distance">80dp</dimen> <dimen name="lockscreen_shade_media_transition_distance">120dp</dimen> <dimen name="lockscreen_shade_scrim_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_notifications_scrim_transition_delay">@dimen/lockscreen_shade_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_notifications_scrim_transition_distance">@dimen/lockscreen_shade_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_npvc_keyguard_content_alpha_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_notif_shelf_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_qs_transition_delay">@dimen/lockscreen_shade_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_qs_squish_transition_distance">@dimen/lockscreen_shade_qs_transition_distance</dimen> <!-- On large screen portrait, the QS squish transition should start from half height. --> <item name="lockscreen_shade_qs_squish_start_fraction" type="dimen" format="float" >0.5</item> <dimen name="lockscreen_shade_depth_controller_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_udfps_keyguard_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_status_bar_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_keyguard_transition_distance">@dimen/lockscreen_shade_media_transition_distance</dimen> </resources> packages/SystemUI/res/values/dimens.xml +11 −0 Original line number Diff line number Diff line Loading @@ -1212,6 +1212,17 @@ fade and expand. --> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Distance delay for the QS transition to start during the lockscreen shade expansion. --> <dimen name="lockscreen_shade_qs_transition_delay">0dp</dimen> <!-- Distance that it takes to complete the QS "squish" transition during the lockscreen shade expansion. --> <dimen name="lockscreen_shade_qs_squish_transition_distance">@dimen/lockscreen_shade_qs_transition_distance</dimen> <!-- The fraction at which the QS "squish" transition should start during the lockscreen shade expansion. 0 is fully collapsed, 1 is fully expanded. --> <item type="dimen" format="float" name="lockscreen_shade_qs_squish_start_fraction">0</item> <!-- Distance that the full shade transition takes in order for depth of the wallpaper to fully change. --> <dimen name="lockscreen_shade_depth_controller_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> Loading packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +58 −11 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import androidx.annotation.FloatRange; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; Loading Loading @@ -166,6 +167,13 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca // visible; private boolean mQsVisible; /** * Whether the notification panel uses the full width of the screen. * * Usually {@code true} on small screens, and {@code false} on large screens. */ private boolean mIsNotificationPanelFullWidth; @Inject public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler, QSTileHost qsTileHost, Loading Loading @@ -571,15 +579,17 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca } @Override public void setTransitionToFullShadeAmount(float pxAmount, float progress) { boolean isTransitioningToFullShade = pxAmount > 0; public void setTransitionToFullShadeProgress( boolean isTransitioningToFullShade, @FloatRange(from = 0.0, to = 1.0) float qsTransitionFraction, @FloatRange(from = 0.0, to = 1.0) float qsSquishinessFraction) { if (isTransitioningToFullShade != mTransitioningToFullShade) { mTransitioningToFullShade = isTransitioningToFullShade; updateShowCollapsedOnKeyguard(); } mFullShadeProgress = progress; mFullShadeProgress = qsTransitionFraction; setQsExpansion(mLastQSExpansion, mLastPanelFraction, mLastHeaderTranslation, isTransitioningToFullShade ? progress : mSquishinessFraction); isTransitioningToFullShade ? qsSquishinessFraction : mSquishinessFraction); } @Override Loading @@ -597,13 +607,17 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca + mHeader.getPaddingBottom(); } @Override public void setIsNotificationPanelFullWidth(boolean isFullWidth) { mIsNotificationPanelFullWidth = isFullWidth; } @Override public void setQsExpansion(float expansion, float panelExpansionFraction, float proposedTranslation, float squishinessFraction) { float headerTranslation = mTransitioningToFullShade ? 0 : proposedTranslation; float alphaProgress = mTransitioningToFullShade || mState == StatusBarState.KEYGUARD ? mFullShadeProgress : panelExpansionFraction; setAlphaAnimationProgress(mInSplitShade ? alphaProgress : 1); float alphaProgress = calculateAlphaProgress(panelExpansionFraction); setAlphaAnimationProgress(alphaProgress); mContainer.setExpansion(expansion); final float translationScaleY = (mInSplitShade ? 1 : QSAnimator.SHORT_PARALLAX_AMOUNT) * (expansion - 1); Loading Loading @@ -683,10 +697,43 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca } else if (progress > 0 && view.getVisibility() != View.VISIBLE) { view.setVisibility((View.VISIBLE)); } float alpha = mQSPanelController.isBouncerInTransit() ? BouncerPanelExpansionCalculator.aboutToShowBouncerProgress(progress) : ShadeInterpolation.getContentAlpha(progress); view.setAlpha(alpha); view.setAlpha(interpolateAlphaAnimationProgress(progress)); } private float calculateAlphaProgress(float panelExpansionFraction) { if (mIsNotificationPanelFullWidth) { // Small screens. QS alpha is not animated. return 1; } if (mInSplitShade) { // Large screens in landscape. if (mTransitioningToFullShade || isKeyguardState()) { // Always use "mFullShadeProgress" on keyguard, because // "panelExpansionFractions" is always 1 on keyguard split shade. return mFullShadeProgress; } else { return panelExpansionFraction; } } // Large screens in portrait. if (mTransitioningToFullShade) { // Only use this value during the standard lock screen shade expansion. During the // "quick" expansion from top, this value is 0. return mFullShadeProgress; } else { return panelExpansionFraction; } } private float interpolateAlphaAnimationProgress(float progress) { if (mQSPanelController.isBouncerInTransit()) { return BouncerPanelExpansionCalculator.aboutToShowBouncerProgress(progress); } if (isKeyguardState()) { // Alpha progress should be linear on lockscreen shade expansion. return progress; } return ShadeInterpolation.getContentAlpha(progress); } private void updateQsBounds() { Loading Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +25 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.plugins.qs; import android.view.View; import androidx.annotation.FloatRange; import com.android.systemui.plugins.FragmentBase; import com.android.systemui.plugins.annotations.DependsOn; import com.android.systemui.plugins.annotations.ProvidesInterface; Loading Loading @@ -107,10 +109,24 @@ public interface QS extends FragmentBase { void setInSplitShade(boolean shouldTranslate); /** * Set the amount of pixels we have currently dragged down if we're transitioning to the full * shade. 0.0f means we're not transitioning yet. * Sets the progress of the transition to full shade on the lockscreen. * * @param isTransitioningToFullShade * whether the transition to full shade is in progress. This might be {@code true}, even * though {@code qsTransitionFraction} is still 0. * The reason for that is that on some device configurations, the QS transition has a * start delay compared to the overall transition. * * @param qsTransitionFraction * the fraction of the QS transition progress, from 0 to 1. * * @param qsSquishinessFraction * the fraction of the QS "squish" transition progress, from 0 to 1. */ default void setTransitionToFullShadeAmount(float pxAmount, float progress) {} default void setTransitionToFullShadeProgress( boolean isTransitioningToFullShade, @FloatRange(from = 0.0, to = 1.0) float qsTransitionFraction, @FloatRange(from = 0.0, to = 1.0) float qsSquishinessFraction) {} /** * A rounded corner clipping that makes QS feel as if it were behind everything. Loading Loading @@ -139,6 +155,12 @@ public interface QS extends FragmentBase { */ default void setOverScrollAmount(int overScrollAmount) {} /** * Sets whether the notification panel is using the full width of the screen. Typically true on * small screens and false on large screens. */ void setIsNotificationPanelFullWidth(boolean isFullWidth); /** * Callback for when QSPanel container is scrolled */ Loading
packages/SystemUI/res/values-sw600dp-land/dimens.xml +10 −35 Original line number Diff line number Diff line Loading @@ -49,54 +49,29 @@ <dimen name="status_view_margin_horizontal">8dp</dimen> <!-- Distance that the full shade transition takes in order to complete by tapping on a button like "expand". --> <!-- Lockscreen shade transition values --> <dimen name="lockscreen_shade_transition_by_tap_distance">200dp</dimen> <!-- Distance that the full shade transition takes in order to complete. --> <dimen name="lockscreen_shade_full_transition_distance">200dp</dimen> <!-- Distance that the full shade transition takes in order for media to fully transition to the shade --> <dimen name="lockscreen_shade_media_transition_distance">200dp</dimen> <!-- Distance that the full shade transition takes in order for scrim to fully transition to the shade (in alpha) --> <!-- Media transition distance = qs delay + qs distance --> <dimen name="lockscreen_shade_media_transition_distance">129.28dp</dimen> <dimen name="lockscreen_shade_scrim_transition_distance">80dp</dimen> <!-- The notifications scrim transition should start when the other scrims' transition is at 95%. --> <dimen name="lockscreen_shade_notifications_scrim_transition_delay">76dp</dimen> <!-- The notifications scrim transition duration is 66.6% of the duration of the other scrims' transition. --> <dimen name="lockscreen_shade_notifications_scrim_transition_distance">53.28dp</dimen> <!-- Distance that the full shade transition takes in order for the keyguard content on NotificationPanelViewController to fully fade (e.g. Clock & Smartspace) --> <dimen name="lockscreen_shade_npvc_keyguard_content_alpha_transition_distance">80dp</dimen> <!-- Distance that the full shade transition takes in order for the notification shell to fully expand. --> <dimen name="lockscreen_shade_notif_shelf_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Distance that the full shade transition takes in order for the Quick Settings to fully fade and expand. --> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Distance that the full shade transition takes in order for depth of the wallpaper to fully change. On split-shade, there should be no depth effect, so setting the value to 0. --> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_notifications_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_qs_transition_delay">@dimen/lockscreen_shade_notifications_scrim_transition_delay</dimen> <dimen name="lockscreen_shade_qs_squish_transition_distance">@dimen/lockscreen_shade_qs_transition_distance</dimen> <!-- On split-shade, the QS squish transition should start from half height. --> <item name="lockscreen_shade_qs_squish_start_fraction" type="dimen" format="float" >0.5</item> <!-- On split-shade, there should be no depth effect, so setting the value to 0. --> <dimen name="lockscreen_shade_depth_controller_transition_distance">0dp</dimen> <!-- Distance that the full shade transition takes in order for the UDFPS Keyguard View to fully fade. --> <dimen name="lockscreen_shade_udfps_keyguard_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Used for StatusBar to know that a transition is in progress. At the moment it only checks whether the progress is > 0, therefore this value is not very important. --> <dimen name="lockscreen_shade_status_bar_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_keyguard_transition_distance">@dimen/lockscreen_shade_media_transition_distance</dimen> <!-- Roughly the same distance as media on LS to media on QS. We will translate by this value Loading
packages/SystemUI/res/values-sw600dp/dimens.xml +20 −0 Original line number Diff line number Diff line Loading @@ -73,4 +73,24 @@ <dimen name="large_dialog_width">472dp</dimen> <dimen name="large_screen_shade_header_height">42dp</dimen> <!-- Lockscreen shade transition values --> <dimen name="lockscreen_shade_transition_by_tap_distance">200dp</dimen> <dimen name="lockscreen_shade_full_transition_distance">80dp</dimen> <dimen name="lockscreen_shade_media_transition_distance">120dp</dimen> <dimen name="lockscreen_shade_scrim_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_notifications_scrim_transition_delay">@dimen/lockscreen_shade_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_notifications_scrim_transition_distance">@dimen/lockscreen_shade_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_npvc_keyguard_content_alpha_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_notif_shelf_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_qs_transition_delay">@dimen/lockscreen_shade_scrim_transition_distance</dimen> <dimen name="lockscreen_shade_qs_squish_transition_distance">@dimen/lockscreen_shade_qs_transition_distance</dimen> <!-- On large screen portrait, the QS squish transition should start from half height. --> <item name="lockscreen_shade_qs_squish_start_fraction" type="dimen" format="float" >0.5</item> <dimen name="lockscreen_shade_depth_controller_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_udfps_keyguard_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_status_bar_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <dimen name="lockscreen_shade_keyguard_transition_distance">@dimen/lockscreen_shade_media_transition_distance</dimen> </resources>
packages/SystemUI/res/values/dimens.xml +11 −0 Original line number Diff line number Diff line Loading @@ -1212,6 +1212,17 @@ fade and expand. --> <dimen name="lockscreen_shade_qs_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> <!-- Distance delay for the QS transition to start during the lockscreen shade expansion. --> <dimen name="lockscreen_shade_qs_transition_delay">0dp</dimen> <!-- Distance that it takes to complete the QS "squish" transition during the lockscreen shade expansion. --> <dimen name="lockscreen_shade_qs_squish_transition_distance">@dimen/lockscreen_shade_qs_transition_distance</dimen> <!-- The fraction at which the QS "squish" transition should start during the lockscreen shade expansion. 0 is fully collapsed, 1 is fully expanded. --> <item type="dimen" format="float" name="lockscreen_shade_qs_squish_start_fraction">0</item> <!-- Distance that the full shade transition takes in order for depth of the wallpaper to fully change. --> <dimen name="lockscreen_shade_depth_controller_transition_distance">@dimen/lockscreen_shade_full_transition_distance</dimen> Loading
packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +58 −11 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import androidx.annotation.FloatRange; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; Loading Loading @@ -166,6 +167,13 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca // visible; private boolean mQsVisible; /** * Whether the notification panel uses the full width of the screen. * * Usually {@code true} on small screens, and {@code false} on large screens. */ private boolean mIsNotificationPanelFullWidth; @Inject public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler, QSTileHost qsTileHost, Loading Loading @@ -571,15 +579,17 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca } @Override public void setTransitionToFullShadeAmount(float pxAmount, float progress) { boolean isTransitioningToFullShade = pxAmount > 0; public void setTransitionToFullShadeProgress( boolean isTransitioningToFullShade, @FloatRange(from = 0.0, to = 1.0) float qsTransitionFraction, @FloatRange(from = 0.0, to = 1.0) float qsSquishinessFraction) { if (isTransitioningToFullShade != mTransitioningToFullShade) { mTransitioningToFullShade = isTransitioningToFullShade; updateShowCollapsedOnKeyguard(); } mFullShadeProgress = progress; mFullShadeProgress = qsTransitionFraction; setQsExpansion(mLastQSExpansion, mLastPanelFraction, mLastHeaderTranslation, isTransitioningToFullShade ? progress : mSquishinessFraction); isTransitioningToFullShade ? qsSquishinessFraction : mSquishinessFraction); } @Override Loading @@ -597,13 +607,17 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca + mHeader.getPaddingBottom(); } @Override public void setIsNotificationPanelFullWidth(boolean isFullWidth) { mIsNotificationPanelFullWidth = isFullWidth; } @Override public void setQsExpansion(float expansion, float panelExpansionFraction, float proposedTranslation, float squishinessFraction) { float headerTranslation = mTransitioningToFullShade ? 0 : proposedTranslation; float alphaProgress = mTransitioningToFullShade || mState == StatusBarState.KEYGUARD ? mFullShadeProgress : panelExpansionFraction; setAlphaAnimationProgress(mInSplitShade ? alphaProgress : 1); float alphaProgress = calculateAlphaProgress(panelExpansionFraction); setAlphaAnimationProgress(alphaProgress); mContainer.setExpansion(expansion); final float translationScaleY = (mInSplitShade ? 1 : QSAnimator.SHORT_PARALLAX_AMOUNT) * (expansion - 1); Loading Loading @@ -683,10 +697,43 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca } else if (progress > 0 && view.getVisibility() != View.VISIBLE) { view.setVisibility((View.VISIBLE)); } float alpha = mQSPanelController.isBouncerInTransit() ? BouncerPanelExpansionCalculator.aboutToShowBouncerProgress(progress) : ShadeInterpolation.getContentAlpha(progress); view.setAlpha(alpha); view.setAlpha(interpolateAlphaAnimationProgress(progress)); } private float calculateAlphaProgress(float panelExpansionFraction) { if (mIsNotificationPanelFullWidth) { // Small screens. QS alpha is not animated. return 1; } if (mInSplitShade) { // Large screens in landscape. if (mTransitioningToFullShade || isKeyguardState()) { // Always use "mFullShadeProgress" on keyguard, because // "panelExpansionFractions" is always 1 on keyguard split shade. return mFullShadeProgress; } else { return panelExpansionFraction; } } // Large screens in portrait. if (mTransitioningToFullShade) { // Only use this value during the standard lock screen shade expansion. During the // "quick" expansion from top, this value is 0. return mFullShadeProgress; } else { return panelExpansionFraction; } } private float interpolateAlphaAnimationProgress(float progress) { if (mQSPanelController.isBouncerInTransit()) { return BouncerPanelExpansionCalculator.aboutToShowBouncerProgress(progress); } if (isKeyguardState()) { // Alpha progress should be linear on lockscreen shade expansion. return progress; } return ShadeInterpolation.getContentAlpha(progress); } private void updateQsBounds() { Loading