Skip to content

Commit

Permalink
fix(AppUpdateActivity): make update screen scrollable
Browse files Browse the repository at this point in the history
  • Loading branch information
urFate committed Apr 23, 2024
1 parent 4ffb99b commit 3722042
Showing 1 changed file with 76 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.outlined.RocketLaunch
Expand All @@ -30,7 +31,6 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
Expand Down Expand Up @@ -126,9 +126,10 @@ fun AppUpdateScreen(
val isUpdating = remember { mutableStateOf(false) }
val dialogVisibilityState = remember { mutableStateOf(false) }

Scaffold(
modifier = Modifier.fillMaxSize(),
topBar = {
LazyColumn(
modifier = Modifier.fillMaxSize()
) {
item {
TopAppBar(
title = {},
navigationIcon = {
Expand All @@ -138,10 +139,78 @@ fun AppUpdateScreen(
contentDescription = "Finish",
)
}
},
}
)
},
bottomBar = {
}

item {
Column(
modifier = Modifier
.padding(24.dp, 0.dp),
verticalArrangement = Arrangement.spacedBy(32.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
) {
Icon(
modifier = Modifier.size(64.dp),
imageVector = when (appUpdateState.updateAvailable) {
true -> Icons.Outlined.RocketLaunch
false -> Icons.Outlined.Verified
},
tint = MaterialTheme.colorScheme.primary,
contentDescription = "rocket"
)
}
Text(
modifier = Modifier.fillMaxWidth(),
text = when (appUpdateState.updateAvailable) {
true -> stringResource(id = R.string.update)
false -> stringResource(id = R.string.no_update_required)
},
textAlign = TextAlign.Center,
fontWeight = FontWeight.Medium,
fontSize = 28.sp
)

HorizontalDivider(
modifier = Modifier.widthIn(32.dp, 256.dp)
)

Column(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(16.dp),
horizontalAlignment = Alignment.Start
) {
RichText {
val parser = remember { CommonmarkAstNodeParser() }
val astNode = remember(parser) { parser.parse(appUpdateState.release.notes) }

BasicMarkdown(astNode = astNode)
}

Column(
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
val formatter = SimpleDateFormat("dd.MM.yyyy", Locale.getDefault())
val dateString = formatter.format(Date(appUpdateState.release.createdAt))

Text(
text = appUpdateState.release.tag,
color = MaterialTheme.colorScheme.onBackground.copy(0.7f)
)
Text(
text = stringResource(id = R.string.update_build_date, dateString),
color = MaterialTheme.colorScheme.onBackground.copy(0.7f)
)
}
}
}
}

item {
if (appUpdateState.updateAvailable) {
Box(
modifier = Modifier
Expand All @@ -162,72 +231,6 @@ fun AppUpdateScreen(
}
}
}
) {
Column(
modifier = Modifier
.padding(24.dp, 0.dp)
.padding(it),
verticalArrangement = Arrangement.spacedBy(32.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
) {
Icon(
modifier = Modifier.size(64.dp),
imageVector = when (appUpdateState.updateAvailable) {
true -> Icons.Outlined.RocketLaunch
false -> Icons.Outlined.Verified
},
tint = MaterialTheme.colorScheme.primary,
contentDescription = "rocket"
)
}
Text(
modifier = Modifier.fillMaxWidth(),
text = when (appUpdateState.updateAvailable) {
true -> stringResource(id = R.string.update)
false -> stringResource(id = R.string.no_update_required)
},
textAlign = TextAlign.Center,
fontWeight = FontWeight.Medium,
fontSize = 28.sp
)

HorizontalDivider(
modifier = Modifier.widthIn(32.dp, 256.dp)
)

Column(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(16.dp),
horizontalAlignment = Alignment.Start
) {
RichText {
val parser = remember { CommonmarkAstNodeParser() }
val astNode = remember(parser) { parser.parse(appUpdateState.release.notes) }

BasicMarkdown(astNode = astNode)
}

Column(
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
val formatter = SimpleDateFormat("dd.MM.yyyy", Locale.getDefault())
val dateString = formatter.format(Date(appUpdateState.release.createdAt))

Text(
text = appUpdateState.release.tag,
color = MaterialTheme.colorScheme.onBackground.copy(0.7f)
)
Text(
text = stringResource(id = R.string.update_build_date, dateString),
color = MaterialTheme.colorScheme.onBackground.copy(0.7f)
)
}
}
}
}

UpdateDialog(
Expand Down

0 comments on commit 3722042

Please sign in to comment.