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

Commit a6f429bb authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez
Browse files

Adding MSDL feedback to emergency button click.

Test: manual. clicked on emergency button on different bouncers and
  verified haptic playback using sysui dumpsys and feeling the haptic
  feedback.
Flag: com.android.systemui.msdl_feedback
Bug: 361321945
Change-Id: If2332a7794252aea4e44d963e10bd2d4ef64d1bb
parent 5bc4afb9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.internal.util.EmergencyAffordanceManager
import com.android.systemui.authentication.domain.interactor.AuthenticationInteractor
import com.android.systemui.bouncer.data.repository.EmergencyServicesRepository
import com.android.systemui.bouncer.shared.model.BouncerActionButtonModel
import com.android.systemui.bouncer.ui.helper.BouncerHapticPlayer
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
@@ -74,6 +75,7 @@ constructor(
    private val metricsLogger: MetricsLogger,
    private val dozeLogger: DozeLogger,
    private val sceneInteractor: Lazy<SceneInteractor>,
    private val bouncerHapticPlayer: BouncerHapticPlayer,
) {
    /** The bouncer action button. If `null`, the button should not be shown. */
    val actionButton: Flow<BouncerActionButtonModel?> =
@@ -111,6 +113,8 @@ constructor(
        BouncerActionButtonModel(
            label = applicationContext.getString(R.string.lockscreen_emergency_call),
            onClick = {
                // TODO(b/373930432): haptics should be played at the UI layer -> refactor
                bouncerHapticPlayer.playEmergencyButtonClickFeedback()
                prepareToPerformAction()
                dozeLogger.logEmergencyCall()
                startEmergencyDialerActivity()
+7 −0
Original line number Diff line number Diff line
@@ -81,4 +81,11 @@ class BouncerHapticPlayer @Inject constructor(private val msdlPlayer: dagger.Laz

    /** Deliver MSDL feedback when a numpad key is pressed on the pin bouncer */
    fun playNumpadKeyFeedback() = msdlPlayer.get().playToken(MSDLToken.KEYPRESS_STANDARD)

    /** Deliver MSDL feedback when clicking on the emergency button */
    fun playEmergencyButtonClickFeedback() {
        if (isEnabled) {
            msdlPlayer.get().playToken(MSDLToken.KEYPRESS_RETURN)
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import com.android.internal.logging.metricsLogger
import com.android.internal.util.emergencyAffordanceManager
import com.android.systemui.authentication.domain.interactor.authenticationInteractor
import com.android.systemui.bouncer.data.repository.emergencyServicesRepository
import com.android.systemui.haptics.msdl.bouncerHapticPlayer
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.testDispatcher
@@ -52,5 +53,6 @@ val Kosmos.bouncerActionButtonInteractor by Fixture {
        metricsLogger = metricsLogger,
        dozeLogger = mock(),
        sceneInteractor = { sceneInteractor },
        bouncerHapticPlayer,
    )
}