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

Commit a4901cc4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Adding missing long-press haptics to the lockscreen." into main

parents 3be8dd61 a3384053
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -17,20 +17,25 @@
package com.android.systemui.keyguard.ui.viewmodel

import android.graphics.Rect
import android.platform.test.annotations.EnableFlags
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.haptics.msdl.fakeMSDLPlayer
import com.android.systemui.keyguard.data.repository.deviceEntryFingerprintAuthRepository
import com.android.systemui.keyguard.domain.interactor.keyguardTouchHandlingInteractor
import com.android.systemui.kosmos.testScope
import com.android.systemui.testKosmos
import com.google.android.msdl.data.model.MSDLToken
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.any

@SmallTest
@RunWith(AndroidJUnit4::class)
@@ -38,6 +43,7 @@ class KeyguardTouchHandlingViewModelTest : SysuiTestCase() {

    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private val msdlPlayer = kosmos.fakeMSDLPlayer
    private lateinit var underTest: KeyguardTouchHandlingViewModel

    @Before
@@ -64,6 +70,15 @@ class KeyguardTouchHandlingViewModelTest : SysuiTestCase() {
                .isEqualTo(Rect(0, 1000, 1000, 2000))
        }

    @EnableFlags(Flags.FLAG_MSDL_FEEDBACK)
    @Test
    fun onLongPress_playsLongPressHapticToken() =
        testScope.runTest {
            underTest.onLongPress(any())

            assertThat(msdlPlayer.latestTokenPlayed).isEqualTo(MSDLToken.LONG_PRESS)
        }

    private fun setUdfpsListeningState(isListening: Boolean) {
        if (isListening) {
            kosmos.fingerprintPropertyRepository.supportsUdfps()
+7 −0
Original line number Diff line number Diff line
@@ -19,10 +19,13 @@ package com.android.systemui.keyguard.ui.viewmodel

import android.graphics.Rect
import androidx.compose.runtime.getValue
import com.android.systemui.Flags
import com.android.systemui.deviceentry.domain.interactor.DeviceEntryUdfpsInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardTouchHandlingInteractor
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.Hydrator
import com.google.android.msdl.data.model.MSDLToken
import com.google.android.msdl.domain.MSDLPlayer
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -35,6 +38,7 @@ class KeyguardTouchHandlingViewModel
@AssistedInject
constructor(
    private val interactor: KeyguardTouchHandlingInteractor,
    private val msdlPlayer: MSDLPlayer,
    deviceEntryUdfpsInteractor: DeviceEntryUdfpsInteractor,
) : ExclusiveActivatable() {
    private val hydrator = Hydrator("KeyguardTouchHandlingViewModel.hydrator")
@@ -82,6 +86,9 @@ constructor(
     * @param isA11yAction: Whether the action was performed as an a11y action
     */
    fun onLongPress(isA11yAction: Boolean) {
        if (Flags.msdlFeedback()) {
            msdlPlayer.playToken(MSDLToken.LONG_PRESS)
        }
        interactor.onLongPress(isA11yAction)
    }

+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.keyguard.ui.viewmodel

import com.android.systemui.deviceentry.domain.interactor.deviceEntryUdfpsInteractor
import com.android.systemui.haptics.msdl.msdlPlayer
import com.android.systemui.keyguard.domain.interactor.keyguardTouchHandlingInteractor
import com.android.systemui.kosmos.Kosmos

@@ -24,6 +25,7 @@ val Kosmos.keyguardTouchHandlingViewModel by
    Kosmos.Fixture {
        KeyguardTouchHandlingViewModel(
            interactor = keyguardTouchHandlingInteractor,
            msdlPlayer = msdlPlayer,
            deviceEntryUdfpsInteractor = deviceEntryUdfpsInteractor,
        )
    }
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.keyguard.ui.viewmodel

import com.android.systemui.deviceentry.domain.interactor.deviceEntryUdfpsInteractor
import com.android.systemui.haptics.msdl.msdlPlayer
import com.android.systemui.keyguard.domain.interactor.keyguardTouchHandlingInteractor
import com.android.systemui.kosmos.Kosmos

@@ -26,6 +27,7 @@ val Kosmos.keyguardTouchHandlingViewModelFactory by
            override fun create(): KeyguardTouchHandlingViewModel {
                return KeyguardTouchHandlingViewModel(
                    keyguardTouchHandlingInteractor,
                    msdlPlayer,
                    deviceEntryUdfpsInteractor,
                )
            }