diff --git a/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt b/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt
index 877d4631d..7e9d1a84f 100644
--- a/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt
+++ b/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt
@@ -50,8 +50,6 @@ import org.mifos.mobile.feature.qr.navigation.navigateToQrDisplayScreen
import org.mifos.mobile.feature.qr.navigation.navigateToQrImportScreen
import org.mifos.mobile.feature.qr.navigation.navigateToQrReaderScreen
import org.mifos.mobile.feature.qr.navigation.qrNavGraph
-import org.mifos.mobile.feature.transaction.navigation.navigateToRecentTransaction
-import org.mifos.mobile.feature.transaction.navigation.recentTransactionNavGraph
import org.mifos.mobile.feature.savings.navigation.navigateToSavingsApplicationScreen
import org.mifos.mobile.feature.savings.navigation.navigateToSavingsDetailScreen
import org.mifos.mobile.feature.savings.navigation.navigateToSavingsMakeTransfer
@@ -60,6 +58,8 @@ import org.mifos.mobile.feature.settings.navigation.navigateToSettings
import org.mifos.mobile.feature.settings.navigation.settingsNavGraph
import org.mifos.mobile.feature.third.party.transfer.third_party_transfer.navigation.navigateToThirdPartyTransfer
import org.mifos.mobile.feature.third.party.transfer.third_party_transfer.navigation.thirdPartyTransferNavGraph
+import org.mifos.mobile.feature.transaction.navigation.navigateToRecentTransaction
+import org.mifos.mobile.feature.transaction.navigation.recentTransactionNavGraph
import org.mifos.mobile.feature.transfer.process.navigation.navigateToTransferProcessScreen
import org.mifos.mobile.feature.transfer.process.navigation.transferProcessNavGraph
import org.mifos.mobile.feature.update_password.navigation.navigateToUpdatePassword
@@ -153,9 +153,7 @@ fun RootNavGraph(
navigateToOssLicense = { startActivity(context, OssLicensesMenuActivity::class.java) }
)
- transferProcessNavGraph(
- navController = navController
- )
+ transferProcessNavGraph(navigateBack = navController::popBackStack)
beneficiaryNavGraph(
navController = navController,
diff --git a/feature/transfer-process/build.gradle.kts b/feature/transfer-process/build.gradle.kts
index 04ca5a00e..609571119 100644
--- a/feature/transfer-process/build.gradle.kts
+++ b/feature/transfer-process/build.gradle.kts
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
+ */
plugins {
alias(libs.plugins.mifos.android.feature)
alias(libs.plugins.mifos.android.library.compose)
@@ -9,13 +18,5 @@ android {
}
dependencies {
- implementation(projects.core.ui)
- implementation(projects.core.common)
- implementation(projects.core.model)
- implementation(projects.core.data)
implementation(libs.squareup.retrofit.converter.gson)
-
- testImplementation(libs.junit)
- androidTestImplementation(libs.androidx.test.ext.junit)
- androidTestImplementation(libs.espresso.core)
}
\ No newline at end of file
diff --git a/feature/transfer-process/src/androidTest/java/org/mifos/mobile/feature/transfer/process/ExampleInstrumentedTest.kt b/feature/transfer-process/src/androidTest/java/org/mifos/mobile/feature/transfer/process/ExampleInstrumentedTest.kt
deleted file mode 100644
index 27b19e399..000000000
--- a/feature/transfer-process/src/androidTest/java/org/mifos/mobile/feature/transfer/process/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.mifos.mobile.feature.transfer.process
-
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
- @Test
- fun useAppContext() {
- // Context of the app under test.
- val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("org.mifos.mobile.feature.transfer.process.test", appContext.packageName)
- }
-}
\ No newline at end of file
diff --git a/feature/transfer-process/src/main/AndroidManifest.xml b/feature/transfer-process/src/main/AndroidManifest.xml
index a5918e68a..1f9b243f0 100644
--- a/feature/transfer-process/src/main/AndroidManifest.xml
+++ b/feature/transfer-process/src/main/AndroidManifest.xml
@@ -1,4 +1,13 @@
+
\ No newline at end of file
diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt
index f079e7874..37f72bc9a 100644
--- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt
+++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
+ */
package org.mifos.mobile.feature.transfer.process
import android.widget.Toast
@@ -13,7 +22,6 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
-import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
@@ -28,71 +36,72 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
-import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import org.mifos.mobile.core.common.Network
+import org.mifos.mobile.core.designsystem.components.MifosButton
import org.mifos.mobile.core.designsystem.components.MifosScaffold
import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
import org.mifos.mobile.core.model.entity.payload.TransferPayload
import org.mifos.mobile.core.ui.component.MifosErrorComponent
import org.mifos.mobile.core.ui.component.MifosProgressIndicatorOverlay
-
+import org.mifos.mobile.core.ui.utils.DevicePreviews
@Composable
-fun TransferProcessScreen(
+internal fun TransferProcessScreen(
+ navigateBack: () -> Unit,
+ modifier: Modifier = Modifier,
viewModel: TransferProcessViewModel = hiltViewModel(),
- navigateBack: () -> Unit
) {
val uiState by viewModel.transferUiState.collectAsStateWithLifecycle()
val payload by viewModel.transferPayload.collectAsStateWithLifecycle()
TransferProcessScreen(
uiState = uiState,
- transfer = { viewModel.makeTransfer() },
+ transfer = viewModel::makeTransfer,
payload = payload,
navigateBack = navigateBack,
+ modifier = modifier,
)
}
@Composable
-fun TransferProcessScreen(
+private fun TransferProcessScreen(
uiState: TransferProcessUiState,
payload: TransferPayload?,
transfer: () -> Unit,
navigateBack: () -> Unit,
+ modifier: Modifier = Modifier,
) {
val context = LocalContext.current
MifosScaffold(
topBarTitleResId = R.string.transfer,
navigateBack = navigateBack,
+ modifier = modifier,
content = { paddingValues ->
Box(
modifier = Modifier
.padding(paddingValues)
- .fillMaxSize()
+ .fillMaxSize(),
) {
-
TransferProcessContent(
payload = payload,
transfer = transfer,
- cancelClicked = navigateBack
+ cancelClicked = navigateBack,
)
when (uiState) {
- is TransferProcessUiState.Loading -> {
- MifosProgressIndicatorOverlay()
- }
+ is TransferProcessUiState.Loading -> MifosProgressIndicatorOverlay()
is TransferProcessUiState.Success -> {
Toast.makeText(
context,
R.string.transferred_successfully,
- Toast.LENGTH_SHORT
+ Toast.LENGTH_SHORT,
).show()
navigateBack()
}
@@ -104,46 +113,47 @@ fun TransferProcessScreen(
is TransferProcessUiState.Initial -> Unit
}
}
- }
+ },
)
}
@Composable
-fun TransferProcessContent(
+private fun TransferProcessContent(
payload: TransferPayload?,
transfer: () -> Unit,
- cancelClicked: () -> Unit
+ cancelClicked: () -> Unit,
+ modifier: Modifier = Modifier,
) {
val scrollState = rememberScrollState()
Column(
- modifier = Modifier
+ modifier = modifier
.fillMaxSize()
- .verticalScroll(scrollState)
+ .verticalScroll(scrollState),
) {
Card(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
colors = CardDefaults.cardColors(
- containerColor = MaterialTheme.colorScheme.background
+ containerColor = MaterialTheme.colorScheme.background,
),
- border = BorderStroke(1.dp, Color.LightGray)
+ border = BorderStroke(1.dp, Color.LightGray),
) {
Column(
modifier = Modifier
.fillMaxWidth()
- .padding(14.dp)
+ .padding(14.dp),
) {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 12.dp),
- horizontalAlignment = Alignment.CenterHorizontally
+ horizontalAlignment = Alignment.CenterHorizontally,
) {
Text(
text = stringResource(id = R.string.amount),
- color = MaterialTheme.colorScheme.primary
+ color = MaterialTheme.colorScheme.primary,
)
Text(text = payload?.transferAmount.toString())
@@ -152,18 +162,18 @@ fun TransferProcessContent(
Text(
text = stringResource(id = R.string.transfer_from_savings),
fontWeight = FontWeight(500),
- color = Color.Gray
+ color = Color.Gray,
)
Text(
text = stringResource(id = R.string.pay_to),
modifier = Modifier.padding(top = 8.dp),
- color = MaterialTheme.colorScheme.primary
+ color = MaterialTheme.colorScheme.primary,
)
Text(
text = payload?.fromAccountNumber.toString(),
- modifier = Modifier.padding(top = 4.dp, bottom = 2.dp)
+ modifier = Modifier.padding(top = 4.dp, bottom = 2.dp),
)
HorizontalDivider()
@@ -171,12 +181,12 @@ fun TransferProcessContent(
Text(
text = stringResource(id = R.string.pay_from),
modifier = Modifier.padding(top = 8.dp),
- color = MaterialTheme.colorScheme.primary
+ color = MaterialTheme.colorScheme.primary,
)
Text(
text = payload?.fromAccountNumber.toString(),
- modifier = Modifier.padding(top = 4.dp, bottom = 2.dp)
+ modifier = Modifier.padding(top = 4.dp, bottom = 2.dp),
)
HorizontalDivider()
@@ -184,12 +194,12 @@ fun TransferProcessContent(
Text(
text = stringResource(id = R.string.date),
modifier = Modifier.padding(top = 8.dp),
- color = MaterialTheme.colorScheme.primary
+ color = MaterialTheme.colorScheme.primary,
)
Text(
text = payload?.transferDate.toString(),
- modifier = Modifier.padding(top = 4.dp, bottom = 2.dp)
+ modifier = Modifier.padding(top = 4.dp, bottom = 2.dp),
)
HorizontalDivider()
@@ -197,12 +207,12 @@ fun TransferProcessContent(
Text(
text = stringResource(id = R.string.remark),
modifier = Modifier.padding(top = 8.dp),
- color = MaterialTheme.colorScheme.primary
+ color = MaterialTheme.colorScheme.primary,
)
Text(
text = payload?.transferDescription.toString(),
- modifier = Modifier.padding(top = 4.dp, bottom = 2.dp)
+ modifier = Modifier.padding(top = 4.dp, bottom = 2.dp),
)
HorizontalDivider()
@@ -211,27 +221,23 @@ fun TransferProcessContent(
Row(
modifier = Modifier.fillMaxWidth(),
- horizontalArrangement = Arrangement.End
+ horizontalArrangement = Arrangement.End,
) {
Row(
horizontalArrangement = Arrangement.spacedBy(30.dp),
) {
- Button(
- onClick = { cancelClicked() },
+ MifosButton(
+ textResId = R.string.cancel,
+ onClick = cancelClicked,
colors = ButtonDefaults.buttonColors(
containerColor = Color.Transparent,
- contentColor = MaterialTheme.colorScheme.primary
- )
- ) {
- Text(text = stringResource(id = R.string.cancel))
- }
- Button(
- onClick = {
- transfer()
- }
- ) {
- Text(text = stringResource(id = R.string.transfer))
- }
+ contentColor = MaterialTheme.colorScheme.primary,
+ ),
+ )
+ MifosButton(
+ textResId = R.string.transfer,
+ onClick = transfer,
+ )
}
}
}
@@ -239,21 +245,21 @@ fun TransferProcessContent(
}
}
-
-class UiStatesParameterProvider : PreviewParameterProvider {
+internal class UiStatesParameterProvider : PreviewParameterProvider {
override val values: Sequence
get() = sequenceOf(
TransferProcessUiState.Initial,
TransferProcessUiState.Loading,
TransferProcessUiState.Error(null),
- TransferProcessUiState.Success
+ TransferProcessUiState.Success,
)
}
-@Preview(showSystemUi = true)
+@DevicePreviews
@Composable
-fun TransferProcessScreenPreview(
- @PreviewParameter(UiStatesParameterProvider::class) transferUiState: TransferProcessUiState
+private fun TransferProcessScreenPreview(
+ @PreviewParameter(UiStatesParameterProvider::class)
+ transferUiState: TransferProcessUiState,
) {
MifosMobileTheme {
TransferProcessScreen(
@@ -263,11 +269,10 @@ fun TransferProcessScreenPreview(
fromAccountNumber = "1234567890",
toAccountNumber = "0987654321",
transferDate = "2021-09-01",
- transferDescription = "Transfer Description"
+ transferDescription = "Transfer Description",
),
transfer = {},
navigateBack = {},
)
}
}
-
diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt
index 291ca0f19..436048f43 100644
--- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt
+++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
+ */
package org.mifos.mobile.feature.transfer.process
import androidx.lifecycle.SavedStateHandle
@@ -8,6 +17,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
@@ -17,20 +27,26 @@ import org.mifos.mobile.core.common.Constants.TRANSFER_TYPE
import org.mifos.mobile.core.data.repository.TransferRepository
import org.mifos.mobile.core.model.entity.payload.TransferPayload
import org.mifos.mobile.core.model.enums.TransferType
+import org.mifos.mobile.feature.transfer.process.TransferProcessUiState.Initial
import javax.inject.Inject
@HiltViewModel
-class TransferProcessViewModel @Inject constructor(
+internal class TransferProcessViewModel @Inject constructor(
private val transferRepositoryImp: TransferRepository,
- savedStateHandle: SavedStateHandle
-) :
- ViewModel() {
+ savedStateHandle: SavedStateHandle,
+) : ViewModel() {
- private val _transferUiState = MutableStateFlow(TransferProcessUiState.Initial)
- val transferUiState: StateFlow get() = _transferUiState
+ private val _transferUiState = MutableStateFlow(Initial)
+ val transferUiState = _transferUiState.asStateFlow()
- private val transferPayloadString = savedStateHandle.getStateFlow(key = PAYLOAD, initialValue = null)
- private val transferType = savedStateHandle.getStateFlow(key = TRANSFER_TYPE, initialValue = null)
+ private val transferPayloadString = savedStateHandle.getStateFlow(
+ key = PAYLOAD,
+ initialValue = null,
+ )
+ private val transferType = savedStateHandle.getStateFlow(
+ key = TRANSFER_TYPE,
+ initialValue = null,
+ )
val transferPayload: StateFlow = transferPayloadString
.map { jsonString ->
@@ -40,7 +56,7 @@ class TransferProcessViewModel @Inject constructor(
}.stateIn(
scope = viewModelScope,
started = SharingStarted.Eagerly,
- initialValue = null
+ initialValue = null,
)
fun makeTransfer() {
@@ -63,7 +79,7 @@ class TransferProcessViewModel @Inject constructor(
locale = payload.locale,
fromAccountNumber = payload.fromAccountNumber,
toAccountNumber = payload.toAccountNumber,
- transferType = transferType.value
+ transferType = transferType.value,
).catch { e ->
_transferUiState.value = TransferProcessUiState.Error(e.message)
}.collect {
@@ -74,7 +90,7 @@ class TransferProcessViewModel @Inject constructor(
}
}
-sealed class TransferProcessUiState {
+internal sealed class TransferProcessUiState {
data object Initial : TransferProcessUiState()
data object Loading : TransferProcessUiState()
data object Success : TransferProcessUiState()
diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt
index 3147b1f88..cad5b165c 100644
--- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt
+++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt
@@ -1,3 +1,12 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
+ */
package org.mifos.mobile.feature.transfer.process.navigation
import androidx.navigation.NavController
@@ -16,37 +25,42 @@ import org.mifos.mobile.core.model.enums.TransferType
import org.mifos.mobile.feature.transfer.process.TransferProcessScreen
// Navigation Setup
-fun NavController.navigateToTransferProcessScreen(transferPayload: ReviewTransferPayload, transferType: TransferType) {
+fun NavController.navigateToTransferProcessScreen(
+ transferPayload: ReviewTransferPayload,
+ transferType: TransferType,
+) {
navigate(
TransferProcessNavigation.TransferProcessScreen.passArguments(
transferType = transferType,
- payload = transferPayload.convertToTransferPayloadString()
- )
+ payload = transferPayload.convertToTransferPayloadString(),
+ ),
)
}
fun NavGraphBuilder.transferProcessNavGraph(
- navController: NavController
+ navigateBack: () -> Unit,
) {
navigation(
startDestination = TransferProcessNavigation.TransferProcessScreen.route,
route = TransferProcessNavigation.TransferProcessBase.route,
) {
transferProcessScreenRoute(
- navigateBack = navController::popBackStack,
+ navigateBack = navigateBack,
)
}
}
-fun NavGraphBuilder.transferProcessScreenRoute(
+private fun NavGraphBuilder.transferProcessScreenRoute(
navigateBack: () -> Unit,
) {
composable(
route = TransferProcessNavigation.TransferProcessScreen.route,
arguments = listOf(
navArgument(name = Constants.PAYLOAD) { type = NavType.StringType },
- navArgument(name = Constants.TRANSFER_TYPE) { type = NavType.EnumType(TransferType::class.java) }
- )
+ navArgument(name = Constants.TRANSFER_TYPE) {
+ type = NavType.EnumType(TransferType::class.java)
+ },
+ ),
) {
TransferProcessScreen(
navigateBack = navigateBack,
@@ -54,8 +68,7 @@ fun NavGraphBuilder.transferProcessScreenRoute(
}
}
-
-fun ReviewTransferPayload.convertToTransferPayloadString(): String {
+private fun ReviewTransferPayload.convertToTransferPayloadString(): String {
val payload = this
val transferPayload = TransferPayload().apply {
fromAccountId = payload.payFromAccount?.accountId
@@ -75,4 +88,4 @@ fun ReviewTransferPayload.convertToTransferPayloadString(): String {
val gson = Gson()
return gson.toJson(transferPayload)
-}
\ No newline at end of file
+}
diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt
index 76a6e0ead..125be71e5 100644
--- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt
+++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt
@@ -1,9 +1,16 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
+ */
package org.mifos.mobile.feature.transfer.process.navigation
-import org.mifos.mobile.core.common.Constants
import org.mifos.mobile.core.common.Constants.PAYLOAD
import org.mifos.mobile.core.common.Constants.TRANSFER_TYPE
-import org.mifos.mobile.core.model.entity.payload.ReviewTransferPayload
import org.mifos.mobile.core.model.enums.TransferType
// Constants for Routes
@@ -11,9 +18,17 @@ const val TRANSFER_PROCESS_NAVIGATION_ROUTE_BASE = "transfer_process_base_route"
const val TRANSFER_PROCESS_SCREEN_ROUTE = "transfer_process_screen_route"
// Sealed class for Navigation Routes
-sealed class TransferProcessNavigation(val route: String) {
- data object TransferProcessBase : TransferProcessNavigation(route = TRANSFER_PROCESS_NAVIGATION_ROUTE_BASE)
- data object TransferProcessScreen : TransferProcessNavigation(route = "$TRANSFER_PROCESS_SCREEN_ROUTE/{${PAYLOAD}}/{$TRANSFER_TYPE}") {
- fun passArguments(payload: String, transferType: TransferType) = "$TRANSFER_PROCESS_SCREEN_ROUTE/${payload}/${transferType}"
+internal sealed class TransferProcessNavigation(val route: String) {
+ data object TransferProcessBase : TransferProcessNavigation(
+ route = TRANSFER_PROCESS_NAVIGATION_ROUTE_BASE,
+ )
+
+ data object TransferProcessScreen : TransferProcessNavigation(
+ route = "$TRANSFER_PROCESS_SCREEN_ROUTE/{$PAYLOAD}/{$TRANSFER_TYPE}",
+ ) {
+ fun passArguments(
+ payload: String,
+ transferType: TransferType,
+ ) = "$TRANSFER_PROCESS_SCREEN_ROUTE/$payload/$transferType"
}
-}
\ No newline at end of file
+}
diff --git a/feature/transfer-process/src/main/res/values/strings.xml b/feature/transfer-process/src/main/res/values/strings.xml
index 2b5ca4856..7584a9ca9 100644
--- a/feature/transfer-process/src/main/res/values/strings.xml
+++ b/feature/transfer-process/src/main/res/values/strings.xml
@@ -1,4 +1,13 @@
+
Transfer
Transferred Successfully
diff --git a/feature/transfer-process/src/test/java/org/mifos/mobile/feature/transfer/process/ExampleUnitTest.kt b/feature/transfer-process/src/test/java/org/mifos/mobile/feature/transfer/process/ExampleUnitTest.kt
deleted file mode 100644
index e0bb4aa78..000000000
--- a/feature/transfer-process/src/test/java/org/mifos/mobile/feature/transfer/process/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.mifos.mobile.feature.transfer.process
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
- @Test
- fun addition_isCorrect() {
- assertEquals(4, 2 + 2)
- }
-}
\ No newline at end of file