Skip to content

Commit

Permalink
[2656] : Compose Preview Cleanup (#2657)
Browse files Browse the repository at this point in the history
  • Loading branch information
akashmeruva9 committed Jul 12, 2024
1 parent c3f9985 commit 1ceebaf
Show file tree
Hide file tree
Showing 7 changed files with 138 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ fun RegistrationVerificationScreen(
onVerified: () -> Unit
) {

val context = LocalContext.current
var showConfirmationDialog by remember { mutableStateOf(false) }

BackHandler(enabled = true) {
Expand All @@ -65,19 +64,19 @@ fun RegistrationVerificationScreen(
if (showConfirmationDialog) {
AlertDialog(
onDismissRequest = { showConfirmationDialog = false },
title = { Text(text = getString(context, R.string.dialog_cancel_registration_title)) },
text = { Text(text = getString(context, R.string.dialog_cancel_registration_message)) },
title = { Text(text = stringResource(R.string.dialog_cancel_registration_title)) },
text = { Text(text = stringResource(R.string.dialog_cancel_registration_message)) },
confirmButton = {
TextButton(onClick = {
showConfirmationDialog = false
navigateBack.invoke()
}) {
Text(text = getString(context, R.string.yes))
Text(text = stringResource(R.string.yes))
}
},
dismissButton = {
TextButton(onClick = { showConfirmationDialog = false }) {
Text(text = getString(context, R.string.no))
Text(text = stringResource(R.string.no))
}
}
)
Expand Down Expand Up @@ -130,11 +129,7 @@ fun RegistrationVerificationScreen(
}

RegistrationUiState.Success -> {
Toast.makeText(
context,
getString(context, R.string.verified),
Toast.LENGTH_SHORT
).show()
Toast.makeText(context, stringResource(R.string.verified), Toast.LENGTH_SHORT).show()
onVerified()
}
}
Expand Down Expand Up @@ -198,7 +193,7 @@ fun RegistrationVerificationContent(verifyUser: (authenticationToken: String, re
requestIDError = false
},
label = R.string.request_id,
supportingText = getString(context, R.string.empty_requestid),
supportingText = stringResource(R.string.empty_requestid),
error = requestIDError,
keyboardType = KeyboardType.Number,
trailingIcon = {
Expand All @@ -215,7 +210,7 @@ fun RegistrationVerificationContent(verifyUser: (authenticationToken: String, re
authenticationTokenError = false
},
label = R.string.authentication_token,
supportingText = getString(context, R.string.empty_authentication_token),
supportingText = stringResource(R.string.empty_authentication_token),
error = authenticationTokenError,
keyboardType = KeyboardType.Number,
trailingIcon = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
Expand All @@ -30,7 +33,7 @@ import org.mifos.mobile.core.ui.component.MFScaffold
import org.mifos.mobile.core.ui.component.MifosTextButtonWithTopDrawable
import org.mifos.mobile.core.ui.component.MifosTitleSearchCard
import org.mifos.mobile.core.ui.component.MifosTopBar

import org.mifos.mobile.core.ui.theme.MifosMobileTheme


@Composable
Expand Down Expand Up @@ -190,3 +193,30 @@ fun HelpContent(
}
}
}

class HelpScreenPreviewProvider : PreviewParameterProvider<HelpUiState> {
override val values: Sequence<HelpUiState>
get() = sequenceOf(
HelpUiState.Initial,
HelpUiState.ShowFaq(arrayListOf())
)
}

@Preview(showSystemUi = true, showBackground = true)
@Composable
private fun HelpScreenPreview(
@PreviewParameter( HelpScreenPreviewProvider::class) helpUiState: HelpUiState
) {
MifosMobileTheme {
HelpScreen(
uiState= helpUiState,
callNow = { },
leaveEmail= { },
findLocations= {},
updateFaqPosition= { _-> },
navigateBack= {},
searchQuery= {_ -> },
onSearchDismiss= { },
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ fun ReviewLoanApplicationScreen(

when (uiState) {
is ReviewLoanApplicationUiState.Loading -> {
MifosProgressIndicator(modifier = Modifier.fillMaxSize().background(MaterialTheme.colorScheme.background.copy(0.8f)))
MifosProgressIndicator(modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colorScheme.background.copy(0.8f)))
}

is ReviewLoanApplicationUiState.Error -> {
Expand All @@ -78,10 +80,14 @@ fun ReviewLoanApplicationScreen(
is ReviewLoanApplicationUiState.Success -> {
when (uiState.loanState) {
LoanState.CREATE ->
Toast.makeText(context, stringResource(id = R.string.loan_application_submitted_successfully), Toast.LENGTH_SHORT).show()
LaunchedEffect(key1 = true) {
Toast.makeText(context, context.getString(R.string.loan_application_submitted_successfully), Toast.LENGTH_SHORT).show()
}

LoanState.UPDATE ->
Toast.makeText(context, stringResource(id = R.string.loan_application_updated_successfully), Toast.LENGTH_SHORT).show()
LaunchedEffect(key1 = true) {
Toast.makeText(context, context.getString(R.string.loan_application_updated_successfully), Toast.LENGTH_SHORT).show()
}
}
navigateBack(true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,22 @@ import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.canhub.cropper.CropImageContract
import com.canhub.cropper.CropImageContractOptions
import com.canhub.cropper.CropImageOptions
import com.google.zxing.BarcodeFormat
import com.google.zxing.Result
import org.mifos.mobile.core.common.Network
import org.mifos.mobile.core.ui.component.MFScaffold
import org.mifos.mobile.core.ui.component.MifosErrorComponent
import org.mifos.mobile.core.ui.component.MifosProgressIndicatorOverlay
import org.mifos.mobile.core.ui.theme.MifosMobileTheme
import org.mifos.mobile.feature.qr.R

@RequiresApi(Build.VERSION_CODES.TIRAMISU)
Expand Down Expand Up @@ -285,4 +290,30 @@ fun QrCodeImportFunctions(
imagePickerLauncher.launch("image/*")
}
}
}

class QrCodeImportPreviewProvider : PreviewParameterProvider<QrCodeImportUiState> {
override val values: Sequence<QrCodeImportUiState>
get() = sequenceOf(
QrCodeImportUiState.Initial,
QrCodeImportUiState.Loading,
QrCodeImportUiState.ShowError(0),
QrCodeImportUiState.HandleDecodedResult(Result("", byteArrayOf(), arrayOf(), BarcodeFormat.CODE_128)),
)
}

@Preview(showSystemUi = true, showBackground = true)
@Composable
private fun QrCodeImportPreview(
@PreviewParameter( QrCodeImportPreviewProvider::class) qrCodeImportUiState: QrCodeImportUiState
) {
MifosMobileTheme {
QrCodeImportScreen(
uiState= qrCodeImportUiState,
navigateBack= {},
proceedClicked= { _-> },
handleDecodedResult= { _-> },
showRationaleChecker= { _-> true}
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,15 @@ fun SavingsAccountWithdrawScreen(

when (uiState) {
is SavingsAccountWithdrawUiState.Loading -> {
MifosProgressIndicator(modifier = Modifier.fillMaxSize().background(MaterialTheme.colorScheme.background.copy(alpha = 0.7f)))
MifosProgressIndicator(modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colorScheme.background.copy(alpha = 0.7f)))
}

is SavingsAccountWithdrawUiState.Success -> {
Toast.makeText(context, R.string.savings_account_withdraw_successful, Toast.LENGTH_SHORT).show()
LaunchedEffect(true) {
Toast.makeText(context, R.string.savings_account_withdraw_successful, Toast.LENGTH_SHORT).show()
}
navigateBack(true)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,16 @@ import org.mifos.mobile.feature.update.password.R

@Composable
fun UpdatePasswordContent(
viewModel: UpdatePasswordViewModel = hiltViewModel(),
updatePasswordButtonClicked : () -> Unit
updatePasswordButtonClicked : () -> Unit,
validateAndUpdatePassword: (
newPassword: String,
confirmPassword: String,
newPasswordError: (isError: Boolean) -> Unit,
confirmPasswordError: (isError: Boolean) -> Unit,
setNewPasswordErrorContent: (error: String) -> Unit,
setConfirmPasswordErrorContent: (error: String) -> Unit
) -> Unit,

) {
var newPassword by rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(TextFieldValue(""))
Expand All @@ -56,7 +64,6 @@ fun UpdatePasswordContent(
var newPasswordErrorContent by rememberSaveable { mutableStateOf("") }
var confirmPasswordErrorContent by rememberSaveable { mutableStateOf("") }
val keyboardController = LocalSoftwareKeyboardController.current
val context = LocalContext.current


Column(
Expand Down Expand Up @@ -125,22 +132,22 @@ fun UpdatePasswordContent(
keyboardController?.hide()
updatePasswordButtonClicked.invoke()

validateAndUpdatePassword(context,
viewModel,
validateAndUpdatePassword(
newPassword.text,
confirmPassword.text,
newPasswordError = {
{
newPasswordError = it
},
confirmPasswordError = {
{
confirmPasswordError = it
},
setNewPasswordErrorContent = {
{
newPasswordErrorContent = it
},
setConfirmPasswordErrorContent = {
{
confirmPasswordErrorContent = it
})
}
)
},
modifier = Modifier
.fillMaxWidth()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,28 @@ fun UpdatePasswordScreen(
navigateBack: () -> Unit
) {
val uiState by viewModel.updatePasswordUiState.collectAsStateWithLifecycle()
val context = LocalContext.current

UpdatePasswordScreen(
uiState = uiState,
navigateBack = navigateBack
navigateBack = navigateBack,
validateAndUpdatePassword = { newPassword, confirmPassword, newPasswordError, confirmPasswordError, setNewPasswordErrorContent, setConfirmPasswordErrorContent ->
validateAndUpdatePassword( context, viewModel, newPassword, confirmPassword, newPasswordError, confirmPasswordError, setNewPasswordErrorContent, setConfirmPasswordErrorContent) }
)
}

@Composable
fun UpdatePasswordScreen(
uiState: UpdatePasswordUiState,
navigateBack: () -> Unit
navigateBack: () -> Unit,
validateAndUpdatePassword: (
newPassword: String,
confirmPassword: String,
newPasswordError: (isError: Boolean) -> Unit,
confirmPasswordError: (isError: Boolean) -> Unit,
setNewPasswordErrorContent: (error: String) -> Unit,
setConfirmPasswordErrorContent: (error: String) -> Unit
) -> Unit,
) {
val context = LocalContext.current
val snackbarHostState = remember { SnackbarHostState() }
Expand All @@ -71,7 +82,8 @@ fun UpdatePasswordScreen(
UpdatePasswordContent(
updatePasswordButtonClicked = {
updatePasswordButtonClicked = true
}
},
validateAndUpdatePassword= validateAndUpdatePassword
)

when (uiState) {
Expand Down Expand Up @@ -112,26 +124,6 @@ fun UpdatePasswordScreen(
}
}

class UiStatesParameterProvider : PreviewParameterProvider<UpdatePasswordUiState> {
override val values: Sequence<UpdatePasswordUiState>
get() = sequenceOf(
UpdatePasswordUiState.Initial,
UpdatePasswordUiState.Error(1),
UpdatePasswordUiState.Loading,
UpdatePasswordUiState.Success
)
}

@Composable
@Preview(showSystemUi = true, showBackground = true)
fun UpdatePasswordScreenPreview(
@PreviewParameter(UiStatesParameterProvider::class) updatePasswordUiState: UpdatePasswordUiState
) {
MifosMobileTheme {
UpdatePasswordScreen(navigateBack = {})
}
}

fun validateAndUpdatePassword(
context: Context,
viewModel: UpdatePasswordViewModel,
Expand Down Expand Up @@ -227,7 +219,29 @@ fun validatePasswordMatch(newPassword: String, confirmPassword: String): Boolean
return newPassword == confirmPassword
}

class UiStatesParameterProvider : PreviewParameterProvider<UpdatePasswordUiState> {
override val values: Sequence<UpdatePasswordUiState>
get() = sequenceOf(
UpdatePasswordUiState.Initial,
UpdatePasswordUiState.Error(1),
UpdatePasswordUiState.Loading,
UpdatePasswordUiState.Success
)
}

@Composable
@Preview(showSystemUi = true, showBackground = true)
fun UpdatePasswordScreenPreview(
@PreviewParameter(UiStatesParameterProvider::class) updatePasswordUiState: UpdatePasswordUiState
) {
MifosMobileTheme {
UpdatePasswordScreen(
uiState = updatePasswordUiState,
navigateBack = {},
validateAndUpdatePassword= { _,_,_,_,_,_-> }
)
}
}



0 comments on commit 1ceebaf

Please sign in to comment.