Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaHierarchyManager.kt +7 −10 Original line number Diff line number Diff line Loading @@ -46,8 +46,7 @@ import com.android.systemui.media.controls.pipeline.MediaDataManager import com.android.systemui.media.dream.MediaDreamComplication import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.res.R import com.android.systemui.shade.ShadeStateEvents import com.android.systemui.shade.ShadeStateEvents.ShadeStateEventsListener import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.CrossFadeHelper import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.SysuiStatusBarStateController Loading Loading @@ -103,7 +102,7 @@ constructor( private val communalInteractor: CommunalInteractor, configurationController: ConfigurationController, wakefulnessLifecycle: WakefulnessLifecycle, panelEventsEvents: ShadeStateEvents, shadeInteractor: ShadeInteractor, private val secureSettings: SecureSettings, @Main private val handler: Handler, @Application private val coroutineScope: CoroutineScope, Loading Loading @@ -545,14 +544,12 @@ constructor( mediaHosts.forEach { it?.updateViewVisibility() } } panelEventsEvents.addShadeStateEventsListener( object : ShadeStateEventsListener { override fun onExpandImmediateChanged(isExpandImmediateEnabled: Boolean) { coroutineScope.launch { shadeInteractor.isQsBypassingShade.collect { isExpandImmediateEnabled -> skipQqsOnExpansion = isExpandImmediateEnabled updateDesiredLocation() } } ) val settingsObserver: ContentObserver = object : ContentObserver(handler) { Loading packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java +8 −15 Original line number Diff line number Diff line Loading @@ -207,12 +207,6 @@ public class QuickSettingsController implements Dumpable { /** Indicates QS is at its max height */ private boolean mFullyExpanded; /** * Determines if QS should be already expanded when expanding shade. * Used for split shade, two finger gesture as well as accessibility shortcut to QS. * It needs to be set when movement starts as it resets at the end of expansion/collapse. */ private boolean mExpandImmediate; private boolean mExpandedWhenExpandingStarted; private boolean mAnimatingHiddenFromCollapsed; private boolean mVisible; Loading Loading @@ -512,7 +506,7 @@ public class QuickSettingsController implements Dumpable { /** */ @VisibleForTesting boolean isExpandImmediate() { return mExpandImmediate; return mShadeRepository.getLegacyExpandImmediate().getValue(); } float getInitialTouchY() { Loading Loading @@ -602,7 +596,7 @@ public class QuickSettingsController implements Dumpable { // close the whole shade with one motion. Also this will be always true when closing // split shade as there QS are always expanded so every collapsing motion is motion from // expanded QS to closed panel return mExpandImmediate || (getExpanded() return isExpandImmediate() || (getExpanded() && !isTracking() && !isExpansionAnimating() && !mExpansionFromOverscroll); } Loading Loading @@ -792,7 +786,7 @@ public class QuickSettingsController implements Dumpable { && mBarState == SHADE) { Log.wtf(TAG, "setting QS height to 0 in split shade while shade is open(ing). " + "Value of mExpandImmediate = " + mExpandImmediate); + "Value of isExpandImmediate() = " + isExpandImmediate()); } int maxHeight = getMaxExpansionHeight(); height = Math.min(Math.max( Loading Loading @@ -941,10 +935,9 @@ public class QuickSettingsController implements Dumpable { } void setExpandImmediate(boolean expandImmediate) { if (expandImmediate != mExpandImmediate) { if (expandImmediate != isExpandImmediate()) { mShadeLog.logQsExpandImmediateChanged(expandImmediate); mExpandImmediate = expandImmediate; mShadeExpansionStateManager.notifyExpandImmediateChange(expandImmediate); mShadeRepository.setLegacyExpandImmediate(expandImmediate); } } Loading Loading @@ -996,7 +989,7 @@ public class QuickSettingsController implements Dumpable { public void updateExpansion() { if (mQs == null) return; final float squishiness; if ((mExpandImmediate || getExpanded()) && !mSplitShadeEnabled) { if ((isExpandImmediate() || getExpanded()) && !mSplitShadeEnabled) { squishiness = 1; } else if (mTransitioningToFullShadeProgress > 0.0f) { squishiness = mLockscreenShadeTransitionController.getQsSquishTransitionFraction(); Loading Loading @@ -2077,8 +2070,8 @@ public class QuickSettingsController implements Dumpable { ipw.println(getExpanded()); ipw.print("mFullyExpanded="); ipw.println(mFullyExpanded); ipw.print("mExpandImmediate="); ipw.println(mExpandImmediate); ipw.print("isExpandImmediate()="); ipw.println(isExpandImmediate()); ipw.print("mExpandedWhenExpandingStarted="); ipw.println(mExpandedWhenExpandingStarted); ipw.print("mAnimatingHiddenFromCollapsed="); Loading packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt +0 −6 Original line number Diff line number Diff line Loading @@ -169,12 +169,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { } } fun notifyExpandImmediateChange(expandImmediateEnabled: Boolean) { for (cb in shadeStateEventsListeners) { cb.onExpandImmediateChanged(expandImmediateEnabled) } } private fun debugLog(msg: String) { if (!DEBUG) return Log.v(TAG, msg) Loading packages/SystemUI/src/com/android/systemui/shade/ShadeStateEvents.kt +0 −11 Original line number Diff line number Diff line Loading @@ -35,16 +35,5 @@ interface ShadeStateEvents { * Invoked when the notification panel starts or stops launching an [android.app.Activity]. */ fun onLaunchingActivityChanged(isLaunchingActivity: Boolean) {} /** * Invoked when the "expand immediate" attribute changes. * * An example of expanding immediately is when swiping down from the top with two fingers. * Instead of going to QQS, we immediately expand to full QS. * * Another example is when full QS is showing, and we swipe up from the bottom. Instead of * going to QQS, the panel fully collapses. */ fun onExpandImmediateChanged(isExpandImmediateEnabled: Boolean) {} } } packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt +23 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,22 @@ interface ShadeRepository { */ @Deprecated("Use ShadeInteractor instead") val legacyIsQsExpanded: StateFlow<Boolean> /** * QuickSettingsController.mExpandImmediate as a flow. Indicates that Quick Settings is being * expanded without first expanding the Shade or Quick Settings is being collapsed without first * collapsing to shade, i.e. expanding with 2-finger swipe or collapsing by flinging from the * bottom of the screen. Replaced by ShadeInteractor.isQsBypassingShade. */ @Deprecated("Use ShadeInteractor.isQsBypassingShade instead") val legacyExpandImmediate: StateFlow<Boolean> /** * Sets whether Quick Settings is being expanded without first expanding the Shade or Quick * Settings is being collapsed without first collapsing to shade. */ @Deprecated("Use ShadeInteractor instead") fun setLegacyExpandImmediate(legacyExpandImmediate: Boolean) /** Sets whether QS is expanded. */ @Deprecated("Use ShadeInteractor instead") fun setLegacyIsQsExpanded(legacyIsQsExpanded: Boolean) Loading Loading @@ -199,6 +215,13 @@ constructor(shadeExpansionStateManager: ShadeExpansionStateManager) : ShadeRepos @Deprecated("Use ShadeInteractor instead") override val legacyIsQsExpanded: StateFlow<Boolean> = _legacyIsQsExpanded.asStateFlow() private val _legacyExpandImmediate = MutableStateFlow(false) override val legacyExpandImmediate: StateFlow<Boolean> = _legacyExpandImmediate.asStateFlow() override fun setLegacyExpandImmediate(legacyExpandImmediate: Boolean) { _legacyExpandImmediate.value = legacyExpandImmediate } @Deprecated("Use ShadeInteractor instead") override fun setLegacyIsQsExpanded(legacyIsQsExpanded: Boolean) { _legacyIsQsExpanded.value = legacyIsQsExpanded Loading Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaHierarchyManager.kt +7 −10 Original line number Diff line number Diff line Loading @@ -46,8 +46,7 @@ import com.android.systemui.media.controls.pipeline.MediaDataManager import com.android.systemui.media.dream.MediaDreamComplication import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.res.R import com.android.systemui.shade.ShadeStateEvents import com.android.systemui.shade.ShadeStateEvents.ShadeStateEventsListener import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.CrossFadeHelper import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.SysuiStatusBarStateController Loading Loading @@ -103,7 +102,7 @@ constructor( private val communalInteractor: CommunalInteractor, configurationController: ConfigurationController, wakefulnessLifecycle: WakefulnessLifecycle, panelEventsEvents: ShadeStateEvents, shadeInteractor: ShadeInteractor, private val secureSettings: SecureSettings, @Main private val handler: Handler, @Application private val coroutineScope: CoroutineScope, Loading Loading @@ -545,14 +544,12 @@ constructor( mediaHosts.forEach { it?.updateViewVisibility() } } panelEventsEvents.addShadeStateEventsListener( object : ShadeStateEventsListener { override fun onExpandImmediateChanged(isExpandImmediateEnabled: Boolean) { coroutineScope.launch { shadeInteractor.isQsBypassingShade.collect { isExpandImmediateEnabled -> skipQqsOnExpansion = isExpandImmediateEnabled updateDesiredLocation() } } ) val settingsObserver: ContentObserver = object : ContentObserver(handler) { Loading
packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java +8 −15 Original line number Diff line number Diff line Loading @@ -207,12 +207,6 @@ public class QuickSettingsController implements Dumpable { /** Indicates QS is at its max height */ private boolean mFullyExpanded; /** * Determines if QS should be already expanded when expanding shade. * Used for split shade, two finger gesture as well as accessibility shortcut to QS. * It needs to be set when movement starts as it resets at the end of expansion/collapse. */ private boolean mExpandImmediate; private boolean mExpandedWhenExpandingStarted; private boolean mAnimatingHiddenFromCollapsed; private boolean mVisible; Loading Loading @@ -512,7 +506,7 @@ public class QuickSettingsController implements Dumpable { /** */ @VisibleForTesting boolean isExpandImmediate() { return mExpandImmediate; return mShadeRepository.getLegacyExpandImmediate().getValue(); } float getInitialTouchY() { Loading Loading @@ -602,7 +596,7 @@ public class QuickSettingsController implements Dumpable { // close the whole shade with one motion. Also this will be always true when closing // split shade as there QS are always expanded so every collapsing motion is motion from // expanded QS to closed panel return mExpandImmediate || (getExpanded() return isExpandImmediate() || (getExpanded() && !isTracking() && !isExpansionAnimating() && !mExpansionFromOverscroll); } Loading Loading @@ -792,7 +786,7 @@ public class QuickSettingsController implements Dumpable { && mBarState == SHADE) { Log.wtf(TAG, "setting QS height to 0 in split shade while shade is open(ing). " + "Value of mExpandImmediate = " + mExpandImmediate); + "Value of isExpandImmediate() = " + isExpandImmediate()); } int maxHeight = getMaxExpansionHeight(); height = Math.min(Math.max( Loading Loading @@ -941,10 +935,9 @@ public class QuickSettingsController implements Dumpable { } void setExpandImmediate(boolean expandImmediate) { if (expandImmediate != mExpandImmediate) { if (expandImmediate != isExpandImmediate()) { mShadeLog.logQsExpandImmediateChanged(expandImmediate); mExpandImmediate = expandImmediate; mShadeExpansionStateManager.notifyExpandImmediateChange(expandImmediate); mShadeRepository.setLegacyExpandImmediate(expandImmediate); } } Loading Loading @@ -996,7 +989,7 @@ public class QuickSettingsController implements Dumpable { public void updateExpansion() { if (mQs == null) return; final float squishiness; if ((mExpandImmediate || getExpanded()) && !mSplitShadeEnabled) { if ((isExpandImmediate() || getExpanded()) && !mSplitShadeEnabled) { squishiness = 1; } else if (mTransitioningToFullShadeProgress > 0.0f) { squishiness = mLockscreenShadeTransitionController.getQsSquishTransitionFraction(); Loading Loading @@ -2077,8 +2070,8 @@ public class QuickSettingsController implements Dumpable { ipw.println(getExpanded()); ipw.print("mFullyExpanded="); ipw.println(mFullyExpanded); ipw.print("mExpandImmediate="); ipw.println(mExpandImmediate); ipw.print("isExpandImmediate()="); ipw.println(isExpandImmediate()); ipw.print("mExpandedWhenExpandingStarted="); ipw.println(mExpandedWhenExpandingStarted); ipw.print("mAnimatingHiddenFromCollapsed="); Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt +0 −6 Original line number Diff line number Diff line Loading @@ -169,12 +169,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { } } fun notifyExpandImmediateChange(expandImmediateEnabled: Boolean) { for (cb in shadeStateEventsListeners) { cb.onExpandImmediateChanged(expandImmediateEnabled) } } private fun debugLog(msg: String) { if (!DEBUG) return Log.v(TAG, msg) Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeStateEvents.kt +0 −11 Original line number Diff line number Diff line Loading @@ -35,16 +35,5 @@ interface ShadeStateEvents { * Invoked when the notification panel starts or stops launching an [android.app.Activity]. */ fun onLaunchingActivityChanged(isLaunchingActivity: Boolean) {} /** * Invoked when the "expand immediate" attribute changes. * * An example of expanding immediately is when swiping down from the top with two fingers. * Instead of going to QQS, we immediately expand to full QS. * * Another example is when full QS is showing, and we swipe up from the bottom. Instead of * going to QQS, the panel fully collapses. */ fun onExpandImmediateChanged(isExpandImmediateEnabled: Boolean) {} } }
packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt +23 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,22 @@ interface ShadeRepository { */ @Deprecated("Use ShadeInteractor instead") val legacyIsQsExpanded: StateFlow<Boolean> /** * QuickSettingsController.mExpandImmediate as a flow. Indicates that Quick Settings is being * expanded without first expanding the Shade or Quick Settings is being collapsed without first * collapsing to shade, i.e. expanding with 2-finger swipe or collapsing by flinging from the * bottom of the screen. Replaced by ShadeInteractor.isQsBypassingShade. */ @Deprecated("Use ShadeInteractor.isQsBypassingShade instead") val legacyExpandImmediate: StateFlow<Boolean> /** * Sets whether Quick Settings is being expanded without first expanding the Shade or Quick * Settings is being collapsed without first collapsing to shade. */ @Deprecated("Use ShadeInteractor instead") fun setLegacyExpandImmediate(legacyExpandImmediate: Boolean) /** Sets whether QS is expanded. */ @Deprecated("Use ShadeInteractor instead") fun setLegacyIsQsExpanded(legacyIsQsExpanded: Boolean) Loading Loading @@ -199,6 +215,13 @@ constructor(shadeExpansionStateManager: ShadeExpansionStateManager) : ShadeRepos @Deprecated("Use ShadeInteractor instead") override val legacyIsQsExpanded: StateFlow<Boolean> = _legacyIsQsExpanded.asStateFlow() private val _legacyExpandImmediate = MutableStateFlow(false) override val legacyExpandImmediate: StateFlow<Boolean> = _legacyExpandImmediate.asStateFlow() override fun setLegacyExpandImmediate(legacyExpandImmediate: Boolean) { _legacyExpandImmediate.value = legacyExpandImmediate } @Deprecated("Use ShadeInteractor instead") override fun setLegacyIsQsExpanded(legacyIsQsExpanded: Boolean) { _legacyIsQsExpanded.value = legacyIsQsExpanded Loading