Skip to content

Commit b8d7beb

Browse files
Aditya3815revanthkumarJniyajali
authored
Feature:settings to cmp (#2390)
Co-authored-by: revanthkumarJ <jrevanth101@gmail.com> Co-authored-by: JILAKARA REVANTH KUMAR <146642552+revanthkumarJ@users.noreply.github.com> Co-authored-by: Sk Niyaj Ali <niyaj639@gmail.com>
1 parent d20f6aa commit b8d7beb

File tree

25 files changed

+264
-212
lines changed

25 files changed

+264
-212
lines changed

cmp-navigation/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ kotlin {
4747
// implementation(projects.feature.report)
4848
// implementation(projects.feature.savings)
4949
// implementation(projects.feature.search)
50-
// implementation(projects.feature.settings)
50+
implementation(projects.feature.settings)
5151
// implementation(projects.feature.splash)
5252
//
5353
// implementation(project.libs.mifos.passcode)

cmp-navigation/src/commonMain/kotlin/cmp/navigation/ComposeApp.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package cmp.navigation
1111

1212
import androidx.compose.runtime.Composable
13+
import androidx.compose.runtime.getValue
1314
import androidx.compose.ui.Modifier
1415
import androidx.navigation.compose.rememberNavController
1516
import cmp.navigation.navigation.RootNavGraph

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.mifos.core.network.di.NetworkModule
1818
import com.mifos.feature.activate.di.ActivateModule
1919
import com.mifos.feature.auth.di.AuthModule
2020
import com.mifos.feature.note.di.NoteModule
21+
import com.mifos.feature.settings.di.SettingsModule
2122
import com.mifos.room.di.DaoModule
2223
import com.mifos.room.di.HelperModule
2324
import com.mifos.room.di.PlatformSpecificDatabaseModule
@@ -63,7 +64,7 @@ object KoinModules {
6364
// ReportModule,
6465
// SavingsModule,
6566
// SearchModule,
66-
// SettingsModule,
67+
SettingsModule,
6768
// SplashModule,
6869
)
6970
}

cmp-navigation/src/commonMain/kotlin/cmp/navigation/navigation/FeatureNavHost.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ import androidx.navigation.compose.composable
2525
import cmp.navigation.AppState
2626
import com.mifos.feature.about.navigation.aboutNavGraph
2727
import com.mifos.feature.activate.navigation.activateScreen
28-
import com.mifos.feature.activate.navigation.navigateToActivateScreen
2928
import com.mifos.feature.note.navigation.noteNavGraph
29+
import com.mifos.feature.settings.navigation.navigateToSettingsScreen
30+
import com.mifos.feature.settings.navigation.settingsScreen
3031

3132
const val WELCOME_ROUTE = "home_screen"
3233

@@ -42,13 +43,20 @@ internal fun FeatureNavHost(
4243
navController = appState.navController,
4344
modifier = modifier,
4445
) {
45-
homeScreen(onClick = { appState.navController.navigateToActivateScreen(0, "") })
46+
homeScreen(onClick = { appState.navController.navigateToSettingsScreen() })
4647

4748
aboutNavGraph(onBackPressed = appState.navController::popBackStack)
4849

4950
noteNavGraph(onBackPressed = appState.navController::popBackStack)
5051

5152
activateScreen(onBackPressed = appState.navController::popBackStack)
53+
54+
settingsScreen(
55+
navigateBack = appState.navController::popBackStack,
56+
navigateToLoginScreen = {},
57+
changePasscode = {},
58+
languageChanged = {},
59+
)
5260
}
5361
}
5462

cmp-navigation/src/commonMain/kotlin/cmp/navigation/navigation/HomeDestinationsScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ package cmp.navigation.navigation
1212
import androidx.compose.ui.graphics.vector.ImageVector
1313
import com.mifos.core.designsystem.icon.MifosIcons
1414
import com.mifos.feature.about.navigation.AboutScreens
15+
import com.mifos.feature.settings.navigation.SettingsScreens
1516

1617
sealed class HomeDestinationsScreen(
1718
val title: String = "",
@@ -74,7 +75,7 @@ sealed class HomeDestinationsScreen(
7475

7576
data object SettingsScreen : HomeDestinationsScreen(
7677
title = "Settings",
77-
route = "",
78+
route = SettingsScreens.SettingsScreen.route,
7879
icon = MifosIcons.Settings,
7980
)
8081

core/designsystem/src/commonMain/kotlin/com/mifos/core/designsystem/icon/MifosIcons.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import androidx.compose.material.icons.automirrored.rounded.Assignment
2222
import androidx.compose.material.icons.filled.AccountBalance
2323
import androidx.compose.material.icons.filled.AccountBalanceWallet
2424
import androidx.compose.material.icons.filled.Add
25+
import androidx.compose.material.icons.filled.AddLink
2526
import androidx.compose.material.icons.filled.Apartment
2627
import androidx.compose.material.icons.filled.ArrowDropDown
2728
import androidx.compose.material.icons.filled.ArrowDropUp
@@ -36,6 +37,7 @@ import androidx.compose.material.icons.filled.FlashOff
3637
import androidx.compose.material.icons.filled.FlashOn
3738
import androidx.compose.material.icons.filled.Image
3839
import androidx.compose.material.icons.filled.Info
40+
import androidx.compose.material.icons.filled.Link
3941
import androidx.compose.material.icons.filled.LocationOn
4042
import androidx.compose.material.icons.filled.Lock
4143
import androidx.compose.material.icons.filled.Menu
@@ -48,6 +50,7 @@ import androidx.compose.material.icons.filled.RealEstateAgent
4850
import androidx.compose.material.icons.filled.Search
4951
import androidx.compose.material.icons.filled.Settings
5052
import androidx.compose.material.icons.filled.Share
53+
import androidx.compose.material.icons.filled.Update
5154
import androidx.compose.material.icons.filled.Visibility
5255
import androidx.compose.material.icons.filled.VisibilityOff
5356
import androidx.compose.material.icons.filled.WifiOff
@@ -79,6 +82,7 @@ import androidx.compose.material.icons.rounded.FilterList
7982
import androidx.compose.material.icons.rounded.Home
8083
import androidx.compose.material.icons.rounded.KeyboardArrowDown
8184
import androidx.compose.material.icons.rounded.KeyboardArrowUp
85+
import androidx.compose.material.icons.rounded.Link
8286
import androidx.compose.material.icons.rounded.Lock
8387
import androidx.compose.material.icons.rounded.MoreVert
8488
import androidx.compose.material.icons.rounded.PersonOutline
@@ -98,6 +102,10 @@ object MifosIcons {
98102
val EventRepeat = Icons.Outlined.EventRepeat
99103
val Date = Icons.Outlined.DateRange
100104
val ArrowBack1 = Icons.Rounded.ArrowBackIosNew
105+
106+
val Link = Icons.Default.Link
107+
val Server = Icons.Default
108+
val AddLink = Icons.Default.AddLink
101109
val Search = Icons.Rounded.Search
102110
val Filter = Icons.Rounded.FilterList
103111
val Sync = Icons.Rounded.Sync
@@ -137,6 +145,7 @@ object MifosIcons {
137145
val HomeBoarder = Icons.Rounded.Home
138146
val Payment = Icons.Rounded.SwapHoriz
139147
val Finance = Icons.Outlined.Wallet
148+
val Update = Icons.Default.Update
140149
val Profile = Icons.Outlined.AccountCircle
141150
val ProfileBoarder = Icons.Rounded.AccountCircle
142151
val buildingIcon = Icons.Filled.Apartment

core/domain/src/commonMain/kotlin/com/mifos/core/domain/di/UseCaseModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ import com.mifos.core.domain.useCases.PasswordValidationUseCase
6868
import com.mifos.core.domain.useCases.RejectCheckerUseCase
6969
import com.mifos.core.domain.useCases.RemoveDocumentUseCase
7070
import com.mifos.core.domain.useCases.SaveIndividualCollectionSheetUseCase
71+
import com.mifos.core.domain.useCases.ServerConfigValidatorUseCase
7172
import com.mifos.core.domain.useCases.SubmitCollectionSheetUseCase
7273
import com.mifos.core.domain.useCases.SubmitProductiveSheetUseCase
7374
import com.mifos.core.domain.useCases.UpdateClientPinpointUseCase
@@ -130,6 +131,7 @@ val UseCaseModule = module {
130131
factoryOf(::GetReportFullParameterListUseCase)
131132
factoryOf(::GetReportParameterDetailsUseCase)
132133
factoryOf(::GetRunReportOfficesUseCase)
134+
factoryOf(::ServerConfigValidatorUseCase)
133135
factoryOf(::GetRunReportProductUseCase)
134136
factoryOf(::GetRunReportWithQueryUseCase)
135137
factoryOf(::GetStaffInOfficeUseCase)

feature/settings/build.gradle.kts

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,24 @@
88
* See https://github.com/openMF/android-client/blob/master/LICENSE.md
99
*/
1010
plugins {
11-
alias(libs.plugins.mifos.android.feature)
12-
alias(libs.plugins.mifos.android.library.compose)
13-
alias(libs.plugins.mifos.android.library.jacoco)
11+
alias(libs.plugins.mifos.cmp.feature)
1412
}
1513

1614
android {
1715
namespace = "com.mifos.feature.settings"
1816
}
1917

20-
dependencies {
21-
22-
implementation(projects.core.datastore)
23-
implementation(projects.core.designsystem)
24-
implementation(projects.core.domain)
25-
implementation(projects.core.common)
26-
implementation(projects.core.ui)
27-
implementation(libs.appcompat)
28-
29-
androidTestImplementation(libs.androidx.compose.ui.test)
30-
debugApi(libs.androidx.compose.ui.test.manifest)
31-
32-
testImplementation(libs.hilt.android.testing)
33-
18+
kotlin {
19+
sourceSets {
20+
commonMain.dependencies {
21+
implementation(compose.material3)
22+
implementation(compose.components.resources)
23+
implementation(compose.ui)
24+
api(projects.core.common)
25+
api(projects.core.designsystem)
26+
api(projects.core.ui)
27+
api(projects.core.domain)
28+
api(projects.core.datastore)
29+
}
30+
}
3431
}

feature/settings/src/main/java/com/mifos/feature/settings/navigation/SettingsNavigation.kt renamed to feature/settings/src/commonMain/kotlin/com/mifos/feature/settings/navigation/SettingsNavigation.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
*/
1010
package com.mifos.feature.settings.navigation
1111

12+
import androidx.navigation.NavController
1213
import androidx.navigation.NavGraphBuilder
1314
import androidx.navigation.compose.composable
1415
import com.mifos.feature.settings.settings.SettingsScreen
1516

16-
/**
17-
* Created by Pronay Sarker on 10/08/2024 (7:52 AM)
18-
*/
17+
fun NavController.navigateToSettingsScreen() {
18+
navigate(SettingsScreens.SettingsScreen.route)
19+
}
20+
1921
fun NavGraphBuilder.settingsScreen(
2022
navigateBack: () -> Unit,
2123
navigateToLoginScreen: () -> Unit,

0 commit comments

Comments
 (0)