Loading packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -1198,7 +1198,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump /* excludeNotifications=*/ true), mMainDispatcher); /* excludeNotifications=*/ true), mMainDispatcher); collectFlow(mView, mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha(), collectFlow(mView, mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha(), (Float alpha) -> { (Float alpha) -> { mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha); mNotificationStackScrollLayoutController.setMaxAlphaForKeyguard(alpha, "mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha()"); }, mMainDispatcher); }, mMainDispatcher); } } } } Loading Loading @@ -2718,7 +2719,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump && !mQsController.getFullyExpanded()) { && !mQsController.getFullyExpanded()) { alpha *= mClockPositionResult.clockAlpha; alpha *= mClockPositionResult.clockAlpha; } } mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha); mNotificationStackScrollLayoutController.setMaxAlphaForKeyguard(alpha, "NPVC.updateNotificationTranslucency()"); } } } } Loading Loading @@ -2769,7 +2771,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump } } private void onExpandingFinished() { private void onExpandingFinished() { if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.onExpansionStopped(); mNotificationStackScrollLayoutController.onExpansionStopped(); } mHeadsUpManager.onExpandingFinished(); mHeadsUpManager.onExpandingFinished(); mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed()); mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed()); mIsExpandingOrCollapsing = false; mIsExpandingOrCollapsing = false; Loading Loading @@ -3084,7 +3088,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump // The expandedHeight is always the full panel Height when bypassing // The expandedHeight is always the full panel Height when bypassing expandedHeight = getMaxPanelHeight(); expandedHeight = getMaxPanelHeight(); } } if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.setExpandedHeight(expandedHeight); mNotificationStackScrollLayoutController.setExpandedHeight(expandedHeight); } updateKeyguardBottomAreaAlpha(); updateKeyguardBottomAreaAlpha(); updateStatusBarIcons(); updateStatusBarIcons(); } } Loading Loading @@ -4731,7 +4737,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump return (Float alpha) -> { return (Float alpha) -> { mKeyguardStatusViewController.setAlpha(alpha); mKeyguardStatusViewController.setAlpha(alpha); if (!excludeNotifications) { if (!excludeNotifications) { stackScroller.setMaxAlphaForExpansion(alpha); stackScroller.setMaxAlphaForKeyguard(alpha, "NPVC.setTransitionAlpha()"); } } if (keyguardBottomAreaRefactor()) { if (keyguardBottomAreaRefactor()) { Loading packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java +7 −2 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,7 @@ import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.qs.QS; import com.android.systemui.res.R; import com.android.systemui.res.R; import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.shade.data.repository.ShadeRepository; import com.android.systemui.shade.data.repository.ShadeRepository; import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.shade.domain.interactor.ShadeInteractor; Loading Loading @@ -964,7 +965,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum // Reset scroll position and apply that position to the expanded height. // Reset scroll position and apply that position to the expanded height. float height = mExpansionHeight; float height = mExpansionHeight; setExpansionHeight(height); setExpansionHeight(height); if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.checkSnoozeLeavebehind(); mNotificationStackScrollLayoutController.checkSnoozeLeavebehind(); } // When expanding QS, let's authenticate the user if possible, // When expanding QS, let's authenticate the user if possible, // this will speed up notification actions. // this will speed up notification actions. Loading Loading @@ -1109,7 +1112,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum /** Called when shade starts expanding. */ /** Called when shade starts expanding. */ void onExpandingStarted(boolean qsFullyExpanded) { void onExpandingStarted(boolean qsFullyExpanded) { if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.onExpansionStarted(); mNotificationStackScrollLayoutController.onExpansionStarted(); } mExpandedWhenExpandingStarted = qsFullyExpanded; mExpandedWhenExpandingStarted = qsFullyExpanded; mMediaHierarchyManager.setCollapsingShadeFromQS(mExpandedWhenExpandingStarted mMediaHierarchyManager.setCollapsingShadeFromQS(mExpandedWhenExpandingStarted /* We also start expanding when flinging closed Qs. Let's exclude that */ /* We also start expanding when flinging closed Qs. Let's exclude that */ Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +12 −5 Original line number Original line Diff line number Diff line Loading @@ -363,7 +363,8 @@ public class NotificationStackScrollLayoutController implements Dumpable { }; }; private NotifStats mNotifStats = NotifStats.getEmpty(); private NotifStats mNotifStats = NotifStats.getEmpty(); private float mMaxAlphaForExpansion = 1.0f; private float mMaxAlphaForKeyguard = 1.0f; private String mMaxAlphaForKeyguardSource = "constructor"; private float mMaxAlphaForUnhide = 1.0f; private float mMaxAlphaForUnhide = 1.0f; /** /** Loading Loading @@ -1320,9 +1321,14 @@ public class NotificationStackScrollLayoutController implements Dumpable { return mView.getEmptyShadeViewHeight(); return mView.getEmptyShadeViewHeight(); } } public void setMaxAlphaForExpansion(float alpha) { /** Set the max alpha for keyguard */ mMaxAlphaForExpansion = alpha; public void setMaxAlphaForKeyguard(float alpha, String source) { mMaxAlphaForKeyguard = alpha; mMaxAlphaForKeyguardSource = source; updateAlpha(); updateAlpha(); if (DEBUG) { Log.d(TAG, "setMaxAlphaForKeyguard=" + alpha + " --- from: " + source); } } } private void setMaxAlphaForUnhide(float alpha) { private void setMaxAlphaForUnhide(float alpha) { Loading @@ -1341,7 +1347,7 @@ public class NotificationStackScrollLayoutController implements Dumpable { private void updateAlpha() { private void updateAlpha() { if (mView != null) { if (mView != null) { mView.setAlpha(Math.min(mMaxAlphaForExpansion, mView.setAlpha(Math.min(mMaxAlphaForKeyguard, Math.min(mMaxAlphaForUnhide, mMaxAlphaForGlanceableHub))); Math.min(mMaxAlphaForUnhide, mMaxAlphaForGlanceableHub))); } } } } Loading Loading @@ -1831,9 +1837,10 @@ public class NotificationStackScrollLayoutController implements Dumpable { @Override @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println("mMaxAlphaForExpansion=" + mMaxAlphaForExpansion); pw.println("mMaxAlphaForUnhide=" + mMaxAlphaForUnhide); pw.println("mMaxAlphaForUnhide=" + mMaxAlphaForUnhide); pw.println("mMaxAlphaForGlanceableHub=" + mMaxAlphaForGlanceableHub); pw.println("mMaxAlphaForGlanceableHub=" + mMaxAlphaForGlanceableHub); pw.println("mMaxAlphaForKeyguard=" + mMaxAlphaForKeyguard); pw.println("mMaxAlphaForKeyguardSource=" + mMaxAlphaForKeyguardSource); } } /** /** Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationStackAppearanceViewBinder.kt +7 −4 Original line number Original line Diff line number Diff line Loading @@ -66,15 +66,18 @@ object NotificationStackAppearanceViewBinder { } } launch { launch { var wasExpanding = false viewModel.expandFraction.collect { expandFraction -> viewModel.expandFraction.collect { expandFraction -> val nowExpanding = expandFraction != 0f && expandFraction != 1f if (nowExpanding && !wasExpanding) { controller.onExpansionStarted() } ambientState.expansionFraction = expandFraction ambientState.expansionFraction = expandFraction controller.expandedHeight = expandFraction * controller.view.height controller.expandedHeight = expandFraction * controller.view.height controller.setMaxAlphaForExpansion( if (!nowExpanding && wasExpanding) { ((expandFraction - 0.5f) / 0.5f).coerceAtLeast(0f) ) if (expandFraction == 0f || expandFraction == 1f) { controller.onExpansionStopped() controller.onExpansionStopped() } } wasExpanding = nowExpanding } } } } } } Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/SharedNotificationContainerBinder.kt +22 −24 Original line number Original line Diff line number Diff line Loading @@ -106,7 +106,6 @@ object SharedNotificationContainerBinder { val disposableHandleMainImmediate = val disposableHandleMainImmediate = view.repeatWhenAttached(mainImmediateDispatcher) { view.repeatWhenAttached(mainImmediateDispatcher) { repeatOnLifecycle(Lifecycle.State.CREATED) { repeatOnLifecycle(Lifecycle.State.CREATED) { if (!sceneContainerFlags.flexiNotifsEnabled()) { launch { launch { // Only temporarily needed, until flexi notifs go live // Only temporarily needed, until flexi notifs go live viewModel.shadeCollapseFadeIn.collect { fadeIn -> viewModel.shadeCollapseFadeIn.collect { fadeIn -> Loading @@ -114,8 +113,9 @@ object SharedNotificationContainerBinder { android.animation.ValueAnimator.ofFloat(0f, 1f).apply { android.animation.ValueAnimator.ofFloat(0f, 1f).apply { duration = 250 duration = 250 addUpdateListener { animation -> addUpdateListener { animation -> controller.setMaxAlphaForExpansion( controller.setMaxAlphaForKeyguard( animation.getAnimatedFraction() animation.animatedFraction, "SharedNotificationContainerVB (collapseFadeIn)" ) ) } } addListener( addListener( Loading @@ -130,7 +130,6 @@ object SharedNotificationContainerBinder { } } } } } } } launch { launch { viewModel viewModel Loading Loading @@ -164,13 +163,12 @@ object SharedNotificationContainerBinder { launch { viewModel.translationX.collect { x -> controller.translationX = x } } launch { viewModel.translationX.collect { x -> controller.translationX = x } } if (!sceneContainerFlags.isEnabled()) { launch { launch { viewModel.expansionAlpha(viewState).collect { viewModel.keyguardAlpha(viewState).collect { controller.setMaxAlphaForExpansion(it) controller.setMaxAlphaForKeyguard(it, "SharedNotificationContainerVB") } } } } } launch { launch { viewModel.glanceableHubAlpha.collect { viewModel.glanceableHubAlpha.collect { controller.setMaxAlphaForGlanceableHub(it) controller.setMaxAlphaForGlanceableHub(it) Loading Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -1198,7 +1198,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump /* excludeNotifications=*/ true), mMainDispatcher); /* excludeNotifications=*/ true), mMainDispatcher); collectFlow(mView, mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha(), collectFlow(mView, mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha(), (Float alpha) -> { (Float alpha) -> { mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha); mNotificationStackScrollLayoutController.setMaxAlphaForKeyguard(alpha, "mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha()"); }, mMainDispatcher); }, mMainDispatcher); } } } } Loading Loading @@ -2718,7 +2719,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump && !mQsController.getFullyExpanded()) { && !mQsController.getFullyExpanded()) { alpha *= mClockPositionResult.clockAlpha; alpha *= mClockPositionResult.clockAlpha; } } mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha); mNotificationStackScrollLayoutController.setMaxAlphaForKeyguard(alpha, "NPVC.updateNotificationTranslucency()"); } } } } Loading Loading @@ -2769,7 +2771,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump } } private void onExpandingFinished() { private void onExpandingFinished() { if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.onExpansionStopped(); mNotificationStackScrollLayoutController.onExpansionStopped(); } mHeadsUpManager.onExpandingFinished(); mHeadsUpManager.onExpandingFinished(); mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed()); mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed()); mIsExpandingOrCollapsing = false; mIsExpandingOrCollapsing = false; Loading Loading @@ -3084,7 +3088,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump // The expandedHeight is always the full panel Height when bypassing // The expandedHeight is always the full panel Height when bypassing expandedHeight = getMaxPanelHeight(); expandedHeight = getMaxPanelHeight(); } } if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.setExpandedHeight(expandedHeight); mNotificationStackScrollLayoutController.setExpandedHeight(expandedHeight); } updateKeyguardBottomAreaAlpha(); updateKeyguardBottomAreaAlpha(); updateStatusBarIcons(); updateStatusBarIcons(); } } Loading Loading @@ -4731,7 +4737,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump return (Float alpha) -> { return (Float alpha) -> { mKeyguardStatusViewController.setAlpha(alpha); mKeyguardStatusViewController.setAlpha(alpha); if (!excludeNotifications) { if (!excludeNotifications) { stackScroller.setMaxAlphaForExpansion(alpha); stackScroller.setMaxAlphaForKeyguard(alpha, "NPVC.setTransitionAlpha()"); } } if (keyguardBottomAreaRefactor()) { if (keyguardBottomAreaRefactor()) { Loading
packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java +7 −2 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,7 @@ import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.qs.QS; import com.android.systemui.res.R; import com.android.systemui.res.R; import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.shade.data.repository.ShadeRepository; import com.android.systemui.shade.data.repository.ShadeRepository; import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.shade.domain.interactor.ShadeInteractor; Loading Loading @@ -964,7 +965,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum // Reset scroll position and apply that position to the expanded height. // Reset scroll position and apply that position to the expanded height. float height = mExpansionHeight; float height = mExpansionHeight; setExpansionHeight(height); setExpansionHeight(height); if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.checkSnoozeLeavebehind(); mNotificationStackScrollLayoutController.checkSnoozeLeavebehind(); } // When expanding QS, let's authenticate the user if possible, // When expanding QS, let's authenticate the user if possible, // this will speed up notification actions. // this will speed up notification actions. Loading Loading @@ -1109,7 +1112,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum /** Called when shade starts expanding. */ /** Called when shade starts expanding. */ void onExpandingStarted(boolean qsFullyExpanded) { void onExpandingStarted(boolean qsFullyExpanded) { if (!SceneContainerFlag.isEnabled()) { mNotificationStackScrollLayoutController.onExpansionStarted(); mNotificationStackScrollLayoutController.onExpansionStarted(); } mExpandedWhenExpandingStarted = qsFullyExpanded; mExpandedWhenExpandingStarted = qsFullyExpanded; mMediaHierarchyManager.setCollapsingShadeFromQS(mExpandedWhenExpandingStarted mMediaHierarchyManager.setCollapsingShadeFromQS(mExpandedWhenExpandingStarted /* We also start expanding when flinging closed Qs. Let's exclude that */ /* We also start expanding when flinging closed Qs. Let's exclude that */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +12 −5 Original line number Original line Diff line number Diff line Loading @@ -363,7 +363,8 @@ public class NotificationStackScrollLayoutController implements Dumpable { }; }; private NotifStats mNotifStats = NotifStats.getEmpty(); private NotifStats mNotifStats = NotifStats.getEmpty(); private float mMaxAlphaForExpansion = 1.0f; private float mMaxAlphaForKeyguard = 1.0f; private String mMaxAlphaForKeyguardSource = "constructor"; private float mMaxAlphaForUnhide = 1.0f; private float mMaxAlphaForUnhide = 1.0f; /** /** Loading Loading @@ -1320,9 +1321,14 @@ public class NotificationStackScrollLayoutController implements Dumpable { return mView.getEmptyShadeViewHeight(); return mView.getEmptyShadeViewHeight(); } } public void setMaxAlphaForExpansion(float alpha) { /** Set the max alpha for keyguard */ mMaxAlphaForExpansion = alpha; public void setMaxAlphaForKeyguard(float alpha, String source) { mMaxAlphaForKeyguard = alpha; mMaxAlphaForKeyguardSource = source; updateAlpha(); updateAlpha(); if (DEBUG) { Log.d(TAG, "setMaxAlphaForKeyguard=" + alpha + " --- from: " + source); } } } private void setMaxAlphaForUnhide(float alpha) { private void setMaxAlphaForUnhide(float alpha) { Loading @@ -1341,7 +1347,7 @@ public class NotificationStackScrollLayoutController implements Dumpable { private void updateAlpha() { private void updateAlpha() { if (mView != null) { if (mView != null) { mView.setAlpha(Math.min(mMaxAlphaForExpansion, mView.setAlpha(Math.min(mMaxAlphaForKeyguard, Math.min(mMaxAlphaForUnhide, mMaxAlphaForGlanceableHub))); Math.min(mMaxAlphaForUnhide, mMaxAlphaForGlanceableHub))); } } } } Loading Loading @@ -1831,9 +1837,10 @@ public class NotificationStackScrollLayoutController implements Dumpable { @Override @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println("mMaxAlphaForExpansion=" + mMaxAlphaForExpansion); pw.println("mMaxAlphaForUnhide=" + mMaxAlphaForUnhide); pw.println("mMaxAlphaForUnhide=" + mMaxAlphaForUnhide); pw.println("mMaxAlphaForGlanceableHub=" + mMaxAlphaForGlanceableHub); pw.println("mMaxAlphaForGlanceableHub=" + mMaxAlphaForGlanceableHub); pw.println("mMaxAlphaForKeyguard=" + mMaxAlphaForKeyguard); pw.println("mMaxAlphaForKeyguardSource=" + mMaxAlphaForKeyguardSource); } } /** /** Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationStackAppearanceViewBinder.kt +7 −4 Original line number Original line Diff line number Diff line Loading @@ -66,15 +66,18 @@ object NotificationStackAppearanceViewBinder { } } launch { launch { var wasExpanding = false viewModel.expandFraction.collect { expandFraction -> viewModel.expandFraction.collect { expandFraction -> val nowExpanding = expandFraction != 0f && expandFraction != 1f if (nowExpanding && !wasExpanding) { controller.onExpansionStarted() } ambientState.expansionFraction = expandFraction ambientState.expansionFraction = expandFraction controller.expandedHeight = expandFraction * controller.view.height controller.expandedHeight = expandFraction * controller.view.height controller.setMaxAlphaForExpansion( if (!nowExpanding && wasExpanding) { ((expandFraction - 0.5f) / 0.5f).coerceAtLeast(0f) ) if (expandFraction == 0f || expandFraction == 1f) { controller.onExpansionStopped() controller.onExpansionStopped() } } wasExpanding = nowExpanding } } } } } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/SharedNotificationContainerBinder.kt +22 −24 Original line number Original line Diff line number Diff line Loading @@ -106,7 +106,6 @@ object SharedNotificationContainerBinder { val disposableHandleMainImmediate = val disposableHandleMainImmediate = view.repeatWhenAttached(mainImmediateDispatcher) { view.repeatWhenAttached(mainImmediateDispatcher) { repeatOnLifecycle(Lifecycle.State.CREATED) { repeatOnLifecycle(Lifecycle.State.CREATED) { if (!sceneContainerFlags.flexiNotifsEnabled()) { launch { launch { // Only temporarily needed, until flexi notifs go live // Only temporarily needed, until flexi notifs go live viewModel.shadeCollapseFadeIn.collect { fadeIn -> viewModel.shadeCollapseFadeIn.collect { fadeIn -> Loading @@ -114,8 +113,9 @@ object SharedNotificationContainerBinder { android.animation.ValueAnimator.ofFloat(0f, 1f).apply { android.animation.ValueAnimator.ofFloat(0f, 1f).apply { duration = 250 duration = 250 addUpdateListener { animation -> addUpdateListener { animation -> controller.setMaxAlphaForExpansion( controller.setMaxAlphaForKeyguard( animation.getAnimatedFraction() animation.animatedFraction, "SharedNotificationContainerVB (collapseFadeIn)" ) ) } } addListener( addListener( Loading @@ -130,7 +130,6 @@ object SharedNotificationContainerBinder { } } } } } } } launch { launch { viewModel viewModel Loading Loading @@ -164,13 +163,12 @@ object SharedNotificationContainerBinder { launch { viewModel.translationX.collect { x -> controller.translationX = x } } launch { viewModel.translationX.collect { x -> controller.translationX = x } } if (!sceneContainerFlags.isEnabled()) { launch { launch { viewModel.expansionAlpha(viewState).collect { viewModel.keyguardAlpha(viewState).collect { controller.setMaxAlphaForExpansion(it) controller.setMaxAlphaForKeyguard(it, "SharedNotificationContainerVB") } } } } } launch { launch { viewModel.glanceableHubAlpha.collect { viewModel.glanceableHubAlpha.collect { controller.setMaxAlphaForGlanceableHub(it) controller.setMaxAlphaForGlanceableHub(it) Loading