Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75a80860 authored by Justin Weir's avatar Justin Weir Committed by Android (Google) Code Review
Browse files

Merge "Convert onExpandImmediateChanged to a flow" into main

parents bf51c511 e89b3ae1
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -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
@@ -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,
@@ -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) {
+8 −15
Original line number Diff line number Diff line
@@ -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;
@@ -512,7 +506,7 @@ public class QuickSettingsController implements Dumpable {
    /** */
    @VisibleForTesting
    boolean isExpandImmediate() {
        return mExpandImmediate;
        return mShadeRepository.getLegacyExpandImmediate().getValue();
    }

    float getInitialTouchY() {
@@ -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);
    }
@@ -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(
@@ -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);
        }
    }

@@ -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();
@@ -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=");
+0 −6
Original line number Diff line number Diff line
@@ -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)
+0 −11
Original line number Diff line number Diff line
@@ -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) {}
    }
}
+23 −0
Original line number Diff line number Diff line
@@ -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)
@@ -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