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

Commit c08e4d0a authored by Beverly Tai's avatar Beverly Tai Committed by Automerger Merge Worker
Browse files

Merge "Add udfpsTransitionProgress and qsExpansion to the ShadeRepository"...

Merge "Add udfpsTransitionProgress and qsExpansion to the ShadeRepository" into udc-dev am: 741ed97a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22836861



Change-Id: I9a057abe86598f6c5bcc16cc993745b3654860c3
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents cde3c677 741ed97a
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -70,6 +70,7 @@ import com.android.systemui.media.controls.ui.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.screenrecord.RecordingController;
import com.android.systemui.screenrecord.RecordingController;
import com.android.systemui.shade.data.repository.ShadeRepository;
import com.android.systemui.shade.transition.ShadeTransitionController;
import com.android.systemui.shade.transition.ShadeTransitionController;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
@@ -136,6 +137,7 @@ public class QuickSettingsController {
    private final KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
    private final KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
    private final FeatureFlags mFeatureFlags;
    private final FeatureFlags mFeatureFlags;
    private final InteractionJankMonitor mInteractionJankMonitor;
    private final InteractionJankMonitor mInteractionJankMonitor;
    private final ShadeRepository mShadeRepository;
    private final FalsingManager mFalsingManager;
    private final FalsingManager mFalsingManager;
    private final AccessibilityManager mAccessibilityManager;
    private final AccessibilityManager mAccessibilityManager;
    private final MetricsLogger mMetricsLogger;
    private final MetricsLogger mMetricsLogger;
@@ -321,7 +323,8 @@ public class QuickSettingsController {
            FeatureFlags featureFlags,
            FeatureFlags featureFlags,
            InteractionJankMonitor interactionJankMonitor,
            InteractionJankMonitor interactionJankMonitor,
            ShadeLogger shadeLog,
            ShadeLogger shadeLog,
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor,
            ShadeRepository shadeRepository
    ) {
    ) {
        mPanelViewControllerLazy = panelViewControllerLazy;
        mPanelViewControllerLazy = panelViewControllerLazy;
        mPanelView = panelView;
        mPanelView = panelView;
@@ -363,6 +366,7 @@ public class QuickSettingsController {
        mKeyguardFaceAuthInteractor = keyguardFaceAuthInteractor;
        mKeyguardFaceAuthInteractor = keyguardFaceAuthInteractor;
        mFeatureFlags = featureFlags;
        mFeatureFlags = featureFlags;
        mInteractionJankMonitor = interactionJankMonitor;
        mInteractionJankMonitor = interactionJankMonitor;
        mShadeRepository = shadeRepository;


        mLockscreenShadeTransitionController.addCallback(new LockscreenShadeTransitionCallback());
        mLockscreenShadeTransitionController.addCallback(new LockscreenShadeTransitionCallback());
    }
    }
@@ -1001,6 +1005,7 @@ public class QuickSettingsController {


        mDepthController.setQsPanelExpansion(qsExpansionFraction);
        mDepthController.setQsPanelExpansion(qsExpansionFraction);
        mStatusBarKeyguardViewManager.setQsExpansion(qsExpansionFraction);
        mStatusBarKeyguardViewManager.setQsExpansion(qsExpansionFraction);
        mShadeRepository.setQsExpansion(qsExpansionFraction);


        // TODO (b/265193930): remove dependency on NPVC
        // TODO (b/265193930): remove dependency on NPVC
        float shadeExpandedFraction = mBarState == KEYGUARD
        float shadeExpandedFraction = mBarState == KEYGUARD
+26 −0
Original line number Original line Diff line number Diff line
@@ -25,11 +25,23 @@ import com.android.systemui.shade.domain.model.ShadeModel
import javax.inject.Inject
import javax.inject.Inject
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.distinctUntilChanged


interface ShadeRepository {
interface ShadeRepository {
    /** ShadeModel information regarding shade expansion events */
    /** ShadeModel information regarding shade expansion events */
    val shadeModel: Flow<ShadeModel>
    val shadeModel: Flow<ShadeModel>

    /** Amount qs has expanded. Quick Settings can be expanded without the full shade expansion. */
    val qsExpansion: StateFlow<Float>

    /** Amount shade has expanded with regard to the UDFPS location */
    val udfpsTransitionToFullShadeProgress: StateFlow<Float>

    fun setQsExpansion(qsExpansion: Float)
    fun setUdfpsTransitionToFullShadeProgress(progress: Float)
}
}


/** Business logic for shade interactions */
/** Business logic for shade interactions */
@@ -62,6 +74,20 @@ constructor(shadeExpansionStateManager: ShadeExpansionStateManager) : ShadeRepos
            }
            }
            .distinctUntilChanged()
            .distinctUntilChanged()


    private val _qsExpansion = MutableStateFlow(0f)
    override val qsExpansion: StateFlow<Float> = _qsExpansion.asStateFlow()

    private var _udfpsTransitionToFullShadeProgress = MutableStateFlow(0f)
    override val udfpsTransitionToFullShadeProgress: StateFlow<Float> =
        _udfpsTransitionToFullShadeProgress.asStateFlow()
    override fun setQsExpansion(qsExpansion: Float) {
        _qsExpansion.value = qsExpansion
    }

    override fun setUdfpsTransitionToFullShadeProgress(progress: Float) {
        _udfpsTransitionToFullShadeProgress.value = progress
    }

    companion object {
    companion object {
        private const val TAG = "ShadeRepository"
        private const val TAG = "ShadeRepository"
    }
    }
+3 −0
Original line number Original line Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.qs.QS
import com.android.systemui.plugins.qs.QS
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.shade.ShadeViewController
import com.android.systemui.shade.ShadeViewController
import com.android.systemui.shade.data.repository.ShadeRepository
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.row.ExpandableView
import com.android.systemui.statusbar.notification.row.ExpandableView
@@ -74,6 +75,7 @@ class LockscreenShadeTransitionController @Inject constructor(
    falsingManager: FalsingManager,
    falsingManager: FalsingManager,
    dumpManager: DumpManager,
    dumpManager: DumpManager,
    qsTransitionControllerFactory: LockscreenShadeQsTransitionController.Factory,
    qsTransitionControllerFactory: LockscreenShadeQsTransitionController.Factory,
    private val shadeRepository: ShadeRepository,
) : Dumpable {
) : Dumpable {
    private var pulseHeight: Float = 0f
    private var pulseHeight: Float = 0f
    @get:VisibleForTesting
    @get:VisibleForTesting
@@ -449,6 +451,7 @@ class LockscreenShadeTransitionController @Inject constructor(
        }
        }


        val udfpsProgress = MathUtils.saturate(dragDownAmount / udfpsTransitionDistance)
        val udfpsProgress = MathUtils.saturate(dragDownAmount / udfpsTransitionDistance)
        shadeRepository.setUdfpsTransitionToFullShadeProgress(udfpsProgress)
        udfpsKeyguardViewController?.setTransitionToFullShadeProgress(udfpsProgress)
        udfpsKeyguardViewController?.setTransitionToFullShadeProgress(udfpsProgress)


        val statusBarProgress = MathUtils.saturate(dragDownAmount / statusBarTransitionDistance)
        val statusBarProgress = MathUtils.saturate(dragDownAmount / statusBarTransitionDistance)
+4 −1
Original line number Original line Diff line number Diff line
@@ -115,6 +115,7 @@ import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.qs.QSFragment;
import com.android.systemui.qs.QSFragment;
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.transition.ShadeTransitionController;
import com.android.systemui.shade.transition.ShadeTransitionController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.KeyguardIndicationController;
@@ -304,6 +305,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
            mEmptySpaceClickListenerCaptor;
            mEmptySpaceClickListenerCaptor;
    @Mock protected ActivityStarter mActivityStarter;
    @Mock protected ActivityStarter mActivityStarter;
    @Mock protected KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
    @Mock protected KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
    @Mock protected ShadeRepository mShadeRepository;


    protected final int mMaxUdfpsBurnInOffsetY = 5;
    protected final int mMaxUdfpsBurnInOffsetY = 5;
    protected KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor;
    protected KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor;
@@ -672,7 +674,8 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
                mFeatureFlags,
                mFeatureFlags,
                mInteractionJankMonitor,
                mInteractionJankMonitor,
                mShadeLog,
                mShadeLog,
                mKeyguardFaceAuthInteractor
                mKeyguardFaceAuthInteractor,
                mShadeRepository
        );
        );
    }
    }


+5 −3
Original line number Original line Diff line number Diff line
@@ -69,6 +69,7 @@ import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.qs.QSFragment;
import com.android.systemui.qs.QSFragment;
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.transition.ShadeTransitionController;
import com.android.systemui.shade.transition.ShadeTransitionController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -88,6 +89,8 @@ import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.KeyguardStateController;


import dagger.Lazy;

import org.junit.After;
import org.junit.After;
import org.junit.Before;
import org.junit.Before;
import org.junit.Test;
import org.junit.Test;
@@ -98,8 +101,6 @@ import org.mockito.MockitoAnnotations;


import java.util.List;
import java.util.List;


import dagger.Lazy;

@SmallTest
@SmallTest
@RunWith(AndroidTestingRunner.class)
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper(setAsMainLooper = true)
@TestableLooper.RunWithLooper(setAsMainLooper = true)
@@ -241,7 +242,8 @@ public class QuickSettingsControllerTest extends SysuiTestCase {
                mFeatureFlags,
                mFeatureFlags,
                mInteractionJankMonitor,
                mInteractionJankMonitor,
                mShadeLogger,
                mShadeLogger,
                mock(KeyguardFaceAuthInteractor.class)
                mock(KeyguardFaceAuthInteractor.class),
                mock(ShadeRepository.class)
        );
        );


        mFragmentListener = mQsController.getQsFragmentListener();
        mFragmentListener = mQsController.getQsFragmentListener();
Loading