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.ui.binder 18 19 import android.content.applicationContext 20 import android.view.mockedLayoutInflater 21 import android.view.windowManager 22 import com.android.systemui.biometrics.domain.interactor.fingerprintPropertyInteractor 23 import com.android.systemui.biometrics.domain.interactor.udfpsOverlayInteractor 24 import com.android.systemui.common.ui.domain.interactor.configurationInteractor 25 import com.android.systemui.deviceentry.domain.interactor.deviceEntryUdfpsInteractor 26 import com.android.systemui.deviceentry.ui.viewmodel.AlternateBouncerUdfpsAccessibilityOverlayViewModel 27 import com.android.systemui.keyguard.ui.SwipeUpAnywhereGestureHandler 28 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies 29 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerMessageAreaViewModel 30 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerUdfpsIconViewModel 31 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerViewModel 32 import com.android.systemui.keyguard.ui.viewmodel.DeviceEntryBackgroundViewModel 33 import com.android.systemui.keyguard.ui.viewmodel.alternateBouncerViewModel 34 import com.android.systemui.keyguard.ui.viewmodel.alternateBouncerWindowViewModel 35 import com.android.systemui.kosmos.Kosmos 36 import com.android.systemui.kosmos.applicationCoroutineScope 37 import com.android.systemui.log.logcatLogBuffer 38 import com.android.systemui.power.domain.interactor.powerInteractor 39 import com.android.systemui.statusbar.gesture.TapGestureDetector 40 import com.android.systemui.util.mockito.mock 41 import kotlinx.coroutines.ExperimentalCoroutinesApi 42 43 @OptIn(ExperimentalCoroutinesApi::class) 44 val Kosmos.alternateBouncerViewBinder by <lambda>null45 Kosmos.Fixture { 46 AlternateBouncerViewBinder( 47 applicationScope = applicationCoroutineScope, 48 alternateBouncerWindowViewModel = { alternateBouncerWindowViewModel }, 49 alternateBouncerDependencies = { alternateBouncerDependencies }, 50 windowManager = { windowManager }, 51 layoutInflater = { mockedLayoutInflater }, 52 ) 53 } 54 55 @ExperimentalCoroutinesApi 56 private val Kosmos.alternateBouncerDependencies by <lambda>null57 Kosmos.Fixture { 58 AlternateBouncerDependencies( 59 viewModel = mock<AlternateBouncerViewModel>(), 60 swipeUpAnywhereGestureHandler = mock<SwipeUpAnywhereGestureHandler>(), 61 tapGestureDetector = mock<TapGestureDetector>(), 62 udfpsIconViewModel = alternateBouncerUdfpsIconViewModel, 63 udfpsAccessibilityOverlayViewModel = { 64 mock<AlternateBouncerUdfpsAccessibilityOverlayViewModel>() 65 }, 66 messageAreaViewModel = mock<AlternateBouncerMessageAreaViewModel>(), 67 powerInteractor = powerInteractor, 68 touchLogBuffer = logcatLogBuffer(), 69 ) 70 } 71 72 @ExperimentalCoroutinesApi 73 private val Kosmos.alternateBouncerUdfpsIconViewModel by <lambda>null74 Kosmos.Fixture { 75 AlternateBouncerUdfpsIconViewModel( 76 context = applicationContext, 77 configurationInteractor = configurationInteractor, 78 deviceEntryUdfpsInteractor = deviceEntryUdfpsInteractor, 79 deviceEntryBackgroundViewModel = mock<DeviceEntryBackgroundViewModel>(), 80 fingerprintPropertyInteractor = fingerprintPropertyInteractor, 81 udfpsOverlayInteractor = udfpsOverlayInteractor, 82 alternateBouncerViewModel = alternateBouncerViewModel, 83 ) 84 } 85