Skip to content

Commit 7539965

Browse files
committed
feat(feature:autopay): add autopay to send money options
1 parent 069353f commit 7539965

File tree

5 files changed

+35
-0
lines changed

5 files changed

+35
-0
lines changed

cmp-shared/src/commonMain/kotlin/org/mifospay/shared/navigation/MifosNavHost.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,9 @@ internal fun MifosNavHost(
325325
onFineractPaymentsClick = {
326326
navController.navigateToSendMoneyScreen()
327327
},
328+
onAutoPayClick = {
329+
navController.navigateToAutoPay()
330+
},
328331
onQrCodeScanned = { qrData ->
329332
navController.navigateToSendMoneyScreen(
330333
requestData = qrData,

feature/send-money/src/commonMain/composeResources/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,5 @@
4848
<string name="feature_send_money_people">People</string>
4949
<string name="feature_send_money_merchants">Merchants</string>
5050
<string name="feature_send_money_more">More</string>
51+
<string name="feature_send_money_autopay">AutoPay</string>
5152
</resources>

feature/send-money/src/commonMain/kotlin/org/mifospay/feature/send/money/SendMoneyOptionsScreen.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import androidx.compose.ui.text.style.TextOverflow
4141
import androidx.compose.ui.unit.dp
4242
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4343
import mobile_wallet.feature.send_money.generated.resources.Res
44+
import mobile_wallet.feature.send_money.generated.resources.feature_send_money_autopay
4445
import mobile_wallet.feature.send_money.generated.resources.feature_send_money_bank_transfer
4546
import mobile_wallet.feature.send_money.generated.resources.feature_send_money_choose_method
4647
import mobile_wallet.feature.send_money.generated.resources.feature_send_money_fineract_payments
@@ -66,6 +67,7 @@ fun SendMoneyOptionsScreen(
6667
onPayAnyoneClick: () -> Unit,
6768
onBankTransferClick: () -> Unit,
6869
onFineractPaymentsClick: () -> Unit,
70+
onAutoPayClick: () -> Unit,
6971
onQrCodeScanned: (String) -> Unit,
7072
onNavigateToPayeeDetails: (String) -> Unit,
7173
modifier: Modifier = Modifier,
@@ -87,6 +89,9 @@ fun SendMoneyOptionsScreen(
8789
SendMoneyOptionsEvent.NavigateToFineractPayments -> {
8890
onFineractPaymentsClick.invoke()
8991
}
92+
SendMoneyOptionsEvent.NavigateToAutoPay -> {
93+
onAutoPayClick.invoke()
94+
}
9095
is SendMoneyOptionsEvent.QrCodeScanned -> {
9196
onQrCodeScanned.invoke(event.data)
9297
}
@@ -132,6 +137,9 @@ fun SendMoneyOptionsScreen(
132137
onFineractPaymentsClick = {
133138
viewModel.trySendAction(SendMoneyOptionsAction.FineractPaymentsClicked)
134139
},
140+
onAutoPayClick = {
141+
viewModel.trySendAction(SendMoneyOptionsAction.AutoPayClicked)
142+
},
135143
)
136144

137145
Spacer(modifier = Modifier.height(KptTheme.spacing.md))
@@ -182,6 +190,7 @@ private fun SendMoneyOptionsRow(
182190
onPayAnyoneClick: () -> Unit,
183191
onBankTransferClick: () -> Unit,
184192
onFineractPaymentsClick: () -> Unit,
193+
onAutoPayClick: () -> Unit,
185194
modifier: Modifier = Modifier,
186195
) {
187196
Column(
@@ -220,6 +229,21 @@ private fun SendMoneyOptionsRow(
220229
modifier = Modifier.weight(1f),
221230
)
222231
}
232+
233+
Row(
234+
modifier = Modifier.fillMaxWidth(),
235+
horizontalArrangement = Arrangement.spacedBy(KptTheme.spacing.md),
236+
) {
237+
SendMoneyOptionButton(
238+
icon = MifosIcons.CalenderMonth,
239+
label = stringResource(Res.string.feature_send_money_autopay),
240+
onClick = onAutoPayClick,
241+
modifier = Modifier.weight(1f),
242+
)
243+
244+
// Empty space for future icons (UPI Lite, Tap & Pay, etc.)
245+
Spacer(modifier = Modifier.weight(3f))
246+
}
223247
}
224248
}
225249

feature/send-money/src/commonMain/kotlin/org/mifospay/feature/send/money/SendMoneyOptionsViewModel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ class SendMoneyOptionsViewModel(
5151
is SendMoneyOptionsAction.FineractPaymentsClicked -> {
5252
sendEvent(SendMoneyOptionsEvent.NavigateToFineractPayments)
5353
}
54+
is SendMoneyOptionsAction.AutoPayClicked -> {
55+
sendEvent(SendMoneyOptionsEvent.NavigateToAutoPay)
56+
}
5457
}
5558
}
5659
}
@@ -64,6 +67,7 @@ sealed interface SendMoneyOptionsEvent {
6467
data object NavigateToPayAnyone : SendMoneyOptionsEvent
6568
data object NavigateToBankTransfer : SendMoneyOptionsEvent
6669
data object NavigateToFineractPayments : SendMoneyOptionsEvent
70+
data object NavigateToAutoPay : SendMoneyOptionsEvent
6771
data class QrCodeScanned(val data: String) : SendMoneyOptionsEvent, BackgroundEvent
6872
data class NavigateToPayeeDetails(val qrCodeData: String) : SendMoneyOptionsEvent, BackgroundEvent
6973
}
@@ -74,4 +78,5 @@ sealed interface SendMoneyOptionsAction {
7478
data object PayAnyoneClicked : SendMoneyOptionsAction
7579
data object BankTransferClicked : SendMoneyOptionsAction
7680
data object FineractPaymentsClicked : SendMoneyOptionsAction
81+
data object AutoPayClicked : SendMoneyOptionsAction
7782
}

feature/send-money/src/commonMain/kotlin/org/mifospay/feature/send/money/navigation/SendNavigation.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ fun NavGraphBuilder.sendMoneyOptionsScreen(
8383
onPayAnyoneClick: () -> Unit,
8484
onBankTransferClick: () -> Unit,
8585
onFineractPaymentsClick: () -> Unit,
86+
onAutoPayClick: () -> Unit,
8687
onQrCodeScanned: (String) -> Unit,
8788
onNavigateToPayeeDetails: (String) -> Unit,
8889
) {
@@ -95,6 +96,7 @@ fun NavGraphBuilder.sendMoneyOptionsScreen(
9596
onPayAnyoneClick = onPayAnyoneClick,
9697
onBankTransferClick = onBankTransferClick,
9798
onFineractPaymentsClick = onFineractPaymentsClick,
99+
onAutoPayClick = onAutoPayClick,
98100
onQrCodeScanned = onQrCodeScanned,
99101
onNavigateToPayeeDetails = onNavigateToPayeeDetails,
100102
)

0 commit comments

Comments
 (0)