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.mediaprojection.taskswitcher 18 19 import com.android.systemui.kosmos.Kosmos 20 import com.android.systemui.kosmos.applicationCoroutineScope 21 import com.android.systemui.kosmos.testDispatcher 22 import com.android.systemui.mediaprojection.data.repository.realMediaProjectionRepository 23 import com.android.systemui.mediaprojection.taskswitcher.data.repository.ActivityTaskManagerTasksRepository 24 import com.android.systemui.mediaprojection.taskswitcher.domain.interactor.TaskSwitchInteractor 25 import com.android.systemui.mediaprojection.taskswitcher.ui.viewmodel.TaskSwitcherNotificationViewModel 26 import kotlinx.coroutines.test.UnconfinedTestDispatcher 27 <lambda>null28val Kosmos.fakeActivityTaskManager by Kosmos.Fixture { FakeActivityTaskManager() } 29 <lambda>null30val Kosmos.fakeMediaProjectionManager by Kosmos.Fixture { FakeMediaProjectionManager() } 31 32 val Kosmos.activityTaskManagerTasksRepository by <lambda>null33 Kosmos.Fixture { 34 ActivityTaskManagerTasksRepository( 35 activityTaskManager = fakeActivityTaskManager.activityTaskManager, 36 applicationScope = applicationCoroutineScope, 37 backgroundDispatcher = testDispatcher 38 ) 39 } 40 41 val Kosmos.taskSwitcherInteractor by <lambda>null42 Kosmos.Fixture { 43 TaskSwitchInteractor(realMediaProjectionRepository, activityTaskManagerTasksRepository) 44 } 45 46 val Kosmos.taskSwitcherViewModel by <lambda>null47 Kosmos.Fixture { TaskSwitcherNotificationViewModel(taskSwitcherInteractor, testDispatcher) } 48 <lambda>null49fun taskSwitcherKosmos() = Kosmos().apply { testDispatcher = UnconfinedTestDispatcher() } 50