From e108490a789ecbe727e760cf0332f7523ee58a0b Mon Sep 17 00:00:00 2001 From: Samer Alabi Date: Sat, 11 Jul 2026 01:11:34 -0400 Subject: [PATCH] Display errors in NFC scanning flow --- paymentsheet/api/paymentsheet.api | 7 +- paymentsheet/res/values/strings.xml | 2 + .../common/nfcscan/NfcScanningViewModel.kt | 9 +- .../common/nfcscan/scanner/NfcCardScanner.kt | 19 +- .../nfcscan/ui/NfcCoilAnimatedInterior.kt | 4 +- .../nfcscan/ui/NfcCoilContactlessIcon.kt | 2 +- .../common/nfcscan/ui/NfcCoilLayout.kt | 3 +- .../common/nfcscan/ui/NfcCoilTextLayout.kt | 221 ++++++++++++++++++ .../nfcscan/ui/NfcInstructionTextLayout.kt | 89 ------- .../common/nfcscan/ui/NfcScanningStatus.kt | 7 +- .../nfcscan/NfcScanningViewModelTest.kt | 55 ++++- .../scanner/DefaultNfcCardScannerTest.kt | 25 +- .../nfcscan/ui/NfcCoilAnimatedInteriorTest.kt | 2 +- .../NfcScanningLayoutScreenshotTestSuite.kt | 106 +++++++-- ...ndscape_noError][DarkTheme,Landscape].png} | Bin ...dscape_noError][LightTheme,Landscape].png} | Bin ...ndscape_noError][DarkTheme,Landscape].png} | Bin ...dscape_noError][LightTheme,Landscape].png} | Bin ...ndscape_noError][DarkTheme,Landscape].png} | Bin ...dscape_noError][LightTheme,Landscape].png} | Bin ...ndscape_noError][DarkTheme,Landscape].png} | Bin ...dscape_noError][LightTheme,Landscape].png} | Bin ...ndscape_noError][DarkTheme,Landscape].png} | Bin ...dscape_noError][LightTheme,Landscape].png} | Bin ...ndscape_noError][DarkTheme,Landscape].png} | Bin ...dscape_noError][LightTheme,Landscape].png} | Bin ...Portrait_noError][DarkTheme,Portrait].png} | Bin ...ortrait_noError][LightTheme,Portrait].png} | Bin ...ortrait_withError][DarkTheme,Portrait].png | Bin 0 -> 20786 bytes ...rtrait_withError][LightTheme,Portrait].png | Bin 0 -> 25522 bytes ...Portrait_noError][DarkTheme,Portrait].png} | Bin ...ortrait_noError][LightTheme,Portrait].png} | Bin ...Portrait_noError][DarkTheme,Portrait].png} | Bin ...ortrait_noError][LightTheme,Portrait].png} | Bin ..._Portrait_noError][DarkTheme,Portrait].png | Bin 0 -> 17362 bytes ...Portrait_noError][LightTheme,Portrait].png | Bin 0 -> 22450 bytes ...ortrait_withError][DarkTheme,Portrait].png | Bin 0 -> 20903 bytes ...rtrait_withError][LightTheme,Portrait].png | Bin 0 -> 25614 bytes ...Portrait_noError][DarkTheme,Portrait].png} | Bin ...ortrait_noError][LightTheme,Portrait].png} | Bin ...ortrait_withError][DarkTheme,Portrait].png | Bin 0 -> 20807 bytes ...rtrait_withError][LightTheme,Portrait].png | Bin 0 -> 25807 bytes ...Portrait_noError][DarkTheme,Portrait].png} | Bin ...ortrait_noError][LightTheme,Portrait].png} | Bin ...Portrait_noError][DarkTheme,Portrait].png} | Bin ...ortrait_noError][LightTheme,Portrait].png} | Bin 46 files changed, 418 insertions(+), 133 deletions(-) create mode 100644 paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilTextLayout.kt delete mode 100644 paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcInstructionTextLayout.kt rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)][DarkTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][DarkTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)][LightTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][LightTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)][DarkTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)_Landscape_noError][DarkTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)][LightTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)_Landscape_noError][LightTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)][DarkTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][DarkTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)][LightTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][LightTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)][DarkTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)_Landscape_noError][DarkTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)][LightTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)_Landscape_noError][LightTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)][DarkTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)_Landscape_noError][DarkTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)][LightTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)_Landscape_noError][LightTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)][DarkTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)_Landscape_noError][DarkTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)][LightTheme,Landscape].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)_Landscape_noError][LightTheme,Landscape].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)][DarkTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)][LightTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png} (100%) create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.2)][DarkTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.2)_Portrait_noError][DarkTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.2)][LightTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.2)_Portrait_noError][LightTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.85)][DarkTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.85)_Portrait_noError][DarkTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.85)][LightTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.2,_yBias=0.85)_Portrait_noError][LightTheme,Portrait].png} (100%) create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)][DarkTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)][LightTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png} (100%) create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png create mode 100644 paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.2)][DarkTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.2)_Portrait_noError][DarkTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.2)][LightTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.2)_Portrait_noError][LightTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.85)][DarkTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.85)_Portrait_noError][DarkTheme,Portrait].png} (100%) rename paymentsheet/src/test/snapshots/images/{com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.85)][LightTheme,Portrait].png => com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[UpsideDown_TapZone(xBias=0.2,_yBias=0.85)_Portrait_noError][LightTheme,Portrait].png} (100%) diff --git a/paymentsheet/api/paymentsheet.api b/paymentsheet/api/paymentsheet.api index da5db55e935..57559202b39 100644 --- a/paymentsheet/api/paymentsheet.api +++ b/paymentsheet/api/paymentsheet.api @@ -1,10 +1,11 @@ public abstract interface annotation class com/stripe/android/ExperimentalAllowsRemovalOfLastSavedPaymentMethodApi : java/lang/annotation/Annotation { } -public final class com/stripe/android/common/nfcscan/ui/ComposableSingletons$NfcInstructionTextLayoutKt { - public static final field INSTANCE Lcom/stripe/android/common/nfcscan/ui/ComposableSingletons$NfcInstructionTextLayoutKt; +public final class com/stripe/android/common/nfcscan/ui/ComposableSingletons$NfcCoilTextLayoutKt { + public static final field INSTANCE Lcom/stripe/android/common/nfcscan/ui/ComposableSingletons$NfcCoilTextLayoutKt; public fun ()V - public final fun getLambda$1568718839$paymentsheet_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda$-1325870959$paymentsheet_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$-298415252$paymentsheet_release ()Lkotlin/jvm/functions/Function3; } public final class com/stripe/android/common/taptoadd/ui/ComposableSingletons$TapToAddDelayScreenKt { diff --git a/paymentsheet/res/values/strings.xml b/paymentsheet/res/values/strings.xml index 25faa0a4682..1dd39e2e7d2 100644 --- a/paymentsheet/res/values/strings.xml +++ b/paymentsheet/res/values/strings.xml @@ -329,6 +329,8 @@ to be saved and used in future checkout sessions. --> Device not supported Try another card + + Card expired. Try another card. Cancel and pay another way diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/NfcScanningViewModel.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/NfcScanningViewModel.kt index e449742cd37..26a412c5371 100644 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/NfcScanningViewModel.kt +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/NfcScanningViewModel.kt @@ -37,7 +37,7 @@ internal class NfcScanningViewModel @Inject constructor( private val _viewState = MutableStateFlow( NfcScanningViewState( tapZone = tapZone, - status = NfcScanningStatus.Idle, + status = NfcScanningStatus.Idle(error = null), ) ) val viewState: StateFlow = _viewState.asStateFlow() @@ -62,6 +62,13 @@ internal class NfcScanningViewModel @Inject constructor( eventReporter.onNfcScanAttemptStarted() } is NfcCardScanner.State.Failed -> { + _viewState.emit( + NfcScanningViewState( + tapZone = tapZone, + status = NfcScanningStatus.Idle(error = state.error.userMessage), + ) + ) + eventReporter.onNfcScanAttemptFailed() } is NfcCardScanner.State.Complete -> { diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/scanner/NfcCardScanner.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/scanner/NfcCardScanner.kt index ce042379428..edf13e43d4c 100644 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/scanner/NfcCardScanner.kt +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/scanner/NfcCardScanner.kt @@ -4,6 +4,9 @@ import androidx.appcompat.app.AppCompatActivity import com.stripe.android.common.nfcscan.hardware.NfcHardwareDelegate import com.stripe.android.core.injection.IOContext import com.stripe.android.core.injection.ViewModelScope +import com.stripe.android.core.strings.ResolvableString +import com.stripe.android.core.strings.resolvableString +import com.stripe.android.paymentsheet.R import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow @@ -16,9 +19,13 @@ internal interface NfcCardScanner { sealed interface State { data object Scanning : State data class Complete(val cardData: ScannedCardData) : State - data class Failed(val error: Throwable) : State + data class Failed(val error: Error) : State } + data class Error( + val userMessage: ResolvableString, + ) + val state: Flow fun start(activity: AppCompatActivity) @@ -59,11 +66,17 @@ internal class DefaultNfcCardScanner @Inject constructor( onSuccess = { cardData -> _state.emit(NfcCardScanner.State.Complete(cardData)) }, - onFailure = { error -> - _state.emit(NfcCardScanner.State.Failed(error)) + onFailure = { + _state.emit(NfcCardScanner.State.Failed(GENERIC_ERROR)) } ) } } } + + private companion object { + val GENERIC_ERROR = NfcCardScanner.Error( + userMessage = R.string.stripe_tap_to_add_card_default_error_action.resolvableString, + ) + } } diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInterior.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInterior.kt index a81ae7fc30e..60adfea7e58 100644 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInterior.kt +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInterior.kt @@ -83,7 +83,7 @@ private fun rememberNfcCoilRingState( if (LocalInspectionMode.current) { return when (status) { NfcScanningStatus.Scanned -> NfcCoilRingProgress.Complete - NfcScanningStatus.Idle, + is NfcScanningStatus.Idle, NfcScanningStatus.Scanning -> NfcCoilRingProgress.Zero } } @@ -97,7 +97,7 @@ private fun rememberNfcCoilRingState( LaunchedEffect(status) { when (status) { - NfcScanningStatus.Idle, + is NfcScanningStatus.Idle, NfcScanningStatus.Scanning -> { animatables.snapTo(NfcCoilRingProgress.Zero) savedState = NfcCoilRingSavedState() diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilContactlessIcon.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilContactlessIcon.kt index f24c2e64157..90788b677b3 100644 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilContactlessIcon.kt +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilContactlessIcon.kt @@ -36,7 +36,7 @@ internal fun NfcCoilContactlessIcon( status: NfcScanningStatus, modifier: Modifier = Modifier, ) { - if (LocalInspectionMode.current || status != NfcScanningStatus.Idle) { + if (LocalInspectionMode.current || status !is NfcScanningStatus.Idle) { NfcCoilStaticIcon(modifier = modifier) return } diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilLayout.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilLayout.kt index 8d95366b2d1..313dd75799f 100644 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilLayout.kt +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilLayout.kt @@ -48,13 +48,14 @@ internal fun NfcCoilLayout( ) } - NfcCoilInstructionTextLayout( + NfcCoilTextLayout( containerWidth = maxWidth, containerHeight = maxHeight, tapZone = tapZone, shouldRenderTextAboveCoil = shouldRenderTextAboveCoil, coilSize = CoilCircleSize, canShow = canShowInstructionText, + error = (status as? NfcScanningStatus.Idle)?.error, ) } } diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilTextLayout.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilTextLayout.kt new file mode 100644 index 00000000000..d3ba25ebc2b --- /dev/null +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcCoilTextLayout.kt @@ -0,0 +1,221 @@ +package com.stripe.android.common.nfcscan.ui + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.text.appendInlineContent +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.Layout +import androidx.compose.ui.layout.Measurable +import androidx.compose.ui.layout.MeasureResult +import androidx.compose.ui.layout.MeasureScope +import androidx.compose.ui.layout.Placeable +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.PlaceholderVerticalAlign +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.Constraints +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.stripe.android.common.nfcscan.tapzone.TapZone +import com.stripe.android.common.ui.InlineContentTemplateBuilder +import com.stripe.android.core.strings.ResolvableString +import com.stripe.android.paymentsheet.R +import com.stripe.android.uicore.strings.resolve +import kotlin.math.roundToInt +import com.stripe.payments.model.R as PaymentsModelR + +private val TopTextOffset = (-55).dp +private val BottomTextOffset = 30.dp +private val InstructionTextEdgePadding = 20.dp +private val ErrorTextTopSpacing = 8.dp + +@Composable +internal fun NfcCoilTextLayout( + containerWidth: Dp, + containerHeight: Dp, + tapZone: TapZone, + coilSize: Dp, + shouldRenderTextAboveCoil: Boolean, + canShow: Boolean, + error: ResolvableString?, +) { + Layout( + content = { + NfcCoilInstructionText(canShow = canShow) + if (error != null) { + NfcCoilErrorText( + message = error, + canShow = canShow, + ) + } + }, + ) { measurables, constraints -> + placeCoilTextElements( + containerWidth = containerWidth, + containerHeight = containerHeight, + tapZone = tapZone, + coilSize = coilSize, + shouldRenderTextAboveCoil = shouldRenderTextAboveCoil, + measurables = measurables, + constraints = constraints, + ) + } +} + +private fun MeasureScope.placeCoilTextElements( + containerWidth: Dp, + containerHeight: Dp, + tapZone: TapZone, + coilSize: Dp, + measurables: List, + constraints: Constraints, + shouldRenderTextAboveCoil: Boolean, +): MeasureResult { + val horizontalBias = tapZone.xBias * 2 - 1 + val verticalBias = tapZone.yBias * 2 - 1 + + val containerWidthPx = containerWidth.roundToPx() + val containerHeightPx = containerHeight.roundToPx() + + if (measurables.isEmpty()) { + return layout(containerWidthPx, containerHeightPx) {} + } + + val coilSizePx = coilSize.roundToPx() + val edgePaddingPx = InstructionTextEdgePadding.roundToPx() + val textConstraints = constraints.copy( + maxWidth = (containerWidthPx - edgePaddingPx * 2).coerceAtLeast(0), + ) + + val instructionPlaceable = measurables[0].measure(textConstraints) + val errorPlaceable = measurables.getOrNull(1)?.measure(textConstraints) + + val coilBoxLeft = ((containerWidthPx - coilSizePx) / 2f * (1f + horizontalBias)).roundToInt() + val coilBoxTop = ((containerHeightPx - coilSizePx) / 2f * (1f + verticalBias)).roundToInt() + val coilCenterX = coilBoxLeft + coilSizePx / 2 + + val instructionY = if (shouldRenderTextAboveCoil) { + coilBoxTop + TopTextOffset.roundToPx() + } else { + coilBoxTop + coilSizePx + BottomTextOffset.roundToPx() + } + + return layout(containerWidthPx, containerHeightPx) { + if (instructionPlaceable.width > 0 && instructionPlaceable.height > 0) { + instructionPlaceable.placeRelative( + x = clampedTextX( + placeable = instructionPlaceable, + coilCenterX = coilCenterX, + containerWidthPx = containerWidthPx, + edgePaddingPx = edgePaddingPx, + ), + y = instructionY, + ) + } + + errorPlaceable?.let { placeable -> + if (placeable.width > 0 && placeable.height > 0) { + val errorY = instructionY + + instructionPlaceable.height + + ErrorTextTopSpacing.roundToPx() + + placeable.placeRelative( + x = clampedTextX( + placeable = placeable, + coilCenterX = coilCenterX, + containerWidthPx = containerWidthPx, + edgePaddingPx = edgePaddingPx, + ), + y = errorY, + ) + } + } + } +} + +private fun clampedTextX( + placeable: Placeable, + coilCenterX: Int, + containerWidthPx: Int, + edgePaddingPx: Int, +): Int { + val desiredTextStartX = coilCenterX - placeable.width / 2 + return desiredTextStartX.coerceIn( + edgePaddingPx, + (containerWidthPx - edgePaddingPx - placeable.width).coerceAtLeast(edgePaddingPx), + ) +} + +@Composable +private fun NfcCoilInstructionText( + canShow: Boolean, +) { + AnimatedVisibility( + visible = canShow, + enter = fadeIn(), + exit = fadeOut(), + ) { + Text( + text = stringResource(R.string.stripe_nfc_scan_hold_card_behind_phone), + color = MaterialTheme.colors.onSurface, + style = MaterialTheme.typography.h4.copy(fontWeight = FontWeight.Bold), + textAlign = TextAlign.Center, + ) + } +} + +@Composable +private fun NfcCoilErrorText( + message: ResolvableString, + canShow: Boolean, +) { + AnimatedVisibility( + visible = canShow, + enter = fadeIn(), + exit = fadeOut(), + ) { + val textStyle = MaterialTheme.typography.body1 + val fontSize = textStyle.fontSize + + Text( + text = buildAnnotatedString { + appendInlineContent(ERROR_ICON_ID) + appendInlineContent(ERROR_SPACER_ID) + append(message.resolve()) + }, + inlineContent = InlineContentTemplateBuilder() + .add( + id = ERROR_ICON_ID, + width = fontSize, + height = fontSize, + align = PlaceholderVerticalAlign.TextCenter + ) { + Icon( + painter = painterResource(PaymentsModelR.drawable.stripe_ic_error), + contentDescription = null, + tint = MaterialTheme.colors.error, + modifier = Modifier.fillMaxSize() + ) + } + .addSpacer(ERROR_SPACER_ID, ERROR_SPACER_WIDTH) + .build(), + color = MaterialTheme.colors.error, + style = textStyle, + textAlign = TextAlign.Center, + ) + } +} + +private const val ERROR_SPACER_ID = "ERROR_SPACER" +private val ERROR_SPACER_WIDTH = 5.sp + +private const val ERROR_ICON_ID = "ERROR_ICON_ID" diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcInstructionTextLayout.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcInstructionTextLayout.kt deleted file mode 100644 index 63b5b4be854..00000000000 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcInstructionTextLayout.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.stripe.android.common.nfcscan.ui - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.layout.Layout -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import com.stripe.android.common.nfcscan.tapzone.TapZone -import com.stripe.android.paymentsheet.R -import kotlin.math.roundToInt - -private val TopTextOffset = (-55).dp -private val BottomTextOffset = 30.dp -private val InstructionTextEdgePadding = 20.dp - -@Composable -internal fun NfcCoilInstructionTextLayout( - containerWidth: Dp, - containerHeight: Dp, - tapZone: TapZone, - coilSize: Dp, - shouldRenderTextAboveCoil: Boolean, - canShow: Boolean, -) { - val horizontalBias = tapZone.xBias * 2 - 1 - val verticalBias = tapZone.yBias * 2 - 1 - - Layout( - content = { - NfcCoilInstructionText(canShow = canShow) - }, - ) { measurables, constraints -> - val containerWidthPx = containerWidth.roundToPx() - val containerHeightPx = containerHeight.roundToPx() - - if (measurables.isEmpty()) { - return@Layout layout(containerWidthPx, containerHeightPx) {} - } - - val textPlaceable = measurables[0].measure(constraints) - val coilSizePx = coilSize.roundToPx() - val edgePaddingPx = InstructionTextEdgePadding.roundToPx() - - val coilBoxLeft = ((containerWidthPx - coilSizePx) / 2f * (1f + horizontalBias)).roundToInt() - val coilBoxTop = ((containerHeightPx - coilSizePx) / 2f * (1f + verticalBias)).roundToInt() - val coilCenterX = coilBoxLeft + coilSizePx / 2 - - val desiredTextStartX = coilCenterX - textPlaceable.width / 2 - val textX = desiredTextStartX.coerceIn( - edgePaddingPx, - (containerWidthPx - edgePaddingPx - textPlaceable.width).coerceAtLeast(edgePaddingPx), - ) - - val textY = if (shouldRenderTextAboveCoil) { - coilBoxTop + TopTextOffset.roundToPx() - } else { - coilBoxTop + coilSizePx + BottomTextOffset.roundToPx() - } - - layout(containerWidthPx, containerHeightPx) { - textPlaceable.placeRelative(textX, textY) - } - } -} - -@Composable -private fun NfcCoilInstructionText( - canShow: Boolean, -) { - AnimatedVisibility( - visible = canShow, - enter = fadeIn(), - exit = fadeOut(), - ) { - Text( - text = stringResource(R.string.stripe_nfc_scan_hold_card_behind_phone), - color = MaterialTheme.colors.onSurface, - style = MaterialTheme.typography.h4.copy(fontWeight = FontWeight.Bold), - textAlign = TextAlign.Center, - ) - } -} diff --git a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcScanningStatus.kt b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcScanningStatus.kt index ae35f3b82a8..d3af2b26472 100644 --- a/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcScanningStatus.kt +++ b/paymentsheet/src/main/java/com/stripe/android/common/nfcscan/ui/NfcScanningStatus.kt @@ -1,7 +1,12 @@ package com.stripe.android.common.nfcscan.ui +import com.stripe.android.core.strings.ResolvableString + internal sealed interface NfcScanningStatus { - data object Idle : NfcScanningStatus + data class Idle( + val error: ResolvableString?, + ) : NfcScanningStatus + data object Scanning : NfcScanningStatus data object Scanned : NfcScanningStatus } diff --git a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/NfcScanningViewModelTest.kt b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/NfcScanningViewModelTest.kt index 64caec86514..38db67c88c5 100644 --- a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/NfcScanningViewModelTest.kt +++ b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/NfcScanningViewModelTest.kt @@ -11,6 +11,8 @@ import com.stripe.android.common.nfcscan.scanner.ScannedCardData import com.stripe.android.common.nfcscan.tapzone.FakeTapZoneResolver import com.stripe.android.common.nfcscan.tapzone.TapZone import com.stripe.android.common.nfcscan.ui.NfcScanningStatus +import com.stripe.android.core.strings.resolvableString +import com.stripe.android.paymentsheet.R import com.stripe.android.testing.CoroutineTestRule import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job @@ -35,7 +37,7 @@ internal class NfcScanningViewModelTest { assertThat(viewModel.viewState.value).isEqualTo( NfcScanningViewState( tapZone = TapZone(xBias = 0.3f, yBias = 0.7f), - status = NfcScanningStatus.Idle, + status = NfcScanningStatus.Idle(error = null), ), ) } @@ -53,7 +55,13 @@ internal class NfcScanningViewModelTest { @Test fun `card scanner failed reports attempt failed`() = runScenario { - scannerState.emit(NfcCardScanner.State.Failed(RuntimeException("test"))) + scannerState.emit( + NfcCardScanner.State.Failed( + error = NfcCardScanner.Error( + userMessage = R.string.stripe_nfc_expired_error.resolvableString, + ), + ), + ) assertThat(fakeEventReporter.onNfcScanAttemptFailedCalls.awaitItem()).isNotNull() } @@ -69,7 +77,7 @@ internal class NfcScanningViewModelTest { @Test fun `card scanner in scanning status updates the view model state to scanning`() = runScenario { viewModel.viewState.test { - assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle) + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle(error = null)) scannerState.emit(NfcCardScanner.State.Scanning) assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Scanning) } @@ -80,7 +88,7 @@ internal class NfcScanningViewModelTest { @Test fun `card scanner in scanned status updates the view model state to scanned`() = runScenario { viewModel.viewState.test { - assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle) + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle(error = null)) scannerState.emit( NfcCardScanner.State.Complete( @@ -98,6 +106,45 @@ internal class NfcScanningViewModelTest { assertThat(fakeEventReporter.onNfcScanAttemptSucceededCalls.awaitItem()).isNotNull() } + @Test + fun `card scanner in failed status updates the view model state to idle with error`() = runScenario { + val errorMessage = R.string.stripe_tap_to_add_card_default_error_action.resolvableString + + viewModel.viewState.test { + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle(error = null)) + + scannerState.emit( + NfcCardScanner.State.Failed( + error = NfcCardScanner.Error(userMessage = errorMessage), + ), + ) + + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle(error = errorMessage)) + assertThat(fakeEventReporter.onNfcScanAttemptFailedCalls.awaitItem()).isNotNull() + } + } + + @Test + fun `card scanner in scanning status clears idle error`() = runScenario { + val errorMessage = R.string.stripe_tap_to_add_card_default_error_action.resolvableString + + viewModel.viewState.test { + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle(error = null)) + + scannerState.emit( + NfcCardScanner.State.Failed( + error = NfcCardScanner.Error(userMessage = errorMessage), + ), + ) + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Idle(error = errorMessage)) + assertThat(fakeEventReporter.onNfcScanAttemptFailedCalls.awaitItem()).isNotNull() + + scannerState.emit(NfcCardScanner.State.Scanning) + assertThat(awaitItem().status).isEqualTo(NfcScanningStatus.Scanning) + assertThat(fakeEventReporter.onNfcScanAttemptStartedCalls.awaitItem()).isNotNull() + } + } + @Test fun `card scanner Complete state emits Complete result after success animation`() = runScenario { viewModel.result.test { diff --git a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/scanner/DefaultNfcCardScannerTest.kt b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/scanner/DefaultNfcCardScannerTest.kt index b86ca5d9a31..0e79e18d2e4 100644 --- a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/scanner/DefaultNfcCardScannerTest.kt +++ b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/scanner/DefaultNfcCardScannerTest.kt @@ -5,6 +5,8 @@ import androidx.appcompat.app.AppCompatActivity import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import com.stripe.android.common.nfcscan.hardware.FakeNfcHardwareDelegate +import com.stripe.android.core.strings.resolvableString +import com.stripe.android.paymentsheet.R import com.stripe.android.testing.CoroutineTestRule import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.test.UnconfinedTestDispatcher @@ -66,8 +68,13 @@ internal class DefaultNfcCardScannerTest { startCall.onTagDiscovered.invoke(tag) assertThat(awaitItem()).isEqualTo(NfcCardScanner.State.Scanning) - val failedState = awaitItem() as NfcCardScanner.State.Failed - assertThat(failedState.error).isInstanceOf(IllegalStateException::class.java) + assertThat(awaitItem()).isEqualTo( + NfcCardScanner.State.Failed( + error = NfcCardScanner.Error( + userMessage = R.string.stripe_tap_to_add_card_default_error_action.resolvableString, + ), + ), + ) } assertThat(fakeTransceiverFactory.createCalls.awaitItem()).isEqualTo(tag) @@ -106,9 +113,13 @@ internal class DefaultNfcCardScannerTest { startCall.onTagDiscovered.invoke(tag) assertThat(awaitItem()).isEqualTo(NfcCardScanner.State.Scanning) - val failedState = awaitItem() as NfcCardScanner.State.Failed - assertThat(failedState.error).isInstanceOf(IOException::class.java) - assertThat(failedState.error.message).isEqualTo("open failed") + assertThat(awaitItem()).isEqualTo( + NfcCardScanner.State.Failed( + error = NfcCardScanner.Error( + userMessage = R.string.stripe_tap_to_add_card_default_error_action.resolvableString, + ), + ), + ) } assertThat(fakeTransceiverFactory.createCalls.awaitItem()).isEqualTo(tag) @@ -135,8 +146,8 @@ internal class DefaultNfcCardScannerTest { assertThat(awaitItem()).isEqualTo(NfcCardScanner.State.Scanning) val failedState = awaitItem() as NfcCardScanner.State.Failed - assertThat(failedState.error).isInstanceOf(IOException::class.java) - assertThat(failedState.error.message).isEqualTo("close failed") + assertThat(failedState.error.userMessage) + .isEqualTo(R.string.stripe_tap_to_add_card_default_error_action.resolvableString) } assertThat(fakeTransceiverFactory.createCalls.awaitItem()).isEqualTo(tag) diff --git a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInteriorTest.kt b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInteriorTest.kt index 773564cd4b1..96a35ca2071 100644 --- a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInteriorTest.kt +++ b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcCoilAnimatedInteriorTest.kt @@ -42,7 +42,7 @@ internal class NfcCoilAnimatedInteriorTest { fun `idle status keeps ring progress at zero`() { composeRule.setContent { NfcCoilAnimatedInterior( - status = NfcScanningStatus.Idle, + status = NfcScanningStatus.Idle(error = null), onSuccessShown = {}, modifier = Modifier.size(CoilSize), ) diff --git a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcScanningLayoutScreenshotTestSuite.kt b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcScanningLayoutScreenshotTestSuite.kt index 84ccc0feb63..5a922efe300 100644 --- a/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcScanningLayoutScreenshotTestSuite.kt +++ b/paymentsheet/src/test/java/com/stripe/android/common/nfcscan/ui/NfcScanningLayoutScreenshotTestSuite.kt @@ -8,6 +8,8 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import com.stripe.android.common.nfcscan.tapzone.TapZone +import com.stripe.android.core.strings.ResolvableString +import com.stripe.android.core.strings.resolvableString import com.stripe.android.screenshottesting.Orientation import com.stripe.android.screenshottesting.PaparazziRule import com.stripe.android.screenshottesting.SystemAppearance @@ -25,6 +27,7 @@ internal class NfcScanningLayoutScreenshotTestSuite { private val deviceRotation: DeviceRotation, private val tapZone: TapZone, paparazziOrientation: Orientation, + private val error: Error, ) { @get:Rule val paparazziRule = PaparazziRule( @@ -39,7 +42,7 @@ internal class NfcScanningLayoutScreenshotTestSuite { paparazziRule.snapshot { NfcScanningTheme { NfcScanningLayout( - status = NfcScanningStatus.Idle, + status = NfcScanningStatus.Idle(error.error()), tapZone = tapZone, deviceRotation = deviceRotation, onClose = {}, @@ -51,66 +54,113 @@ internal class NfcScanningLayoutScreenshotTestSuite { private companion object { @JvmStatic - @Parameterized.Parameters(name = "{0}_{1}") - fun parameters(): List> = listOf( - arrayOf(DeviceRotation.Portrait, LOW_TAP_ZONE, Orientation.Portrait), - arrayOf(DeviceRotation.Portrait, HIGH_TAP_ZONE, Orientation.Portrait), - arrayOf(DeviceRotation.UpsideDown, LOW_TAP_ZONE, Orientation.Portrait), - arrayOf(DeviceRotation.UpsideDown, HIGH_TAP_ZONE, Orientation.Portrait), + @Parameterized.Parameters(name = "{0}_{1}_{2}_{3}") + fun parameters(): List> = listOf( + arrayOf(DeviceRotation.Portrait, DEFAULT_TAP_ZONE, Orientation.Portrait, Error.None), + *HIGH_LOW_CASES, + *CLOSE_START_END_CASES, + *LANDSCAPE_CORNER_CASES, + *ERROR_CASES, + ) + + val DEFAULT_TAP_ZONE = TapZone(xBias = 0.5f, yBias = 0.3f) + + val LOW_TAP_ZONE = TapZone(xBias = 0.2f, yBias = 0.2f) + val HIGH_TAP_ZONE = TapZone(xBias = 0.2f, yBias = 0.85f) + + val HIGH_LOW_CASES = arrayOf( + arrayOf(DeviceRotation.Portrait, LOW_TAP_ZONE, Orientation.Portrait, Error.None), + arrayOf(DeviceRotation.Portrait, HIGH_TAP_ZONE, Orientation.Portrait, Error.None), + arrayOf(DeviceRotation.UpsideDown, LOW_TAP_ZONE, Orientation.Portrait, Error.None), + arrayOf(DeviceRotation.UpsideDown, HIGH_TAP_ZONE, Orientation.Portrait, Error.None), + ) + + val PORTRAIT_CLOSE_START_TAP_ZONE = TapZone(xBias = 0.05f, yBias = 0.3f) + val PORTRAIT_CLOSE_END_TAP_ZONE = TapZone(xBias = 0.95f, yBias = 0.3f) + val LANDSCAPE_CLOSE_START_TAP_ZONE = TapZone(xBias = 0.5f, yBias = 0.05f) + val LANDSCAPE_CLOSE_END_TAP_ZONE = TapZone(xBias = 0.5f, yBias = 0.95f) + + val CLOSE_START_END_CASES = arrayOf( arrayOf( DeviceRotation.Portrait, PORTRAIT_CLOSE_START_TAP_ZONE, Orientation.Portrait, + Error.None, ), arrayOf( DeviceRotation.Portrait, PORTRAIT_CLOSE_END_TAP_ZONE, Orientation.Portrait, + Error.None, ), arrayOf( DeviceRotation.LandscapeRight, LANDSCAPE_CLOSE_START_TAP_ZONE, Orientation.Landscape, + Error.None, ), arrayOf( DeviceRotation.LandscapeRight, LANDSCAPE_CLOSE_END_TAP_ZONE, Orientation.Landscape, + Error.None, ), + ) + + val LANDSCAPE_LEFT_TOP_END_CLOSE_TAP_ZONE = TapZone(xBias = 0.8f, yBias = 0.1f) + val LANDSCAPE_LEFT_TOP_START_CLOSE_TAP_ZONE = TapZone(xBias = 0.1f, yBias = 0.5f) + val LANDSCAPE_RIGHT_TOP_END_CLOSE_TAP_ZONE = TapZone(xBias = 0.2f, yBias = 0.85f) + val LANDSCAPE_RIGHT_TOP_START_CLOSE_TAP_ZONE = TapZone(xBias = 0.1f, yBias = 0.5f) + + val LANDSCAPE_CORNER_CASES = arrayOf( arrayOf( DeviceRotation.LandscapeLeft, LANDSCAPE_LEFT_TOP_END_CLOSE_TAP_ZONE, Orientation.Landscape, + Error.None, ), arrayOf( DeviceRotation.LandscapeLeft, LANDSCAPE_LEFT_TOP_START_CLOSE_TAP_ZONE, Orientation.Landscape, + Error.None, ), arrayOf( DeviceRotation.LandscapeRight, LANDSCAPE_RIGHT_TOP_END_CLOSE_TAP_ZONE, Orientation.Landscape, + Error.None, ), arrayOf( DeviceRotation.LandscapeRight, LANDSCAPE_RIGHT_TOP_START_CLOSE_TAP_ZONE, Orientation.Landscape, + Error.None, ), ) - val LOW_TAP_ZONE = TapZone(xBias = 0.2f, yBias = 0.2f) - val HIGH_TAP_ZONE = TapZone(xBias = 0.2f, yBias = 0.85f) - - val PORTRAIT_CLOSE_START_TAP_ZONE = TapZone(xBias = 0.05f, yBias = 0.3f) - val PORTRAIT_CLOSE_END_TAP_ZONE = TapZone(xBias = 0.95f, yBias = 0.3f) - val LANDSCAPE_CLOSE_START_TAP_ZONE = TapZone(xBias = 0.5f, yBias = 0.05f) - val LANDSCAPE_CLOSE_END_TAP_ZONE = TapZone(xBias = 0.5f, yBias = 0.95f) + const val ERROR_TEXT = "Card expired. Try another card." - val LANDSCAPE_LEFT_TOP_END_CLOSE_TAP_ZONE = TapZone(xBias = 0.8f, yBias = 0.1f) - val LANDSCAPE_LEFT_TOP_START_CLOSE_TAP_ZONE = TapZone(xBias = 0.1f, yBias = 0.5f) - val LANDSCAPE_RIGHT_TOP_END_CLOSE_TAP_ZONE = TapZone(xBias = 0.2f, yBias = 0.85f) - val LANDSCAPE_RIGHT_TOP_START_CLOSE_TAP_ZONE = TapZone(xBias = 0.1f, yBias = 0.5f) + val ERROR_CASES = arrayOf( + arrayOf( + DeviceRotation.Portrait, + DEFAULT_TAP_ZONE, + Orientation.Portrait, + Error.Message(ERROR_TEXT), + ), + arrayOf( + DeviceRotation.Portrait, + PORTRAIT_CLOSE_START_TAP_ZONE, + Orientation.Portrait, + Error.Message(ERROR_TEXT), + ), + arrayOf( + DeviceRotation.Portrait, + PORTRAIT_CLOSE_END_TAP_ZONE, + Orientation.Portrait, + Error.Message(ERROR_TEXT), + ), + ) } } @@ -126,7 +176,7 @@ internal class NfcScanningLayoutScreenshotTestSuite { paparazziRule.gif(end = 1500L) { NfcScanningTheme { NfcScanningLayout( - status = NfcScanningStatus.Idle, + status = NfcScanningStatus.Idle(error = null), tapZone = TapZone(xBias = 0.5f, yBias = 0.35f), deviceRotation = DeviceRotation.Portrait, onClose = {}, @@ -140,7 +190,9 @@ internal class NfcScanningLayoutScreenshotTestSuite { fun scanned() { paparazziRule.gif(end = 2400L) { NfcScanningTheme { - var status by remember { mutableStateOf(NfcScanningStatus.Idle) } + var status by remember { + mutableStateOf(NfcScanningStatus.Idle(error = null)) + } LaunchedEffect(Unit) { delay(800L) @@ -158,4 +210,18 @@ internal class NfcScanningLayoutScreenshotTestSuite { } } } + + sealed interface Error { + fun error(): ResolvableString? + + data object None : Error { + override fun error() = null + override fun toString() = "noError" + } + + data class Message(val message: String) : Error { + override fun error() = message.resolvableString + override fun toString() = "withError" + } + } } diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)][DarkTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][DarkTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)][DarkTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][DarkTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)][LightTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][LightTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)][LightTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][LightTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)][DarkTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)_Landscape_noError][DarkTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)][DarkTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)_Landscape_noError][DarkTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)][LightTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)_Landscape_noError][LightTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)][LightTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeLeft_TapZone(xBias=0.8,_yBias=0.1)_Landscape_noError][LightTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)][DarkTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][DarkTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)][DarkTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][DarkTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)][LightTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][LightTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)][LightTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.1,_yBias=0.5)_Landscape_noError][LightTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)][DarkTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)_Landscape_noError][DarkTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)][DarkTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)_Landscape_noError][DarkTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)][LightTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)_Landscape_noError][LightTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)][LightTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.2,_yBias=0.85)_Landscape_noError][LightTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)][DarkTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)_Landscape_noError][DarkTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)][DarkTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)_Landscape_noError][DarkTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)][LightTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)_Landscape_noError][LightTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)][LightTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.05)_Landscape_noError][LightTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)][DarkTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)_Landscape_noError][DarkTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)][DarkTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)_Landscape_noError][DarkTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)][LightTheme,Landscape].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)_Landscape_noError][LightTheme,Landscape].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)][LightTheme,Landscape].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[LandscapeRight_TapZone(xBias=0.5,_yBias=0.95)_Landscape_noError][LightTheme,Landscape].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)][DarkTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)][DarkTheme,Portrait].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)][LightTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)][LightTheme,Portrait].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.05,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png new file mode 100644 index 0000000000000000000000000000000000000000..4b83c0ed68d78a741bd63ffb3d12b3c2dffaef4b GIT binary patch literal 20786 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 z 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 Wy=+jMxJj$P?*QeH>us07w7&s*$2!jd literal 0 HcmV?d00001 diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png new file mode 100644 index 0000000000000000000000000000000000000000..c9abcfd24633bd1f5bfbb1f1c0535aea56c41523 GIT binary patch literal 20903 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 literal 0 HcmV?d00001 diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.5,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png new file mode 100644 index 0000000000000000000000000000000000000000..5d0c1239288c78f7921f5a1b80a451e5077cd7e3 GIT binary patch literal 25614 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 literal 0 HcmV?d00001 diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)][DarkTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)][DarkTheme,Portrait].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_noError][DarkTheme,Portrait].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)][LightTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png similarity index 100% rename from paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)][LightTheme,Portrait].png rename to paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_noError][LightTheme,Portrait].png diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_withError][DarkTheme,Portrait].png new file mode 100644 index 0000000000000000000000000000000000000000..4b0a76cdeab5e9a8db988b4e07528e7818c5b3ad GIT binary patch literal 20807 zcmd42S5#A9*gj|hjGz>yiB$Qi^dcZ2C4d4-M+Bq`NC{P>mk^~WJvMrij?#Ni6oIG+ zNbiIqgh&aHP}1l4t-1QIxtO))V!k_84rlLozx{oleG<(~^e-~=F`qhh>f(d@_a2@) zb-MS|sk56PCg2z2dYbyFQ|7D>?rA>?o7-7D7xkYT75ohAkn>U4GD2ZmlK*hCNBQO2 zral;}d*_-MNKEX>>C%KTuF~@l8Q#kDw3Qr}WMaT*sv8bGyZB%3)A#enOZbQ$r)LjB zLPJ81h`%f_c3{d1+vQUPOZ0R0Q|xi4gh8jZ*w4HWW;mq{Iu*lyib3QQNauga17VN= z!~ZIQ{vXuzzeZXA53&KaWshS$^S{lk|EHu3MQ2a{pTGTo_RQboIXPovv3lj#U)7~^ z+XUd7mp2CYd|iiij{gpHyn8Ff6ki+qY~v$=x=mm603LX(_;cI)`q)05aG!OZ zzCU<@zd*z3{hB!F^j}mXm8qMAWH` zajpp&ph^35FP9{$(9Z(=k>c90b@^#tLXy}GD*XJgnmtGI;_RymPtt}H`&7CVvtvKNt4#w{Znkb(R<3B@uQj-t&x z_BbusI^yBgH{3!ECZr{%*A-VnsCI=ch$F9Ld3KM2LsprIv`p{6xIB(HE&m3>vUxlW zkv-rzwJ?42WbW2_^l@1>%06$yF0iio*O#}$BHAEDccc@&d6W5S#cZ2qm+9@usm~cI zlbWFws;w&0(zl;OTkZk>6ywH}b{}6SFEi9UzJBrc&n84aXDYDNJ8s^dKwI}Oa+n-p zhQGDMz~9V}-Bh^YcpACl)b`7_73lfp@4dRO15Me_yq|q{*IK%|@ee;{GJ zjHzzZo-2(}+%&xtKi94WJc1KWrx~GV2_8&eCLkB(Gd_;L z76ZN91${YvmnGTAvnKKm7)8wqxq z0IMIf8g|wO1$7ENo7q&{YQ=yun3Pdg9_3}Ps--}uKRYq|K3RFy65uVOJ!Z%>u^sNc zGVrb8SH3WVXUUbIhV^M#DF$DeC%C*=-uDNYysfW<8N^zA=pxvztF*qTF9^BLAavwE z*Ug$_J$GK`1-nvQ_5e*+x*je)dwY--W?*>H<^lT|Xou`Gtrhq74Td9!2I1bAlF+}0 zEDZmqH~@AZ|JRzK|8m*2{5PxNSDdaQRKHoUfcG&2B%byQY905}NHT zz}g_fyH6ZvUzG#aHWV>^y}>`+K^z%xqyi#;{F?dTYUA@9$hI4E$es21`9i05Y@;v( zUtsj|p3*qrxgWJE4Bcneb6z=BJ!01pYTi7!+TnIdNnue?xvXEmS`_q>>HJso+;WIi zmT?U(P-Qnm>cTX4oEFsXY5x#QRlHa`HUrBQxmdt`wW9!V7>i%@9IwJi&Y2**{Wn;d zuAZ+1=q1UUH9w-Ti)(^lHnf-a>aPN4-0%6j&*F_0U*EE^Dzb_Cb0>y9t9wP1=6FZGSpW_zSIU|G^~mTIfI!&ig5OY719 zLI>>Qbtz5@BVA9Dfh6s-i9dq;`l>(%XK_1*Uj^JZdYzXAGJbW}s$pW8i&5nF{sX)M zyyKp>L7m+EZKUzw;Zdf~>m|;%v`kcR3P5?%dE018%^)aqR0)k9U+*$|2|HE{U_c0mscAEr43(- z)#GMj6XV4um(TAAL1qQp@5T$q-MKwoep8$sJH9cy{0#WNQ1cy2mQcJE?^qkpIzn1n zBkY549AXp5BGtlizmBKCM(jF;RTo)pt{e9pJ1}dDO)&c#4_@HC0Vi zi;gxZ*d6;)biv__LEk~lqNOBfoLOkgS69v`vyHa|YVZJy&gLPWscCMxdCkv!Q=3s? z`?;}gEB%Q!s3(FeTj{tl=|Z!)qIE7Kf_Uy|oJud`VLl*ho9uRosr zJWI_iFCb(D-hHna5Mmw4&QwX1Q@Kqxvt!`*NufAcW08Qt5*t*FG3@`&=o?r z4=>04zAB~ZvZL5fV-s8O5@zb&j-2#{^uBhoS|kvSk6t@P9U2$G<#e|8l{F1Rd-ei4 zWvX-?DPPD~3LTMIOG3ZKwtCzwKj%bM>?zPVMma_0YmNxwEziwagUJWE1k7vA`^j!f zed1A84nlvL(NqXldl0bv#SI&}9HSji|K<=cfO(Gu-*AMwgFETjb4mV|#9YJo$u3SgLIoyyiW=-%u!_B*Wm?S{%h zK%oN<&@X5L3W>cE(qUCJmENBPkG|$`uuP8Uv$dO_o~`qb++Ay?Ua#XUe_#}7wxbuO zC$yYrQ(qG_g~xW&yR9qbTWwf|?ltYqVR|+dwhdUm%nUM!5MH^PGumRl-P}0rAuRFu zz8cO2EQ(p6`q>_RsEBNaKc`nY8Nz$^ZA4z!<-dAM-QB#pB&CQY8L0)ZZqv1FpKp4_ zu=CA^Dr;K3oXRGTyR~$DtBVwc62iBX>dp&AWwRn_sm*)mO-))gJ8W1ZrF;Wc2C-<_ zs4;h;^+VIB4?7qO&3Tg(+8mih$Mdl<6^MBI8o8~$7g<>hXj|Aqrp;}~AUYYculXUB%2Gs_mrG)uDYz>@D5$F%UNoRhB=&A3G z_I}ASurqq%bo60B$o`V3pgSdzCCNI!Q&(?ER9?+u(RYx7c2ksRh9nU;stTALRfc_|~C3tO8 zRLIm6K@9I#(y>0V#0lKHwY35-n=d4{_bz<*AB#XX@!RE6iW^>sug(%A8*Ha>^V~ ztwc|jnDoWk=QeM4;nEKt;6sro4{~<)NYxjIqBdP2`FKa8O!Yl&((-uS_$$~Z>FLSi zt4ca`LCI=97Zl2hErA&&Q#ejfZoU<1>DjW1n(lVAIzbr+>gVm-JM7{zco6oUjg(t$ z?sM1Kx}7Qord*(7WJmGBXF||~@u@xThdn>+b7_DeRMS!+vn)#0ZwVgdI=Oh05N zKEHDjliE1vgzYQ}SX;DR3{u|pe>`Wz&%+dO*#%=1ubQo9Z}#|?BfE}(T?EiW=k)kl zds@nAR$Yv?a2|^ybWP$vE2rs=Cbm=6lXS~ zyea_95H6H&%r(r)jnLxWpv0cKsG8klDyFT+p%o2_+%Cz{px>%c&)1ax#HA;#xM6cA z^yj%>QVP%FgySMw_ax>e>m_C=F`0wCfBLJ-4;M=!5w}lZC19aCk~<<6M)a{UzRi6m zi<&TZakpa+aXk3#Xdj-ZmhKna(yJH4{&)6x`bu5>=jADnn;BdL{lz_Z`0ibX=~`I0 z(jtY>7etpVEXT6d`tkJ<&Vh3ZqPOskeDk)LsahfbAB7qYQ`WpKeJ36Gil9#|iwq(Y zO&zyY&7Cc;ai`ZR8b8?;>}-1?wJop}WkTs*f9_XBZ|xLL?ns5Tw{;8Q`f|OMG5()@ zgd`WsRzD(pcKIdbM@X;F>r{F)`9&7=e(rlq4=bsDLEjP;B5Z0>%6b=tWFnTSpM{V> zn*E?bdv){X)Kfm)(HSt(_K1&uE4?@>93gFT8PF`y_437AK7iR9Wymhx)?A55wv=$}SD)G*)|)SM=K_;ep{p4?>duE{vk9T>?s>=5U4mEi`K`8VIh zTMo0Cgh}*RJZwj*?hh*Bti4=r(##q9=%l>&r?|!R#}3(zSxdD81rkxFQtlT1 z_tsJ+=}=-($z>?eTWz0uQ@MNAjD^*R)nbQS$cm2FVb@`^0cJNw%fvN*87EV`heP|Z zqoUgYrE?q?cGLJ|d60E+vFD-C0v9~WEI6wm@VLtjj>deR8;-T#pI$d^hj$-k2a2N? z5NIf5mUb7gR|$X$6n&Jy3U!l4*#^r6d=`G_R*8P6WybefcYG~Gw(snG76NZJdkmI~ z_2Gx?-N4Re!4FNldRkjr9>WN0??!9(qdo3S2yEZXw(=Su=vF4;}SF%%pN$?6H4yfbb&s5<) zfBb3lr|%$<(C|IPTF-Le%iFP?H%MzRmXc91sP9%w%KfXC7LD7y`BU(!=mYPix(Ey6 zi)>Na{;NQ*hwPep(e(#YfMG`|-YFJl>nWteKsQE`^oY^+0rj+D+vAF+Ih3`ni2D}U zQdz?}Cst7U>glUhlM|%&9a83bH*#3{+ma5JV*Rn+DxaI6BEf$h2J`2gBW*x|uIF(4fuBy5iGRC#L7| z5uZG1O7)N)`|Rte8W4bk!uGf)@sEbnGBeJt_|vFj4b^Nt#Y zbP#O1<}rz&C3E?WU2O~cydIF;HI-T8O`5oed6cYXwtWp$Boq5=@hsOvRaXgy6`Rmt zX%G^&{obvm5rd{)8?td@7d$vV5T^V9e?|&Cx^N`E=mjcj99h6F1{-tMJ=6F{}sQ2vgCam?s-lxA3@R%XP-J?>TxFc zJBdZ6ZWTUzzm#EI;>rj(Pvxl6@x%M;K7`i?UvFiG?jIS(M%y6n{OXZ~JmplpGJs)Y9zyuPX5ch5&1{SevydKvxH3j)Hw7&BFt? z+}JFIE@74|5RRLynU9ohG`M%u&Qr<;3ylM`eBpLw$NyRw)ruR8E8ie1>9GF*Lrbef zcraQHU%HuYS_yamWoudqEJCJKHQLxBtLs}mv8nEBOE2;rTz2-AZEGF)Ou;1O$wg*y?$fa9 zKl=@b^nL|P(?v0sqiJuLM?w?b!O?q>T6a0mqT~7$w}bO#V6N)eJYv2oUirLyBxbAQ zoq5J6vhC!7Y4Bg-t3q?cl*fga6wp#W?bC@w_+SM*4=V4wl;K$d`X#(hZf>iRQD{ro9WsJ91|S5=O?Z56gtt zlg^X=b>BsLIp}MZRr#^)gKq1`3Y4Km+*IqE5w9A5E8aI2TOCQM(5vO-@v&HaVA+wY zcvefZbZN*`i)K%E`{LLOi$Y_d^9YI9`6kOURO}rj{7Cr(N=%XtRi_86)N)R$)BeB^ zlVxfP)~>S_1>%vZJZNff$D|wmHTGv_0#ScqQRa%WlV4uoS-Z;rYo(06Rrl_9Xf{8b->kefRz&&EiXYse= zEtC0%$K6;gk#8oSMRb0W>$sum0kChBBS}Fioz^h$D7LJUKx0*L+kC}Ai8)+XL)W56OgeJUJpDQ8D14BAj z`4b;ttbu%%$kkoDZCDs(zJzT5o@hGhgG@sdbz_fec{FQ@cglOd0@yGIP}nng5qi$& z#Tc!KPzER24)~LaUsIaL{hjDzgUeW<@R|_As{SNpf6J_ULKdcZYGqYF)!$@XQL$&& z(Eu90gL1Rx#wSNV+A>Dgx>kN9TAF$m+S3m0iSInl(RU8{SpS6g`1I$!z7aKtRkDdZ zoJd@(H3gs^F~B0y)BnJm3Q11ebW%tf>~npqM>3*S>U3*oeYCeGHG1D@ws&QJ#8xSJ zKwi8?93?-yKeEAUW&a)81uhr54UAZF@x^a5?In@&yOKEATSO?~a&QMS(m}q+hqkga z0=3V2;*^Z3Q+!BBR0h`(9dMD!9m=Xj7H9w;*YGJgWV7&Wk-u{=$%c@Uq>OZKEh<_H z+KJJ!bJfZN z7*)SKylW-1AfdN1N#cCfRX}fF?O`Mzz6=jEAM9SwJ~*v{gOOUoV|{CmI{{Srt0(YE zUr^*i>7LiOWhYI$+o0>Mk29MywnC@S8hk>=m<5OEb0n2ZC^VrQc*{X6wWoRXZ@7+&( zpI3)DVd3qR*1HY;J@j($$*ALDwCjV`$8XDnk`cY}CSgBSM=u&yo!7}q$>47^_@Cyz zUcxFb{Afp3;?)XJhrv+t-ay@T2kF{qV2h;OK(sjSMHW^$N-kK}KSVA^TO+LwYd(^K=*uRV zp;)pQ$oWp>YZqf( zKNET`!h!shz|G(Do){-kzo9By+GcnD8xNX%ttN0O`Ql~%faHozO!b?W@$8hzd>mnh z%6kHY|k9PZ_- zwlSa_|3u$wYR%8skd0p)R3xILRCXm4VcZ8}c1HJ_B%R-=pl4Uu>`$IY?B-9A7nq0AoT4qVyg1%Z@u<^&=$Hi?DlD$Rc}S<$ z{I1lsj%8-!##7#;^>;$k@)ht|$=(M7oN;p5LtVQsnOkI%4)seyPWr9UrAMv*df><9 zJ9}H``=TRJwQ{LNl1j*a(}>T%30E#t3IRmQihRm$;tT+Y{lk-jr{S~D+8k^HO#xW5 zI6UYiC;o;Yquq3>%34PdhDFGlE1_R{S2XN6xv&(CCOh6C;QTqQ!e;@xGW&YR*Xk z`g&Wpa)?$=ILeUIuZ7P9wpRk#k!oLEf;z$8|8bU+;DKz)})w<))B3cK4 zte5aLJ%znB1Lc}~ql%OikMVV2I^k6uAD_>hHPoaHctGkTZxDWVxf$)Y={cprqa|pXrSOscbd#0cgjQiBCYg{6L*`m(l8HLJYP7{? z9`7{#OaR1K0#wwN4Xsk(dcNpGx+`dyOeK73-qEcqMN=_7gr8)m5LL>x$Nph|OM;eL z>MDvVz}}pmY*|$-$ASQwi~`yr*EaXR*c+_?3cR6q^rLwI2$n_Kouc|~n*|Zga@z&c zcHb}5`-Qzf`q&uqk}0_Bu%_2R!rBgxjJfO+0`Z2g+6r{k}QP=@6E_6Y)n4!0w0p4fqsxqtbidYPw|z$ZWrz`v{<04SPT5 z#rUyzTfV+#4t2$T!u`W?I-FL34)QmQ9XH_ZWsM}ck0S-Z?>?(6| z7xKhu=>qI7_^iifzi}~JIivM_0}5#kr10;6Af*7yS^c}zItQRP#@TX708Qp=c)@OQ zQG62`nmI$RZ3ck!n}eYS00edWZEX|Gxgh<_hoxHvLBQl=+=_b-DA?zkKo+8hN@O;V zh@Wk{qaZy!;lzGMpb6k-{U+mdTL7o_mGAWfXl=8PV{ghAaERvbmBu&8$M=Cnz5iw+ znr6kBE&1@8u~+#E@=?YBZS>c+G+gZ-envAmb);Z=`ARFiIc#0738|In}C4Ojl^aema9X};&L#BkNCICa0%AW5!IDT{R&cA&t zvp%Y?nOKXx_>|isnEw8)vmfrg@fs(sd%S_GK&%~ec?p&l5ovOIuzCip57&D#kh%5{$8W~owmj@bW zS?1@R%`U&B=AF!r@eBarw!y5} z09^g7qOqwXJ`ic&_CXd95EjbP>qe+icKjUm2&JlE2aTvMhkP^0BIGmt_nOl zi2eo;DhpQya?2O!r$v6Fj62Yn)>S=kr1rW0^%?gC8o(Byl@s!$ge?RJJ74N+I?XCGHAkG0D_^24K-5Z&opejUx8&t*RN*G$_xIn z2iSSh1o9lzqsd~dd5s1U7&n=stuDO{^nLDP>oW6qSRA-+;n#%SYhLzJE4OLWkOk}s z)v4`i(K_x?9%?Z)?4E`|r9Cu$KmFk`2JziKIZ?#x7A{!+QI(?_+)9;}6 z@0CMifZ%q#iF{PZ_-=rq!-BH>nLB!+!;Mr%o6Y=3?O*q=mE0C5ye4fkh-kH4>`qit za((i{Wzhf4q+qCw6!A7HqoU&9C6xF-#(;m)EO_HC#XesRxyO;i7?1d_FL5;AkGny2 zILZq1QAYuu`yNO|15z(!4FdfFZ2tx3SWH!_adPV8w)##JXXuDeVbtvy_K&q*?;1!y zfvf{OvPV8s`xI}zbQ@r&k03>pAySGxGW8_CYzG!P@*n-*JBwTOFGfBGE*_O#e_j1f z17!vc|Nrf}pBDQacHo-frg08%Nh<&)kV&Ipz&!S0EAf!uAGIyPwEAzXhM5i_v;Wg5ZagW%&zN$qT-1i*wLlH*$T(R%f=GMl=@@h35pro+MA(M-$i82q&q^ODeuy zJFNnD&UIdM#H=RE7BnOEg`h!gh$X?u?a|ef>W+<^pQp9I|6wf}Hw8oAi7_y-^3VK5 zC(zNJQrK!yWO~Tf+EOpC?ZqV<$+Ls8~{9ObHl_XhvpXeLUWwn`JXvt6ZM-bh| z$dq+i*zB(B(L&$|H)l7?_JjuGKpEOi$1I(98Np&2!^5rLYu>7rhe8t ze;dOT!ZaZ;|Mrzvy@;Uct^9z2E7EBr@Mwal+gstM&y!+qAT`L_O^}nll^PlqIMmE4 z4wWV#31W0Mj*;_nmqk*ZC!_qDM*%KFJ3*K;4k`*FAL9!BfTKTvM{d=$jeUPB$|wRn z6$6p=*k4&%JGA^(C%pz!M0`8eGc=ytGZqQoV`tXUeypsmq6*RhR;dnWuWkG(fo&c) zF_i5gJS=)a1oSrsoFrpd<9MNY%GNtr0^|y2Q(1mN_$~@B9nmCLFTXq|c)x4A(XjLH z=PKK63p=utS6>20{AnFiP2y7$Vce93OzvfoEk)C5$B=Iqm8(y(PM>8e6$qITaR6+F z1(YM(jhrb|2?3L5N5%{!YaShCp(z{6@n3~j{9$A}+kk#9mJ(MmX|setBjegCsXnc< z?pV@RovBdti8JY7PoCF#SOn4iTA*8lYp~Bt#e-SIUBkD2pg4JT+gv%Ct=KxMLVCZH!STa&AU4!8Wv4i6RMDR z9Vi91=z3J1IK&w=ITX=e+BrqiFkCVRifY>Xf~2YC-!FAnc?z zZ@eAnLXGdfo7!rE=uhS^tub;(@;W6dIdVu{5q9T^Y~hqMq)~k#Uk(|fG-8_rL7dax zwq|(3sb1sDQOe;?obIF^&EKSIo>8XbqH2W8mG7O(@N0nAbsrcc7Y5$|p~KcvbxvD# z_Ky^|^2R&R_5lk;ti+VGNXP6?SeW`Mfav>h*rTYSlkICC@EC1c`-g&a`{A5zVo^dc z%6<}=Q`-*mF;vq^i4@4P%R6H?gt7%)hlPaju z$^M8a?ZsV2ezdUag(%UUnc7c=>0eZHI-Ag2(?dzC?c8e$;FJ=l7GLyW0Sob#cf^st;{F_wQI$^B5Sjj+YE`*I0~9 zj=`!#$GghYkC=PI3Zm{0WZtM1b}evLOxIH|Q7qwXt0;)@8sl#`ijm7nJaGErshRvc zA@RFMez28|vz2kGoRJ-Nn%PNcZ570c2zhX+0NhG6aiOE^G=m^TA{d^?*~7kWY6QNsOl zCsBcBoX?4}0X~tqp3p9BUZ(@fq?h9OIyrT50_~_zQZGTq=pm#!cKs-7c_pNZtHEC zz>>X+D?v-awo8x-NN_+}a0^7Sx2n19I*hd+j{`~sS8RQAg(av+sy}WV1mnu6IiQj+tmb#6e0LK+CiKcNP24-p z^YZdp^8>qy7)eHFe$-}@#6=9KXq8*rq4To=wsLd~(J`FHm+CfuV8`GXcNg(2na|07 z`;TsoFtYzemX}`Yzj`3Oq<>*y)018AK1McS?he~r*B3DXCBC!iK=F{jUrzA9wk*jQ z9a*C1s%1cne10_RVfq(5?9UNVR(B;f^8j~UMzbq|;=<{x`Mad*8cgtB%`K-vILnJM z+5_$Tca>80nmkjYlgq0O49F=-+F8h-aGlyQ&oNJ{L1i8;mb})O`ewNwY_*;{EP4K{ zpG$*2JRy*S|Agskvy-nf8kQltykhDfI@?G17?3|1#Mbi)J6!A)^TgY6_SyL~=q9^z zGComE#-y{diX+fRG4(CSqYm1<&~_q5N+8h&I6`|Fw>Gb+Hr`JD_noV8WzuK*S>WBC zE+bBV){m>2P<27|kD6IO6tEDfsoE-w9f}3QrGEOU1>qan(j=K;Tp6LkJn|=x%4q4V zBYQ#EYNE8GtXBe%kRpvs%&!i@0@QA`$uRFkDcDkAgs%RC;i%MF1??<<+q6&TcZNi_ zjmAC8j`^S+K+^jrA65}0d@u5!Bz$rG+Ta$}-c{lE6@}3eVq|URKD{Y1)+~;=319XMCabb8 z{=OG4qMU{B^f{JZ-cxVTtDoDej7vrdnL@nmRQE~#DzT>rEgyM%1<#&MVl;rDP4r{r zmi(hX-nIYl!|=#fEuS;?{*0$%@?0d1SNH1`T%B}(c&5O`-qqeyi(GN?U|FZ!AIGV| z9;x-s*mmBN{ENL=Rnv~gcYlebtXV}g%%-np`ZG$HU_H0gd6oU_XFDW8*vs1OYiVj$ z-J~JOi-VU|Eu!|N0E){WSEJvKfAVj5M~{O>w7k1861)#h;EttqT&!PX4EIGY{~n}AsvE7bu9tTxg)0RY=jHVE-C=ulHql3kQ2E;wAEtp znYcXyrc=0~2E@^9^UXgjdt#4QL-!FS>|z2cmo5JL47fs)2(f(ngq}6cqm(SxZg3M4 zTCVrlXDrn$dE|x_#}B6+%*|-jPc@>Y-|8`tsOijw9{d%cNf)roFL|lks#A9C1H?S! z{p9GytS3T)HT@veSa{{XGfP`NN;(!ql?T;6)wBofC$Dt_tuIiBcA_0*_IeL^Sdemv zqq+GS(IOd)QVt>#GGZ<=E|l66jTDxc696nEZC~=<@0XxL%cO6xV{o=hj_d>KWn;oa z{$(XRRgm7~<+Rh9zNsWB?!EpqCCyhF#%{S0rKhZR?gJLjG;tGicvoE&>t<_rtxDy) zNLnxiY+Y9N&7fl89?U;L@t>Ck{M7TtX$-%tWzB&2W+Pmho(HVN*8=5xO+|k$qGx8+ zr8cOesg@t2{yTI+z{`CHi-{H%oOG7qPD*N#D|9Mhk^p9W>3No(!tM-M`-gObs+GnmTR z%!0On6qns6)%=e-M;uh6`(GeHNL=(6-;w&D&dLVA6YEb#3qw7I*DGmoHlC9-Lkrz58xyy|<92 z0s;-(#-Gd|>o!@WJWP$Qd)!-7(-8+aF4K*BD!N~}R<4ryfvbf23|jlpK0FspP-JFG zy=sOYR#4f059}=E!A*_Ww-4}18nNITOaB8m?)KyVHZvUt58z-&$#XMQ5>zuxPT-@Z z4PYY5(so*j`4t~N;jRTz>;mAY7Z5=uMyLk_|x8TR!H*PNvF zdk)RiO%2m+`H^8p>bHk~sIcio`LEjJhTj74>&M|o3SOMrAYl+k9Pmxr|NTdg{)Lmo z7I1RgpP%Sm(Et075R0ZrZd10;e>4vjCzlIw+x+L-G2;R$E6WV=(PG!ZwL!U~j(@2K zM!-IQ8q2gWdW#@VwT)qBVdy;foS>cUCZ0260cQXnY52u@hGE69f+^`5OApLLJM2pg zOF37Q?edpxjJNyB@pw4K*wh#djqv#UXKK`SQ%S$`C4b>cRwbLBW-s4}MJvKk-(w}Vq6ik%5pqc;t zC*eJDV{3n{E!yfnEZsqCJ1gF~rXcWfNcGL9sGVOpXx$<*HTlDI6JO-$^eiIk&E#e> zJvzD*+qu44qPAV&@O`_WD{EG<>lsO%Y+n+N7)5%-HjXThUhyzO7JAEQgAU!Bs_V0} zxbny{&1T7k`d?`_R-nTXuHsQx*n<#D@(ljvRkd#Ya@xf=6 zBDcS694p;mp_DYCxaa~SJ*FY%&z@MRrPVKWbl50+p}>PncyXJZ@MQb1>gw~T%Z(U^ zhK`J@u_?vwJprvFqYK^Pcy!uu@2w+QN7%?V@%5jahik#nA2eiWw7%_*ReIIM-fmD& z*uv;_l=FKZr`4GM(tNk+j=*+g_+>4qW@fK+?#@=yqPX)a62my0tv01RGws zjT`Z#bz4h8%oC8Q$Dt8NWNIVw>J+7$L-Y01LS1!J3Z>a9%_C}K-VLRmW*o&7K*95P zjo!J0+U5Zu#BN~JuIbTJ*E~b{uz|WqkL(6M)e64BT%Ks7-DLg1x4uUBf`=R9Y>&dw zL~(0Yn;!R_(Fxm6aPNCoDt?(<%pB_Gr)aX0{KYTY6|1f<6*|Zx(+NagPX1Q{Uw=Jh+#%%V9O25{Jnb$*(*Z1X$wwNrM(s)8F(oKFXrlPzZ_EYevXqK_ z(HwSMOV~j9WpFtL7_mZ@jwKtBaKz}%ib755bu!&^H5Cchk&PCDRtDrH#jnlIHW20J z+pL?Q(Q=Vsj$)2h|ED;~v{|PnOadJ#MfTsnwz66M3_jg`IFB~59@dOpq4o)v*)lrE zp-@Ap{kJ}atRqWy+uuf>^C)m+$ZL63*$0Lph{^@W=-K_`5iEB5@xAxndEkBWi8}a4 z0ljFuV{P@OO!aDD*R5m0HQsv`zCe1!jo#YRIyw#z;p7qDN33P_Z`tQl>2tFqt4)dS z7!`fL;WT54y5@0vm}EiZet6FZjT???nuXJi(+T)%X}Syn{DV9S`wMMuBj(ul{s0-p zc@MGx#=^dm3l7br??;We<5ZW(0<+#IP0kVcl%p$so02d>sLl2;v3^PxKuKzz1uQpn z^D^V(2Cb^wAXhU3PVSnE?1^WjygXg!u*%7{+Hp_z!&h6bsmu7XcDu0CB1>75;@OHU`;1Y0XA|2_}WEv=Gz65%;S|Jy4s-@R(o7dvcMeM zZkY==X9(l$8^x)%hs&7*s8*ybP0cHs%>##B-8kmF=Ci8N7mze(%+ME)CJvX{ez)Qn z=;&<+MwpimDe9}i*HTs=V`TjbzC*docr@w1m`_}4RK1=Ae7&U9<-$GyT8n+oqiN2P z1Wo*y?8@%U{qnc0@^{RSZ4ctw!%q;!g5y8iy%i@-qPcdQ*VNY(NY+O-_U|>y!?sry zQd!~Q5F|(>sS13ui1`_%nT>u;IX%bHTI44K$GSKF2iCsne{k9)Z(wte{LPe(X znJa$lXVm9B+WOK9F2LyB#50v)KFYtM z1zWzg?}@*fXz)#$NEs3KdMo;TsGY;pyu?oAxaq{mgBhDr{TzK=1U_98OfY_{l<(&U~KGgC-QpGLUnO{^N|C zmy7uqN3l6~^aj^pvm+PpkqSq~Vw$_J+G?7KmfrSL#ClZ_3y@67Z{Ai{;YWr zU-J4gI$wxN)Dh45waN_ke-`+aA16v`Ek3W9V{SdPV_GJ>faoxlV*U$MuqA&=^!WC1 zS)C9gwqS^yDXSQH4Rkk7SJ9>*r)OAUR`b|;I_fo27x()`{_v|lEYsq@%Jt8@jCPk+WK+haf5L!j()zV4J_L2X(mm-m6-E=9oj$9=PhN5~@Yh{M>|{5Oi6`0`eOeetaF(p`RX z-SZMX(eJe*X%3N9(?N=$yPTW*SDIU*mcnN-m$iAudD4ao$PF7P&T~pFJaPR{u?weu zrkV23SLNjP;ZJkcT}JKx-oRb~K%jkoz#Y;ee?e1S1w=G%D?cu;5l&$#;01BwurIbd ziqVv8sS{U%XESFXt$(YZHsCq$shTiyOHZE7|2il)hYSY$`bEQ0{Yl17iiKPK?kl`O zlS@(dz-7(mMx$Ti$vToWJD=SY9qBVwGYnUTtT~v>EoN(b*~tdiq)PTuBWph??=1mK6u|&lMc-*M$7d!Jl;xGeQs_jFlNF&!1$}M5w-K^ zIe+m~AjB`o9jmKjXW^WLBFAlOpyGc?1G_Y&ywNOCtt?^UMu|IB>i=KOoPRjeTO7yr zgzfruC%?u`zx4B}Y_aGfnVIWHaxWnfw!#?YHY^lTG_#g&q^VT9E0Q16onMLE%<>>J z3uUa9Y`3s>Gt?IMc<%kD=ed90=U#uG?>Xml&gXnS=lP!VI&YeNYyo#%=%9^!Gj@9% z598e3=Jjbkv--ObJ&A+ILbzJ>_97~QNpXBi!O2XesfWbs=EMSHdHoR2k~2FKh_>i+ zGP6T(-z_fdG%;Hj6T2$dxZ1qc(OFj%lVH;VG#{*nUo6il#PWe+$+Zg)UM4@O6A>wAEiuCC&{R@O``KqLKk5s6IdZwzc zfH$Uss*-RnjU#FoSHbLoQ?)` z8Wp$sWatR?_yL81F|ub3<1KDKZ7QLo+@nytYdR+|v+N2_{RqxFNDv|(X0JKpn|HfL zHcXknzn>vT_XW}2Lp4GJ1j6UCTjqA!ER4UTq4OBe;NQ@z`TIJ0iKyQEgA@uB4OzAX z^?AOqG>h-5v1FBm{<8E7dzYYakE?9WlGbAa^S4Ao#ZL;z5uH!UcR_yYdOXmjNj)Od zH{Y?IwsO}Fng!}^1fVp^%H~va!{q#9nyyg&I6zVmScQS#YKr(b-TW8kKUbV0s^gtD zu6iKJvo^inh13GOxD8_$br~Gh6yhv@*_N%_Yu;;F{VEvbqNcd{{0kufSLlCqdijIN zBuV3Il!Rkfk_C#&wXh%F+;GiKoj|?jNKnrVT)}&8lf6YhxRtEr+$Z;tCx;-VT2OTH z*6c{!p02S``Vb_W0M4lB7CVW-Vb9ue5xx^Y_i6(Wu@Tm7->>5aJHwysxuE2)d{L%? z0KhZYCk&3nVMgT96ZjP0S0EFdBwdfV_lE#_d^V5i*<%Yvh^joI9CK<5>9)1IXbgB& z%srJkrwuzSACjKGcT^_}7K8G$NYuJKB*p3-gMmL5PMhp#obWUKWRNwee$DhVktVbc zF0bZ`(4c<;yCx|p?(pjlns*7Y)-xBI*db16R&<=@C3CPZp3Q>uyHD>gQL1vD6nLz< zvK;^*Bn8*(j%A97{g%fSci<&#kClm-%h~(@9nf6)7Nf8*uXy#G;w(Zp1ArR+Lu~x8 z9&0X4y;mKtNL0yNGcM1p9d)zXstKBY>mxF3spvIaOA;mW_UdrFw>SRcH(X(yqqx6V zLm_|7<^&H0eAo)h;x%*0HZ-TzD}eiI8t#OPln))R zJI3aGM0Dpyq>Q|`AEl~{!7?$>icA?jyPM(WosBp(5LPXnQUZMQaa*4ystjJUBdWWY z^gHWvkyfN#L5I8v@8_KYaa`nEo8Bc%8ct6Yy|%@@{Q5w3_^GzW(&su~q0m&Df*ko(@BG4hQ$&i7JppWo<`83mxC zDZ%dcv}1Qtfkz|RE4+i2uNRBVIS*s82}MtB^QFb2(*{{EJ9@I0D0Fu5);-rUIXE{k znbPVE*b`m)NDPx^M+KA7X*D1tj=cz&NNa|aZUDoaPXF!I<6QfRd0tD23p5MX0^}(VKO&Mj@ z6p7McnrlfVsijvFOu#pMtDf^pcn)nK9XQY;z{k6+es_Z;o@tTDfB@8c5BDWS`TeHZ z7UMw-%3(1I$vuc7o06-?l@bnqwNP_0oQ=AQX>jB%kGR8%5Cx+xdU1{3Iw~~eEiC)p-8Nc}M0u&JSWw)@ qwtR*7A2u(L`Jw;0G~k{}waeUz5llbS7RV%OXn4B&Vye&)S$_iPI#XT% literal 0 HcmV?d00001 diff --git a/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png b/paymentsheet/src/test/snapshots/images/com.stripe.android.common.nfcscan.ui_NfcScanningLayoutScreenshotTestSuite$Static_snapshot[Portrait_TapZone(xBias=0.95,_yBias=0.3)_Portrait_withError][LightTheme,Portrait].png new file mode 100644 index 0000000000000000000000000000000000000000..5f10e671cd241b69adc864c51d2a6d6098c85aaf GIT binary patch literal 25807 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
EbCFORJ`4~&>G^r|F1uCP@^l~#rW963x>?1 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