@@ -104,6 +104,9 @@ class OrderCreateEditFormFragment :
104
104
@Inject
105
105
lateinit var uiMessageResolver: UIMessageResolver
106
106
107
+ @Inject
108
+ lateinit var uiHelper: OrderCreateEditFormAddInfoButtonsStatusHelper
109
+
107
110
private var createOrderMenuItem: MenuItem ? = null
108
111
private var progressDialog: CustomProgressDialog ? = null
109
112
private var orderUpdateFailureSnackBar: Snackbar ? = null
@@ -363,13 +366,22 @@ class OrderCreateEditFormFragment :
363
366
new.isIdle.takeIfNotEqualTo(old?.isIdle) { idle ->
364
367
updateProgressBarsVisibility(binding, ! idle)
365
368
if (new.isEditable) {
366
- binding.additionalInfoCollectionSection.addCouponButton.isEnabled =
367
- new.isCouponButtonEnabled && idle
368
- binding.additionalInfoCollectionSection.addShippingButton.isEnabled =
369
- new.isAddShippingButtonEnabled && idle
369
+ uiHelper.changeAddInfoButtonsEnabledState(
370
+ binding,
371
+ AddInfoButtonsStateTransition (
372
+ isAddShippingButtonState = AddInfoButtonsStateTransition .State .Change (
373
+ enabled = new.isAddShippingButtonEnabled && idle
374
+ ),
375
+ isAddCouponButtonState = AddInfoButtonsStateTransition .State .Change (
376
+ enabled = new.isCouponButtonEnabled && idle
377
+ ),
378
+ isAddGiftCardButtonState = AddInfoButtonsStateTransition .State .Change (
379
+ enabled = new.isAddGiftCardButtonEnabled && idle
380
+ )
381
+ )
382
+ )
383
+
370
384
binding.productsSection.isEachAddButtonEnabled = idle
371
- binding.additionalInfoCollectionSection.addGiftCardButton.isEnabled =
372
- new.isAddGiftCardButtonEnabled && idle
373
385
}
374
386
}
375
387
new.showOrderUpdateSnackbar.takeIfNotEqualTo(old?.showOrderUpdateSnackbar) { show ->
@@ -395,16 +407,37 @@ class OrderCreateEditFormFragment :
395
407
}
396
408
}
397
409
new.isCouponButtonEnabled.takeIfNotEqualTo(old?.isCouponButtonEnabled) {
398
- binding.additionalInfoCollectionSection.addCouponButton.isEnabled = it
410
+ uiHelper.changeAddInfoButtonsEnabledState(
411
+ binding,
412
+ AddInfoButtonsStateTransition (
413
+ isAddCouponButtonState = AddInfoButtonsStateTransition .State .Change (
414
+ enabled = it
415
+ )
416
+ )
417
+ )
399
418
}
400
419
new.isAddShippingButtonEnabled.takeIfNotEqualTo(old?.isAddShippingButtonEnabled) {
401
- binding.additionalInfoCollectionSection.addShippingButton.isEnabled = it
420
+ uiHelper.changeAddInfoButtonsEnabledState(
421
+ binding,
422
+ AddInfoButtonsStateTransition (
423
+ isAddShippingButtonState = AddInfoButtonsStateTransition .State .Change (
424
+ enabled = it
425
+ )
426
+ )
427
+ )
402
428
}
403
429
new.isAddGiftCardButtonEnabled.takeIfNotEqualTo(old?.isAddGiftCardButtonEnabled) {
404
- binding.additionalInfoCollectionSection.addGiftCardButton.isEnabled = it
430
+ uiHelper.changeAddInfoButtonsEnabledState(
431
+ binding,
432
+ AddInfoButtonsStateTransition (
433
+ isAddGiftCardButtonState = AddInfoButtonsStateTransition .State .Change (
434
+ enabled = it
435
+ )
436
+ )
437
+ )
405
438
}
406
439
new.shouldDisplayAddGiftCardButton.takeIfNotEqualTo(old?.shouldDisplayAddGiftCardButton) {
407
- binding.additionalInfoCollectionSection.addGiftCardButton .isVisible = it
440
+ binding.additionalInfoCollectionSection.addGiftCardButtonGroup .isVisible = it
408
441
}
409
442
new.taxRateSelectorButtonState.takeIfNotEqualTo(old?.taxRateSelectorButtonState) {
410
443
binding.taxRateSelectorSection.isVisible = it.isShown
@@ -568,27 +601,27 @@ class OrderCreateEditFormFragment :
568
601
569
602
val firstShipping = newOrderData.shippingLines.firstOrNull { it.methodId != null }
570
603
if (firstShipping != null ) {
571
- additionalInfoCollectionSection.addShippingButton .hide()
604
+ additionalInfoCollectionSection.addShippingButtonGroup .hide()
572
605
} else {
573
- additionalInfoCollectionSection.addShippingButton .show()
606
+ additionalInfoCollectionSection.addShippingButtonGroup .show()
574
607
}
575
608
}
576
609
577
610
private fun OrderCreationAdditionalInfoCollectionSectionBinding.bindGiftCardSubSection (newOrderData : Order ) {
578
611
when (viewModel.mode) {
579
612
is Creation -> bindGiftCardForOrderCreation(newOrderData)
580
- is Edit -> addGiftCardButton .isVisible = false
613
+ is Edit -> addGiftCardButtonGroup .isVisible = false
581
614
}
582
615
}
583
616
584
617
private fun OrderCreationAdditionalInfoCollectionSectionBinding.bindGiftCardForOrderCreation (
585
618
newOrderData : Order
586
619
) {
587
620
if (newOrderData.selectedGiftCard.isNullOrEmpty()) {
588
- addGiftCardButton .isVisible = viewModel.isGiftCardExtensionEnabled
621
+ addGiftCardButtonGroup .isVisible = viewModel.isGiftCardExtensionEnabled
589
622
addGiftCardButton.setOnClickListener { viewModel.onAddGiftCardButtonClicked() }
590
623
} else {
591
- addGiftCardButton .isVisible = false
624
+ addGiftCardButtonGroup .isVisible = false
592
625
}
593
626
}
594
627
@@ -1050,13 +1083,23 @@ class OrderCreateEditFormFragment :
1050
1083
isLocked = false
1051
1084
isEachAddButtonEnabled = true
1052
1085
}
1053
- additionalInfoCollectionSection.apply {
1054
- addShippingButton.isEnabled = true
1055
- addCouponButton.isEnabled = state.isCouponButtonEnabled
1056
- addGiftCardButton.isEnabled = state.isAddGiftCardButtonEnabled
1057
- }
1086
+ uiHelper.changeAddInfoButtonsEnabledState(
1087
+ this ,
1088
+ AddInfoButtonsStateTransition (
1089
+ isAddShippingButtonState = AddInfoButtonsStateTransition .State .Change (
1090
+ enabled = true
1091
+ ),
1092
+ isAddCouponButtonState = AddInfoButtonsStateTransition .State .Change (
1093
+ enabled = state.isCouponButtonEnabled
1094
+ ),
1095
+ isAddGiftCardButtonState = AddInfoButtonsStateTransition .State .Change (
1096
+ enabled = state.isAddGiftCardButtonEnabled
1097
+ )
1098
+ )
1099
+ )
1058
1100
customAmountsSection.apply {
1059
1101
isLocked = false
1102
+ isEachAddButtonEnabled = true
1060
1103
}
1061
1104
}
1062
1105
@@ -1066,13 +1109,23 @@ class OrderCreateEditFormFragment :
1066
1109
isLocked = true
1067
1110
isEachAddButtonEnabled = false
1068
1111
}
1069
- additionalInfoCollectionSection.apply {
1070
- addShippingButton.isEnabled = false
1071
- addCouponButton.isEnabled = false
1072
- addGiftCardButton.isEnabled = false
1073
- }
1112
+ uiHelper.changeAddInfoButtonsEnabledState(
1113
+ this ,
1114
+ AddInfoButtonsStateTransition (
1115
+ isAddShippingButtonState = AddInfoButtonsStateTransition .State .Change (
1116
+ enabled = false
1117
+ ),
1118
+ isAddCouponButtonState = AddInfoButtonsStateTransition .State .Change (
1119
+ enabled = false
1120
+ ),
1121
+ isAddGiftCardButtonState = AddInfoButtonsStateTransition .State .Change (
1122
+ enabled = false
1123
+ )
1124
+ )
1125
+ )
1074
1126
customAmountsSection.apply {
1075
1127
isLocked = true
1128
+ isEachAddButtonEnabled = false
1076
1129
}
1077
1130
}
1078
1131
}
0 commit comments