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

Commit 9dd18822 authored by Darrell Shi's avatar Darrell Shi Committed by Android (Google) Code Review
Browse files

Merge "Use aconfig flag for communal hub" into main

parents 75e0dbb1 792493ea
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(),