1 /*
2 * Copyright (C) 2023 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package com.android.systemui.qs
18
19 import android.app.admin.devicePolicyManager
20 import android.content.applicationContext
21 import android.content.mockedContext
22 import android.os.fakeExecutorHandler
23 import android.os.looper
24 import com.android.internal.logging.metricsLogger
25 import com.android.internal.logging.uiEventLogger
26 import com.android.internal.logging.uiEventLoggerFake
27 import com.android.systemui.InstanceIdSequenceFake
28 import com.android.systemui.animation.dialogTransitionAnimator
29 import com.android.systemui.broadcast.broadcastDispatcher
30 import com.android.systemui.classifier.falsingManager
31 import com.android.systemui.kosmos.Kosmos
32 import com.android.systemui.kosmos.Kosmos.Fixture
33 import com.android.systemui.kosmos.testDispatcher
34 import com.android.systemui.plugins.activityStarter
35 import com.android.systemui.plugins.qs.QSFactory
36 import com.android.systemui.plugins.qs.QSTile
37 import com.android.systemui.qs.footer.domain.interactor.FooterActionsInteractorImpl
38 import com.android.systemui.qs.footer.foregroundServicesRepository
39 import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel
40 import com.android.systemui.security.data.repository.securityRepository
41 import com.android.systemui.settings.userTracker
42 import com.android.systemui.shade.domain.interactor.shadeModeInteractor
43 import com.android.systemui.statusbar.policy.deviceProvisionedController
44 import com.android.systemui.statusbar.policy.securityController
45 import com.android.systemui.user.data.repository.userSwitcherRepository
46 import com.android.systemui.user.domain.interactor.userSwitcherInteractor
47 import com.android.systemui.util.mockito.mock
48
<lambda>null49 val Kosmos.instanceIdSequenceFake: InstanceIdSequenceFake by Fixture { InstanceIdSequenceFake(0) }
<lambda>null50 val Kosmos.qsEventLogger: QsEventLoggerFake by Fixture {
51 QsEventLoggerFake(uiEventLoggerFake, instanceIdSequenceFake)
52 }
53
<lambda>null54 var Kosmos.qsTileFactory by Fixture<QSFactory> { FakeQSFactory(::tileCreator) }
55
<lambda>null56 val Kosmos.fgsManagerController by Fixture { FakeFgsManagerController() }
57
<lambda>null58 val Kosmos.footerActionsController by Fixture {
59 FooterActionsController(fgsManagerController = fgsManagerController)
60 }
61
<lambda>null62 val Kosmos.qsSecurityFooterUtils by Fixture {
63 QSSecurityFooterUtils(
64 applicationContext,
65 devicePolicyManager,
66 userTracker,
67 fakeExecutorHandler,
68 activityStarter,
69 securityController,
70 looper,
71 dialogTransitionAnimator,
72 )
73 }
74
<lambda>null75 val Kosmos.footerActionsInteractor by Fixture {
76 FooterActionsInteractorImpl(
77 activityStarter = activityStarter,
78 metricsLogger = metricsLogger,
79 uiEventLogger = uiEventLogger,
80 deviceProvisionedController = deviceProvisionedController,
81 qsSecurityFooterUtils = qsSecurityFooterUtils,
82 fgsManagerController = fgsManagerController,
83 userSwitcherInteractor = userSwitcherInteractor,
84 securityRepository = securityRepository,
85 foregroundServicesRepository = foregroundServicesRepository,
86 userSwitcherRepository = userSwitcherRepository,
87 broadcastDispatcher = broadcastDispatcher,
88 bgDispatcher = testDispatcher,
89 context = mockedContext,
90 )
91 }
92
<lambda>null93 val Kosmos.footerActionsViewModelFactory by Fixture {
94 FooterActionsViewModel.Factory(
95 context = applicationContext,
96 falsingManager = falsingManager,
97 footerActionsInteractor = footerActionsInteractor,
98 shadeModeInteractor = shadeModeInteractor,
99 globalActionsDialogLiteProvider = { mock() },
100 activityStarter,
101 showPowerButton = true,
102 )
103 }
104
tileCreatornull105 private fun tileCreator(spec: String): QSTile {
106 return FakeQSTile(0).apply { tileSpec = spec }
107 }
108