Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40a39e23 authored by Michał Brzeziński's avatar Michał Brzeziński Committed by Android (Google) Code Review
Browse files

Merge "1/n refactoring: splitting ViewModels into separate smaller classes" into main

parents b01ac598 150e4597
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -16,12 +16,13 @@

package com.android.systemui.touchpad.tutorial.ui.viewmodel

import android.content.res.mockResources
import android.view.MotionEvent
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository
import com.android.systemui.common.ui.domain.interactor.configurationInteractor
import com.android.systemui.inputdevice.tutorial.inputDeviceTutorialLogger
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
@@ -34,18 +35,27 @@ import com.android.systemui.touchpad.tutorial.ui.composable.GestureUiState.Finis
import com.android.systemui.touchpad.tutorial.ui.composable.GestureUiState.InProgress
import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE
import com.android.systemui.touchpad.tutorial.ui.gesture.ThreeFingerGesture
import com.android.systemui.touchpad.ui.gesture.touchpadGestureResources
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.whenever

@SmallTest
@RunWith(AndroidJUnit4::class)
class BackGestureScreenViewModelTest : SysuiTestCase() {

    private val kosmos = testKosmos()
    private val resources = kosmos.mockResources
    private val fakeConfigRepository = kosmos.fakeConfigurationRepository
    private val viewModel = BackGestureScreenViewModel(kosmos.configurationInteractor)
    private val viewModel =
        BackGestureScreenViewModel(
            GestureRecognizerAdapter(
                BackGestureRecognizerProvider(kosmos.touchpadGestureResources),
                kosmos.inputDeviceTutorialLogger,
            )
        )

    @Before
    fun before() {
@@ -115,10 +125,12 @@ class BackGestureScreenViewModelTest : SysuiTestCase() {
        }

    private fun setThresholdResource(threshold: Float) {
        fakeConfigRepository.setDimensionPixelSize(
            R.dimen.touchpad_tutorial_gestures_distance_threshold,
            (threshold).toInt(),
        whenever(
                resources.getDimensionPixelSize(
                    R.dimen.touchpad_tutorial_gestures_distance_threshold
                )
            )
            .thenReturn(threshold.toInt())
        fakeConfigRepository.onAnyConfigurationChange()
    }

+8 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.view.MotionEvent
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.inputdevice.tutorial.inputDeviceTutorialLogger
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
@@ -36,7 +37,13 @@ import org.junit.runner.RunWith
class EasterEggGestureViewModelTest : SysuiTestCase() {

    private val kosmos = testKosmos()
    private val viewModel = EasterEggGestureViewModel()
    private val viewModel =
        EasterEggGestureViewModel(
            GestureRecognizerAdapter(
                EasterEggRecognizerProvider(),
                kosmos.inputDeviceTutorialLogger,
            )
        )

    @Before
    fun before() {
+14 −6
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository
import com.android.systemui.common.ui.domain.interactor.configurationInteractor
import com.android.systemui.inputdevice.tutorial.inputDeviceTutorialLogger
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
@@ -37,6 +37,7 @@ import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Comp
import com.android.systemui.touchpad.tutorial.ui.gesture.ThreeFingerGesture
import com.android.systemui.touchpad.tutorial.ui.gesture.Velocity
import com.android.systemui.touchpad.ui.gesture.fakeVelocityTracker
import com.android.systemui.touchpad.ui.gesture.touchpadGestureResources
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
@@ -59,7 +60,12 @@ class HomeGestureScreenViewModelTest : SysuiTestCase() {
    private val resources = kosmos.mockResources

    private val viewModel =
        HomeGestureScreenViewModel(kosmos.configurationInteractor, resources, fakeVelocityTracker)
        HomeGestureScreenViewModel(
            GestureRecognizerAdapter(
                HomeGestureRecognizerProvider(kosmos.touchpadGestureResources, fakeVelocityTracker),
                kosmos.inputDeviceTutorialLogger,
            )
        )

    @Before
    fun before() {
@@ -126,10 +132,12 @@ class HomeGestureScreenViewModelTest : SysuiTestCase() {
        }

    private fun setDistanceThreshold(threshold: Float) {
        fakeConfigRepository.setDimensionPixelSize(
            R.dimen.touchpad_tutorial_gestures_distance_threshold,
            (threshold).toInt(),
        whenever(
                resources.getDimensionPixelSize(
                    R.dimen.touchpad_tutorial_gestures_distance_threshold
                )
            )
            .thenReturn(threshold.toInt())
        fakeConfigRepository.onAnyConfigurationChange()
    }

+9 −4
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository
import com.android.systemui.common.ui.domain.interactor.configurationInteractor
import com.android.systemui.inputdevice.tutorial.inputDeviceTutorialLogger
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
@@ -37,6 +37,7 @@ import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Comp
import com.android.systemui.touchpad.tutorial.ui.gesture.ThreeFingerGesture
import com.android.systemui.touchpad.tutorial.ui.gesture.Velocity
import com.android.systemui.touchpad.ui.gesture.fakeVelocityTracker
import com.android.systemui.touchpad.ui.gesture.touchpadGestureResources
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
@@ -60,9 +61,13 @@ class RecentAppsGestureScreenViewModelTest : SysuiTestCase() {

    private val viewModel =
        RecentAppsGestureScreenViewModel(
            kosmos.configurationInteractor,
            resources,
            GestureRecognizerAdapter(
                RecentAppsGestureRecognizerProvider(
                    kosmos.touchpadGestureResources,
                    fakeVelocityTracker,
                ),
                kosmos.inputDeviceTutorialLogger,
            )
        )

    @Before
+39 −1
Original line number Diff line number Diff line
@@ -30,9 +30,15 @@ import com.android.systemui.touchpad.tutorial.ui.composable.HomeGestureTutorialS
import com.android.systemui.touchpad.tutorial.ui.gesture.VelocityTracker
import com.android.systemui.touchpad.tutorial.ui.gesture.VerticalVelocityTracker
import com.android.systemui.touchpad.tutorial.ui.view.TouchpadTutorialActivity
import com.android.systemui.touchpad.tutorial.ui.viewmodel.BackGestureRecognizerProvider
import com.android.systemui.touchpad.tutorial.ui.viewmodel.BackGestureScreenViewModel
import com.android.systemui.touchpad.tutorial.ui.viewmodel.EasterEggGestureViewModel
import com.android.systemui.touchpad.tutorial.ui.viewmodel.EasterEggRecognizerProvider
import com.android.systemui.touchpad.tutorial.ui.viewmodel.GestureRecognizerAdapter
import com.android.systemui.touchpad.tutorial.ui.viewmodel.HomeGestureRecognizerProvider
import com.android.systemui.touchpad.tutorial.ui.viewmodel.HomeGestureScreenViewModel
import com.android.systemui.touchpad.tutorial.ui.viewmodel.RecentAppsGestureRecognizerProvider
import com.android.systemui.touchpad.tutorial.ui.viewmodel.RecentAppsGestureScreenViewModel
import dagger.Binds
import dagger.Module
import dagger.Provides
@@ -53,14 +59,46 @@ interface TouchpadTutorialModule {
        fun touchpadScreensProvider(
            backGestureScreenViewModel: BackGestureScreenViewModel,
            homeGestureScreenViewModel: HomeGestureScreenViewModel,
            easterEggGestureViewModel: EasterEggGestureViewModel,
        ): TouchpadTutorialScreensProvider {
            return ScreensProvider(
                backGestureScreenViewModel,
                homeGestureScreenViewModel,
                EasterEggGestureViewModel(),
                easterEggGestureViewModel,
            )
        }

        @Provides
        fun recentAppsViewModel(
            recognizerProvider: RecentAppsGestureRecognizerProvider,
            adapterFactory: GestureRecognizerAdapter.Factory,
        ): RecentAppsGestureScreenViewModel {
            return RecentAppsGestureScreenViewModel(adapterFactory.create(recognizerProvider))
        }

        @Provides
        fun backViewModel(
            recognizerProvider: BackGestureRecognizerProvider,
            adapterFactory: GestureRecognizerAdapter.Factory,
        ): BackGestureScreenViewModel {
            return BackGestureScreenViewModel(adapterFactory.create(recognizerProvider))
        }

        @Provides
        fun homeViewModel(
            recognizerProvider: HomeGestureRecognizerProvider,
            adapterFactory: GestureRecognizerAdapter.Factory,
        ): HomeGestureScreenViewModel {
            return HomeGestureScreenViewModel(adapterFactory.create(recognizerProvider))
        }

        @Provides
        fun easterEggViewModel(
            adapterFactory: GestureRecognizerAdapter.Factory
        ): EasterEggGestureViewModel {
            return EasterEggGestureViewModel(adapterFactory.create(EasterEggRecognizerProvider()))
        }

        @SysUISingleton
        @Provides
        fun touchpadGesturesInteractor(
Loading