Skip to content

Commit

Permalink
Refactor: SavedCards Package Cleanup (#1682)
Browse files Browse the repository at this point in the history
  • Loading branch information
AdityaKumdale committed Jun 29, 2024
1 parent 73652ea commit 1a44135
Show file tree
Hide file tree
Showing 17 changed files with 119 additions and 1,454 deletions.
1 change: 0 additions & 1 deletion feature/savedcards/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@ android {

dependencies {
implementation(projects.core.data)
implementation(projects.mifospay)
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.mifospay.core.model.entity.savedcards.Card
import org.mifospay.R
import org.mifospay.common.CreditCardUtils
import org.mifospay.core.designsystem.component.MifosBottomSheet
import org.mifospay.core.designsystem.component.MifosButton
import org.mifospay.core.designsystem.component.MifosOutlinedTextField
import org.mifospay.core.designsystem.utils.ExpirationDateMask
import org.mifospay.savedcards.R
import java.util.Calendar

@Composable
Expand Down Expand Up @@ -68,44 +68,44 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U

LaunchedEffect(key1 = firstName) {
firstNameValidator = when {
firstName.trim().isEmpty() -> context.getString(R.string.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.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.all_fields_required)
creditCardNumber.length < 16 -> context.getString(R.string.invalid_credit_card)
!CreditCardUtils.validateCreditCardNumber(creditCardNumber) -> context.getString(R.string.invalid_credit_card)
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
}
}

LaunchedEffect(key1 = expiration) {
expirationValidator = when {
expiration.trim().isEmpty() -> context.getString(R.string.all_fields_required)
expiration.length < 4 -> context.getString(R.string.expiry_date_length_error)
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)
.toInt() < Calendar.getInstance()[Calendar.MONTH] + 1) || expiration.substring(0, 2)
.toInt() > 12 -> context.getString(R.string.invalid_expiry_date)
.toInt() > 12 -> context.getString(R.string.feature_savedcards_invalid_expiry_date)

else -> null
}
}

LaunchedEffect(key1 = cvv) {
cvvValidator = when {
cvv.trim().isEmpty() -> context.getString(R.string.all_fields_required)
cvv.length < 3 -> context.getString(R.string.cvv_length_error)
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
}
}
Expand Down Expand Up @@ -152,32 +152,32 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U
value = firstName,
onValueChange = { firstName = it },
modifier = Modifier.fillMaxWidth(),
label = R.string.first_name
label = R.string.feature_savedcards_first_name
)
Spacer(modifier = Modifier.height(8.dp))
MifosOutlinedTextField(
value = lastName,
onValueChange = { lastName = it },
modifier = Modifier.fillMaxWidth(),
label = R.string.last_name
label = R.string.feature_savedcards_last_name
)
Spacer(modifier = Modifier.height(8.dp))
MifosOutlinedTextField(
value = creditCardNumber,
onValueChange = { if (it.length <= 16) creditCardNumber = it },
modifier = Modifier.fillMaxWidth(),
label = R.string.credit_card_number,
label = R.string.feature_savedcards_credit_card_number,
keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.NumberPassword)
)
Spacer(modifier = Modifier.height(16.dp))
Text(text = stringResource(id = R.string.expiry_date))
Text(text = stringResource(id = R.string.feature_savedcards_expiry_date))
Spacer(modifier = Modifier.height(8.dp))
Row(modifier = Modifier.fillMaxWidth()) {
MifosOutlinedTextField(
value = expiration,
onValueChange = { if (it.length <= 4) expiration = it },
modifier = Modifier.weight(1f),
label = R.string.mm_yy,
label = R.string.feature_savedcards_mm_yy,
visualTransformation = ExpirationDateMask(),
keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.NumberPassword)
)
Expand All @@ -186,14 +186,14 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U
value = cvv,
onValueChange = { if (it.length <= 3) cvv = it },
modifier = Modifier.weight(1f),
label = R.string.cvv,
label = R.string.feature_savedcards_cvv,
keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.NumberPassword)
)
}
Spacer(modifier = Modifier.height(16.dp))
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) {
MifosButton(onClick = { cancelClicked() }) {
Text(text = stringResource(id = R.string.cancel))
Text(text = stringResource(id = R.string.feature_savedcards_cancel))
}
Spacer(modifier = Modifier.width(16.dp))
MifosButton(onClick = {
Expand All @@ -208,7 +208,7 @@ fun AddCardDialogSheetContent(cancelClicked: () -> Unit, addClicked: (Card) -> U
addClicked(card)
}
}) {
Text(text = stringResource(id = R.string.add))
Text(text = stringResource(id = R.string.feature_savedcards_add))
}
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,12 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.mifospay.core.model.entity.savedcards.Card
import org.mifospay.R
import org.mifospay.core.designsystem.component.MfLoadingWheel
import org.mifospay.core.designsystem.component.MifosDialogBox
import org.mifospay.core.designsystem.theme.MifosTheme
import org.mifospay.core.ui.EmptyContentScreen
import org.mifospay.core.ui.utility.AddCardChip
import org.mifospay.savedcards.presenter.CardsScreenViewModel
import org.mifospay.savedcards.presenter.CardsUiEvent
import org.mifospay.savedcards.presenter.CardsUiState
import org.mifospay.savedcards.R

enum class CardMenuAction {
EDIT, DELETE, CANCEL
Expand Down Expand Up @@ -88,14 +85,14 @@ fun CardsScreen(
MifosDialogBox(
showDialogState = showConfirmDeleteDialog,
onDismiss = { showConfirmDeleteDialog = false },
title = R.string.delete_card,
confirmButtonText = R.string.yes,
title = R.string.feature_savedcards_delete_card,
confirmButtonText = R.string.feature_savedcards_yes,
onConfirm = {
deleteCardID?.let { viewModel.deleteCard(it) }
showConfirmDeleteDialog = false
},
dismissButtonText = R.string.no,
message = R.string.confirm_delete_card
dismissButtonText = R.string.feature_savedcards_no,
message = R.string.feature_savedcards_confirm_delete_card
)

CardsScreen(
Expand Down Expand Up @@ -130,7 +127,7 @@ fun CardsScreen(
when (cardState) {
CardsUiState.Loading -> {
MfLoadingWheel(
contentDesc = stringResource(R.string.loading),
contentDesc = stringResource(R.string.feature_savedcards_loading),
backgroundColor = Color.White
)
}
Expand All @@ -142,8 +139,8 @@ fun CardsScreen(
is CardsUiState.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_savedcards_error_oops),
subTitle = stringResource(id = R.string.feature_savedcards_unexpected_error_subtitle),
iconTint = Color.Black,
iconImageVector = Icons.Rounded.Info
)
Expand All @@ -164,23 +161,23 @@ fun CardsScreen(
CardsUiEvent.CARD_ADDED_SUCCESSFULLY -> {
Toast.makeText(
LocalContext.current,
stringResource(id = R.string.card_added_successfully),
stringResource(id = R.string.feature_savedcards_card_added_successfully),
Toast.LENGTH_SHORT
).show()
}

CardsUiEvent.CARD_UPDATED_SUCCESSFULLY -> {
Toast.makeText(
LocalContext.current,
stringResource(id = R.string.card_updated_successfully),
stringResource(id = R.string.feature_savedcards_card_updated_successfully),
Toast.LENGTH_SHORT
).show()
}

CardsUiEvent.CARD_DELETED_SUCCESSFULLY -> {
Toast.makeText(
LocalContext.current,
stringResource(id = R.string.card_deleted_successfully),
stringResource(id = R.string.feature_savedcards_card_deleted_successfully),
Toast.LENGTH_SHORT
).show()
}
Expand Down Expand Up @@ -232,8 +229,8 @@ fun CardsScreenContent(
AddCardChip(
modifier = Modifier.align(Alignment.Center),
onAddBtn = onAddBtn,
text = R.string.add_cards,
btnText = R.string.add_cards
text = R.string.feature_savedcards_add_cards,
btnText = R.string.feature_savedcards_add_cards
)
}
}
Expand All @@ -257,12 +254,12 @@ fun SearchBarScreen(
active = false,
onActiveChange = { },
placeholder = {
Text(text = stringResource(R.string.search))
Text(text = stringResource(R.string.feature_savedcards_search))
},
leadingIcon = {
Icon(
imageVector = Icons.Filled.Search,
contentDescription = stringResource(R.string.search)
contentDescription = stringResource(R.string.feature_savedcards_search)
)
},
trailingIcon = {
Expand All @@ -271,7 +268,7 @@ fun SearchBarScreen(
) {
Icon(
imageVector = Icons.Filled.Close,
contentDescription = stringResource(R.string.close)
contentDescription = stringResource(R.string.feature_savedcards_close)
)
}
}
Expand Down Expand Up @@ -320,7 +317,7 @@ fun CardItem(card: Card, onMenuItemClick: (Card, CardMenuAction) -> Unit) {
}
Spacer(modifier = Modifier.height(6.dp))
Text(
text = "${stringResource(R.string.card_number)} ${card.cardNumber}",
text = "${stringResource(R.string.feature_savedcards_card_number)} ${card.cardNumber}",
style = MaterialTheme.typography.bodyMedium
)
Spacer(modifier = Modifier.height(8.dp))
Expand All @@ -333,21 +330,21 @@ fun CardItem(card: Card, onMenuItemClick: (Card, CardMenuAction) -> Unit) {
modifier = Modifier.background(MaterialTheme.colorScheme.background)
) {
DropdownMenuItem(
text = { Text(text = stringResource(R.string.edit_card)) },
text = { Text(text = stringResource(R.string.feature_savedcards_edit_card)) },
onClick = {
onMenuItemClick(card, CardMenuAction.EDIT)
expanded = false
}
)
DropdownMenuItem(
text = { Text(stringResource(R.string.delete_card)) },
text = { Text(stringResource(R.string.feature_savedcards_delete_card)) },
onClick = {
onMenuItemClick(card, CardMenuAction.DELETE)
expanded = false
}
)
DropdownMenuItem(
text = { Text(stringResource(R.string.cancel)) },
text = { Text(stringResource(R.string.feature_savedcards_cancel)) },
onClick = {
onMenuItemClick(card, CardMenuAction.CANCEL)
expanded = false
Expand All @@ -368,12 +365,12 @@ fun NoCardAddCardsScreen(onAddBtn: () -> Unit) {
Column(
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = stringResource(R.string.add_cards))
Text(text = stringResource(R.string.feature_savedcards_add_cards))
AddCardChip(
modifier = Modifier,
onAddBtn = onAddBtn,
text = R.string.add_cards,
btnText = R.string.add_cards
text = R.string.feature_savedcards_add_cards,
btnText = R.string.feature_savedcards_add_cards
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import org.mifospay.core.data.domain.usecase.savedcards.AddCard
import org.mifospay.core.data.domain.usecase.savedcards.DeleteCard
import org.mifospay.core.data.domain.usecase.savedcards.EditCard
import org.mifospay.core.data.domain.usecase.savedcards.FetchSavedCards
import org.mifospay.data.local.LocalRepository
import org.mifospay.core.data.repository.local.LocalRepository
import javax.inject.Inject

@HiltViewModel
Expand Down
Loading

0 comments on commit 1a44135

Please sign in to comment.