Fix backup row disabled state in settings.

This commit is contained in:
Greyson Parrelli
2025-10-29 15:00:58 -04:00
committed by Michelle Tang
parent 2ba08965d2
commit 6aa6b490b5
3 changed files with 57 additions and 3 deletions

View File

@@ -15,6 +15,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource import androidx.compose.ui.res.vectorResource
@@ -23,6 +24,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import org.signal.core.ui.compose.DayNightPreviews import org.signal.core.ui.compose.DayNightPreviews
import org.signal.core.ui.compose.Previews import org.signal.core.ui.compose.Previews
import org.signal.core.ui.compose.Rows
import org.signal.core.ui.compose.horizontalGutters import org.signal.core.ui.compose.horizontalGutters
import org.signal.core.ui.compose.theme.SignalTheme import org.signal.core.ui.compose.theme.SignalTheme
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
@@ -35,6 +37,7 @@ import org.thoughtcrime.securesms.R
fun TextWithBetaLabel( fun TextWithBetaLabel(
text: String, text: String,
textStyle: TextStyle = TextStyle.Default, textStyle: TextStyle = TextStyle.Default,
enabled: Boolean = true,
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
FlowRow( FlowRow(
@@ -45,7 +48,9 @@ fun TextWithBetaLabel(
Text( Text(
text = text, text = text,
style = textStyle, style = textStyle,
modifier = Modifier.align(Alignment.CenterVertically) modifier = Modifier
.align(Alignment.CenterVertically)
.alpha(if (enabled) 1f else Rows.DISABLED_ALPHA)
) )
Text( Text(
text = stringResource(R.string.Beta__beta_title).uppercase(), text = stringResource(R.string.Beta__beta_title).uppercase(),
@@ -56,6 +61,7 @@ fun TextWithBetaLabel(
.padding(vertical = 6.dp) .padding(vertical = 6.dp)
.background(color = MaterialTheme.colorScheme.surfaceVariant, shape = RoundedCornerShape(28.dp)) .background(color = MaterialTheme.colorScheme.surfaceVariant, shape = RoundedCornerShape(28.dp))
.padding(horizontal = 12.dp, vertical = 4.dp) .padding(horizontal = 12.dp, vertical = 4.dp)
.alpha(if (enabled) 1f else Rows.DISABLED_ALPHA)
.align(Alignment.CenterVertically) .align(Alignment.CenterVertically)
) )
} }
@@ -96,6 +102,14 @@ fun BetaLabelPreview() {
} }
} }
@DayNightPreviews
@Composable
fun BetaLabelDisabledPreview() {
Previews.Preview {
TextWithBetaLabel("Signal Backups", enabled = false)
}
}
@Preview(locale = "de") @Preview(locale = "de")
@Composable @Composable
fun LongTextBetaLabelPreview() { fun LongTextBetaLabelPreview() {

View File

@@ -418,7 +418,8 @@ private fun AppSettingsContent(
text = { text = {
TextWithBetaLabel( TextWithBetaLabel(
text = stringResource(R.string.preferences_chats__backups), text = stringResource(R.string.preferences_chats__backups),
textStyle = MaterialTheme.typography.bodyLarge textStyle = MaterialTheme.typography.bodyLarge,
enabled = isRegisteredAndUpToDate
) )
}, },
icon = { icon = {
@@ -720,6 +721,43 @@ private fun AppSettingsContentPreview() {
} }
} }
@DayNightPreviews
@Composable
private fun AppSettingsContentUnregisteredPreview() {
Previews.Preview {
AppSettingsContent(
self = BioRecipientState(
Recipient(
systemContactName = "Miles Morales",
profileName = ProfileName.fromParts("Miles", "Morales ❤\uFE0F"),
isSelf = true,
e164Value = "+15555555555",
usernameValue = "miles.98",
aboutEmoji = "\uFE0F",
about = "About",
isResolving = false
)
),
state = AppSettingsState(
isPrimaryDevice = true,
unreadPaymentsCount = 5,
hasExpiredGiftBadge = true,
allowUserToGoToDonationManagementScreen = true,
userUnregistered = true,
clientDeprecated = false,
showInternalPreferences = true,
showPayments = true,
showAppUpdates = true,
backupFailureState = BackupFailureState.OUT_OF_STORAGE_SPACE
),
bannerManager = BannerManager(
banners = listOf(TestBanner())
),
callbacks = EmptyCallbacks
)
}
}
@DayNightPreviews @DayNightPreviews
@Composable @Composable
private fun BioRowPreview() { private fun BioRowPreview() {

View File

@@ -53,6 +53,8 @@ import org.signal.core.ui.compose.Rows.TextAndLabel
object Rows { object Rows {
const val DISABLED_ALPHA = 0.4f
/** /**
* Link row that positions [text] and optional [label] in a [TextAndLabel] to the side of an [icon] on the right. * Link row that positions [text] and optional [label] in a [TextAndLabel] to the side of an [icon] on the right.
*/ */
@@ -554,7 +556,7 @@ object Rows {
) { ) {
Column( Column(
modifier = modifier modifier = modifier
.alpha(if (enabled) 1f else 0.4f) .alpha(if (enabled) 1f else DISABLED_ALPHA)
.weight(1f) .weight(1f)
) { ) {
if (text != null) { if (text != null) {