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

Commit 17a8ecdf authored by Beverly's avatar Beverly
Browse files

Add udfpsTransitionProgress and qsExpansion to the ShadeRepository

Test: atest ShadeRepositoryImplTest
Bug: 278719514
Change-Id: I1662065f4ddf1de517df7b1af590b59eedcc535b
parent 4db7d7ac
Loading
Loading
Loading
Loading
+6 −1
Original line number 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.qs.QS;
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.shared.system.QuickStepContract;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
@@ -136,6 +137,7 @@ public class QuickSettingsController {
    private final KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
    private final FeatureFlags mFeatureFlags;
    private final InteractionJankMonitor mInteractionJankMonitor;
    private final ShadeRepository mShadeRepository;
    private final FalsingManager mFalsingManager;
    private final AccessibilityManager mAccessibilityManager;
    private final MetricsLogger mMetricsLogger;
@@ -321,7 +323,8 @@ public class QuickSettingsController {
            FeatureFlags featureFlags,
            InteractionJankMonitor interactionJankMonitor,
            ShadeLogger shadeLog,
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor,
            ShadeRepository shadeRepository
    ) {
        mPanelViewControllerLazy = panelViewControllerLazy;
        mPanelView = panelView;
@@ -363,6 +366,7 @@ public class QuickSettingsController {
        mKeyguardFaceAuthInteractor = keyguardFaceAuthInteractor;
        mFeatureFlags = featureFlags;
        mInteractionJankMonitor = interactionJankMonitor;
        mShadeRepository = shadeRepository;

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

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

        // TODO (b/265193930): remove dependency on NPVC
        float shadeExpandedFraction = mBarState == KEYGUARD
+26 −0
Original line number Diff line number Diff line
@@ -25,11 +25,23 @@ import com.android.systemui.shade.domain.model.ShadeModel
import javax.inject.Inject
import kotlinx.coroutines.channels.awaitClose
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

interface ShadeRepository {
    /** ShadeModel information regarding shade expansion events */
    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 */
@@ -62,6 +74,20 @@ constructor(shadeExpansionStateManager: ShadeExpansionStateManager) : ShadeRepos
            }
            .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 {
        private const val TAG = "ShadeRepository"
    }
+3 −0
Original line number 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.statusbar.StatusBarStateController
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.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.row.ExpandableView
@@ -74,6 +75,7 @@ class LockscreenShadeTransitionController @Inject constructor(
    falsingManager: FalsingManager,
    dumpManager: DumpManager,
    qsTransitionControllerFactory: LockscreenShadeQsTransitionController.Factory,
    private val shadeRepository: ShadeRepository,
) : Dumpable {
    private var pulseHeight: Float = 0f
    @get:VisibleForTesting
@@ -449,6 +451,7 @@ class LockscreenShadeTransitionController @Inject constructor(
        }

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

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

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

+5 −3
Original line number 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.qs.QSFragment;
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.statusbar.LockscreenShadeTransitionController;
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.policy.KeyguardStateController;

import dagger.Lazy;

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

import java.util.List;

import dagger.Lazy;

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

        mFragmentListener = mQsController.getQsFragmentListener();
Loading