1 /*
2  * Copyright (C) 2024 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.keyguard.data.repository
18 
19 import android.content.applicationContext
20 import android.os.fakeExecutorHandler
21 import com.android.systemui.keyguard.domain.interactor.keyguardBlueprintInteractor
22 import com.android.systemui.keyguard.domain.interactor.keyguardClockInteractor
23 import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint
24 import com.android.systemui.keyguard.ui.view.layout.blueprints.SplitShadeKeyguardBlueprint
25 import com.android.systemui.keyguard.ui.view.layout.sections.ClockSection
26 import com.android.systemui.keyguard.ui.view.layout.sections.SmartspaceSection
27 import com.android.systemui.keyguard.ui.viewmodel.keyguardClockViewModel
28 import com.android.systemui.keyguard.ui.viewmodel.keyguardRootViewModel
29 import com.android.systemui.keyguard.ui.viewmodel.keyguardSmartspaceViewModel
30 import com.android.systemui.kosmos.Kosmos
31 import com.android.systemui.util.mockito.mock
32 import java.util.Optional
33 import org.mockito.Mockito.spy
34 
35 val Kosmos.keyguardClockSection: ClockSection by
<lambda>null36     Kosmos.Fixture {
37         ClockSection(
38             clockInteractor = keyguardClockInteractor,
39             keyguardClockViewModel = keyguardClockViewModel,
40             context = applicationContext,
41             smartspaceViewModel = keyguardSmartspaceViewModel,
42             blueprintInteractor = { keyguardBlueprintInteractor },
43             rootViewModel = keyguardRootViewModel,
44         )
45     }
46 
47 val Kosmos.keyguardSmartspaceSection: SmartspaceSection by
<lambda>null48     Kosmos.Fixture { mock<SmartspaceSection>() }
49 
50 val Kosmos.defaultKeyguardBlueprint by
<lambda>null51     Kosmos.Fixture {
52         DefaultKeyguardBlueprint(
53             defaultIndicationAreaSection = mock(),
54             defaultDeviceEntrySection = mock(),
55             defaultShortcutsSection = mock(),
56             defaultAmbientIndicationAreaSection = Optional.of(mock()),
57             defaultSettingsPopupMenuSection = mock(),
58             defaultStatusViewSection = mock(),
59             defaultStatusBarSection = mock(),
60             defaultNotificationStackScrollLayoutSection = mock(),
61             aodNotificationIconsSection = mock(),
62             aodBurnInSection = mock(),
63             communalTutorialIndicatorSection = mock(),
64             clockSection = keyguardClockSection,
65             smartspaceSection = keyguardSmartspaceSection,
66             keyguardSliceViewSection = mock(),
67             udfpsAccessibilityOverlaySection = mock(),
68             accessibilityActionsSection = mock(),
69         )
70     }
71 
72 val Kosmos.splitShadeBlueprint by
<lambda>null73     Kosmos.Fixture {
74         SplitShadeKeyguardBlueprint(
75             defaultIndicationAreaSection = mock(),
76             defaultDeviceEntrySection = mock(),
77             defaultShortcutsSection = mock(),
78             defaultAmbientIndicationAreaSection = Optional.of(mock()),
79             defaultSettingsPopupMenuSection = mock(),
80             defaultStatusViewSection = mock(),
81             defaultStatusBarSection = mock(),
82             splitShadeNotificationStackScrollLayoutSection = mock(),
83             splitShadeGuidelines = mock(),
84             aodNotificationIconsSection = mock(),
85             aodBurnInSection = mock(),
86             communalTutorialIndicatorSection = mock(),
87             clockSection = keyguardClockSection,
88             smartspaceSection = keyguardSmartspaceSection,
89             mediaSection = mock(),
90             accessibilityActionsSection = mock(),
91         )
92     }
93 
94 val Kosmos.keyguardBlueprintRepository by
<lambda>null95     Kosmos.Fixture {
96         spy(
97             KeyguardBlueprintRepository(
98                 blueprints =
99                     setOf(
100                         defaultKeyguardBlueprint,
101                         splitShadeBlueprint,
102                     ),
103                 handler = fakeExecutorHandler,
104                 assert = mock(),
105             )
106         )
107     }
108