Loading packages/SystemUI/src/com/android/systemui/common/domain/model/Position.ktdeleted 100644 → 0 +0 −34 Original line number Diff line number Diff line /* * Copyright (C) 2022 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.common.domain.model import com.android.systemui.common.data.model.Position as DataLayerPosition /** Models a two-dimensional position */ data class Position( val x: Int, val y: Int, ) { companion object { fun DataLayerPosition.toDomainLayer(): Position { return Position( x = x, y = y, ) } } } packages/SystemUI/src/com/android/systemui/common/data/model/Position.kt→packages/SystemUI/src/com/android/systemui/common/shared/model/Position.kt +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ * limitations under the License. */ package com.android.systemui.common.data.model package com.android.systemui.common.shared.model /** Models a two-dimensional position */ data class Position( Loading packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +0 −2 Original line number Diff line number Diff line Loading @@ -44,7 +44,6 @@ import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.data.repository.KeyguardRepositoryModule; import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceModule; import com.android.systemui.keyguard.domain.usecase.KeyguardUseCaseModule; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeWindowController; Loading Loading @@ -73,7 +72,6 @@ import dagger.Provides; FalsingModule.class, KeyguardQuickAffordanceModule.class, KeyguardRepositoryModule.class, KeyguardUseCaseModule.class, }) public class KeyguardModule { /** Loading packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.keyguard.data.repository import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.data.model.Position import com.android.systemui.common.shared.model.Position import com.android.systemui.dagger.SysUISingleton import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.policy.KeyguardStateController Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/usecase/FakeObserveKeyguardQuickAffordanceUseCase.kt→packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBottomAreaInteractor.kt +51 −0 Original line number Diff line number Diff line Loading @@ -15,32 +15,37 @@ * */ package com.android.systemui.keyguard.domain.usecase package com.android.systemui.keyguard.domain.interactor import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordancePosition import com.android.systemui.common.shared.model.Position import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.data.repository.KeyguardRepository import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow class FakeObserveKeyguardQuickAffordanceUseCase : ObserveKeyguardQuickAffordanceUseCase { /** Encapsulates business-logic specifically related to the keyguard bottom area. */ @SysUISingleton class KeyguardBottomAreaInteractor @Inject constructor( private val repository: KeyguardRepository, ) { /** Whether to animate the next doze mode transition. */ val animateDozingTransitions: Flow<Boolean> = repository.animateBottomAreaDozingTransitions /** The amount of alpha for the UI components of the bottom area. */ val alpha: Flow<Float> = repository.bottomAreaAlpha /** The position of the keyguard clock. */ val clockPosition: Flow<Position> = repository.clockPosition private val affordanceByPosition = mutableMapOf< KeyguardQuickAffordancePosition, MutableStateFlow<KeyguardQuickAffordanceModel>>() init { KeyguardQuickAffordancePosition.values().forEach { position -> affordanceByPosition[position] = MutableStateFlow(KeyguardQuickAffordanceModel.Hidden) } fun setClockPosition(x: Int, y: Int) { repository.setClockPosition(x, y) } override fun invoke( position: KeyguardQuickAffordancePosition ): Flow<KeyguardQuickAffordanceModel> { return affordanceByPosition[position] ?: error("Flow unexpectedly missing!") fun setAlpha(alpha: Float) { repository.setBottomAreaAlpha(alpha) } fun setModel(position: KeyguardQuickAffordancePosition, model: KeyguardQuickAffordanceModel) { affordanceByPosition[position]?.value = model fun setAnimateDozingTransitions(animate: Boolean) { repository.setAnimateDozingTransitions(animate) } } Loading
packages/SystemUI/src/com/android/systemui/common/domain/model/Position.ktdeleted 100644 → 0 +0 −34 Original line number Diff line number Diff line /* * Copyright (C) 2022 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.common.domain.model import com.android.systemui.common.data.model.Position as DataLayerPosition /** Models a two-dimensional position */ data class Position( val x: Int, val y: Int, ) { companion object { fun DataLayerPosition.toDomainLayer(): Position { return Position( x = x, y = y, ) } } }
packages/SystemUI/src/com/android/systemui/common/data/model/Position.kt→packages/SystemUI/src/com/android/systemui/common/shared/model/Position.kt +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ * limitations under the License. */ package com.android.systemui.common.data.model package com.android.systemui.common.shared.model /** Models a two-dimensional position */ data class Position( Loading
packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +0 −2 Original line number Diff line number Diff line Loading @@ -44,7 +44,6 @@ import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.data.repository.KeyguardRepositoryModule; import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceModule; import com.android.systemui.keyguard.domain.usecase.KeyguardUseCaseModule; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeWindowController; Loading Loading @@ -73,7 +72,6 @@ import dagger.Provides; FalsingModule.class, KeyguardQuickAffordanceModule.class, KeyguardRepositoryModule.class, KeyguardUseCaseModule.class, }) public class KeyguardModule { /** Loading
packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.keyguard.data.repository import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.data.model.Position import com.android.systemui.common.shared.model.Position import com.android.systemui.dagger.SysUISingleton import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.policy.KeyguardStateController Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/usecase/FakeObserveKeyguardQuickAffordanceUseCase.kt→packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBottomAreaInteractor.kt +51 −0 Original line number Diff line number Diff line Loading @@ -15,32 +15,37 @@ * */ package com.android.systemui.keyguard.domain.usecase package com.android.systemui.keyguard.domain.interactor import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordancePosition import com.android.systemui.common.shared.model.Position import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.data.repository.KeyguardRepository import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow class FakeObserveKeyguardQuickAffordanceUseCase : ObserveKeyguardQuickAffordanceUseCase { /** Encapsulates business-logic specifically related to the keyguard bottom area. */ @SysUISingleton class KeyguardBottomAreaInteractor @Inject constructor( private val repository: KeyguardRepository, ) { /** Whether to animate the next doze mode transition. */ val animateDozingTransitions: Flow<Boolean> = repository.animateBottomAreaDozingTransitions /** The amount of alpha for the UI components of the bottom area. */ val alpha: Flow<Float> = repository.bottomAreaAlpha /** The position of the keyguard clock. */ val clockPosition: Flow<Position> = repository.clockPosition private val affordanceByPosition = mutableMapOf< KeyguardQuickAffordancePosition, MutableStateFlow<KeyguardQuickAffordanceModel>>() init { KeyguardQuickAffordancePosition.values().forEach { position -> affordanceByPosition[position] = MutableStateFlow(KeyguardQuickAffordanceModel.Hidden) } fun setClockPosition(x: Int, y: Int) { repository.setClockPosition(x, y) } override fun invoke( position: KeyguardQuickAffordancePosition ): Flow<KeyguardQuickAffordanceModel> { return affordanceByPosition[position] ?: error("Flow unexpectedly missing!") fun setAlpha(alpha: Float) { repository.setBottomAreaAlpha(alpha) } fun setModel(position: KeyguardQuickAffordancePosition, model: KeyguardQuickAffordanceModel) { affordanceByPosition[position]?.value = model fun setAnimateDozingTransitions(animate: Boolean) { repository.setAnimateDozingTransitions(animate) } }