diff --git a/.github/workflows/master_dev_ci.yml b/.github/workflows/master_dev_ci.yml index a46255832..8a0b67b77 100644 --- a/.github/workflows/master_dev_ci.yml +++ b/.github/workflows/master_dev_ci.yml @@ -29,6 +29,18 @@ jobs: - name: Change gradlew Permission run: chmod +x gradlew + - name: Check Dependency Guard + id: dependencyguard_verify + continue-on-error: true + run: ./gradlew dependencyGuard + + - name: Prevent updating Dependency Guard baselines if this is a fork + id: checkfork_dependencyguard + continue-on-error: false + if: steps.dependencyguard_verify.outcome == 'failure' && github.event.pull_request.head.repo.full_name != github.repository + run: | + echo "::error::Dependency Guard failed, please update baselines with: ./gradlew dependencyGuardBaseline" && exit 1 + # Build App - name: Build with Gradle run: ./gradlew assemble diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 74c026ae7..84bd2298b 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -786,7 +786,7 @@ style: UselessCallOnNotNull: active: true UtilityClassWithPublicConstructor: - active: true + active: false VarCouldBeVal: active: true WildcardImport: diff --git a/core/model/src/main/java/com/mifospay/core/model/domain/Transaction.kt b/core/model/src/main/java/com/mifospay/core/model/domain/Transaction.kt index bd3957586..07085e18f 100644 --- a/core/model/src/main/java/com/mifospay/core/model/domain/Transaction.kt +++ b/core/model/src/main/java/com/mifospay/core/model/domain/Transaction.kt @@ -4,6 +4,7 @@ import android.os.Parcelable import com.mifospay.core.model.entity.accounts.savings.TransferDetail import kotlinx.parcelize.Parcelize +@Suppress("MaxLineLength") @Parcelize data class Transaction( var transactionId: String? = null, diff --git a/core/ui/src/main/kotlin/org/mifospay/core/ui/EmptyContentScreen.kt b/core/ui/src/main/kotlin/org/mifospay/core/ui/EmptyContentScreen.kt index 36003e39e..55320e31d 100644 --- a/core/ui/src/main/kotlin/org/mifospay/core/ui/EmptyContentScreen.kt +++ b/core/ui/src/main/kotlin/org/mifospay/core/ui/EmptyContentScreen.kt @@ -26,7 +26,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import org.mifospay.core.designsystem.theme.LocalTintTheme import org.mifospay.core.designsystem.theme.MifosTheme @Composable @@ -133,7 +132,7 @@ fun EmptyContentScreenDrawableImagePreview() { title = "No data found", subTitle = "Please check you connection or try again", iconTint = MaterialTheme.colorScheme.primary, - iconDrawable = R.drawable.baseline_info_outline_24 + iconDrawable = R.drawable.core_ui_baseline_info_outline_24 ) } } diff --git a/core/ui/src/main/kotlin/org/mifospay/core/ui/HeadingTitile.kt b/core/ui/src/main/kotlin/org/mifospay/core/ui/HeadingTitile.kt index 4cc4e5790..1b2cb2e13 100644 --- a/core/ui/src/main/kotlin/org/mifospay/core/ui/HeadingTitile.kt +++ b/core/ui/src/main/kotlin/org/mifospay/core/ui/HeadingTitile.kt @@ -1,7 +1,9 @@ -package org.mifos.mobilewallet.mifospay.ui +package org.mifospay.core.ui -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Check import androidx.compose.material3.Icon @@ -11,7 +13,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.colorResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign diff --git a/core/ui/src/main/kotlin/org/mifospay/core/ui/OtpTextField.kt b/core/ui/src/main/kotlin/org/mifospay/core/ui/OtpTextField.kt index f7291ce05..2127f3cd6 100644 --- a/core/ui/src/main/kotlin/org/mifospay/core/ui/OtpTextField.kt +++ b/core/ui/src/main/kotlin/org/mifospay/core/ui/OtpTextField.kt @@ -1,8 +1,13 @@ -package org.mifos.mobilewallet.mifospay.ui +package org.mifospay.core.ui -import androidx.compose.foundation.border -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions @@ -14,7 +19,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.TextRange @@ -25,7 +29,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -@OptIn(ExperimentalComposeUiApi::class) @Composable fun OtpTextField( modifier: Modifier = Modifier, @@ -116,7 +119,7 @@ fun CharView( @Preview @Composable -fun prviewOtpTextField() { +fun PreviewOtpTextField() { OtpTextField( realOtp = "1234", otpCount = 4, diff --git a/core/ui/src/main/kotlin/org/mifospay/core/ui/TransactionItemScreen.kt b/core/ui/src/main/kotlin/org/mifospay/core/ui/TransactionItemScreen.kt index 4e5188d8d..05f56d89f 100644 --- a/core/ui/src/main/kotlin/org/mifospay/core/ui/TransactionItemScreen.kt +++ b/core/ui/src/main/kotlin/org/mifospay/core/ui/TransactionItemScreen.kt @@ -43,9 +43,9 @@ fun TransactionItemScreen( .padding(top = 2.dp), painter = painterResource( id = when (transaction.transactionType) { - com.mifospay.core.model.domain.TransactionType.DEBIT -> R.drawable.money_out - com.mifospay.core.model.domain.TransactionType.CREDIT -> R.drawable.money_in - else -> R.drawable.money_in + com.mifospay.core.model.domain.TransactionType.DEBIT -> R.drawable.core_ui_money_out + com.mifospay.core.model.domain.TransactionType.CREDIT -> R.drawable.core_ui_money_in + else -> R.drawable.core_ui_money_in } ), contentDescription = null, diff --git a/core/ui/src/main/res/drawable/baseline_info_outline_24.xml b/core/ui/src/main/res/drawable/core_ui_baseline_info_outline_24.xml similarity index 100% rename from core/ui/src/main/res/drawable/baseline_info_outline_24.xml rename to core/ui/src/main/res/drawable/core_ui_baseline_info_outline_24.xml diff --git a/core/ui/src/main/res/drawable/money_in.png b/core/ui/src/main/res/drawable/core_ui_money_in.png similarity index 100% rename from core/ui/src/main/res/drawable/money_in.png rename to core/ui/src/main/res/drawable/core_ui_money_in.png diff --git a/core/ui/src/main/res/drawable/money_out.png b/core/ui/src/main/res/drawable/core_ui_money_out.png similarity index 100% rename from core/ui/src/main/res/drawable/money_out.png rename to core/ui/src/main/res/drawable/core_ui_money_out.png diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsItem.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsItem.kt index e9b16e30e..9f6efe83f 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsItem.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsItem.kt @@ -12,15 +12,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.mifospay.core.model.domain.BankAccountDetails import org.mifospay.core.designsystem.component.MifosCard -import org.mifospay.core.designsystem.theme.mifosText -import org.mifospay.core.designsystem.theme.styleMedium16sp @Composable fun AccountsItem( @@ -38,7 +35,7 @@ fun AccountsItem( .padding(top = 16.dp) ) { Icon( - painter = painterResource(id = R.drawable.ic_bank), + painter = painterResource(id = R.drawable.feature_accounts_ic_bank), contentDescription = null, modifier = Modifier .align(Alignment.CenterVertically) diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt index 66979c501..355cdd863 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt @@ -80,8 +80,8 @@ fun AccountScreen( AccountsUiState.Error -> { EmptyContentScreen( modifier = Modifier, - title = stringResource(id = R.string.error_oops), - subTitle = stringResource(id = R.string.unexpected_error_subtitle), + title = stringResource(id = R.string.feature_accounts_error_oops), + subTitle = stringResource(id = R.string.feature_accounts_unexpected_error_subtitle), iconTint = MaterialTheme.colorScheme.onSurface, iconImageVector = Icons.Rounded.Info ) @@ -95,7 +95,7 @@ fun AccountScreen( ) { item { Text( - text = stringResource(id = R.string.linked_bank_account), + text = stringResource(id = R.string.feature_accounts_linked_bank_account), fontSize = 16.sp, color = MaterialTheme.colorScheme.primary, modifier = Modifier.padding(top = 48.dp, start = 24.dp) @@ -123,8 +123,8 @@ fun AccountScreen( AddCardChip( modifier = Modifier.align(Alignment.Center), onAddBtn = onAddAccount, - text = R.string.add_account, - btnText = R.string.add_cards + text = R.string.feature_accounts_add_account, + btnText = R.string.feature_accounts_add_cards ) } } @@ -133,12 +133,10 @@ fun AccountScreen( AccountsUiState.Loading -> { MfLoadingWheel( - contentDesc = stringResource(R.string.loading), + contentDesc = stringResource(R.string.feature_accounts_loading), backgroundColor = MaterialTheme.colorScheme.surface ) } - - else -> {} } } PullRefreshIndicator( @@ -158,12 +156,12 @@ fun NoLinkedAccountsScreen(onAddBtn: () -> Unit) { Column( horizontalAlignment = Alignment.CenterHorizontally ) { - Text(text = stringResource(R.string.no_linked_bank_accounts)) + Text(text = stringResource(R.string.feature_accounts_no_linked_bank_accounts)) AddCardChip( modifier = Modifier, onAddBtn = onAddBtn, - text = R.string.add_account, - btnText = R.string.add_cards + text = R.string.feature_accounts_add_account, + btnText = R.string.feature_accounts_add_cards ) } } diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/choose/sim/ChooseSimDialogSheet.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/choose/sim/ChooseSimDialogSheet.kt index 5ee6cbb32..11ff9e039 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/choose/sim/ChooseSimDialogSheet.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/choose/sim/ChooseSimDialogSheet.kt @@ -22,7 +22,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext @@ -64,13 +63,13 @@ fun ChooseSimDialogSheetContent(onSimSelected: (Int) -> Unit) { .padding(8.dp) ) { Text( - text = stringResource(id = R.string.verify_mobile_number), + text = stringResource(id = R.string.feature_accounts_verify_mobile_number), style = MaterialTheme.typography.titleLarge, color = MaterialTheme.colorScheme.onSurface ) Spacer(modifier = Modifier.height(16.dp)) Text( - text = stringResource(id = R.string.confirm_mobile_number_message), + text = stringResource(id = R.string.feature_accounts_confirm_mobile_number_message), style = MaterialTheme.typography.bodySmall.copy( textAlign = TextAlign.Center ), @@ -79,7 +78,7 @@ fun ChooseSimDialogSheetContent(onSimSelected: (Int) -> Unit) { Spacer(modifier = Modifier.height(16.dp)) Text( modifier = Modifier.padding(horizontal = 24.dp), - text = stringResource(id = R.string.bank_account_mobile_verification_conditions), + text = stringResource(id = R.string.feature_accounts_bank_account_mobile_verification_conditions), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurface ) @@ -96,7 +95,7 @@ fun ChooseSimDialogSheetContent(onSimSelected: (Int) -> Unit) { ) Spacer(modifier = Modifier.width(24.dp)) - Text(text = stringResource(id = R.string.or), + Text(text = stringResource(id = R.string.feature_accounts_or), color = MaterialTheme.colorScheme.onSurface) Spacer(modifier = Modifier.width(24.dp)) SimCard( @@ -107,7 +106,7 @@ fun ChooseSimDialogSheetContent(onSimSelected: (Int) -> Unit) { } Spacer(modifier = Modifier.height(16.dp)) Text( - text = stringResource(id = R.string.regular_charges_will_apply), + text = stringResource(id = R.string.feature_accounts_regular_charges_will_apply), color = MaterialTheme.colorScheme.onSurface, style = MaterialTheme.typography.bodySmall ) @@ -119,7 +118,7 @@ fun ChooseSimDialogSheetContent(onSimSelected: (Int) -> Unit) { if (selectedSim == -1) { Toast.makeText( context, - context.getString(R.string.choose_a_sim), + context.getString(R.string.feature_accounts_choose_a_sim), Toast.LENGTH_SHORT ).show() } else { @@ -127,7 +126,7 @@ fun ChooseSimDialogSheetContent(onSimSelected: (Int) -> Unit) { } } ) { - Text(text = stringResource(id = R.string.confirm)) + Text(text = stringResource(id = R.string.feature_accounts_confirm)) } Spacer(modifier = Modifier.height(24.dp)) } @@ -139,8 +138,8 @@ fun SimCard( ) { val drawable: Painter = painterResource( id = if (isSelected) { - R.drawable.sim_card_selected - } else R.drawable.sim_card_unselected + R.drawable.feature_accounts_sim_card_selected + } else R.drawable.feature_accounts_sim_card_unselected ) Image(painter = drawable, contentDescription = "SIM Card $simNumber", diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/details/BankAccountDetailScreen.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/details/BankAccountDetailScreen.kt index 2bc331dd1..669c35b03 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/details/BankAccountDetailScreen.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/details/BankAccountDetailScreen.kt @@ -61,7 +61,7 @@ fun BankAccountDetailScreen( navigateBack: () -> Unit ) { Column(modifier = Modifier.fillMaxSize()) { - MifosTopBar(topBarTitle = R.string.bank_account_details) { navigateBack.invoke() } + MifosTopBar(topBarTitle = R.string.feature_accounts_bank_account_details) { navigateBack.invoke() } Column( modifier = Modifier .padding(20.dp) @@ -70,27 +70,27 @@ fun BankAccountDetailScreen( ) { BankAccountDetailRows( modifier = Modifier.fillMaxWidth(), - detail = R.string.bank_name, + detail = R.string.feature_accounts_bank_name, detailValue = bankName ) BankAccountDetailRows( modifier = Modifier.fillMaxWidth().padding(top = 10.dp), - detail = R.string.ac_holder_name, + detail = R.string.feature_accounts_ac_holder_name, detailValue = accountHolderName ) BankAccountDetailRows( modifier = Modifier.fillMaxWidth().padding(top = 10.dp), - detail = R.string.branch_name, + detail = R.string.feature_accounts_branch_name, detailValue = branchName ) BankAccountDetailRows( modifier = Modifier.fillMaxWidth().padding(top = 10.dp), - detail = R.string.ifsc, + detail = R.string.feature_accounts_ifsc, detailValue = ifsc ) BankAccountDetailRows( modifier = Modifier.fillMaxWidth().padding(top = 10.dp), - detail = R.string.type, + detail = R.string.feature_accounts_type, detailValue = type ) } @@ -101,14 +101,14 @@ fun BankAccountDetailScreen( ) { BankAccountDetailButton( - btnText = R.string.setup_upi, + btnText = R.string.feature_accounts_setup_upi, onClick = { onSetupUpiPin.invoke() }, isUpiEnabled = !isUpiEnabled, hasTrailingIcon = false ) BankAccountDetailButton( - btnText = R.string.delete_bank, + btnText = R.string.feature_accounts_delete_bank, onClick = {}, isUpiEnabled = !isUpiEnabled ) @@ -118,13 +118,13 @@ fun BankAccountDetailScreen( modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(20.dp) ) { BankAccountDetailButton( - btnText = R.string.change_upi_pin, + btnText = R.string.feature_accounts_change_upi_pin, onClick = { onChangeUpiPin.invoke() }, isUpiEnabled = isUpiEnabled, modifier = Modifier.fillMaxWidth() ) BankAccountDetailButton( - btnText = R.string.forgot_upi_pin, + btnText = R.string.feature_accounts_forgot_upi_pin, onClick = { onForgotUpiPin.invoke() }, isUpiEnabled = isUpiEnabled, modifier = Modifier.fillMaxWidth() diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt index ad19d5352..d0102be60 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt @@ -36,7 +36,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle @@ -110,7 +109,7 @@ fun LinkBankAccountScreen( modifier = Modifier.background(color = MaterialTheme.colorScheme.surface), topBar = { MifosTopAppBar( - titleRes = R.string.link_bank_account, + titleRes = R.string.feature_accounts_link_bank_account, navigationIcon = MifosIcons.Back, navigationIconContentDescription = "Back icon", onNavigationClick = onBackClick, @@ -125,7 +124,7 @@ fun LinkBankAccountScreen( when (bankUiState) { is BankUiState.Loading -> { MfLoadingWheel( - contentDesc = stringResource(R.string.loading), + contentDesc = stringResource(R.string.feature_accounts_loading), backgroundColor = MaterialTheme.colorScheme.surface ) } @@ -167,7 +166,7 @@ fun BankListScreenContent( searchQuery = it onBankSearch(it) }, - label = R.string.search, + label = R.string.feature_accounts_search, trailingIcon = { Icon(imageVector = Icons.Filled.Search, contentDescription = null) }) @@ -175,7 +174,7 @@ fun BankListScreenContent( if (searchQuery.isBlank()) { Spacer(modifier = Modifier.height(24.dp)) Text( - text = stringResource(id = R.string.popular_banks), + text = stringResource(id = R.string.feature_accounts_popular_banks), style = TextStyle(MaterialTheme.colorScheme.onSurface, fontWeight = FontWeight.Medium), modifier = Modifier.padding(start = 16.dp) ) @@ -186,7 +185,7 @@ fun BankListScreenContent( ) Spacer(modifier = Modifier.height(24.dp)) Text( - text = stringResource(id = R.string.other_banks), + text = stringResource(id = R.string.feature_accounts_other_banks), style = TextStyle(MaterialTheme.colorScheme.onSurface, fontWeight = FontWeight.Medium), modifier = Modifier.padding(start = 16.dp) ) diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt index 72801265d..da0b5d8a6 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt @@ -48,7 +48,7 @@ class LinkBankAccountViewModel @Inject constructor( ).map { searchQueryAndBanks -> val searchQuery = searchQueryAndBanks.first val localBanks = searchQueryAndBanks.second.map { - Bank(it, R.drawable.ic_bank, BankType.OTHER) + Bank(it, R.drawable.feature_accounts_ic_bank, BankType.OTHER) } val banks = ArrayList().apply { addAll(popularBankList()) @@ -65,12 +65,12 @@ class LinkBankAccountViewModel @Inject constructor( private fun popularBankList(): List { return listOf( - Bank("RBL Bank", R.drawable.logo_rbl, BankType.POPULAR), - Bank("SBI Bank", R.drawable.logo_sbi, BankType.POPULAR), - Bank("PNB Bank", R.drawable.logo_pnb, BankType.POPULAR), - Bank("HDFC Bank", R.drawable.logo_hdfc, BankType.POPULAR), - Bank("ICICI Bank", R.drawable.logo_icici, BankType.POPULAR), - Bank("AXIS Bank", R.drawable.logo_axis, BankType.POPULAR) + Bank("RBL Bank", R.drawable.feature_accounts_logo_rbl, BankType.POPULAR), + Bank("SBI Bank", R.drawable.feature_accounts_logo_sbi, BankType.POPULAR), + Bank("PNB Bank", R.drawable.feature_accounts_logo_pnb, BankType.POPULAR), + Bank("HDFC Bank", R.drawable.feature_accounts_logo_hdfc, BankType.POPULAR), + Bank("ICICI Bank", R.drawable.feature_accounts_logo_icici, BankType.POPULAR), + Bank("AXIS Bank", R.drawable.feature_accounts_logo_axis, BankType.POPULAR) ) } diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankUiStatePreviewParameterProvider.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankUiStatePreviewParameterProvider.kt index 6d4b022ab..d8a796eee 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankUiStatePreviewParameterProvider.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankUiStatePreviewParameterProvider.kt @@ -8,15 +8,15 @@ import org.mifospay.feature.bank.accounts.R class LinkBankUiStatePreviewParameterProvider : PreviewParameterProvider { val banks = ArrayList().apply { - add(Bank("RBL Bank", R.drawable.logo_rbl, BankType.POPULAR)) - add(Bank("SBI Bank", R.drawable.logo_sbi, BankType.POPULAR)) - add(Bank("PNB Bank", R.drawable.logo_pnb, BankType.POPULAR)) - add(Bank("HDFC Bank", R.drawable.logo_hdfc, BankType.POPULAR)) - add(Bank("ICICI Bank", R.drawable.logo_icici, BankType.POPULAR)) - add(Bank("AXIS Bank", R.drawable.logo_axis, BankType.POPULAR)) - add(Bank("HDFC Bank", R.drawable.ic_bank, BankType.OTHER)) - add(Bank("ICICI Bank", R.drawable.ic_bank, BankType.OTHER)) - add(Bank("AXIS Bank", R.drawable.ic_bank, BankType.OTHER)) + add(Bank("RBL Bank", R.drawable.feature_accounts_logo_rbl, BankType.POPULAR)) + add(Bank("SBI Bank", R.drawable.feature_accounts_logo_sbi, BankType.POPULAR)) + add(Bank("PNB Bank", R.drawable.feature_accounts_logo_pnb, BankType.POPULAR)) + add(Bank("HDFC Bank", R.drawable.feature_accounts_logo_hdfc, BankType.POPULAR)) + add(Bank("ICICI Bank", R.drawable.feature_accounts_logo_icici, BankType.POPULAR)) + add(Bank("AXIS Bank", R.drawable.feature_accounts_logo_axis, BankType.POPULAR)) + add(Bank("HDFC Bank", R.drawable.feature_accounts_ic_bank, BankType.OTHER)) + add(Bank("ICICI Bank", R.drawable.feature_accounts_ic_bank, BankType.OTHER)) + add(Bank("AXIS Bank", R.drawable.feature_accounts_ic_bank, BankType.OTHER)) } override val values: Sequence = sequenceOf( diff --git a/feature/accounts/src/main/res/drawable/ic_bank.xml b/feature/accounts/src/main/res/drawable/feature_accounts_ic_bank.xml similarity index 100% rename from feature/accounts/src/main/res/drawable/ic_bank.xml rename to feature/accounts/src/main/res/drawable/feature_accounts_ic_bank.xml diff --git a/feature/accounts/src/main/res/drawable/logo_axis.png b/feature/accounts/src/main/res/drawable/feature_accounts_logo_axis.png similarity index 100% rename from feature/accounts/src/main/res/drawable/logo_axis.png rename to feature/accounts/src/main/res/drawable/feature_accounts_logo_axis.png diff --git a/feature/accounts/src/main/res/drawable/logo_hdfc.png b/feature/accounts/src/main/res/drawable/feature_accounts_logo_hdfc.png similarity index 100% rename from feature/accounts/src/main/res/drawable/logo_hdfc.png rename to feature/accounts/src/main/res/drawable/feature_accounts_logo_hdfc.png diff --git a/feature/accounts/src/main/res/drawable/logo_icici.png b/feature/accounts/src/main/res/drawable/feature_accounts_logo_icici.png similarity index 100% rename from feature/accounts/src/main/res/drawable/logo_icici.png rename to feature/accounts/src/main/res/drawable/feature_accounts_logo_icici.png diff --git a/feature/accounts/src/main/res/drawable/logo_pnb.png b/feature/accounts/src/main/res/drawable/feature_accounts_logo_pnb.png similarity index 100% rename from feature/accounts/src/main/res/drawable/logo_pnb.png rename to feature/accounts/src/main/res/drawable/feature_accounts_logo_pnb.png diff --git a/feature/accounts/src/main/res/drawable/logo_rbl.png b/feature/accounts/src/main/res/drawable/feature_accounts_logo_rbl.png similarity index 100% rename from feature/accounts/src/main/res/drawable/logo_rbl.png rename to feature/accounts/src/main/res/drawable/feature_accounts_logo_rbl.png diff --git a/feature/accounts/src/main/res/drawable/logo_sbi.png b/feature/accounts/src/main/res/drawable/feature_accounts_logo_sbi.png similarity index 100% rename from feature/accounts/src/main/res/drawable/logo_sbi.png rename to feature/accounts/src/main/res/drawable/feature_accounts_logo_sbi.png diff --git a/feature/accounts/src/main/res/drawable/sim_card_selected.xml b/feature/accounts/src/main/res/drawable/feature_accounts_sim_card_selected.xml similarity index 96% rename from feature/accounts/src/main/res/drawable/sim_card_selected.xml rename to feature/accounts/src/main/res/drawable/feature_accounts_sim_card_selected.xml index f976e01d0..e69429cc9 100644 --- a/feature/accounts/src/main/res/drawable/sim_card_selected.xml +++ b/feature/accounts/src/main/res/drawable/feature_accounts_sim_card_selected.xml @@ -6,7 +6,7 @@ android:viewportWidth="512"> - #DE000000 - @color/colorBlack87 + #DE000000 + @color/feature_accounts_colorBlack87 + #303F9F \ No newline at end of file diff --git a/feature/accounts/src/main/res/values/strings.xml b/feature/accounts/src/main/res/values/strings.xml index 34d043c56..dacae57d7 100644 --- a/feature/accounts/src/main/res/values/strings.xml +++ b/feature/accounts/src/main/res/values/strings.xml @@ -1,35 +1,35 @@ - Bank Account Details - Bank Name - A/C Holder Name - Branch Name - IFSC - Type - Setup UPI - Delete Bank - Change UPI PIN - Forgot UPI PIN - Link Bank Account - Loading - Search - Popular Banks - Other Banks - Oops! - An unexpected error occurred. Please try again. - Linked bank accounts - ADD ACCOUNT - Please Add Cards - No Linked Bank Accounts - Verify Mobile Number - To confirm your mobile number \n we need to send an + Bank Account Details + Bank Name + A/C Holder Name + Branch Name + IFSC + Type + Setup UPI + Delete Bank + Change UPI PIN + Forgot UPI PIN + Link Bank Account + Loading + Search + Popular Banks + Other Banks + Oops! + An unexpected error occurred. Please try again. + Linked bank accounts + ADD ACCOUNT + Please Add Cards + No Linked Bank Accounts + Verify Mobile Number + To confirm your mobile number \n we need to send an SMS from \n your phone* - or - *Regular charges will apply - Please choose a SIM - Confirm - Make sure that the following + or + *Regular charges will apply + Please choose a SIM + Confirm + Make sure that the following conditions are met: \n1. Mobile Number is linked with your Bank Account. \n2. Mobile Number is registered on MifosPay. \n3. It\'s sim is on this device. diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/MobileVerificationScreenNavigation.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/MobileVerificationScreenNavigation.kt index dfecca3fe..c03a08bf9 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/MobileVerificationScreenNavigation.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/MobileVerificationScreenNavigation.kt @@ -1,3 +1,5 @@ +@file:Suppress("MaxLineLength") + package org.mifospay.feature.auth.navigation import androidx.navigation.NavController diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/SignupScreenNavigation.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/SignupScreenNavigation.kt index 193402202..9a40e949c 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/SignupScreenNavigation.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/navigation/SignupScreenNavigation.kt @@ -1,14 +1,12 @@ +@file:Suppress("MaxLineLength") + package org.mifospay.feature.auth.navigation -import android.content.Intent -import android.widget.Toast -import androidx.core.content.ContextCompat.startActivity import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavType import androidx.navigation.compose.composable import androidx.navigation.navArgument -import org.mifospay.feature.auth.login.LoginActivity import org.mifospay.feature.auth.signup.SignupScreen const val SIGNUP_ROUTE = "signup_route" diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/social_signup/SocialSignupMethodScreen.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/social_signup/SocialSignupMethodScreen.kt index d9032e242..dbf4c29cb 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/social_signup/SocialSignupMethodScreen.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/social_signup/SocialSignupMethodScreen.kt @@ -1,3 +1,5 @@ +@file:Suppress("MaxLineLength") + package org.mifospay.feature.auth.social_signup import android.content.Context diff --git a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt index 2f8c251a2..59069ccf7 100644 --- a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt +++ b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt @@ -87,7 +87,9 @@ fun EditPasswordScreen( EditPasswordUiState.Loading -> {} EditPasswordUiState.Success -> { coroutineScope.launch { - currentSnackbarHostState.showSnackbar(context.getString(R.string.feature_editpassword_password_changed_successfully)) + currentSnackbarHostState.showSnackbar( + context.getString(R.string.feature_editpassword_password_changed_successfully) + ) } } @@ -143,7 +145,9 @@ fun EditPasswordScreen( password = confirmNewPassword, label = stringResource(id = R.string.feature_editpassword_confirm_new_password), isError = newPassword != confirmNewPassword && confirmNewPassword.isNotEmpty(), - errorMessage = if (newPassword != confirmNewPassword && confirmNewPassword.isNotEmpty()) stringResource( + errorMessage = if (newPassword != + confirmNewPassword && confirmNewPassword.isNotEmpty() + ) stringResource( id = R.string.feature_editpassword_password_mismatch_error ) else null, isPasswordVisible = isConfirmNewPasswordVisible, diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt index 2126a4972..18c0adcd0 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt @@ -235,7 +235,10 @@ class SpecificTransactionsUiStateProvider : @Preview(showSystemUi = true) @Composable -fun ShowQrScreenPreview(@PreviewParameter(SpecificTransactionsUiStateProvider::class) uiState: SpecificTransactionsUiState) { +fun ShowQrScreenPreview( + @PreviewParameter(SpecificTransactionsUiStateProvider::class) + uiState: SpecificTransactionsUiState +) { MifosTheme { SpecificTransactionsScreen( uiState = uiState, diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/navigation/SpecificTransactionsNavigation.kt b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/navigation/SpecificTransactionsNavigation.kt index daacfa03c..50918be50 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/navigation/SpecificTransactionsNavigation.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/navigation/SpecificTransactionsNavigation.kt @@ -1,3 +1,5 @@ +@file:Suppress("MaxLineLength") + package org.mifospay.feature.specific.transactions.navigation import androidx.navigation.NavController diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt b/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt index 9b4103458..b941c5fc9 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt @@ -32,7 +32,6 @@ import com.mifospay.core.model.entity.accounts.savings.TransferDetail import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.theme.MifosTheme -import org.mifospay.core.designsystem.theme.primaryDarkBlue import org.mifospay.core.ui.ErrorScreenContent import org.mifospay.feature.history.R import org.mifospay.feature.specific.transactions.SpecificTransactionAccountInfo @@ -148,7 +147,7 @@ fun TransactionsDetailContent( client = transaction.transferDetail.fromClient, accountClicked = accountClicked ) - Image(painter = painterResource(id = R.drawable.ic_send), contentDescription = null) + Image(painter = painterResource(id = R.drawable.feature_history_ic_send), contentDescription = null) SpecificTransactionAccountInfo( modifier = Modifier.weight(1f), account = transaction.transferDetail.toAccount, diff --git a/feature/history/src/main/res/drawable/ic_send.xml b/feature/history/src/main/res/drawable/feature_history_ic_send.xml similarity index 100% rename from feature/history/src/main/res/drawable/ic_send.xml rename to feature/history/src/main/res/drawable/feature_history_ic_send.xml diff --git a/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt b/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt index 3ad07f173..577b86617 100644 --- a/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt +++ b/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt @@ -26,7 +26,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -45,7 +44,6 @@ import org.mifospay.common.Utils import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.theme.border import org.mifospay.core.designsystem.theme.lightGrey -import org.mifospay.core.designsystem.theme.styleMedium16sp import org.mifospay.core.ui.ErrorScreenContent import org.mifospay.core.ui.TransactionItemScreen @@ -198,7 +196,7 @@ fun PayRequestScreen( PayCard( modifier = Modifier.weight(1f), title = "Request", - icon = R.drawable.money_in + icon = R.drawable.core_ui_money_in ) { onRequest.invoke() } @@ -206,7 +204,7 @@ fun PayRequestScreen( PayCard( modifier = Modifier.weight(1f), title = "Pay", - icon = R.drawable.money_out + icon = R.drawable.core_ui_money_out ) { onPay.invoke() } diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt index 31b5ebc47..2be5ee22a 100644 --- a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt @@ -233,7 +233,11 @@ fun InvoiceDetailsContent( } }, onLongPress = { - clipboardManager.setText(AnnotatedString(Constants.RECEIPT_DOMAIN + invoice.transactionId)) + clipboardManager.setText( + AnnotatedString( + Constants.RECEIPT_DOMAIN + invoice.transactionId + ) + ) }) } ) diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceItem.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceItem.kt index ab1e4aabe..94c2d0b61 100644 --- a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceItem.kt +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceItem.kt @@ -51,7 +51,8 @@ fun InvoiceItem( ) { Icon( painter = painterResource( - id = if (invoiceStatusIcon == 0L) R.drawable.feature_invoices_ic_remove_circle_outline_black_24dp + id = if (invoiceStatusIcon == 0L) + R.drawable.feature_invoices_ic_remove_circle_outline_black_24dp else R.drawable.feature_invoices_ic_check_round_black_24dp ), contentDescription = "Invoice Status", diff --git a/feature/kyc/src/main/res/drawable/ic_error_state.xml b/feature/kyc/src/main/res/drawable/feature_kyc_ic_error_state.xml similarity index 100% rename from feature/kyc/src/main/res/drawable/ic_error_state.xml rename to feature/kyc/src/main/res/drawable/feature_kyc_ic_error_state.xml diff --git a/feature/kyc/src/main/res/layout/feature_kyc_fragment_kyc.xml b/feature/kyc/src/main/res/layout/feature_kyc_fragment_kyc.xml index db9165b27..4161bdfb9 100644 --- a/feature/kyc/src/main/res/layout/feature_kyc_fragment_kyc.xml +++ b/feature/kyc/src/main/res/layout/feature_kyc_fragment_kyc.xml @@ -1,5 +1,5 @@ - @@ -13,7 +13,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/feature_kyc_value_40dp" - android:text="@string/complete_kyc" + android:text="@string/feature_kyc_complete_kyc" android:textAlignment="center" android:textSize="@dimen/feature_kyc_value_15sp" /> @@ -31,7 +31,7 @@ android:layout_height="@dimen/feature_kyc_value_50dp" android:layout_marginLeft="@dimen/feature_kyc_value_20dp" android:layout_marginRight="@dimen/feature_kyc_value_50dp" - android:text="@string/level_1" /> + android:text="@string/feature_kyc_level_1" /> + android:text="@string/feature_kyc_level_2" /> - \ No newline at end of file + \ No newline at end of file diff --git a/feature/kyc/src/main/res/layout/placeholder_state.xml b/feature/kyc/src/main/res/layout/feature_kyc_placeholder_state.xml similarity index 76% rename from feature/kyc/src/main/res/layout/placeholder_state.xml rename to feature/kyc/src/main/res/layout/feature_kyc_placeholder_state.xml index 8fce7173a..3d23b918a 100644 --- a/feature/kyc/src/main/res/layout/placeholder_state.xml +++ b/feature/kyc/src/main/res/layout/feature_kyc_placeholder_state.xml @@ -12,17 +12,17 @@ + app:srcCompat="@drawable/feature_kyc_ic_error_state" + android:contentDescription="@string/feature_kyc_content_description_placeholder" /> @@ -34,9 +34,9 @@ android:layout_marginTop="8dp" android:layout_marginRight="@dimen/feature_kyc_marginItemsInSectionLarge" android:layout_marginBottom="@dimen/feature_kyc_marginItemsInSectionLarge" - android:text="@string/unexpected_error_subtitle" + android:text="@string/feature_kyc_unexpected_error_subtitle" android:textAlignment="center" android:textColor="@color/feature_kyc_colorTextSecondary" - android:textSize="@dimen/textBody2" /> + android:textSize="@dimen/feature_kyc_textBody2" /> \ No newline at end of file diff --git a/feature/kyc/src/main/res/values/dimens.xml b/feature/kyc/src/main/res/values/dimens.xml index 2347f3bfc..b5065a6c3 100644 --- a/feature/kyc/src/main/res/values/dimens.xml +++ b/feature/kyc/src/main/res/values/dimens.xml @@ -10,10 +10,7 @@ 64dp 20sp 24dp - 64dp - 16sp - 14sp - - + 16sp + 14sp \ No newline at end of file diff --git a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt index f63a175eb..535856bd6 100644 --- a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt +++ b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -41,7 +40,6 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import kotlinx.coroutines.launch import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.MifosLoadingWheel -import org.mifospay.core.designsystem.component.MifosOverlayLoadingWheel @Composable fun MakeTransferScreenRoute( @@ -322,9 +320,9 @@ fun TransactionStatusContent(showTransactionStatus: ShowTransactionStatus) { ) { Icon( if (showTransactionStatus.showSuccessStatus) { - painterResource(R.drawable.transfer_success) + painterResource(R.drawable.feature_make_transfer_transfer_success) } else { - painterResource(R.drawable.transfer_failure) + painterResource(R.drawable.feature_make_transfer_transfer_failure) }, contentDescription = if (showTransactionStatus.showSuccessStatus) { stringResource(id = R.string.feature_make_transfer_transaction_success) diff --git a/feature/make-transfer/src/main/res/drawable/feature_make_transfer_ic_close.xml b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_ic_close.xml new file mode 100644 index 000000000..d6ff41a30 --- /dev/null +++ b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/feature/make-transfer/src/main/res/drawable/feature_make_transfer_ic_done.xml b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_ic_done.xml new file mode 100644 index 000000000..c552fe46a --- /dev/null +++ b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_ic_done.xml @@ -0,0 +1,9 @@ + + + diff --git a/feature/make-transfer/src/main/res/drawable/transfer_failure.xml b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_transfer_failure.xml similarity index 73% rename from feature/make-transfer/src/main/res/drawable/transfer_failure.xml rename to feature/make-transfer/src/main/res/drawable/feature_make_transfer_transfer_failure.xml index 0d548e884..57f8c25f4 100644 --- a/feature/make-transfer/src/main/res/drawable/transfer_failure.xml +++ b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_transfer_failure.xml @@ -1,13 +1,12 @@ - - + @@ -15,7 +14,7 @@ diff --git a/feature/make-transfer/src/main/res/drawable/transfer_success.xml b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_transfer_success.xml similarity index 73% rename from feature/make-transfer/src/main/res/drawable/transfer_success.xml rename to feature/make-transfer/src/main/res/drawable/feature_make_transfer_transfer_success.xml index 63e3c60c8..4fe6a313d 100644 --- a/feature/make-transfer/src/main/res/drawable/transfer_success.xml +++ b/feature/make-transfer/src/main/res/drawable/feature_make_transfer_transfer_success.xml @@ -7,7 +7,7 @@ android:shape="oval" android:useLevel="false"> - + @@ -15,9 +15,7 @@ - - \ No newline at end of file diff --git a/feature/make-transfer/src/main/res/values/colors.xml b/feature/make-transfer/src/main/res/values/colors.xml new file mode 100644 index 000000000..38f0d0071 --- /dev/null +++ b/feature/make-transfer/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #303F9F + #DE000000 + + \ No newline at end of file diff --git a/feature/merchants/build.gradle.kts b/feature/merchants/build.gradle.kts index 023d946ba..dadfc5a7d 100644 --- a/feature/merchants/build.gradle.kts +++ b/feature/merchants/build.gradle.kts @@ -11,9 +11,4 @@ dependencies { implementation(projects.core.data) implementation(libs.compose.material) implementation(projects.feature.history) - - //Todo: Remove these after migration of MerchantTransferActivity - implementation("com.jakewharton:butterknife-annotations:10.2.3") - implementation("com.jakewharton:butterknife:10.2.3@aar") - implementation("com.mifos.mobile:mifos-passcode:0.3.0@aar") } \ No newline at end of file diff --git a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantsItem.kt b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantsItem.kt index 11b8cad85..9f0626667 100644 --- a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantsItem.kt +++ b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantsItem.kt @@ -14,7 +14,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview @@ -49,7 +48,7 @@ fun MerchantsItem( .padding(top = 16.dp), ) { Icon( - painter = painterResource(id = R.drawable.ic_bank), + painter = painterResource(id = R.drawable.feature_merchants_ic_bank), contentDescription = null, modifier = Modifier .align(Alignment.CenterVertically) diff --git a/feature/merchants/src/main/res/drawable/ic_bank.xml b/feature/merchants/src/main/res/drawable/feature_merchants_ic_bank.xml similarity index 100% rename from feature/merchants/src/main/res/drawable/ic_bank.xml rename to feature/merchants/src/main/res/drawable/feature_merchants_ic_bank.xml diff --git a/feature/merchants/src/main/res/values/strings.xml b/feature/merchants/src/main/res/values/strings.xml index 0012584bc..c45b38ba4 100644 --- a/feature/merchants/src/main/res/values/strings.xml +++ b/feature/merchants/src/main/res/values/strings.xml @@ -14,5 +14,4 @@ Transfer money to this merchant Amount Submit -] \ No newline at end of file diff --git a/feature/passcode/build.gradle.kts b/feature/passcode/build.gradle.kts index 7493e6074..3819a4478 100644 --- a/feature/passcode/build.gradle.kts +++ b/feature/passcode/build.gradle.kts @@ -13,5 +13,5 @@ dependencies { implementation(projects.core.data) implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) - implementation("com.mifos.mobile:mifos-passcode:0.3.0") + implementation(libs.mifosPasscode) } diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileItemCard.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileItemCard.kt index 945dea06f..c22df3320 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileItemCard.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileItemCard.kt @@ -47,16 +47,16 @@ fun ProfileItemCard( tint = MaterialTheme.colorScheme.onSurface ) Text( - modifier = if (text == R.string.edit_profile || text == R.string.settings) Modifier - .padding( - start = 18.dp - ) + modifier = if (text == R.string.feature_profile_edit_profile + || text == R.string.feature_profile_settings + ) Modifier + .padding(start = 18.dp) .align(Alignment.CenterVertically) else Modifier, text = stringResource(id = text), style = TextStyle(fontSize = 18.sp, fontWeight = FontWeight.Medium), color = MaterialTheme.colorScheme.onSurface ) - if (text == R.string.edit_profile || text == R.string.settings) { + if (text == R.string.feature_profile_edit_profile || text == R.string.feature_profile_settings) { Spacer(modifier = Modifier.fillMaxWidth()) } } @@ -77,7 +77,7 @@ fun PreviewProfileItemCard() { MifosTheme { ProfileItemCard( icon = MifosIcons.Profile, - text = R.string.edit_profile, + text = R.string.feature_profile_edit_profile, onClick = {} ) } diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt index 4fd2064f7..6296c0f04 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt @@ -23,7 +23,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -98,15 +97,15 @@ fun ProfileScreenContent( horizontalAlignment = Alignment.CenterHorizontally ) { DetailItem( - label = stringResource(id = R.string.email), + label = stringResource(id = R.string.feature_profile_email), value = profileState.email.toString() ) DetailItem( - label = stringResource(id = R.string.vpa), + label = stringResource(id = R.string.feature_profile_vpa), value = profileState.vpa.toString() ) DetailItem( - label = stringResource(id = R.string.mobile), + label = stringResource(id = R.string.feature_profile_mobile), value = profileState.mobile.toString() ) } @@ -127,7 +126,7 @@ fun ProfileScreenContent( .padding(end = 8.dp, bottom = 8.dp) .weight(1f), icon = MifosIcons.QR, - text = R.string.personal_qr_code, + text = R.string.feature_profile_personal_qr_code, onClick = {} ) @@ -136,7 +135,7 @@ fun ProfileScreenContent( .padding(start = 8.dp, bottom = 8.dp) .weight(1f), icon = MifosIcons.Bank, - text = R.string.link_bank_account, + text = R.string.feature_profile_link_bank_account, onClick = {} ) @@ -144,7 +143,7 @@ fun ProfileScreenContent( modifier = Modifier .padding(top = 8.dp, bottom = 8.dp), icon = MifosIcons.Contact, - text = R.string.edit_profile, + text = R.string.feature_profile_edit_profile, onClick = { onEditProfile.invoke() } ) @@ -152,14 +151,12 @@ fun ProfileScreenContent( modifier = Modifier .padding(top = 8.dp), icon = MifosIcons.Settings, - text = R.string.settings, + text = R.string.feature_profile_settings, onClick = { onSettings.invoke() } ) } } } - - else -> {} } } } diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt index 7eb2fe805..096db8cd2 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt @@ -111,13 +111,13 @@ fun EditProfileScreen( .fillMaxSize() ) { MifosScaffold( - topBarTitle = R.string.edit_profile, + topBarTitle = R.string.feature_profile_edit_profile, backPress = { showDiscardChangesDialog = true }, scaffoldContent = { when (editProfileUiState) { EditProfileUiState.Loading -> { MfLoadingWheel( - contentDesc = stringResource(R.string.loading), + contentDesc = stringResource(R.string.feature_profile_loading), backgroundColor = MaterialTheme.colorScheme.surface ) } @@ -147,13 +147,13 @@ fun EditProfileScreen( MifosDialogBox( showDialogState = showDiscardChangesDialog, onDismiss = { showDiscardChangesDialog = false }, - title = R.string.discard_changes, - confirmButtonText = R.string.confirm_text, + title = R.string.feature_profile_discard_changes, + confirmButtonText = R.string.feature_profile_confirm_text, onConfirm = { showDiscardChangesDialog = false onBackClick.invoke() }, - dismissButtonText = R.string.dismiss_text + dismissButtonText = R.string.feature_profile_dismiss_text ) } } @@ -191,10 +191,10 @@ fun EditProfileScreenContent( Manifest.permission.WRITE_EXTERNAL_STORAGE ) }, - title = R.string.permission_required, - description = R.string.approve_permission_description_camera, - confirmButtonText = R.string.proceed, - dismissButtonText = R.string.dismiss, + title = R.string.feature_profile_permission_required, + description = R.string.feature_profile_approve_description, + confirmButtonText = R.string.feature_profile_proceed, + dismissButtonText = R.string.feature_profile_dismiss, onGranted = { val cameraLauncher = rememberLauncherForActivityResult(ActivityResultContracts.TakePicture()) { @@ -250,7 +250,7 @@ fun EditProfileScreenContent( .fillMaxWidth() .padding(start = 16.dp, end = 16.dp), value = username, - label = stringResource(id = R.string.username), + label = stringResource(id = R.string.feature_profile_username), onValueChange = { username = it } ) MfOutlinedTextField( @@ -258,7 +258,7 @@ fun EditProfileScreenContent( .fillMaxWidth() .padding(start = 16.dp, end = 16.dp), value = email, - label = stringResource(id = R.string.email), + label = stringResource(id = R.string.feature_profile_email), onValueChange = { email = it } ) MfOutlinedTextField( @@ -266,7 +266,7 @@ fun EditProfileScreenContent( .fillMaxWidth() .padding(start = 16.dp, end = 16.dp), value = vpa, - label = stringResource(id = R.string.vpa), + label = stringResource(id = R.string.feature_profile_vpa), onValueChange = { vpa = it } ) Box( @@ -291,7 +291,7 @@ fun EditProfileScreenContent( mobile = code + phone } }, - label = { Text(stringResource(id = R.string.phone_number)) }, + label = { Text(stringResource(id = R.string.feature_profile_phone_number)) }, keyboardActions = KeyboardActions { keyboardController?.hide() } ) } @@ -309,11 +309,11 @@ fun EditProfileScreenContent( // same behaviour as onBackPress, hence reused the callback onBackClick.invoke() } else { - Toast.makeText(context, R.string.failed_to_save_changes, Toast.LENGTH_SHORT) + Toast.makeText(context, R.string.feature_profile_failed_to_save_changes, Toast.LENGTH_SHORT) .show() } }, - buttonText = R.string.save + buttonText = R.string.feature_profile_save ) } } @@ -344,7 +344,7 @@ fun EditProfileBottomSheetContent( ) { Icon(imageVector = Camera, contentDescription = null) Text( - text = stringResource(id = R.string.click_profile_picture), + text = stringResource(id = R.string.feature_profile_click_profile_picture), style = historyItemTextStyle ) } @@ -358,7 +358,7 @@ fun EditProfileBottomSheetContent( ) { Icon(imageVector = PhotoLibrary, contentDescription = null) Text( - text = stringResource(id = R.string.change_profile_picture), + text = stringResource(id = R.string.feature_profile_change_profile_picture), style = historyItemTextStyle ) } @@ -372,7 +372,7 @@ fun EditProfileBottomSheetContent( ) { Icon(imageVector = Delete, contentDescription = null) Text( - text = stringResource(id = R.string.remove_profile_picture), + text = stringResource(id = R.string.feature_profile_remove_profile_picture), style = historyItemTextStyle ) } diff --git a/feature/profile/src/main/res/values/strings.xml b/feature/profile/src/main/res/values/strings.xml index 87dd0fd2b..f0f4afe15 100644 --- a/feature/profile/src/main/res/values/strings.xml +++ b/feature/profile/src/main/res/values/strings.xml @@ -1,25 +1,25 @@ - E-mail - VPA - Mobile number - Personal QR Code - Link Bank Account - Edit Profile - Settings - Loading - Do you want to discard changes? - Discard - Cancel - Permissions Required - You need to approve these permissions in order to access the camera. - Proceed - Dismiss - Username - Phone Number - Failed To Save Changes - Save - Click profile picture - Pick profile picture from device - Remove profile picture + E-mail + VPA + Mobile number + Personal QR Code + Link Bank Account + Edit Profile + Settings + Loading + Do you want to discard changes? + Discard + Cancel + Permissions Required + You need to approve these permissions in order to access the camera. + Proceed + Dismiss + Username + Phone Number + Failed To Save Changes + Save + Click profile picture + Pick profile picture from device + Remove profile picture \ No newline at end of file diff --git a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/QrCodeAnalyzer.kt b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/QrCodeAnalyzer.kt index 1a9431623..7bf7c09fc 100644 --- a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/QrCodeAnalyzer.kt +++ b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/QrCodeAnalyzer.kt @@ -3,7 +3,11 @@ package org.mifospay.feature.read.qr.utils import android.graphics.ImageFormat import androidx.camera.core.ImageAnalysis import androidx.camera.core.ImageProxy -import com.google.zxing.* +import com.google.zxing.BarcodeFormat +import com.google.zxing.BinaryBitmap +import com.google.zxing.DecodeHintType +import com.google.zxing.MultiFormatReader +import com.google.zxing.PlanarYUVLuminanceSource import com.google.zxing.common.HybridBinarizer import java.nio.ByteBuffer diff --git a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt index c5b3802fa..c6237e84b 100644 --- a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt +++ b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt @@ -242,7 +242,7 @@ fun ReceiptScreenContent( .verticalScroll(rememberScrollState()) ) { Image( - painter = painterResource(id = R.drawable.mifospay_round_logo), + painter = painterResource(id = R.drawable.feature_receipt_mifospay_round_logo), contentDescription = stringResource(R.string.feature_receipt_pan_id), modifier = Modifier .size(120.dp) diff --git a/feature/receipt/src/main/res/drawable/mifospay_round_logo.png b/feature/receipt/src/main/res/drawable/feature_receipt_mifospay_round_logo.png similarity index 100% rename from feature/receipt/src/main/res/drawable/mifospay_round_logo.png rename to feature/receipt/src/main/res/drawable/feature_receipt_mifospay_round_logo.png diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt index 9a3c4a185..0e713f880 100644 --- a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt @@ -5,8 +5,8 @@ import com.google.zxing.BarcodeFormat import com.google.zxing.MultiFormatWriter import com.google.zxing.WriterException import com.google.zxing.common.BitMatrix -import org.mifospay.core.data.base.UseCase import org.mifospay.common.Constants +import org.mifospay.core.data.base.UseCase import java.util.Base64 import javax.inject.Inject @@ -32,11 +32,11 @@ class GenerateQr @Inject constructor() : // Initial payment string val requestPaymentString = "upi://pay" + "?pa=${requestQrData.vpaId}" + - "&am=${requestQrData.amount}" + // This param is for fixed amount (non-editable). - "&pn=${requestQrData.name}" + // To show your name in app. - "&cu=${requestQrData.currency}" + // Currency code. - "&mode=02" + // Mode 02 for Secure QR Code. - "&s=000000" // If the transaction is initiated by any PSP app then the respective orgID needs to be passed. + "&am=${requestQrData.amount}" + + "&pn=${requestQrData.name}" + + "&cu=${requestQrData.currency}" + + "&mode=02" + + "&s=000000" // Convert the payment string to bytes and encode to Base64 val sign = Base64.getEncoder().encodeToString(requestPaymentString.toByteArray(Charsets.UTF_8)) diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/PayVpaMobileScreen.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/PayVpaMobileScreen.kt index bd4e4db2d..f142c107a 100644 --- a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/PayVpaMobileScreen.kt +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/PayVpaMobileScreen.kt @@ -53,8 +53,12 @@ fun PayVpsMobileScreen() { onValueChange = { amount = it }, - label = { Text(text = "Amount", - color = MaterialTheme.colorScheme.onSurface) } + label = { + Text( + text = "Amount", + color = MaterialTheme.colorScheme.onSurface + ) + } ) TextField( modifier = Modifier @@ -64,8 +68,12 @@ fun PayVpsMobileScreen() { onValueChange = { description = it }, - label = { Text(text = "Description", - color = MaterialTheme.colorScheme.onSurface) } + label = { + Text( + text = "Description", + color = MaterialTheme.colorScheme.onSurface + ) + } ) Button( modifier = Modifier @@ -77,7 +85,11 @@ fun PayVpsMobileScreen() { } ) { - Text(text = "Create Payment Request", style = styleMedium16sp.copy(color = MaterialTheme.colorScheme.onPrimary)) + Text( + text = "Create Payment Request", + style = styleMedium16sp + .copy(color = MaterialTheme.colorScheme.onPrimary) + ) } } } diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/SetAmountDialog.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/SetAmountDialog.kt index 07d865644..ea7f48f60 100644 --- a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/SetAmountDialog.kt +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/SetAmountDialog.kt @@ -23,7 +23,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType @@ -35,6 +34,7 @@ import org.mifospay.core.designsystem.component.MifosCustomDialog import org.mifospay.core.designsystem.component.MifosOutlinedButton import org.mifospay.core.designsystem.icon.MifosIcons +@Suppress("MaxLineLength") @Composable fun SetAmountDialog( dismissDialog: () -> Unit, diff --git a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/AddCardDialogSheet.kt b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/AddCardDialogSheet.kt index f399ad3ed..a7072449a 100644 --- a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/AddCardDialogSheet.kt +++ b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/AddCardDialogSheet.kt @@ -32,6 +32,7 @@ import org.mifospay.core.designsystem.utils.ExpirationDateMask import org.mifospay.savedcards.R import java.util.Calendar +@Suppress("MaxLineLength") @Composable fun AddCardDialogSheet( cancelClicked: () -> Unit, @@ -50,9 +51,12 @@ fun AddCardDialogSheet( ) } +@Suppress("MaxLineLength") @Composable -fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> Unit) { - +fun AddCardDialogSheetContent( + cancelClicked: () -> Unit, + addClicked: (Card) -> Unit +) { val context = LocalContext.current var firstName by rememberSaveable { mutableStateOf("") } var lastName by rememberSaveable { mutableStateOf("") } @@ -68,21 +72,27 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U LaunchedEffect(key1 = firstName) { firstNameValidator = when { - firstName.trim().isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + firstName.trim() + .isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + else -> null } } LaunchedEffect(key1 = lastName) { lastNameValidator = when { - lastName.trim().isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + lastName.trim() + .isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + else -> null } } LaunchedEffect(key1 = creditCardNumber) { creditCardNumberValidator = when { - creditCardNumber.trim().isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + creditCardNumber.trim() + .isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + creditCardNumber.length < 16 -> context.getString(R.string.feature_savedcards_invalid_credit_card) !CreditCardUtils.validateCreditCardNumber(creditCardNumber) -> context.getString(R.string.feature_savedcards_invalid_credit_card) else -> null @@ -91,7 +101,9 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U LaunchedEffect(key1 = expiration) { expirationValidator = when { - expiration.trim().isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + expiration.trim() + .isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + expiration.length < 4 -> context.getString(R.string.feature_savedcards_expiry_date_length_error) (expiration.substring(2, 4) == Calendar.getInstance()[Calendar.YEAR].toString() .substring(2, 4) && expiration.substring(0, 2) @@ -104,7 +116,9 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U LaunchedEffect(key1 = cvv) { cvvValidator = when { - cvv.trim().isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + cvv.trim() + .isEmpty() -> context.getString(R.string.feature_savedcards_all_fields_required) + cvv.length < 3 -> context.getString(R.string.feature_savedcards_cvv_length_error) else -> null } diff --git a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt index e9667f2a8..b249f533f 100644 --- a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt +++ b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt @@ -36,7 +36,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview @@ -257,8 +256,10 @@ fun SearchBarScreen( active = false, onActiveChange = { }, placeholder = { - Text(text = stringResource(R.string.feature_savedcards_search), - color = MaterialTheme.colorScheme.onPrimaryContainer) + Text( + text = stringResource(R.string.feature_savedcards_search), + color = MaterialTheme.colorScheme.onPrimaryContainer + ) }, leadingIcon = { Icon( @@ -298,7 +299,10 @@ fun CardsList( } @Composable -fun CardItem(card: Card, onMenuItemClick: (Card, CardMenuAction) -> Unit) { +fun CardItem( + card: Card, + onMenuItemClick: (Card, CardMenuAction) -> Unit +) { var expanded by remember { mutableStateOf(false) } Card( modifier = Modifier @@ -316,9 +320,17 @@ fun CardItem(card: Card, onMenuItemClick: (Card, CardMenuAction) -> Unit) { Row { Column { Row { - Text(text = card.firstName, style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurface) + Text( + text = card.firstName, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurface + ) Spacer(modifier = Modifier.height(6.dp)) - Text(text = card.lastName, style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onPrimaryContainer) + Text( + text = card.lastName, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onPrimaryContainer + ) } Spacer(modifier = Modifier.height(6.dp)) Text( @@ -327,7 +339,11 @@ fun CardItem(card: Card, onMenuItemClick: (Card, CardMenuAction) -> Unit) { color = MaterialTheme.colorScheme.onPrimaryContainer ) Spacer(modifier = Modifier.height(8.dp)) - Text(text = card.expiryDate, style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onPrimaryContainer) + Text( + text = card.expiryDate, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onPrimaryContainer + ) } Spacer(modifier = Modifier.height(38.dp)) DropdownMenu( @@ -371,8 +387,10 @@ fun NoCardAddCardsScreen(onAddBtn: () -> Unit) { Column( horizontalAlignment = Alignment.CenterHorizontally ) { - Text(text = stringResource(R.string.feature_savedcards_add_cards), - color = MaterialTheme.colorScheme.onSurface) + Text( + text = stringResource(R.string.feature_savedcards_add_cards), + color = MaterialTheme.colorScheme.onSurface + ) AddCardChip( modifier = Modifier, onAddBtn = onAddBtn, diff --git a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt index 2ac79d260..8833144bc 100644 --- a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt +++ b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt @@ -80,7 +80,7 @@ class SendPaymentViewModel @Inject constructor( override fun onSuccess(response: FetchAccount.ResponseValue) { updateProgressState(false) if (transferAmount > response.account.balance) { - onAnyError(R.string.insufficient_balance) + onAnyError(R.string.feature_send_money_insufficient_balance) } else { if (externalId != null) { proceedWithTransferFlow(externalId, transferAmount) @@ -90,7 +90,7 @@ class SendPaymentViewModel @Inject constructor( override fun onError(message: String) { updateProgressState(false) - onAnyError.invoke(R.string.error_fetching_balance) + onAnyError.invoke(R.string.feature_send_money_error_fetching_balance) } }) } diff --git a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt index d483f899e..81dbcc904 100644 --- a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt +++ b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt @@ -102,7 +102,7 @@ fun SendScreenRoute( } ) } else { - showToast(context.getString(R.string.self_amount_transfer_is_not_allowed)) + showToast(context.getString(R.string.feature_send_money_not_allowed)) } } ) @@ -188,13 +188,13 @@ fun SendMoneyScreen( Column(Modifier.fillMaxSize()) { if (showToolBar) { MifosNavigationTopAppBar( - titleRes = R.string.send, + titleRes = R.string.feature_send_money_send, onNavigationClick = onBackClick ) } Text( modifier = Modifier.padding(start = 20.dp, top = 20.dp), - text = stringResource(id = R.string.select_transfer_method), + text = stringResource(id = R.string.feature_send_money_select_transfer_method), style = styleNormal18sp ) Column(modifier = Modifier.padding(16.dp)) { @@ -207,13 +207,13 @@ fun SendMoneyScreen( VpaMobileChip( selected = sendMethodType == SendMethodType.VPA, onClick = { sendMethodType = SendMethodType.VPA }, - label = stringResource(id = R.string.vpa) + label = stringResource(id = R.string.feature_send_money_vpa) ) Spacer(modifier = Modifier.width(8.dp)) VpaMobileChip( selected = sendMethodType == SendMethodType.MOBILE, onClick = { sendMethodType = SendMethodType.MOBILE }, - label = stringResource(id = R.string.mobile) + label = stringResource(id = R.string.feature_send_money_mobile) ) } MfOutlinedTextField( @@ -224,7 +224,7 @@ fun SendMoneyScreen( }, singleLine = true, keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), - label = stringResource(id = R.string.amount), + label = stringResource(id = R.string.feature_send_money_amount), modifier = Modifier.fillMaxWidth() ) when (sendMethodType) { @@ -235,7 +235,7 @@ fun SendMoneyScreen( vpa = it validateInfo() }, - label = stringResource(id = R.string.virtual_payment_address), + label = stringResource(id = R.string.feature_send_money_virtual_payment_address), modifier = Modifier.fillMaxWidth(), trailingIcon = { IconButton(onClick = { @@ -290,7 +290,7 @@ fun SendMoneyScreen( contentPadding = PaddingValues(12.dp) ) { Text( - stringResource(id = R.string.submit), + stringResource(id = R.string.feature_send_money_submit), style = styleMedium16sp.copy(color = MaterialTheme.colorScheme.surface) ) } @@ -298,7 +298,7 @@ fun SendMoneyScreen( } if (showProgress) { MfOverlayLoadingWheel( - contentDesc = stringResource(id = R.string.please_wait) + contentDesc = stringResource(id = R.string.feature_send_money_please_wait) ) } } @@ -321,7 +321,7 @@ fun EnterPhoneScreen( onValueChange = { (code, phone), isValid -> onNumberUpdated(phone, code + phone, isValid) }, - label = { Text(stringResource(id = R.string.phone_number)) }, + label = { Text(stringResource(id = R.string.feature_send_money_phone_number)) }, keyboardActions = KeyboardActions { keyboardController?.hide() } ) } diff --git a/feature/send-money/src/main/res/values/strings.xml b/feature/send-money/src/main/res/values/strings.xml index 0a045245f..77bac3539 100644 --- a/feature/send-money/src/main/res/values/strings.xml +++ b/feature/send-money/src/main/res/values/strings.xml @@ -1,14 +1,14 @@ - Insufficient balance - Error fetching balance - Self Account transfer is not allowed - Send - Select transfer method - VPA - Mobile number - Amount - Virtual Payment Address - Submit - Please wait… - Phone Number + Insufficient balance + Error fetching balance + Self Account transfer is not allowed + Send + Select transfer method + VPA + Mobile number + Amount + Virtual Payment Address + Submit + Please wait… + Phone Number \ No newline at end of file diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt index b29b41314..a0d450224 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt @@ -230,7 +230,7 @@ fun NewSIBody( onValueChange = { siInterval = it }, - label = R.string.feature_standing_instruction_recurrence_interval_in_months + label = R.string.feature_standing_instruction_interval ) Row( modifier = Modifier @@ -262,7 +262,7 @@ fun NewSIBody( if (updateSuccess) { Toast.makeText( context, - context.getString(R.string.feature_standing_instruction_successfully_creates_new_standing_instruction), + context.getString(R.string.feature_standing_instruction_creates), Toast.LENGTH_SHORT ) .show() @@ -275,7 +275,9 @@ fun NewSIBody( .show() } }, - enabled = selectedDate.isNotEmpty() && vpa.isNotEmpty() && amount.isNotEmpty() && siInterval.isNotEmpty() + enabled = selectedDate.isNotEmpty() + && vpa.isNotEmpty() + && amount.isNotEmpty() && siInterval.isNotEmpty() ) { Text( text = stringResource(id = R.string.feature_standing_instruction_submit), @@ -402,10 +404,9 @@ fun ConfirmTransfer( if (updateSuccess) { Toast.makeText( context, - context.getString(R.string.feature_standing_instruction_successfully_creates_new_standing_instruction), + context.getString(R.string.feature_standing_instruction_creates), Toast.LENGTH_SHORT - ) - .show() + ).show() } else { Toast.makeText( context, diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt index 02d8cc6dc..345ce0fbb 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt @@ -225,7 +225,7 @@ fun SIDetailsContent( ) Text( - text = stringResource(id = R.string.feature_standing_instruction_recurrence_interval_in_months), + text = stringResource(id = R.string.feature_standing_instruction_interval), fontSize = 16.sp, color = Color.DarkGray, modifier = Modifier.padding(vertical = 8.dp) diff --git a/feature/standing-instruction/src/main/res/values/strings.xml b/feature/standing-instruction/src/main/res/values/strings.xml index 64cf7a9f7..91b50b18a 100644 --- a/feature/standing-instruction/src/main/res/values/strings.xml +++ b/feature/standing-instruction/src/main/res/values/strings.xml @@ -9,10 +9,10 @@ Create Standing Instruction Amount VPA - Recurrence Interval (in months) + Recurrence Interval (in months) Valid till : Select Date - Successfully Creates New Standing Instruction + Successfully Creates New Standing Instruction Failed To Save Changes Submit Sending to diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/DebitCardScreen.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/DebitCardScreen.kt index 20f05c9c4..ac3ce0f1b 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/DebitCardScreen.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/DebitCardScreen.kt @@ -5,7 +5,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.material.Card +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -14,9 +15,9 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import org.mifos.mobilewallet.mifospay.ui.VerifyStepHeader import org.mifospay.core.designsystem.component.MifosLoadingWheel import org.mifospay.core.designsystem.theme.MifosTheme +import org.mifospay.core.ui.VerifyStepHeader import org.mifospay.feature.upi_setup.viewmodel.DebitCardUiState import org.mifospay.feature.upi_setup.viewmodel.DebitCardViewModel @@ -51,7 +52,9 @@ fun DebitCardScreenWithHeaderAndContent( modifier = Modifier .fillMaxWidth() .padding(20.dp), - elevation = 1.dp + elevation = CardDefaults.cardElevation( + defaultElevation = 1.dp + ) ) { Column( modifier = Modifier.padding( @@ -91,7 +94,6 @@ fun DebitCardScreenWithHeaderAndContent( is DebitCardUiState.VerificationFailed -> { onDebitCardVerificationFailed((debitCardUiState).errorMessage) } - else -> {} } } } diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/OtpScreen.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/OtpScreen.kt index 74d92b847..ffd591d16 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/OtpScreen.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/OtpScreen.kt @@ -10,13 +10,12 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import org.mifos.mobilewallet.mifospay.ui.OtpTextField -import org.mifos.mobilewallet.mifospay.ui.VerifyStepHeader +import org.mifospay.core.ui.OtpTextField +import org.mifospay.core.ui.VerifyStepHeader import org.mifospay.core.designsystem.theme.MifosTheme import org.mifospay.feature.upi_setup.R diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/UpiPinScreen.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/UpiPinScreen.kt index dfc6245a3..43d7c2962 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/UpiPinScreen.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upi_setup/screens/UpiPinScreen.kt @@ -32,7 +32,7 @@ import androidx.compose.ui.unit.sp import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import org.mifos.mobilewallet.mifospay.ui.VerifyStepHeader +import org.mifospay.core.ui.VerifyStepHeader import org.mifospay.core.designsystem.theme.MifosTheme import org.mifospay.feature.upi_setup.R diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e732ff66b..6a6dafd6f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,6 @@ [versions] accompanistPagerVersion = "0.34.0" +androidPdfViewerVersion = "2.8.2" appcompatVersion = "1.6.1" androidGradlePlugin = "8.4.0" checkstyleVersion = "10.16.0" @@ -76,6 +77,7 @@ cameraLifecycleVersion = "1.3.4" [libraries] accompanist-pager = { module = "com.google.accompanist:accompanist-pager", version.ref = "accompanistPagerVersion" } +android-pdf-viewer = { module = "com.github.barteksc:android-pdf-viewer", version.ref = "androidPdfViewerVersion" } androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activityVersion" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompatVersion" } androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayoutVersion" } diff --git a/mifospay/build.gradle.kts b/mifospay/build.gradle.kts index 675061738..dabbb910d 100644 --- a/mifospay/build.gradle.kts +++ b/mifospay/build.gradle.kts @@ -154,7 +154,7 @@ dependencies { implementation(libs.squareup.okhttp) implementation(libs.squareup.logging.interceptor) - implementation("com.github.barteksc:android-pdf-viewer:2.8.2") + implementation(libs.android.pdf.viewer) implementation(libs.reactivex.rxjava.android) implementation(libs.reactivex.rxjava) @@ -164,7 +164,7 @@ dependencies { implementation("me.dm7.barcodescanner:zxing:1.9.13") implementation("com.journeyapps:zxing-android-embedded:4.2.0") - implementation("com.mifos.mobile:mifos-passcode:0.3.0") + implementation(libs.mifosPasscode) // Coil implementation("io.coil-kt:coil-compose:2.6.0") @@ -186,3 +186,7 @@ dependencies { androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation(libs.hilt.android.testing) } + +dependencyGuard { + configuration("prodReleaseRuntimeClasspath") +} diff --git a/mifospay/dependencies/prodReleaseRuntimeClasspath.txt b/mifospay/dependencies/prodReleaseRuntimeClasspath.txt new file mode 100644 index 000000000..2b6ed4567 --- /dev/null +++ b/mifospay/dependencies/prodReleaseRuntimeClasspath.txt @@ -0,0 +1,286 @@ +androidx.activity:activity-compose:1.8.2 +androidx.activity:activity-ktx:1.8.2 +androidx.activity:activity:1.8.2 +androidx.annotation:annotation-experimental:1.4.0 +androidx.annotation:annotation-jvm:1.7.1 +androidx.annotation:annotation:1.7.1 +androidx.appcompat:appcompat-resources:1.6.1 +androidx.appcompat:appcompat:1.6.1 +androidx.arch.core:core-common:2.2.0 +androidx.arch.core:core-runtime:2.2.0 +androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +androidx.autofill:autofill:1.0.0 +androidx.browser:browser:1.8.0 +androidx.camera:camera-core:1.3.4 +androidx.camera:camera-lifecycle:1.3.4 +androidx.camera:camera-video:1.3.4 +androidx.camera:camera-view:1.3.4 +androidx.cardview:cardview:1.0.0 +androidx.collection:collection-jvm:1.4.0 +androidx.collection:collection-ktx:1.4.0 +androidx.collection:collection:1.4.0 +androidx.compose.animation:animation-android:1.7.0-alpha04 +androidx.compose.animation:animation-core-android:1.7.0-alpha04 +androidx.compose.animation:animation-core:1.7.0-alpha04 +androidx.compose.animation:animation-graphics-android:1.7.0-alpha04 +androidx.compose.animation:animation-graphics:1.7.0-alpha04 +androidx.compose.animation:animation:1.7.0-alpha04 +androidx.compose.foundation:foundation-android:1.7.0-alpha04 +androidx.compose.foundation:foundation-layout-android:1.7.0-alpha04 +androidx.compose.foundation:foundation-layout:1.7.0-alpha04 +androidx.compose.foundation:foundation:1.7.0-alpha04 +androidx.compose.material3.adaptive:adaptive-android:1.0.0-alpha08 +androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-alpha08 +androidx.compose.material3.adaptive:adaptive-layout:1.0.0-alpha08 +androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-alpha08 +androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha08 +androidx.compose.material3.adaptive:adaptive:1.0.0-alpha08 +androidx.compose.material3:material3-android:1.2.1 +androidx.compose.material3:material3-window-size-class-android:1.2.1 +androidx.compose.material3:material3-window-size-class:1.2.1 +androidx.compose.material3:material3:1.2.1 +androidx.compose.material:material-android:1.7.0-alpha04 +androidx.compose.material:material-icons-core-android:1.7.0-alpha04 +androidx.compose.material:material-icons-core:1.7.0-alpha04 +androidx.compose.material:material-icons-extended-android:1.7.0-alpha04 +androidx.compose.material:material-icons-extended:1.7.0-alpha04 +androidx.compose.material:material-navigation:1.7.0-alpha04 +androidx.compose.material:material-ripple-android:1.7.0-alpha04 +androidx.compose.material:material-ripple:1.7.0-alpha04 +androidx.compose.material:material:1.7.0-alpha04 +androidx.compose.runtime:runtime-android:1.7.0-alpha04 +androidx.compose.runtime:runtime-saveable-android:1.7.0-alpha04 +androidx.compose.runtime:runtime-saveable:1.7.0-alpha04 +androidx.compose.runtime:runtime-tracing:1.0.0-beta01 +androidx.compose.runtime:runtime:1.7.0-alpha04 +androidx.compose.ui:ui-android:1.7.0-alpha04 +androidx.compose.ui:ui-geometry-android:1.7.0-alpha04 +androidx.compose.ui:ui-geometry:1.7.0-alpha04 +androidx.compose.ui:ui-graphics-android:1.7.0-alpha04 +androidx.compose.ui:ui-graphics:1.7.0-alpha04 +androidx.compose.ui:ui-text-android:1.7.0-alpha04 +androidx.compose.ui:ui-text:1.7.0-alpha04 +androidx.compose.ui:ui-tooling-preview-android:1.7.0-alpha04 +androidx.compose.ui:ui-tooling-preview:1.7.0-alpha04 +androidx.compose.ui:ui-unit-android:1.7.0-alpha04 +androidx.compose.ui:ui-unit:1.7.0-alpha04 +androidx.compose.ui:ui-util-android:1.7.0-alpha04 +androidx.compose.ui:ui-util:1.7.0-alpha04 +androidx.compose.ui:ui:1.7.0-alpha04 +androidx.compose:compose-bom:2024.02.02 +androidx.concurrent:concurrent-futures:1.1.0 +androidx.constraintlayout:constraintlayout-core:1.0.4 +androidx.constraintlayout:constraintlayout:2.1.4 +androidx.coordinatorlayout:coordinatorlayout:1.1.0 +androidx.core:core-ktx:1.12.0 +androidx.core:core-splashscreen:1.0.1 +androidx.core:core:1.12.0 +androidx.credentials:credentials-play-services-auth:1.2.1 +androidx.credentials:credentials:1.2.1 +androidx.cursoradapter:cursoradapter:1.0.0 +androidx.customview:customview-poolingcontainer:1.0.0 +androidx.customview:customview:1.1.0 +androidx.databinding:databinding-adapters:8.4.0 +androidx.databinding:databinding-common:8.4.0 +androidx.databinding:databinding-ktx:8.4.0 +androidx.databinding:databinding-runtime:8.4.0 +androidx.databinding:viewbinding:8.4.0 +androidx.datastore:datastore-core:1.0.0 +androidx.datastore:datastore-preferences-core:1.0.0 +androidx.datastore:datastore-preferences:1.0.0 +androidx.datastore:datastore:1.0.0 +androidx.documentfile:documentfile:1.0.0 +androidx.drawerlayout:drawerlayout:1.1.1 +androidx.dynamicanimation:dynamicanimation:1.0.0 +androidx.emoji2:emoji2-views-helper:1.3.0 +androidx.emoji2:emoji2:1.3.0 +androidx.exifinterface:exifinterface:1.3.7 +androidx.fragment:fragment-ktx:1.6.2 +androidx.fragment:fragment:1.6.2 +androidx.graphics:graphics-path:1.0.0-beta02 +androidx.hilt:hilt-navigation-compose:1.2.0 +androidx.hilt:hilt-navigation:1.2.0 +androidx.interpolator:interpolator:1.0.0 +androidx.legacy:legacy-support-core-ui:1.0.0 +androidx.legacy:legacy-support-core-utils:1.0.0 +androidx.legacy:legacy-support-v4:1.0.0 +androidx.lifecycle:lifecycle-common-java8:2.7.0 +androidx.lifecycle:lifecycle-common:2.7.0 +androidx.lifecycle:lifecycle-extensions:2.2.0 +androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0 +androidx.lifecycle:lifecycle-livedata-core:2.7.0 +androidx.lifecycle:lifecycle-livedata:2.7.0 +androidx.lifecycle:lifecycle-process:2.7.0 +androidx.lifecycle:lifecycle-runtime-compose:2.7.0 +androidx.lifecycle:lifecycle-runtime-ktx:2.7.0 +androidx.lifecycle:lifecycle-runtime:2.7.0 +androidx.lifecycle:lifecycle-service:2.7.0 +androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0 +androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0 +androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0 +androidx.lifecycle:lifecycle-viewmodel:2.7.0 +androidx.loader:loader:1.0.0 +androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +androidx.media:media:1.6.0 +androidx.metrics:metrics-performance:1.0.0-beta01 +androidx.navigation:navigation-common-ktx:2.7.7 +androidx.navigation:navigation-common:2.7.7 +androidx.navigation:navigation-compose:2.7.7 +androidx.navigation:navigation-runtime-ktx:2.7.7 +androidx.navigation:navigation-runtime:2.7.7 +androidx.print:print:1.0.0 +androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 +androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 +androidx.profileinstaller:profileinstaller:1.3.1 +androidx.recyclerview:recyclerview:1.3.2 +androidx.resourceinspection:resourceinspection-annotation:1.0.1 +androidx.savedstate:savedstate-ktx:1.2.1 +androidx.savedstate:savedstate:1.2.1 +androidx.slidingpanelayout:slidingpanelayout:1.0.0 +androidx.startup:startup-runtime:1.1.1 +androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +androidx.tracing:tracing-ktx:1.3.0-alpha02 +androidx.tracing:tracing-perfetto:1.0.0 +androidx.tracing:tracing:1.3.0-alpha02 +androidx.transition:transition:1.2.0 +androidx.vectordrawable:vectordrawable-animated:1.1.0 +androidx.vectordrawable:vectordrawable:1.1.0 +androidx.versionedparcelable:versionedparcelable:1.1.1 +androidx.viewpager2:viewpager2:1.1.0-beta02 +androidx.viewpager:viewpager:1.0.0 +androidx.window.extensions.core:core:1.0.0 +androidx.window:window-core-android:1.3.0-alpha02 +androidx.window:window-core:1.3.0-alpha02 +androidx.window:window:1.3.0-alpha02 +com.alimuzaffar.lib:pinentryedittext:1.3.1 +com.futuremind.recyclerfastscroll:fastscroll:0.2.5 +com.github.MdFarhanRaja:SearchableSpinner:1.9 +com.github.barteksc:android-pdf-viewer:2.8.2 +com.github.barteksc:pdfium-android:1.7.1 +com.github.jump-sdk:jetpack_compose_country_code_picker_emoji:2.2.8 +com.github.yalantis:ucrop:2.2.2 +com.google.accompanist:accompanist-drawablepainter:0.32.0 +com.google.accompanist:accompanist-pager:0.34.0 +com.google.android.datatransport:transport-api:3.1.0 +com.google.android.datatransport:transport-backend-cct:3.1.9 +com.google.android.datatransport:transport-runtime:3.1.9 +com.google.android.gms:play-services-ads-identifier:18.0.0 +com.google.android.gms:play-services-auth-api-phone:18.0.1 +com.google.android.gms:play-services-auth-base:18.0.4 +com.google.android.gms:play-services-auth:20.7.0 +com.google.android.gms:play-services-base:18.1.0 +com.google.android.gms:play-services-basement:18.2.0 +com.google.android.gms:play-services-cloud-messaging:17.1.0 +com.google.android.gms:play-services-code-scanner:16.1.0 +com.google.android.gms:play-services-fido:20.1.0 +com.google.android.gms:play-services-measurement-api:21.5.1 +com.google.android.gms:play-services-measurement-base:21.5.1 +com.google.android.gms:play-services-measurement-impl:21.5.1 +com.google.android.gms:play-services-measurement-sdk-api:21.5.1 +com.google.android.gms:play-services-measurement-sdk:21.5.1 +com.google.android.gms:play-services-measurement:21.5.1 +com.google.android.gms:play-services-stats:17.0.2 +com.google.android.gms:play-services-tasks:18.0.2 +com.google.android.libraries.identity.googleid:googleid:1.1.0 +com.google.android.material:material:1.11.0 +com.google.android.odml:image:1.0.0-beta1 +com.google.auto.value:auto-value-annotations:1.6.3 +com.google.auto:auto-common:0.10 +com.google.code.findbugs:jsr305:3.0.2 +com.google.code.gson:gson:2.8.5 +com.google.dagger:dagger-lint-aar:2.51 +com.google.dagger:dagger:2.51 +com.google.dagger:hilt-android:2.51 +com.google.dagger:hilt-core:2.51 +com.google.errorprone:error_prone_annotations:2.15.0 +com.google.firebase:firebase-abt:21.1.1 +com.google.firebase:firebase-analytics-ktx:21.5.1 +com.google.firebase:firebase-analytics:21.5.1 +com.google.firebase:firebase-annotations:16.2.0 +com.google.firebase:firebase-bom:32.7.4 +com.google.firebase:firebase-common-ktx:20.4.2 +com.google.firebase:firebase-common:20.4.2 +com.google.firebase:firebase-components:17.1.5 +com.google.firebase:firebase-config-interop:16.0.1 +com.google.firebase:firebase-config:21.6.3 +com.google.firebase:firebase-crashlytics-ktx:18.6.2 +com.google.firebase:firebase-crashlytics:18.6.2 +com.google.firebase:firebase-datatransport:18.1.8 +com.google.firebase:firebase-encoders-json:18.0.1 +com.google.firebase:firebase-encoders-proto:16.0.0 +com.google.firebase:firebase-encoders:17.0.0 +com.google.firebase:firebase-iid-interop:17.1.0 +com.google.firebase:firebase-installations-interop:17.1.1 +com.google.firebase:firebase-installations:17.2.0 +com.google.firebase:firebase-measurement-connector:19.0.0 +com.google.firebase:firebase-messaging-ktx:23.4.1 +com.google.firebase:firebase-messaging:23.4.1 +com.google.firebase:firebase-perf-ktx:20.5.2 +com.google.firebase:firebase-perf:20.5.2 +com.google.firebase:firebase-sessions:1.2.2 +com.google.firebase:protolite-well-known-types:18.0.0 +com.google.guava:failureaccess:1.0.1 +com.google.guava:guava:31.1-android +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +com.google.j2objc:j2objc-annotations:1.3 +com.google.mlkit:barcode-scanning-common:17.0.0 +com.google.mlkit:common:18.9.0 +com.google.mlkit:vision-common:17.0.0 +com.google.protobuf:protobuf-javalite:3.25.2 +com.google.protobuf:protobuf-kotlin-lite:3.25.2 +com.google.zxing:core:3.4.0 +com.hbb20:ccp:2.2.0 +com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0 +com.jakewharton:butterknife-annotations:10.2.3 +com.jakewharton:butterknife-compiler:10.2.3 +com.jakewharton:butterknife-runtime:10.2.3 +com.jakewharton:butterknife:10.2.3 +com.journeyapps:zxing-android-embedded:4.2.0 +com.maxkeppeler.sheets-compose-dialogs:calendar:1.3.0 +com.maxkeppeler.sheets-compose-dialogs:core:1.3.0 +com.mifos.mobile:mifos-passcode:0.3.0 +com.squareup.okhttp3:logging-interceptor:4.12.0 +com.squareup.okhttp3:okhttp:4.12.0 +com.squareup.okio:okio-jvm:3.8.0 +com.squareup.okio:okio:3.8.0 +com.squareup.retrofit2:adapter-rxjava:2.9.0 +com.squareup.retrofit2:converter-gson:2.9.0 +com.squareup.retrofit2:retrofit:2.9.0 +com.squareup:javapoet:1.10.0 +de.hdodenhof:circleimageview:3.1.0 +dev.chrisbanes.snapper:snapper:0.3.0 +io.coil-kt:coil-base:2.6.0 +io.coil-kt:coil-compose-base:2.6.0 +io.coil-kt:coil-compose:2.6.0 +io.coil-kt:coil:2.6.0 +io.michaelrocks:libphonenumber-android:8.13.28 +io.reactivex:rxandroid:1.1.0 +io.reactivex:rxjava:1.3.8 +javax.inject:javax.inject:1 +me.dm7.barcodescanner:core:1.9.13 +me.dm7.barcodescanner:zxing:1.9.13 +net.ltgt.gradle.incap:incap:0.2 +org.checkerframework:checker-qual:3.12.0 +org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.9.22 +org.jetbrains.kotlin:kotlin-bom:1.8.22 +org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22 +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 +org.jetbrains.kotlin:kotlin-stdlib:1.9.22 +org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.7 +org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 +org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0 +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.0 +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 +org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.8.0 +org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.0 +org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.5.0 +org.jetbrains.kotlinx:kotlinx-datetime:0.5.0 +org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3 +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3 +org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3 +org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3 +org.jetbrains:annotations:23.0.0 diff --git a/mifospay/src/main/AndroidManifest.xml b/mifospay/src/main/AndroidManifest.xml index aaa9dc24d..e42369a2d 100644 --- a/mifospay/src/main/AndroidManifest.xml +++ b/mifospay/src/main/AndroidManifest.xml @@ -80,7 +80,7 @@ + android:resource="@drawable/feature_accounts_ic_bank" /> - - - - - - - diff --git a/mifospay/src/main/java/org/mifospay/base/BaseActivity.kt b/mifospay/src/main/java/org/mifospay/base/BaseActivity.kt index 257a066d2..c1ca596f2 100644 --- a/mifospay/src/main/java/org/mifospay/base/BaseActivity.kt +++ b/mifospay/src/main/java/org/mifospay/base/BaseActivity.kt @@ -90,7 +90,7 @@ open class BaseActivity : BasePassCodeActivity(), BaseActivityCallback { override fun showCloseButton() { showHomeButton() - setToolbarIcon(R.drawable.ic_close) + setToolbarIcon(R.drawable.feature_make_transfer_ic_close) } private fun showHomeButton() { diff --git a/mifospay/src/main/java/org/mifospay/common/ui/SearchScreen.kt b/mifospay/src/main/java/org/mifospay/common/ui/SearchScreen.kt index a6168aedd..264e039f7 100644 --- a/mifospay/src/main/java/org/mifospay/common/ui/SearchScreen.kt +++ b/mifospay/src/main/java/org/mifospay/common/ui/SearchScreen.kt @@ -78,7 +78,7 @@ fun SearchScreen( SearchResultState.Idle -> {} SearchResultState.Loading -> { MfLoadingWheel( - contentDesc = stringResource(R.string.loading), + contentDesc = stringResource(R.string.feature_accounts_loading), backgroundColor = MaterialTheme.colorScheme.surface ) } diff --git a/mifospay/src/main/java/org/mifospay/data/firebase/api/services/MifosPayMessagingService.kt b/mifospay/src/main/java/org/mifospay/data/firebase/api/services/MifosPayMessagingService.kt index 78c8c5dd6..35654307a 100644 --- a/mifospay/src/main/java/org/mifospay/data/firebase/api/services/MifosPayMessagingService.kt +++ b/mifospay/src/main/java/org/mifospay/data/firebase/api/services/MifosPayMessagingService.kt @@ -154,7 +154,7 @@ class MifosPayMessagingService : FirebaseMessagingService() { val channelId = getString(R.string.app_name) val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) val notificationBuilder = NotificationCompat.Builder(this, channelId) - .setSmallIcon(R.drawable.ic_bank) + .setSmallIcon(R.drawable.feature_accounts_ic_bank) .setContentTitle(title) .setContentText(messageBody) .setAutoCancel(true) diff --git a/mifospay/src/main/java/org/mifospay/navigation/MifosNavHost.kt b/mifospay/src/main/java/org/mifospay/navigation/MifosNavHost.kt index 45704a7ee..a52dfbd0f 100644 --- a/mifospay/src/main/java/org/mifospay/navigation/MifosNavHost.kt +++ b/mifospay/src/main/java/org/mifospay/navigation/MifosNavHost.kt @@ -72,6 +72,7 @@ import java.util.Objects * within each route is handled using state and Back Handlers. */ @Composable +@Suppress("MaxLineLength") fun MifosNavHost( navController: NavHostController, onShowSnackbar: suspend (String, String?) -> Boolean, diff --git a/mifospay/src/main/java/org/mifospay/ui/MifosApp.kt b/mifospay/src/main/java/org/mifospay/ui/MifosApp.kt index 28017d794..cb69d4080 100644 --- a/mifospay/src/main/java/org/mifospay/ui/MifosApp.kt +++ b/mifospay/src/main/java/org/mifospay/ui/MifosApp.kt @@ -128,7 +128,7 @@ fun MifosApp(appState: MifosAppState, bottomSheetNavigator: BottomSheetNavigator } ) DropdownMenuItem( - text = { Text(stringResource(id = R.string.settings), + text = { Text(stringResource(id = R.string.feature_profile_settings), color = MaterialTheme.colorScheme.onSurface) }, onClick = { showHomeMenuOption = false @@ -194,7 +194,7 @@ fun MifosApp(appState: MifosAppState, bottomSheetNavigator: BottomSheetNavigator titleRes = destination.titleTextId, actionIcon = MifosIcons.MoreVert, actionIconContentDescription = stringResource( - id = R.string.settings, + id = R.string.feature_profile_settings, ), colors = TopAppBarDefaults.centerAlignedTopAppBarColors( containerColor = Color.Transparent, diff --git a/mifospay/src/main/java/org/mifospay/utils/NotificationUtils.kt b/mifospay/src/main/java/org/mifospay/utils/NotificationUtils.kt index 99644ae40..6de0b3de3 100644 --- a/mifospay/src/main/java/org/mifospay/utils/NotificationUtils.kt +++ b/mifospay/src/main/java/org/mifospay/utils/NotificationUtils.kt @@ -40,7 +40,7 @@ class NotificationUtils(private val mContext: Context) { } // notification icon - val icon = R.drawable.ic_bank + val icon = R.drawable.feature_accounts_ic_bank intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) val resultPendingIntent = PendingIntent.getActivity( mContext, diff --git a/mifospay/src/main/res/drawable/button_round_black.xml b/mifospay/src/main/res/drawable/button_round_black.xml index 73f5a6d9f..45c5ce7a7 100644 --- a/mifospay/src/main/res/drawable/button_round_black.xml +++ b/mifospay/src/main/res/drawable/button_round_black.xml @@ -1,7 +1,7 @@ - + - + - + diff --git a/mifospay/src/main/res/drawable/ic_check_round_black_24dp.xml b/mifospay/src/main/res/drawable/ic_check_round_black_24dp.xml index bf6bce47f..6698bce4e 100644 --- a/mifospay/src/main/res/drawable/ic_check_round_black_24dp.xml +++ b/mifospay/src/main/res/drawable/ic_check_round_black_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> \ No newline at end of file diff --git a/mifospay/src/main/res/drawable/ic_close.xml b/mifospay/src/main/res/drawable/ic_close.xml index 6ebcad364..f705a9a13 100644 --- a/mifospay/src/main/res/drawable/ic_close.xml +++ b/mifospay/src/main/res/drawable/ic_close.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/mifospay/src/main/res/drawable/ic_contact.xml b/mifospay/src/main/res/drawable/ic_contact.xml index 8420f55f1..933822bcd 100644 --- a/mifospay/src/main/res/drawable/ic_contact.xml +++ b/mifospay/src/main/res/drawable/ic_contact.xml @@ -6,20 +6,20 @@ android:viewportWidth="299.995"> - + \ No newline at end of file diff --git a/mifospay/src/main/res/drawable/layout_rounded_edge.xml b/mifospay/src/main/res/drawable/layout_rounded_edge.xml index 88517bd9c..dfd181d3f 100644 --- a/mifospay/src/main/res/drawable/layout_rounded_edge.xml +++ b/mifospay/src/main/res/drawable/layout_rounded_edge.xml @@ -3,7 +3,7 @@ + android:color="@color/feature_make_transfer_primaryDarkBlue"/> diff --git a/mifospay/src/main/res/drawable/qrcode_blue.xml b/mifospay/src/main/res/drawable/qrcode_blue.xml index b5fac529e..9461c6291 100644 --- a/mifospay/src/main/res/drawable/qrcode_blue.xml +++ b/mifospay/src/main/res/drawable/qrcode_blue.xml @@ -4,6 +4,6 @@ android:height="24dp" android:viewportHeight="24" android:viewportWidth="24"> - \ No newline at end of file diff --git a/mifospay/src/main/res/drawable/sim_card_selected.xml b/mifospay/src/main/res/drawable/sim_card_selected.xml index f976e01d0..38499a2a5 100644 --- a/mifospay/src/main/res/drawable/sim_card_selected.xml +++ b/mifospay/src/main/res/drawable/sim_card_selected.xml @@ -6,7 +6,7 @@ android:viewportWidth="512"> \ No newline at end of file diff --git a/mifospay/src/main/res/drawable/transfer_failure.xml b/mifospay/src/main/res/drawable/transfer_failure.xml index 0d548e884..4c64104f6 100644 --- a/mifospay/src/main/res/drawable/transfer_failure.xml +++ b/mifospay/src/main/res/drawable/transfer_failure.xml @@ -7,7 +7,7 @@ android:shape="oval" android:useLevel="false"> - + @@ -15,7 +15,7 @@ diff --git a/mifospay/src/main/res/drawable/transfer_success.xml b/mifospay/src/main/res/drawable/transfer_success.xml index 63e3c60c8..545662a40 100644 --- a/mifospay/src/main/res/drawable/transfer_success.xml +++ b/mifospay/src/main/res/drawable/transfer_success.xml @@ -7,7 +7,7 @@ android:shape="oval" android:useLevel="false"> - + @@ -15,7 +15,7 @@ diff --git a/mifospay/src/main/res/layout/activity_bank_account_detail.xml b/mifospay/src/main/res/layout/activity_bank_account_detail.xml index af1d4e8bd..79cee5064 100644 --- a/mifospay/src/main/res/layout/activity_bank_account_detail.xml +++ b/mifospay/src/main/res/layout/activity_bank_account_detail.xml @@ -32,31 +32,31 @@ + android:text="@string/feature_accounts_bank_name"/> + android:text="@string/feature_accounts_ac_holder_name"/> + android:text="@string/feature_accounts_branch_name"/> + android:text="@string/feature_accounts_ifsc"/> + android:text="@string/feature_accounts_type"/> @@ -114,7 +114,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="@dimen/value_20dp" android:background="@drawable/button_round_stroke_primary" - android:text="@string/setup_upi" + android:text="@string/feature_accounts_setup_upi" android:visibility="visible"/>