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

Commit 792493ea authored by Darrell Shi's avatar Darrell Shi
Browse files

Use aconfig flag for communal hub

Test: atest NotificationShadeWindowViewTest
Test: atest NotificationShadeWindowViewControllerTest
Bug: 304585752
Fix: 304585752
Change-Id: I9c0108132cc8c81298f9f5e547bc971082053ac4
parent 42d5498b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
package com.android.systemui.communal.data.repository

import com.android.systemui.FeatureFlags
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.flags.FeatureFlagsClassic
import com.android.systemui.flags.Flags
@@ -15,10 +16,11 @@ interface CommunalRepository {
class CommunalRepositoryImpl
@Inject
constructor(
    private val featureFlags: FeatureFlagsClassic,
    private val featureFlags: FeatureFlags,
    private val featureFlagsClassic: FeatureFlagsClassic,
) : CommunalRepository {
    override val isCommunalEnabled: Boolean
        get() =
            featureFlags.isEnabled(Flags.COMMUNAL_SERVICE_ENABLED) &&
                featureFlags.isEnabled(Flags.COMMUNAL_HUB)
            featureFlagsClassic.isEnabled(Flags.COMMUNAL_SERVICE_ENABLED) &&
                featureFlags.communalHub()
}
+6 −5
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import com.android.keyguard.KeyguardMessageAreaController;
import com.android.keyguard.LockIconViewController;
import com.android.keyguard.dagger.KeyguardBouncerComponent;
import com.android.systemui.Dumpable;
import com.android.systemui.FeatureFlags;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.bouncer.domain.interactor.BouncerMessageInteractor;
@@ -43,6 +42,7 @@ import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor;
import com.android.systemui.bouncer.ui.binder.KeyguardBouncerViewBinder;
import com.android.systemui.bouncer.ui.viewmodel.KeyguardBouncerViewModel;
import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.communal.data.repository.CommunalRepository;
import com.android.systemui.communal.ui.viewmodel.CommunalViewModel;
import com.android.systemui.compose.ComposeFacade;
import com.android.systemui.dagger.SysUISingleton;
@@ -107,8 +107,8 @@ public class NotificationShadeWindowViewController implements Dumpable {
    private final LockscreenHostedDreamGestureListener mLockscreenHostedDreamGestureListener;
    private final NotificationInsetsController mNotificationInsetsController;
    private final CommunalViewModel mCommunalViewModel;
    private final CommunalRepository mCommunalRepository;
    private final boolean mIsTrackpadCommonEnabled;
    private final FeatureFlags mFeatureFlags;
    private final FeatureFlagsClassic mFeatureFlagsClassic;
    private final SysUIKeyEventHandler mSysUIKeyEventHandler;
    private final PrimaryBouncerInteractor mPrimaryBouncerInteractor;
@@ -181,9 +181,9 @@ public class NotificationShadeWindowViewController implements Dumpable {
            KeyguardTransitionInteractor keyguardTransitionInteractor,
            PrimaryBouncerToGoneTransitionViewModel primaryBouncerToGoneTransitionViewModel,
            CommunalViewModel communalViewModel,
            CommunalRepository communalRepository,
            NotificationExpansionRepository notificationExpansionRepository,
            FeatureFlagsClassic featureFlagsClassic,
            FeatureFlags featureFlags,
            SystemClock clock,
            BouncerMessageInteractor bouncerMessageInteractor,
            BouncerLogger bouncerLogger,
@@ -214,8 +214,8 @@ public class NotificationShadeWindowViewController implements Dumpable {
        mLockscreenHostedDreamGestureListener = lockscreenHostedDreamGestureListener;
        mNotificationInsetsController = notificationInsetsController;
        mCommunalViewModel = communalViewModel;
        mCommunalRepository = communalRepository;
        mIsTrackpadCommonEnabled = featureFlagsClassic.isEnabled(TRACKPAD_GESTURE_COMMON);
        mFeatureFlags = featureFlags;
        mFeatureFlagsClassic = featureFlagsClassic;
        mSysUIKeyEventHandler = sysUIKeyEventHandler;
        mPrimaryBouncerInteractor = primaryBouncerInteractor;
@@ -575,7 +575,8 @@ public class NotificationShadeWindowViewController implements Dumpable {
     * The layout lives in {@link R.id.communal_ui_container}.
     */
    public void setupCommunalHubLayout() {
        if (!mFeatureFlags.communalHub() || !ComposeFacade.INSTANCE.isComposeAvailable()) {
        if (!mCommunalRepository.isCommunalEnabled()
                || !ComposeFacade.INSTANCE.isComposeAvailable()) {
            return;
        }

+6 −8
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.view.KeyEvent
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import androidx.core.view.contains
import androidx.test.filters.SmallTest
import com.android.keyguard.KeyguardMessageAreaController
import com.android.keyguard.KeyguardSecurityContainerController
@@ -31,8 +30,6 @@ import com.android.keyguard.KeyguardSecurityModel
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.LockIconViewController
import com.android.keyguard.dagger.KeyguardBouncerComponent
import com.android.systemui.FakeFeatureFlagsImpl
import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
import com.android.systemui.SysuiTestCase
import com.android.systemui.back.domain.interactor.BackActionInteractor
import com.android.systemui.biometrics.data.repository.FakeFacePropertyRepository
@@ -47,6 +44,7 @@ import com.android.systemui.bouncer.ui.BouncerView
import com.android.systemui.bouncer.ui.viewmodel.KeyguardBouncerViewModel
import com.android.systemui.classifier.FalsingCollector
import com.android.systemui.classifier.FalsingCollectorFake
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.ui.viewmodel.CommunalViewModel
import com.android.systemui.compose.ComposeFacade.isComposeAvailable
import com.android.systemui.dock.DockManager
@@ -150,6 +148,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    private lateinit var mLockscreenHostedDreamGestureListener: LockscreenHostedDreamGestureListener
    @Mock private lateinit var notificationInsetsController: NotificationInsetsController
    @Mock private lateinit var mCommunalViewModel: CommunalViewModel
    private lateinit var mCommunalRepository: FakeCommunalRepository
    @Mock lateinit var keyguardBouncerComponentFactory: KeyguardBouncerComponent.Factory
    @Mock lateinit var keyguardBouncerComponent: KeyguardBouncerComponent
    @Mock lateinit var keyguardSecurityContainerController: KeyguardSecurityContainerController
@@ -175,7 +174,6 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    private lateinit var testScope: TestScope

    private lateinit var featureFlagsClassic: FakeFeatureFlagsClassic
    private lateinit var featureFlags: FakeFeatureFlagsImpl

    @Before
    fun setUp() {
@@ -199,7 +197,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
        featureFlagsClassic.set(MIGRATE_NSSL, false)
        featureFlagsClassic.set(ALTERNATE_BOUNCER_VIEW, false)

        featureFlags = FakeFeatureFlagsImpl()
        mCommunalRepository = FakeCommunalRepository()

        testScope = TestScope()
        fakeClock = FakeSystemClock()
@@ -235,9 +233,9 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
                keyguardTransitionInteractor,
                primaryBouncerToGoneTransitionViewModel,
                mCommunalViewModel,
                mCommunalRepository,
                notificationExpansionRepository,
                featureFlagsClassic,
                featureFlags,
                fakeClock,
                BouncerMessageInteractor(
                    repository = BouncerMessageRepositoryImpl(),
@@ -499,7 +497,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
            return
        }

        featureFlags.setFlag(FLAG_COMMUNAL_HUB, true)
        mCommunalRepository.setIsCommunalEnabled(true)

        val mockCommunalPlaceholder = mock(View::class.java)
        val fakeViewIndex = 20
@@ -520,7 +518,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
            return
        }

        featureFlags.setFlag(FLAG_COMMUNAL_HUB, false)
        mCommunalRepository.setIsCommunalEnabled(false)

        val mockCommunalPlaceholder = mock(View::class.java)
        val fakeViewIndex = 20
+5 −2
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import com.android.keyguard.KeyguardSecurityModel
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.LockIconViewController
import com.android.keyguard.dagger.KeyguardBouncerComponent
import com.android.systemui.FakeFeatureFlagsImpl
import com.android.systemui.SysuiTestCase
import com.android.systemui.back.domain.interactor.BackActionInteractor
import com.android.systemui.biometrics.data.repository.FakeFacePropertyRepository
@@ -43,6 +42,7 @@ import com.android.systemui.bouncer.ui.BouncerView
import com.android.systemui.bouncer.ui.viewmodel.KeyguardBouncerViewModel
import com.android.systemui.classifier.FalsingCollector
import com.android.systemui.classifier.FalsingCollectorFake
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.ui.viewmodel.CommunalViewModel
import com.android.systemui.dock.DockManager
import com.android.systemui.dump.DumpManager
@@ -145,6 +145,7 @@ class NotificationShadeWindowViewTest : SysuiTestCase() {
        Optional<UnfoldTransitionProgressProvider>
    @Mock private lateinit var notificationInsetsController: NotificationInsetsController
    @Mock private lateinit var mCommunalViewModel: CommunalViewModel
    private lateinit var mCommunalRepository: FakeCommunalRepository
    @Mock private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor
    @Mock lateinit var primaryBouncerInteractor: PrimaryBouncerInteractor
    @Mock lateinit var alternateBouncerInteractor: AlternateBouncerInteractor
@@ -181,6 +182,8 @@ class NotificationShadeWindowViewTest : SysuiTestCase() {
        whenever(keyguardTransitionInteractor.lockscreenToDreamingTransition)
            .thenReturn(emptyFlow())

        mCommunalRepository = FakeCommunalRepository()

        val featureFlags = FakeFeatureFlags()
        featureFlags.set(Flags.TRACKPAD_GESTURE_COMMON, true)
        featureFlags.set(Flags.TRACKPAD_GESTURE_FEATURES, false)
@@ -222,9 +225,9 @@ class NotificationShadeWindowViewTest : SysuiTestCase() {
                keyguardTransitionInteractor,
                primaryBouncerToGoneTransitionViewModel,
                mCommunalViewModel,
                mCommunalRepository,
                NotificationExpansionRepository(),
                featureFlags,
                FakeFeatureFlagsImpl(),
                FakeSystemClock(),
                BouncerMessageInteractor(
                    repository = BouncerMessageRepositoryImpl(),