diff options
| author | 2024-11-12 14:02:31 -0800 | |
|---|---|---|
| committer | 2024-11-13 14:49:24 -0800 | |
| commit | a707d1d58733cd2f0b648f70868feb5fed385cdd (patch) | |
| tree | 11609cd9d1c753be9519614b6670e0b94a5416e8 | |
| parent | 18be59f901a098d43b2f28b9fc2142f91eb5f9a5 (diff) | |
[flexiglass] DisableFlagsInteractor
Introduces an interactor and hides the repository for "disable flags".
Bug: 371545613
Test: not tested, pure refactor
Flag: com.android.systemui.scene_container
Change-Id: Ief43fe5653e396ddf7c9cbd52abb95592574ebb8
23 files changed, 124 insertions, 73 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelTest.kt index b72668bf5be6..921a8a610c37 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelTest.kt @@ -41,8 +41,8 @@ import com.android.systemui.qs.panels.ui.viewmodel.setConfigurationForMediaInRow import com.android.systemui.res.R import com.android.systemui.shade.largeScreenHeaderHelper import com.android.systemui.statusbar.StatusBarState -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.statusbar.sysuiStatusBarStateController import com.android.systemui.util.animation.DisappearParameters import com.google.common.truth.Truth.assertThat diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java index 01c17bd6285c..94a19c80dc00 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java @@ -148,7 +148,6 @@ import com.android.systemui.statusbar.QsFrameTranslateController; import com.android.systemui.statusbar.StatusBarStateControllerImpl; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.VibratorHelper; -import com.android.systemui.statusbar.disableflags.data.repository.FakeDisableFlagsRepository; import com.android.systemui.statusbar.notification.ConversationNotificationManager; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.HeadsUpTouchHelper; @@ -428,7 +427,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { mShadeInteractor = new ShadeInteractorImpl( mTestScope.getBackgroundScope(), mKosmos.getDeviceProvisioningInteractor(), - new FakeDisableFlagsRepository(), + mKosmos.getDisableFlagsInteractor(), mDozeParameters, mFakeKeyguardRepository, mKeyguardTransitionInteractor, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java index 443595dbdf77..ef132d5a4989 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java @@ -149,7 +149,7 @@ public class QuickSettingsControllerImplBaseTest extends SysuiTestCase { @Mock protected LargeScreenHeaderHelper mLargeScreenHeaderHelper; protected FakeDisableFlagsRepository mDisableFlagsRepository = - new FakeDisableFlagsRepository(); + mKosmos.getFakeDisableFlagsRepository(); protected FakeKeyguardRepository mKeyguardRepository = new FakeKeyguardRepository(); protected FakeShadeRepository mShadeRepository = new FakeShadeRepository(); @@ -185,7 +185,7 @@ public class QuickSettingsControllerImplBaseTest extends SysuiTestCase { mShadeInteractor = new ShadeInteractorImpl( mTestScope.getBackgroundScope(), mKosmos.getDeviceProvisioningInteractor(), - mDisableFlagsRepository, + mKosmos.getDisableFlagsInteractor(), mDozeParameters, mKeyguardRepository, keyguardTransitionInteractor, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplWithCoroutinesTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplWithCoroutinesTest.kt index 46961d4db0f6..ee3f8016c410 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplWithCoroutinesTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/QuickSettingsControllerImplWithCoroutinesTest.kt @@ -19,7 +19,7 @@ package com.android.systemui.shade import android.app.StatusBarManager import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.cancelChildren @@ -61,7 +61,7 @@ class QuickSettingsControllerImplWithCoroutinesTest : QuickSettingsControllerImp mDisableFlagsRepository.disableFlags.value = DisableFlagsModel( StatusBarManager.DISABLE_NONE, - StatusBarManager.DISABLE2_QUICK_SETTINGS + StatusBarManager.DISABLE2_QUICK_SETTINGS, ) runCurrent() @@ -76,7 +76,7 @@ class QuickSettingsControllerImplWithCoroutinesTest : QuickSettingsControllerImp mDisableFlagsRepository.disableFlags.value = DisableFlagsModel( StatusBarManager.DISABLE_NONE, - StatusBarManager.DISABLE2_NOTIFICATION_SHADE + StatusBarManager.DISABLE2_NOTIFICATION_SHADE, ) runCurrent() diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImplTest.kt index 19ac0cf40160..da652c4e1b5e 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImplTest.kt @@ -37,8 +37,8 @@ import com.android.systemui.power.data.repository.fakePowerRepository import com.android.systemui.power.shared.model.WakeSleepReason import com.android.systemui.power.shared.model.WakefulnessState import com.android.systemui.shade.shadeTestUtil -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.statusbar.phone.dozeParameters import com.android.systemui.statusbar.policy.data.repository.fakeDeviceProvisioningRepository import com.android.systemui.statusbar.policy.data.repository.fakeUserSetupRepository diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepositoryTest.kt index 907c68440b55..cd078211f934 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepositoryTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepositoryTest.kt @@ -32,7 +32,7 @@ import com.android.systemui.log.LogBufferFactory import com.android.systemui.res.R import com.android.systemui.statusbar.CommandQueue import com.android.systemui.statusbar.disableflags.DisableFlagsLogger -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractorTest.kt index 79ff4be253e1..7eac7e86e372 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractorTest.kt @@ -21,8 +21,8 @@ import com.android.systemui.SysUITestComponent import com.android.systemui.SysUITestModule import com.android.systemui.SysuiTestCase import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel import com.android.systemui.statusbar.disableflags.data.repository.FakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.google.common.truth.Truth.assertThat import dagger.BindsInstance import dagger.Component @@ -51,10 +51,7 @@ class NotificationAlertsInteractorTest : SysuiTestCase() { fun disableFlags_notifAlertsNotDisabled_notifAlertsEnabledTrue() = with(testComponent) { disableFlags.disableFlags.value = - DisableFlagsModel( - StatusBarManager.DISABLE_NONE, - StatusBarManager.DISABLE2_NONE, - ) + DisableFlagsModel(StatusBarManager.DISABLE_NONE, StatusBarManager.DISABLE2_NONE) assertThat(underTest.areNotificationAlertsEnabled()).isTrue() } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorTest.kt index 46f822aae7b8..db24d4bc8070 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorTest.kt @@ -21,18 +21,18 @@ import android.app.StatusBarManager.DISABLE_CLOCK import android.app.StatusBarManager.DISABLE_NONE import android.app.StatusBarManager.DISABLE_NOTIFICATION_ICONS import android.app.StatusBarManager.DISABLE_SYSTEM_INFO -import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testScope -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import kotlin.test.Test import kotlinx.coroutines.test.runTest -import org.junit.runner.RunWith; +import org.junit.runner.RunWith @SmallTest @RunWith(AndroidJUnit4::class) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt index c4d2569bba89..b9cdd06de5a2 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt @@ -58,8 +58,8 @@ import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsVie import com.android.systemui.statusbar.data.model.StatusBarMode import com.android.systemui.statusbar.data.repository.FakeStatusBarModeRepository.Companion.DISPLAY_ID import com.android.systemui.statusbar.data.repository.fakeStatusBarModeRepository -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.statusbar.events.data.repository.systemStatusEventAnimationRepository import com.android.systemui.statusbar.events.shared.model.SystemEventAnimationState.AnimatingIn import com.android.systemui.statusbar.events.shared.model.SystemEventAnimationState.AnimatingOut diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt index 9029563b6321..e3de6d5152e4 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt @@ -62,6 +62,7 @@ import com.android.systemui.shade.transition.LargeScreenShadeInterpolator import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.SysuiStatusBarStateController import com.android.systemui.statusbar.disableflags.data.repository.DisableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.DisableFlagsInteractor import com.android.systemui.util.LargeScreenUtils import com.android.systemui.util.asIndenting import com.android.systemui.util.kotlin.emitOnStart @@ -93,7 +94,7 @@ constructor( private val footerActionsController: FooterActionsController, private val sysuiStatusBarStateController: SysuiStatusBarStateController, deviceEntryInteractor: DeviceEntryInteractor, - disableFlagsRepository: DisableFlagsRepository, + DisableFlagsInteractor: DisableFlagsInteractor, keyguardTransitionInteractor: KeyguardTransitionInteractor, private val largeScreenShadeInterpolator: LargeScreenShadeInterpolator, @ShadeDisplayAware configurationInteractor: ConfigurationInteractor, @@ -182,8 +183,8 @@ constructor( val isQsEnabled by hydrator.hydratedStateOf( traceName = "isQsEnabled", - initialValue = disableFlagsRepository.disableFlags.value.isQuickSettingsEnabled(), - source = disableFlagsRepository.disableFlags.map { it.isQuickSettingsEnabled() }, + initialValue = DisableFlagsInteractor.disableFlags.value.isQuickSettingsEnabled(), + source = DisableFlagsInteractor.disableFlags.map { it.isQuickSettingsEnabled() }, ) var isInSplitShade by mutableStateOf(false) diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt index 460bfbbcb3ab..a653ca2f80a9 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt @@ -25,7 +25,7 @@ import com.android.systemui.keyguard.shared.model.DozeStateModel import com.android.systemui.keyguard.shared.model.Edge import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.power.domain.interactor.PowerInteractor -import com.android.systemui.statusbar.disableflags.data.repository.DisableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.DisableFlagsInteractor import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.policy.data.repository.UserSetupRepository import com.android.systemui.statusbar.policy.domain.interactor.DeviceProvisioningInteractor @@ -47,7 +47,7 @@ class ShadeInteractorImpl constructor( @Application val scope: CoroutineScope, deviceProvisioningInteractor: DeviceProvisioningInteractor, - disableFlagsRepository: DisableFlagsRepository, + disableFlagsInteractor: DisableFlagsInteractor, dozeParams: DozeParameters, keyguardRepository: KeyguardRepository, keyguardTransitionInteractor: KeyguardTransitionInteractor, @@ -61,13 +61,13 @@ constructor( BaseShadeInteractor by baseShadeInteractor, ShadeModeInteractor by shadeModeInteractor { override val isShadeEnabled: StateFlow<Boolean> = - disableFlagsRepository.disableFlags + disableFlagsInteractor.disableFlags .map { it.isShadeEnabled() } .flowName("isShadeEnabled") .stateIn(scope, SharingStarted.Eagerly, initialValue = false) override val isQsEnabled: StateFlow<Boolean> = - disableFlagsRepository.disableFlags + disableFlagsInteractor.disableFlags .map { it.isQuickSettingsEnabled() } .flowName("isQsEnabled") .stateIn(scope, SharingStarted.Eagerly, initialValue = false) @@ -114,7 +114,7 @@ constructor( override val isExpandToQsEnabled: Flow<Boolean> = combine( - disableFlagsRepository.disableFlags, + disableFlagsInteractor.disableFlags, isShadeEnabled, keyguardRepository.isDozing, userSetupRepository.isUserSetUp, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepository.kt index 9004e5d12663..aeeb0427d24b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/data/repository/DisableFlagsRepository.kt @@ -22,7 +22,7 @@ import com.android.systemui.log.LogBuffer import com.android.systemui.log.dagger.DisableFlagsRepositoryLog import com.android.systemui.statusbar.CommandQueue import com.android.systemui.statusbar.disableflags.DisableFlagsLogger -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler import javax.inject.Inject import kotlinx.coroutines.CoroutineScope diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/domain/interactor/DisableFlagsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/domain/interactor/DisableFlagsInteractor.kt new file mode 100644 index 000000000000..4f1b97841fde --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/domain/interactor/DisableFlagsInteractor.kt @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.disableflags.domain.interactor + +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.statusbar.disableflags.data.repository.DisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel +import javax.inject.Inject +import kotlinx.coroutines.flow.StateFlow + +@SysUISingleton +class DisableFlagsInteractor @Inject constructor(repository: DisableFlagsRepository) { + /** A model of the disable flags last received from [IStatusBar]. */ + val disableFlags: StateFlow<DisableFlagsModel> = repository.disableFlags +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/data/model/DisableFlagsModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/shared/model/DisableFlagsModel.kt index ce25cf5895c1..6507237cfc24 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/data/model/DisableFlagsModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/disableflags/shared/model/DisableFlagsModel.kt @@ -1,18 +1,20 @@ /* - * Copyright (C) 2023 The Android Open Source Project + * Copyright (C) 2024 The Android Open Source Project * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ -package com.android.systemui.statusbar.disableflags.data.model +package com.android.systemui.statusbar.disableflags.shared.model import android.app.StatusBarManager.DISABLE2_NONE import android.app.StatusBarManager.DISABLE2_NOTIFICATION_SHADE diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractor.kt index 8079ce540e1b..4ea597a12ebf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/NotificationAlertsInteractor.kt @@ -17,17 +17,15 @@ package com.android.systemui.statusbar.notification.domain.interactor import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.statusbar.disableflags.data.repository.DisableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.DisableFlagsInteractor import javax.inject.Inject /** Interactor for notification alerting. */ @SysUISingleton class NotificationAlertsInteractor @Inject -constructor( - private val disableFlagsRepository: DisableFlagsRepository, -) { +constructor(private val disableFlagsInteractor: DisableFlagsInteractor) { /** Returns true if notification alerts are allowed. */ fun areNotificationAlertsEnabled(): Boolean = - disableFlagsRepository.disableFlags.value.areNotificationAlertsEnabled() + disableFlagsInteractor.disableFlags.value.areNotificationAlertsEnabled() } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractor.kt index 9164da721e3a..b2a0272c06d1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractor.kt @@ -17,7 +17,7 @@ package com.android.systemui.statusbar.pipeline.shared.domain.interactor import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.statusbar.disableflags.data.repository.DisableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.DisableFlagsInteractor import com.android.systemui.statusbar.pipeline.shared.domain.model.StatusBarDisableFlagsVisibilityModel import javax.inject.Inject import kotlinx.coroutines.flow.Flow @@ -30,13 +30,13 @@ import kotlinx.coroutines.flow.map @SysUISingleton class CollapsedStatusBarInteractor @Inject -constructor(disableFlagsRepository: DisableFlagsRepository) { +constructor(DisableFlagsInteractor: DisableFlagsInteractor) { /** * The visibilities of various status bar child views, based only on the information we received * from disable flags. */ val visibilityViaDisableFlags: Flow<StatusBarDisableFlagsVisibilityModel> = - disableFlagsRepository.disableFlags.map { + DisableFlagsInteractor.disableFlags.map { StatusBarDisableFlagsVisibilityModel( isClockAllowed = it.isClockEnabled, areNotificationIconsAllowed = it.areNotificationIconsEnabled, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt index a8618eb544d4..3a46d038f946 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt @@ -20,9 +20,8 @@ import com.android.systemui.res.R import com.android.systemui.shade.data.repository.shadeRepository import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractor import com.android.systemui.shade.domain.interactor.shadeInteractor -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel -import com.android.systemui.statusbar.disableflags.data.repository.disableFlagsRepository import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.NotificationTestHelper import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout @@ -31,7 +30,6 @@ import com.android.systemui.statusbar.phone.CentralSurfaces import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.ScrimController import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController -import com.android.systemui.statusbar.policy.configurationController import com.android.systemui.statusbar.policy.fakeConfigurationController import com.android.systemui.testKosmos import com.android.systemui.util.mockito.any @@ -144,7 +142,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { context = context, configurationController = configurationController, dumpManager = mock(), - splitShadeStateController = ResourcesSplitShadeStateController() + splitShadeStateController = ResourcesSplitShadeStateController(), ), keyguardTransitionControllerFactory = { notificationPanelController -> LockscreenShadeKeyguardTransitionController( @@ -153,7 +151,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { context = context, configurationController = configurationController, dumpManager = mock(), - splitShadeStateController = ResourcesSplitShadeStateController() + splitShadeStateController = ResourcesSplitShadeStateController(), ) }, depthController = depthController, @@ -171,7 +169,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { splitShadeStateController = ResourcesSplitShadeStateController(), shadeLockscreenInteractorLazy = { shadeLockscreenInteractor }, naturalScrollingSettingObserver = naturalScrollingSettingObserver, - lazyQSSceneAdapter = { qsSceneAdapter } + lazyQSSceneAdapter = { qsSceneAdapter }, ) transitionController.addCallback(transitionControllerCallback) @@ -229,7 +227,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { verify(statusbarStateController).setState(StatusBarState.SHADE_LOCKED) assertFalse( "Waking to shade locked when not dozing", - transitionController.isWakingToShadeLocked + transitionController.isWakingToShadeLocked, ) } @@ -247,9 +245,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { fun testDontGoWhenShadeDisabled() = testScope.runTest { disableFlagsRepository.disableFlags.value = - DisableFlagsModel( - disable2 = DISABLE2_NOTIFICATION_SHADE, - ) + DisableFlagsModel(disable2 = DISABLE2_NOTIFICATION_SHADE) testScope.runCurrent() transitionController.goToLockedShade(null) verify(statusbarStateController, never()).setState(anyInt()) @@ -454,7 +450,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { val distance = 10 context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_scrim_transition_distance, - distance + distance, ) configurationController.notifyConfigurationChanged() @@ -463,7 +459,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { verify(scrimController) .transitionToFullShadeProgress( progress = eq(0.5f), - lockScreenNotificationsProgress = anyFloat() + lockScreenNotificationsProgress = anyFloat(), ) } @@ -474,11 +470,11 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { val delay = 10 context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_notifications_scrim_transition_distance, - distance + distance, ) context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_notifications_scrim_transition_delay, - delay + delay, ) configurationController.notifyConfigurationChanged() @@ -487,7 +483,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { verify(scrimController) .transitionToFullShadeProgress( progress = anyFloat(), - lockScreenNotificationsProgress = eq(0.1f) + lockScreenNotificationsProgress = eq(0.1f), ) } @@ -498,11 +494,11 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { val delay = 50 context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_notifications_scrim_transition_distance, - distance + distance, ) context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_notifications_scrim_transition_delay, - delay + delay, ) configurationController.notifyConfigurationChanged() @@ -511,7 +507,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { verify(scrimController) .transitionToFullShadeProgress( progress = anyFloat(), - lockScreenNotificationsProgress = eq(0f) + lockScreenNotificationsProgress = eq(0f), ) } @@ -522,11 +518,11 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { val delay = 50 context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_notifications_scrim_transition_distance, - distance + distance, ) context.orCreateTestableResources.addOverride( R.dimen.lockscreen_shade_notifications_scrim_transition_delay, - delay + delay, ) configurationController.notifyConfigurationChanged() @@ -535,7 +531,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { verify(scrimController) .transitionToFullShadeProgress( progress = anyFloat(), - lockScreenNotificationsProgress = eq(1f) + lockScreenNotificationsProgress = eq(1f), ) } @@ -627,7 +623,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { */ private fun ScrimController.transitionToFullShadeProgress( progress: Float, - lockScreenNotificationsProgress: Float + lockScreenNotificationsProgress: Float, ) { setTransitionToFullShadeProgress(progress, lockScreenNotificationsProgress) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt index 3cd613b21f4b..74c175c30e1e 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt @@ -71,6 +71,8 @@ import com.android.systemui.shade.shadeController import com.android.systemui.shade.ui.viewmodel.notificationShadeWindowModel import com.android.systemui.statusbar.chips.ui.viewmodel.ongoingActivityChipsViewModel import com.android.systemui.statusbar.data.repository.fakeStatusBarModePerDisplayRepository +import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.disableFlagsInteractor import com.android.systemui.statusbar.notification.collection.provider.visualStabilityProvider import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor import com.android.systemui.statusbar.notification.domain.interactor.seenNotificationsInteractor @@ -183,4 +185,6 @@ class KosmosJavaAdapter() { val lockscreenToGlanceableHubTransitionViewModel by lazy { kosmos.lockscreenToGlanceableHubTransitionViewModel } + val disableFlagsInteractor by lazy { kosmos.disableFlagsInteractor } + val fakeDisableFlagsRepository by lazy { kosmos.fakeDisableFlagsRepository } } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt index 4ed491233f3c..45d5b387fea0 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelKosmos.kt @@ -33,7 +33,7 @@ import com.android.systemui.qs.panels.ui.viewmodel.mediaInRowInLandscapeViewMode import com.android.systemui.qs.ui.viewmodel.quickSettingsContainerViewModelFactory import com.android.systemui.shade.largeScreenHeaderHelper import com.android.systemui.shade.transition.largeScreenShadeInterpolator -import com.android.systemui.statusbar.disableflags.data.repository.disableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.disableFlagsInteractor import com.android.systemui.statusbar.sysuiStatusBarStateController import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -51,7 +51,7 @@ val Kosmos.qsFragmentComposeViewModelFactory by footerActionsController, sysuiStatusBarStateController, deviceEntryInteractor, - disableFlagsRepository, + disableFlagsInteractor, keyguardTransitionInteractor, largeScreenShadeInterpolator, configurationInteractor, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeInteractorKosmos.kt index 39f58aea82ef..af6d6249b4a8 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeInteractorKosmos.kt @@ -25,7 +25,7 @@ import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.shade.ShadeModule import com.android.systemui.shade.data.repository.shadeRepository -import com.android.systemui.statusbar.disableflags.data.repository.disableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.disableFlagsInteractor import com.android.systemui.statusbar.phone.dozeParameters import com.android.systemui.statusbar.policy.data.repository.userSetupRepository import com.android.systemui.statusbar.policy.domain.interactor.deviceProvisioningInteractor @@ -60,7 +60,7 @@ val Kosmos.shadeInteractorImpl by ShadeInteractorImpl( scope = applicationCoroutineScope, deviceProvisioningInteractor = deviceProvisioningInteractor, - disableFlagsRepository = disableFlagsRepository, + disableFlagsInteractor = disableFlagsInteractor, dozeParams = dozeParameters, keyguardRepository = fakeKeyguardRepository, keyguardTransitionInteractor = keyguardTransitionInteractor, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/data/repository/FakeDisableFlagsRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/data/repository/FakeDisableFlagsRepository.kt index 466a3eb83e95..9dbb547a434d 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/data/repository/FakeDisableFlagsRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/data/repository/FakeDisableFlagsRepository.kt @@ -15,7 +15,7 @@ package com.android.systemui.statusbar.disableflags.data.repository import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.statusbar.disableflags.data.model.DisableFlagsModel +import com.android.systemui.statusbar.disableflags.shared.model.DisableFlagsModel import dagger.Binds import dagger.Module import javax.inject.Inject diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/domain/interactor/DisableFlagsInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/domain/interactor/DisableFlagsInteractorKosmos.kt new file mode 100644 index 000000000000..7b4b047c130a --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/disableflags/domain/interactor/DisableFlagsInteractorKosmos.kt @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.disableflags.domain.interactor + +import com.android.systemui.kosmos.Kosmos +import com.android.systemui.kosmos.Kosmos.Fixture +import com.android.systemui.statusbar.disableflags.data.repository.disableFlagsRepository + +val Kosmos.disableFlagsInteractor by Fixture { + DisableFlagsInteractor(repository = disableFlagsRepository) +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorKosmos.kt index 385a813996ff..13fde9608017 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/shared/domain/interactor/CollapsedStatusBarInteractorKosmos.kt @@ -17,7 +17,7 @@ package com.android.systemui.statusbar.pipeline.shared.domain.interactor import com.android.systemui.kosmos.Kosmos -import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository +import com.android.systemui.statusbar.disableflags.domain.interactor.disableFlagsInteractor val Kosmos.collapsedStatusBarInteractor: CollapsedStatusBarInteractor by - Kosmos.Fixture { CollapsedStatusBarInteractor(fakeDisableFlagsRepository) } + Kosmos.Fixture { CollapsedStatusBarInteractor(disableFlagsInteractor) } |