Loading src/com/android/settings/biometrics/fingerprint2/domain/interactor/AccessibilityInteractor.kt +26 −9 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.biometrics.fingerprint2.domain.interactor package com.android.settings.biometrics.fingerprint2.domain.interactor import android.util.Log import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent.TYPE_ANNOUNCEMENT import android.view.accessibility.AccessibilityEvent.TYPE_ANNOUNCEMENT import android.view.accessibility.AccessibilityManager import android.view.accessibility.AccessibilityManager Loading @@ -30,13 +31,16 @@ import kotlinx.coroutines.flow.stateIn interface AccessibilityInteractor { interface AccessibilityInteractor { /** A flow that contains whether or not accessibility is enabled */ /** A flow that contains whether or not accessibility is enabled */ fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> val isEnabled: Boolean val isEnabled: Boolean fun announce(clazz: Class<*>, announcement: CharSequence?) fun announce(clazz: Class<*>, announcement: CharSequence?) fun interrupt() } } class AccessibilityInteractorImpl( class AccessibilityInteractorImpl(private val accessibilityManager: AccessibilityManager) : private val accessibilityManager: AccessibilityManager, AccessibilityInteractor { ) : AccessibilityInteractor { /** A flow that contains whether or not accessibility is enabled */ /** A flow that contains whether or not accessibility is enabled */ override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> = override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> = callbackFlow { callbackFlow { Loading @@ -63,4 +67,17 @@ class AccessibilityInteractorImpl( event.text.add(announcement) event.text.add(announcement) accessibilityManager.sendAccessibilityEvent(event) accessibilityManager.sendAccessibilityEvent(event) } } /** Interrupts the current accessibility manager from announcing a phrase. */ override fun interrupt() { try { accessibilityManager.interrupt() } catch (e: IllegalStateException) { Log.e(TAG, "Error trying to interrupt when accessibility isn't enabled $e") } } companion object { const val TAG = "AccessibilityInteractor" } } } tests/screenshot/src/com/android/settings/tests/screenshot/biometrics/fingerprint/Injector.kt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -78,6 +78,7 @@ class Injector(step: FingerprintNavigationStep.UiStep) { override val isEnabled: Boolean override val isEnabled: Boolean get() = true get() = true override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun interrupt() {} } } var foldStateInteractor = var foldStateInteractor = Loading tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -111,6 +111,8 @@ class FingerprintEnrollFindSensorViewModelV2Test { override val isEnabled: Boolean override val isEnabled: Boolean get() = true get() = true override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun interrupt() { } } } foldStateInteractor = foldStateInteractor = object : FoldStateInteractor { object : FoldStateInteractor { Loading Loading
src/com/android/settings/biometrics/fingerprint2/domain/interactor/AccessibilityInteractor.kt +26 −9 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.biometrics.fingerprint2.domain.interactor package com.android.settings.biometrics.fingerprint2.domain.interactor import android.util.Log import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent.TYPE_ANNOUNCEMENT import android.view.accessibility.AccessibilityEvent.TYPE_ANNOUNCEMENT import android.view.accessibility.AccessibilityManager import android.view.accessibility.AccessibilityManager Loading @@ -30,13 +31,16 @@ import kotlinx.coroutines.flow.stateIn interface AccessibilityInteractor { interface AccessibilityInteractor { /** A flow that contains whether or not accessibility is enabled */ /** A flow that contains whether or not accessibility is enabled */ fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> val isEnabled: Boolean val isEnabled: Boolean fun announce(clazz: Class<*>, announcement: CharSequence?) fun announce(clazz: Class<*>, announcement: CharSequence?) fun interrupt() } } class AccessibilityInteractorImpl( class AccessibilityInteractorImpl(private val accessibilityManager: AccessibilityManager) : private val accessibilityManager: AccessibilityManager, AccessibilityInteractor { ) : AccessibilityInteractor { /** A flow that contains whether or not accessibility is enabled */ /** A flow that contains whether or not accessibility is enabled */ override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> = override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> = callbackFlow { callbackFlow { Loading @@ -63,4 +67,17 @@ class AccessibilityInteractorImpl( event.text.add(announcement) event.text.add(announcement) accessibilityManager.sendAccessibilityEvent(event) accessibilityManager.sendAccessibilityEvent(event) } } /** Interrupts the current accessibility manager from announcing a phrase. */ override fun interrupt() { try { accessibilityManager.interrupt() } catch (e: IllegalStateException) { Log.e(TAG, "Error trying to interrupt when accessibility isn't enabled $e") } } companion object { const val TAG = "AccessibilityInteractor" } } }
tests/screenshot/src/com/android/settings/tests/screenshot/biometrics/fingerprint/Injector.kt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -78,6 +78,7 @@ class Injector(step: FingerprintNavigationStep.UiStep) { override val isEnabled: Boolean override val isEnabled: Boolean get() = true get() = true override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun interrupt() {} } } var foldStateInteractor = var foldStateInteractor = Loading
tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -111,6 +111,8 @@ class FingerprintEnrollFindSensorViewModelV2Test { override val isEnabled: Boolean override val isEnabled: Boolean get() = true get() = true override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun announce(clazz: Class<*>, announcement: CharSequence?) {} override fun interrupt() { } } } foldStateInteractor = foldStateInteractor = object : FoldStateInteractor { object : FoldStateInteractor { Loading