Skip to content

Commit

Permalink
Prevent going back or change media while account creation is in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
AleksandarIlic committed Mar 18, 2024
1 parent 732f6ef commit 9658017
Showing 1 changed file with 14 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ fun OnboardingProfilePreviewScreen(
onOnboarded: () -> Unit,
onActivateWallet: () -> Unit,
) {
BackHandler(enabled = state.userId != null) {}
val canGoBack = state.userId == null && !state.working
BackHandler(enabled = !canGoBack) {}

val context = LocalContext.current
val snackbarHostState = remember { SnackbarHostState() }
Expand Down Expand Up @@ -104,7 +105,7 @@ fun OnboardingProfilePreviewScreen(
title = state.resolveAppBarTitle(),
textColor = Color.White,
showDivider = false,
navigationIcon = if (state.userId == null) PrimalIcons.ArrowBack else null,
navigationIcon = if (canGoBack) PrimalIcons.ArrowBack else null,
navigationIconTintColor = Color.White,
onNavigationIconClick = onBack,
)
Expand Down Expand Up @@ -220,6 +221,7 @@ private fun ProfileAccountPreviewContent(
.padding(horizontal = 32.dp)
.padding(bottom = 16.dp)
.fillMaxWidth(),
working = state.working,
bannerUri = state.bannerUri,
onBannerUriChanged = {
eventPublisher(OnboardingContract.UiEvent.ProfileBannerUriChanged(it))
Expand Down Expand Up @@ -252,6 +254,7 @@ private fun ProfileAccountPreviewContent(
@Composable
private fun ProfilePreviewBox(
modifier: Modifier = Modifier,
working: Boolean,
bannerUri: Uri?,
onBannerUriChanged: (Uri?) -> Unit,
avatarUri: Uri?,
Expand All @@ -269,20 +272,22 @@ private fun ProfilePreviewBox(
onBannerUriChanged(uri)
}

fun pickBanner() = bannerPicker.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))

val avatarPicker = rememberLauncherForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
onAvatarUriChanged(uri)
}

fun pickAvatar() = avatarPicker.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))

Box(
modifier = modifier.background(color = Color.White, shape = shape),
) {
Column {
BannerBox(
modifier = Modifier
.height(bannerHeight)
.clickable {
bannerPicker.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
},
.clickable(enabled = !working, onClick = { pickBanner() }),
shape = bannerShape,
bannerUri = bannerUri,
)
Expand All @@ -294,9 +299,7 @@ private fun ProfilePreviewBox(
horizontalArrangement = Arrangement.End,
) {
Text(
modifier = Modifier.clickable {
bannerPicker.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
},
modifier = Modifier.clickable(enabled = !working, onClick = { pickBanner() }),
text = stringResource(id = R.string.onboarding_profile_preview_change_banner).lowercase(),
style = AppTheme.typography.bodyMedium,
fontWeight = FontWeight.SemiBold,
Expand Down Expand Up @@ -335,9 +338,8 @@ private fun ProfilePreviewBox(
modifier = Modifier
.padding(start = 16.dp, top = bannerHeight - avatarSize * 2 / 5)
.size(size = avatarSize)
.clickable {
avatarPicker.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
},
.clip(CircleShape)
.clickable(enabled = !working, onClick = { pickAvatar() }),
avatarUri = avatarUri,
)
}
Expand All @@ -356,9 +358,9 @@ private fun PreviewAvatarBox(modifier: Modifier = Modifier, avatarUri: Uri?) {
when (it) {
null -> {
Icon(
modifier = Modifier.fillMaxSize(),
imageVector = PrimalIcons.AvatarDefault,
contentDescription = null,
modifier = Modifier.fillMaxSize(),
)
}

Expand Down

0 comments on commit 9658017

Please sign in to comment.