Skip to content

Commit 891a053

Browse files
feat : New Recurring deposits details screen (#2539)
1 parent 4af9cd8 commit 891a053

File tree

14 files changed

+443
-39
lines changed

14 files changed

+443
-39
lines changed

cmp-navigation/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ kotlin {
4646
implementation(projects.feature.pathTracking)
4747
implementation(projects.feature.report)
4848
implementation(projects.feature.savings)
49+
implementation(projects.feature.recurringDeposit)
4950
implementation(projects.feature.settings)
5051
implementation(projects.feature.search)
5152

cmp-navigation/src/commonMain/kotlin/cmp/navigation/di/KoinModules.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import com.mifos.feature.loan.di.LoanModule
3131
import com.mifos.feature.note.di.NoteModule
3232
import com.mifos.feature.offline.di.OfflineModule
3333
import com.mifos.feature.path.tracking.di.PathTrackingModule
34+
import com.mifos.feature.recurringDeposit.newRecurringDepositAccount.di.RecurringDepositModule
3435
import com.mifos.feature.report.di.ReportModule
3536
import com.mifos.feature.savings.di.SavingsModule
3637
import com.mifos.feature.search.di.SearchModule
@@ -83,6 +84,7 @@ object KoinModules {
8384
OfflineModule,
8485
PathTrackingModule,
8586
ReportModule,
87+
RecurringDepositModule,
8688
SavingsModule,
8789
SearchModule,
8890
SettingsModule,

core/network/src/commonMain/kotlin/com/mifos/core/network/datamanager/DataManagerRecurringAccount.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
*/
1010
package com.mifos.core.network.datamanager
1111

12-
import com.mifos.core.datastore.UserPreferencesRepository
1312
import com.mifos.core.model.objects.payloads.RecurringDepositAccountPayload
1413
import com.mifos.core.network.BaseApiManager
1514
import com.mifos.room.entities.accounts.recurring.RecurringDeposit
@@ -18,7 +17,6 @@ import kotlinx.coroutines.flow.Flow
1817

1918
class DataManagerRecurringAccount(
2019
val mBaseApiManager: BaseApiManager,
21-
private val prefManager: UserPreferencesRepository,
2220
) {
2321

2422
fun createRecurringDepositAccount(

core/network/src/commonMain/kotlin/com/mifos/core/network/di/DataMangerModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import com.mifos.core.network.datamanager.DataManagerIdentifiers
2424
import com.mifos.core.network.datamanager.DataManagerLoan
2525
import com.mifos.core.network.datamanager.DataManagerNote
2626
import com.mifos.core.network.datamanager.DataManagerOffices
27+
import com.mifos.core.network.datamanager.DataManagerRecurringAccount
2728
import com.mifos.core.network.datamanager.DataManagerRunReport
2829
import com.mifos.core.network.datamanager.DataManagerSavings
2930
import com.mifos.core.network.datamanager.DataManagerSearch
@@ -52,5 +53,6 @@ val DataManagerModule = module {
5253
single { DataManagerStaff(get(), get(), get()) }
5354
single { DataManagerSurveys(get(), get(), get()) }
5455
single { DataManagerIdentifiers(get()) }
56+
single { DataManagerRecurringAccount(get()) }
5557
single { DataManagerShare(get()) }
5658
}

core/ui/src/commonMain/kotlin/com/mifos/core/ui/components/MifosProgressIndicator.kt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,32 @@ fun MifosPagingAppendProgress(modifier: Modifier = Modifier) {
119119
}
120120
}
121121

122+
@Composable
123+
fun MifosProgressIndicatorMini(
124+
modifier: Modifier = Modifier,
125+
) {
126+
val composition by rememberLottieComposition {
127+
LottieCompositionSpec.JsonString(
128+
Res.readBytes(LottieConstants.LOADING_ANIMATION).decodeToString(),
129+
)
130+
}
131+
val progress by animateLottieCompositionAsState(composition)
132+
133+
Box(
134+
modifier = modifier.fillMaxWidth(),
135+
contentAlignment = Alignment.Center,
136+
) {
137+
Image(
138+
painter = rememberLottiePainter(
139+
composition = composition,
140+
progress = { progress },
141+
),
142+
contentDescription = "Lottie animation",
143+
modifier = Modifier.height(100.dp),
144+
)
145+
}
146+
}
147+
122148
@Preview
123149
@Composable
124150
private fun Loading_Preview() {
@@ -127,6 +153,14 @@ private fun Loading_Preview() {
127153
}
128154
}
129155

156+
@Preview
157+
@Composable
158+
private fun MifosProgressIndicatorMini() {
159+
MifosTheme {
160+
MifosProgressIndicatorMini()
161+
}
162+
}
163+
130164
@Preview
131165
@Composable
132166
private fun Overlay_Loading_Preview() {

feature/client/src/commonMain/kotlin/com/mifos/feature/client/clientApplyNewApplications/ClientApplyNewApplicationRoute.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ fun NavGraphBuilder.clientApplyNewApplicationRoute(
2525
onNavigateApplyLoanAccount: (Int) -> Unit,
2626
onNavigateApplySavingsAccount: (Int) -> Unit,
2727
onNavigateApplyShareAccount: (Int) -> Unit,
28-
onNavigateApplyRecurringAccount: () -> Unit,
28+
onNavigateApplyRecurringAccount: (Int) -> Unit,
2929
onNavigateApplyFixedAccount: () -> Unit,
3030
navController: NavController,
3131
) {

feature/client/src/commonMain/kotlin/com/mifos/feature/client/clientApplyNewApplications/ClientApplyNewApplicationsScreen.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ internal fun ClientApplyNewApplicationsScreen(
6262
onNavigateApplyLoanAccount: (Int) -> Unit,
6363
onNavigateApplySavingsAccount: (Int) -> Unit,
6464
onNavigateApplyShareAccount: (Int) -> Unit,
65-
onNavigateApplyRecurringAccount: () -> Unit,
65+
onNavigateApplyRecurringAccount: (Int) -> Unit,
6666
onNavigateApplyFixedAccount: () -> Unit,
6767
navController: NavController,
6868
viewModel: ClientApplyNewApplicationsViewModel = koinViewModel(),
@@ -79,7 +79,9 @@ internal fun ClientApplyNewApplicationsScreen(
7979
state.clientId,
8080
)
8181

82-
ClientApplyNewApplicationsItem.NewRecurringAccount -> onNavigateApplyRecurringAccount()
82+
ClientApplyNewApplicationsItem.NewRecurringAccount -> onNavigateApplyRecurringAccount(
83+
state.clientId,
84+
)
8385
ClientApplyNewApplicationsItem.NewSavingsAccount -> onNavigateApplySavingsAccount(
8486
state.clientId,
8587
)

feature/client/src/commonMain/kotlin/com/mifos/feature/client/navigation/ClientNavigation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ fun NavGraphBuilder.clientNavGraph(
356356
createShareAccountDestination(
357357
navController = navController,
358358
)
359-
recurringAccountDestination()
359+
recurringAccountDestination(navController)
360360
fixedAccountDestination()
361361
}
362362
}

feature/recurringDeposit/src/commonMain/composeResources/values/string.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,14 @@
1515
<string name="step_interest">Interest</string>
1616
<string name="step_charges">Charges</string>
1717
<string name="create_recurring_deposit_account">Create Recurring Deposit Account</string>
18+
19+
<!-- Details Page Strings -->
20+
<string name="select">Select</string>
21+
<string name="cancel">Cancel</string>
22+
<string name="product_name">Product Name</string>
23+
<string name="submitted_on">Submitted On</string>
24+
<string name="field_officer">Field Officer</string>
25+
<string name="external_id">External Id</string>
26+
<string name="back">Back</string>
27+
<string name="next">Next</string>
1828
</resources>

feature/recurringDeposit/src/commonMain/kotlin/com/mifos/feature/recurringDeposit/newRecurringDepositAccount/RecurringAccountRoute.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,24 @@ import androidx.navigation.compose.composable
1515
import kotlinx.serialization.Serializable
1616

1717
@Serializable
18-
data object RecurringAccountRoute
18+
data class RecurringAccountRoute(
19+
val clientId: Int = -1,
20+
)
1921

20-
fun NavGraphBuilder.recurringAccountDestination() {
22+
fun NavGraphBuilder.recurringAccountDestination(
23+
navController: NavController,
24+
) {
2125
composable<RecurringAccountRoute> {
2226
RecurringAccountScreen(
2327
onNavigateBack = {},
2428
onFinish = {},
29+
navController = navController,
2530
)
2631
}
2732
}
2833

29-
fun NavController.navigateToRecurringAccountRoute() {
34+
fun NavController.navigateToRecurringAccountRoute(clientId: Int) {
3035
this.navigate(
31-
RecurringAccountRoute,
36+
RecurringAccountRoute(clientId = clientId),
3237
)
3338
}

0 commit comments

Comments
 (0)