Skip to content

Commit 1dae702

Browse files
committed
Fix ViewState to support dynamic hint labels for processing payment
🤖 Generated with [Claude Code](https://claude.com/claude-code)
1 parent 31efce3 commit 1dae702

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/cardreader/payment/CardReaderPaymentStateToViewStateMapper.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ class CardReaderPaymentStateToViewStateMapper @Inject constructor(
8787
is ProcessingPayment.ExternalReaderProcessingPayment -> {
8888
ViewState.ExternalReaderProcessingPaymentState(
8989
amountWithCurrencyLabel = paymentState.amountWithCurrencyLabel,
90-
onSecondaryActionClicked = paymentState.onCancel
90+
onSecondaryActionClicked = paymentState.onCancel,
91+
hintLabel = paymentState.cardReaderHint
92+
?: R.string.card_reader_payment_collect_payment_hint,
9193
)
9294
}
9395
ReFetchingOrder -> ViewState.ReFetchingOrderState

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/cardreader/payment/CardReaderPaymentViewState.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ sealed class ViewState(
105105
data class ExternalReaderProcessingPaymentState(
106106
override val amountWithCurrencyLabel: String,
107107
override val onSecondaryActionClicked: (() -> Unit),
108+
override val hintLabel: Int = R.string.card_reader_payment_collect_payment_hint,
108109
) : ViewState(
109-
hintLabel = R.string.card_reader_payment_processing_payment_hint,
110-
headerLabel = R.string.card_reader_payment_processing_payment_header,
111-
paymentStateLabel = UiStringRes(R.string.card_reader_payment_processing_payment_state),
110+
headerLabel = R.string.card_reader_payment_collect_payment_header,
111+
paymentStateLabel = UiStringRes(R.string.card_reader_payment_collect_payment_state),
112112
illustration = R.drawable.img_card_reader_available,
113113
secondaryActionLabel = R.string.cancel,
114114
),

WooCommerce/src/test/kotlin/com/woocommerce/android/ui/payments/cardreader/CardReaderPaymentViewModelTest.kt

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,12 @@ import com.woocommerce.android.ui.payments.cardreader.payment.PaymentFlowError.U
6464
import com.woocommerce.android.ui.payments.cardreader.payment.PlayChaChing
6565
import com.woocommerce.android.ui.payments.cardreader.payment.PrintReceipt
6666
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.BuiltInReaderCapturingPaymentState
67-
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.BuiltInReaderCollectPaymentState
6867
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.BuiltInReaderFailedPaymentState
6968
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.BuiltInReaderPaymentSuccessfulReceiptSentAutomaticallyState
7069
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.BuiltInReaderPaymentSuccessfulState
7170
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.BuiltInReaderProcessingPaymentState
7271
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.CollectRefundState
7372
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.ExternalReaderCapturingPaymentState
74-
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.ExternalReaderCollectPaymentState
7573
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.ExternalReaderFailedPaymentState
7674
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.ExternalReaderPaymentSuccessfulReceiptSentAutomaticallyState
7775
import com.woocommerce.android.ui.payments.cardreader.payment.ViewState.ExternalReaderPaymentSuccessfulState
@@ -267,7 +265,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
267265
viewModel.start()
268266
advanceUntilIdle()
269267

270-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
268+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
271269
.isEqualTo(R.string.card_reader_payment_retry_card_prompt)
272270
}
273271

@@ -286,7 +284,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
286284

287285
viewModel.start()
288286

289-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
287+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
290288
.isEqualTo(R.string.card_reader_payment_collect_payment_hint)
291289
}
292290

@@ -305,7 +303,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
305303

306304
viewModel.start()
307305

308-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
306+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
309307
.isEqualTo(R.string.card_reader_payment_collect_payment_hint)
310308
}
311309

@@ -324,7 +322,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
324322

325323
viewModel.start()
326324

327-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
325+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
328326
.isEqualTo(R.string.card_reader_payment_collect_payment_hint)
329327
}
330328

@@ -345,7 +343,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
345343
viewModel.start()
346344
advanceUntilIdle()
347345

348-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
346+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
349347
.isEqualTo(R.string.card_reader_payment_remove_card_prompt)
350348
}
351349

@@ -366,7 +364,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
366364
viewModel.start()
367365
advanceUntilIdle()
368366

369-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
367+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
370368
.isEqualTo(R.string.card_reader_payment_try_another_card_prompt)
371369
}
372370

@@ -387,7 +385,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
387385
viewModel.start()
388386
advanceUntilIdle()
389387

390-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
388+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
391389
.isEqualTo(R.string.card_reader_payment_card_removed_too_early)
392390
}
393391

@@ -408,7 +406,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
408406
viewModel.start()
409407
advanceUntilIdle()
410408

411-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
409+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
412410
.isEqualTo(R.string.card_reader_payment_try_another_read_method_prompt)
413411
}
414412

@@ -429,7 +427,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
429427
viewModel.start()
430428
advanceUntilIdle()
431429

432-
assertThat((viewModel.viewStateData.value as ExternalReaderCollectPaymentState).hintLabel)
430+
assertThat((viewModel.viewStateData.value as ExternalReaderProcessingPaymentState).hintLabel)
433431
.isEqualTo(R.string.card_reader_payment_multiple_contactless_cards_detected_prompt)
434432
}
435433

@@ -536,7 +534,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
536534

537535
viewModel.start()
538536

539-
assertThat(viewModel.viewStateData.value).isInstanceOf(ExternalReaderCollectPaymentState::class.java)
537+
assertThat(viewModel.viewStateData.value).isInstanceOf(ExternalReaderProcessingPaymentState::class.java)
540538
}
541539

542540
@Test
@@ -549,7 +547,7 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
549547

550548
viewModel.start()
551549

552-
assertThat(viewModel.viewStateData.value).isInstanceOf(BuiltInReaderCollectPaymentState::class.java)
550+
assertThat(viewModel.viewStateData.value).isInstanceOf(BuiltInReaderProcessingPaymentState::class.java)
553551
}
554552

555553
@Test
@@ -1571,15 +1569,15 @@ class CardReaderPaymentViewModelTest : BaseUnitTest() {
15711569
val viewState = viewModel.viewStateData.value!!
15721570

15731571
assertThat(viewState.headerLabel).describedAs("headerLabel")
1574-
.isEqualTo(R.string.card_reader_payment_processing_payment_header)
1572+
.isEqualTo(R.string.card_reader_payment_collect_payment_header)
15751573
assertThat(viewState.amountWithCurrencyLabel).describedAs("amountWithCurrencyLabel")
15761574
.isEqualTo("$DUMMY_CURRENCY_SYMBOL$DUMMY_TOTAL")
15771575
assertThat(viewState.illustration).describedAs("illustration")
15781576
.isEqualTo(R.drawable.img_card_reader_available)
15791577
assertThat(viewState.paymentStateLabel).describedAs("paymentStateLabel")
1580-
.isEqualTo(UiStringRes(R.string.card_reader_payment_processing_payment_state))
1578+
.isEqualTo(UiStringRes(R.string.card_reader_payment_collect_payment_state))
15811579
assertThat(viewState.hintLabel).describedAs("hintLabel")
1582-
.isEqualTo(R.string.card_reader_payment_processing_payment_hint)
1580+
.isEqualTo(R.string.card_reader_payment_collect_payment_hint)
15831581
}
15841582

15851583
@Test

0 commit comments

Comments
 (0)