Merge "Revert "Add biometric scuba tests to presubmit.""

This commit is contained in:
Dmitry Dementyev
2022-11-14 21:16:58 +00:00
committed by Android (Google) Code Review
5 changed files with 10 additions and 35 deletions

View File

@@ -34,7 +34,6 @@ import org.junit.runners.model.Statement
import platform.test.screenshot.DeviceEmulationRule
import platform.test.screenshot.DeviceEmulationSpec
import platform.test.screenshot.MaterialYouColorsRule
import platform.test.screenshot.PathConfig
import platform.test.screenshot.ScreenshotTestRule
import platform.test.screenshot.getEmulatedDevicePathConfig
import platform.test.screenshot.matchers.BitmapMatcher
@@ -42,19 +41,13 @@ import platform.test.screenshot.matchers.BitmapMatcher
/** A rule for View screenshot diff unit tests. */
class ViewScreenshotTestRule(
emulationSpec: DeviceEmulationSpec,
private val matcher: BitmapMatcher = UnitTestBitmapMatcher,
pathConfig: PathConfig = getEmulatedDevicePathConfig(emulationSpec),
assetsPathRelativeToRepo: String = ""
private val matcher: BitmapMatcher = UnitTestBitmapMatcher
) : TestRule {
private val colorsRule = MaterialYouColorsRule()
private val deviceEmulationRule = DeviceEmulationRule(emulationSpec)
private val screenshotRule =
ScreenshotTestRule(
if (assetsPathRelativeToRepo.isBlank()) {
SystemUIGoldenImagePathManager(pathConfig)
} else {
SystemUIGoldenImagePathManager(pathConfig, assetsPathRelativeToRepo)
}
SystemUIGoldenImagePathManager(getEmulatedDevicePathConfig(emulationSpec))
)
private val activityRule = ActivityScenarioRule(ScreenshotActivity::class.java)
private val delegateRule =

View File

@@ -1,16 +0,0 @@
{
"presubmit": [
{
// TODO(b/251476085): Consider merging with SystemUIGoogleScreenshotTests (in U+)
"name": "SystemUIGoogleBiometricsScreenshotTests",
"options": [
{
"exclude-annotation": "org.junit.Ignore"
},
{
"exclude-annotation": "androidx.test.filters.FlakyTest"
}
]
}
]
}

View File

@@ -13,6 +13,7 @@ import com.android.systemui.biometrics.ui.CredentialPasswordView
import com.android.systemui.biometrics.ui.CredentialView
import com.android.systemui.biometrics.ui.viewmodel.CredentialViewModel
import com.android.systemui.lifecycle.repeatWhenAttached
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
/** Sub-binder for the [CredentialPasswordView]. */
@@ -23,17 +24,14 @@ object CredentialPasswordViewBinder {
view: CredentialPasswordView,
host: CredentialView.Host,
viewModel: CredentialViewModel,
requestFocusForInput: Boolean,
) {
val imeManager = view.context.getSystemService(InputMethodManager::class.java)!!
val passwordField: ImeAwareEditText = view.requireViewById(R.id.lockPassword)
view.repeatWhenAttached {
if (requestFocusForInput) {
passwordField.requestFocus()
passwordField.scheduleShowSoftInput()
}
passwordField.requestFocus()
passwordField.scheduleShowSoftInput()
repeatOnLifecycle(Lifecycle.State.STARTED) {
// observe credential validation attempts and submit/cancel buttons

View File

@@ -9,6 +9,7 @@ import com.android.systemui.biometrics.ui.CredentialPatternView
import com.android.systemui.biometrics.ui.CredentialView
import com.android.systemui.biometrics.ui.viewmodel.CredentialViewModel
import com.android.systemui.lifecycle.repeatWhenAttached
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
/** Sub-binder for the [CredentialPatternView]. */
@@ -29,7 +30,7 @@ object CredentialPatternViewBinder {
viewModel.header.collect { header ->
lockPatternView.setOnPatternListener(
OnPatternDetectedListener { pattern ->
if (pattern.isPatternTooShort()) {
if (pattern.isPatternLongEnough()) {
// Pattern size is less than the minimum
// do not count it as a failed attempt
viewModel.showPatternTooShortError()
@@ -70,5 +71,5 @@ private class OnPatternDetectedListener(
}
}
private fun List<LockPatternView.Cell>.isPatternTooShort(): Boolean =
private fun List<LockPatternView.Cell>.isPatternLongEnough(): Boolean =
size < LockPatternUtils.MIN_PATTERN_REGISTER_FAIL

View File

@@ -17,6 +17,7 @@ import com.android.systemui.biometrics.ui.viewmodel.CredentialViewModel
import com.android.systemui.lifecycle.repeatWhenAttached
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
@@ -39,7 +40,6 @@ object CredentialViewBinder {
panelViewController: AuthPanelController,
animatePanel: Boolean,
maxErrorDuration: Long = 3_000L,
requestFocusForInput: Boolean = true,
) {
val titleView: TextView = view.requireViewById(R.id.title)
val subtitleView: TextView = view.requireViewById(R.id.subtitle)
@@ -110,8 +110,7 @@ object CredentialViewBinder {
// bind the auth widget
when (view) {
is CredentialPasswordView ->
CredentialPasswordViewBinder.bind(view, host, viewModel, requestFocusForInput)
is CredentialPasswordView -> CredentialPasswordViewBinder.bind(view, host, viewModel)
is CredentialPatternView -> CredentialPatternViewBinder.bind(view, host, viewModel)
else -> throw IllegalStateException("unexpected view type: ${view.javaClass.name}")
}