diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsEducationScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsEducationScreen.kt index 90d2a2131d..009e9db9a5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsEducationScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsEducationScreen.kt @@ -33,8 +33,6 @@ import org.signal.core.ui.compose.Previews import org.signal.core.ui.compose.Scaffolds import org.signal.core.ui.compose.SignalIcons import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.components.compose.BetaHeader -import org.thoughtcrime.securesms.components.compose.TextWithBetaLabel import org.signal.core.ui.R as CoreUiR /** @@ -65,10 +63,6 @@ fun MessageBackupsEducationScreen( .fillMaxWidth() .weight(1f) ) { - item { - BetaHeader() - } - item { Image( painter = painterResource(id = R.drawable.image_signal_backups), @@ -80,9 +74,9 @@ fun MessageBackupsEducationScreen( } item { - TextWithBetaLabel( + Text( text = stringResource(id = R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.headlineMedium, + style = MaterialTheme.typography.headlineMedium, modifier = Modifier.padding(top = 15.dp) ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/compose/Beta.kt b/app/src/main/java/org/thoughtcrime/securesms/components/compose/Beta.kt deleted file mode 100644 index 58a3a1bbdc..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/compose/Beta.kt +++ /dev/null @@ -1,136 +0,0 @@ -package org.thoughtcrime.securesms.components.compose - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.ExperimentalLayoutApi -import androidx.compose.foundation.layout.FlowRow -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.alpha -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import org.signal.core.ui.compose.DayNightPreviews -import org.signal.core.ui.compose.Previews -import org.signal.core.ui.compose.Rows -import org.signal.core.ui.compose.SignalIcons -import org.signal.core.ui.compose.horizontalGutters -import org.signal.core.ui.compose.theme.SignalTheme -import org.thoughtcrime.securesms.R - -/** - * Adds a 'Beta' label next to [text] to indicate a feature is in development - */ -@OptIn(ExperimentalLayoutApi::class) -@Composable -fun TextWithBetaLabel( - text: String, - textStyle: TextStyle = TextStyle.Default, - enabled: Boolean = true, - modifier: Modifier = Modifier -) { - FlowRow( - verticalArrangement = Arrangement.Center, - horizontalArrangement = Arrangement.Center, - modifier = modifier - ) { - Text( - text = text, - style = textStyle, - modifier = Modifier - .align(Alignment.CenterVertically) - .alpha(if (enabled) 1f else Rows.DISABLED_ALPHA) - ) - Text( - text = stringResource(R.string.Beta__beta_title).uppercase(), - color = MaterialTheme.colorScheme.onPrimaryContainer, - style = MaterialTheme.typography.labelSmall, - modifier = Modifier - .padding(start = 6.dp) - .padding(vertical = 6.dp) - .background(color = MaterialTheme.colorScheme.surfaceVariant, shape = RoundedCornerShape(28.dp)) - .padding(horizontal = 12.dp, vertical = 4.dp) - .alpha(if (enabled) 1f else Rows.DISABLED_ALPHA) - .align(Alignment.CenterVertically) - ) - } -} - -/** - * 'Beta' header to indicate a feature is currently in development - */ -@Composable -fun BetaHeader(modifier: Modifier = Modifier) { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = modifier - .background( - color = SignalTheme.colors.colorSurface2, - shape = RoundedCornerShape(12.dp) - ) - .padding(16.dp) - .fillMaxWidth() - ) { - Icon( - imageVector = SignalIcons.Info.imageVector, - contentDescription = stringResource(id = R.string.Beta__info), - tint = MaterialTheme.colorScheme.onPrimaryContainer - ) - Text( - text = stringResource(id = R.string.Beta__this_is_beta), - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(start = 12.dp) - ) - } -} - -@DayNightPreviews -@Composable -fun BetaLabelPreview() { - Previews.Preview { - TextWithBetaLabel("Signal Backups") - } -} - -@DayNightPreviews -@Composable -fun BetaLabelDisabledPreview() { - Previews.Preview { - TextWithBetaLabel("Signal Backups", enabled = false) - } -} - -@Preview(locale = "de") -@Composable -fun LongTextBetaLabelPreview() { - Previews.Preview { - Scaffold { - TextWithBetaLabel( - text = stringResource(id = R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.headlineMedium, - modifier = Modifier - .fillMaxWidth() - .horizontalGutters() - .padding(it) - ) - } - } -} - -@DayNightPreviews -@Composable -fun BetaHeaderPreview() { - Previews.Preview { - BetaHeader() - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt index 6bd3bc2a06..f560423bde 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt @@ -68,7 +68,6 @@ import org.thoughtcrime.securesms.banner.banners.UnauthorizedBanner import org.thoughtcrime.securesms.banner.ui.compose.Action import org.thoughtcrime.securesms.banner.ui.compose.DefaultBanner import org.thoughtcrime.securesms.banner.ui.compose.Importance -import org.thoughtcrime.securesms.components.compose.TextWithBetaLabel import org.thoughtcrime.securesms.components.emoji.Emojifier import org.thoughtcrime.securesms.components.settings.app.routes.AppSettingsRoute import org.thoughtcrime.securesms.components.settings.app.routes.AppSettingsRouter @@ -415,10 +414,9 @@ private fun AppSettingsContent( item { Rows.TextRow( text = { - TextWithBetaLabel( + Text( text = stringResource(R.string.preferences_chats__backups), - textStyle = MaterialTheme.typography.bodyLarge, - enabled = isRegisteredAndUpToDate + style = MaterialTheme.typography.bodyLarge ) }, icon = { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsFragment.kt index d16d389183..5fb7bd714a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsFragment.kt @@ -53,7 +53,6 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.backup.DeletionState import org.thoughtcrime.securesms.backup.v2.MessageBackupTier import org.thoughtcrime.securesms.backup.v2.ui.subscription.MessageBackupsType -import org.thoughtcrime.securesms.components.compose.TextWithBetaLabel import org.thoughtcrime.securesms.components.settings.app.subscription.MessageBackupsCheckoutLauncher.createBackupsCheckoutLauncher import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.payments.FiatMoneyUtil @@ -285,9 +284,9 @@ private fun NeverEnabledBackupsRow( }, text = { Column { - TextWithBetaLabel( + Text( text = stringResource(R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge ) Text( @@ -331,9 +330,9 @@ private fun InactiveBackupsRow( Rows.TextRow( text = { Column { - TextWithBetaLabel( + Text( text = stringResource(R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge ) Text( @@ -377,9 +376,9 @@ private fun NotFoundBackupRow( }, text = { Column { - TextWithBetaLabel( + Text( text = stringResource(R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge ) Text( @@ -412,9 +411,9 @@ private fun PendingBackupRow( }, text = { Column { - TextWithBetaLabel( + Text( text = stringResource(R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge ) Text( @@ -463,9 +462,9 @@ private fun LocalStoreBackupRow( }, text = { Column { - TextWithBetaLabel( + Text( text = stringResource(R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge ) val tierText = when (backupState.tier) { @@ -508,9 +507,9 @@ private fun ActiveBackupsRow( }, text = { Column { - TextWithBetaLabel( + Text( text = stringResource(R.string.RemoteBackupsSettingsFragment__signal_backups), - textStyle = MaterialTheme.typography.bodyLarge + style = MaterialTheme.typography.bodyLarge ) when (val type = backupState.messageBackupsType) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt index db7a1d9d7e..a395637542 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt @@ -101,7 +101,6 @@ import org.thoughtcrime.securesms.backup.v2.ui.status.BackupStatusRow import org.thoughtcrime.securesms.backup.v2.ui.status.RestoreType import org.thoughtcrime.securesms.backup.v2.ui.subscription.MessageBackupsType import org.thoughtcrime.securesms.billing.launchManageBackupsSubscription -import org.thoughtcrime.securesms.components.compose.BetaHeader import org.thoughtcrime.securesms.components.compose.BiometricsAuthentication import org.thoughtcrime.securesms.components.compose.rememberBiometricsAuthentication import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity @@ -419,10 +418,6 @@ private fun RemoteBackupsSettingsContent( modifier = Modifier .padding(it) ) { - item { - BetaHeader(modifier = Modifier.padding(horizontal = 16.dp)) - } - if (state.isOutOfStorageSpace) { item { OutOfStorageSpaceBlock( diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java index 536f7af09a..14758a6f52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -457,7 +457,7 @@ public final class Megaphones { public static @NonNull Megaphone buildTurnOnSignalBackupsMegaphone() { return new Megaphone.Builder(Event.TURN_ON_SIGNAL_BACKUPS, Megaphone.Style.BASIC) .setImage(R.drawable.backups_megaphone_image) - .setTitle(R.string.TurnOnSignalBackups__title_beta) + .setTitle(R.string.TurnOnSignalBackups__title) .setBody(R.string.TurnOnSignalBackups__body) .setActionButton(R.string.TurnOnSignalBackups__turn_on, (megaphone, controller) -> { Intent intent = AppSettingsActivity.remoteBackups(controller.getMegaphoneActivity()); @@ -580,7 +580,7 @@ public final class Megaphones { } private static boolean shouldShowTurnOnBackupsMegaphone(@NonNull Context context) { - if (!RemoteConfig.backupsBetaMegaphone()) { + if (!RemoteConfig.backupsMegaphone()) { return false; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt index 85af1d6700..559558bb9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt @@ -1179,9 +1179,9 @@ object RemoteConfig { ) @JvmStatic - @get:JvmName("backupsBetaMegaphone") - val backupsBetaMegaphone: Boolean by remoteBoolean( - key = "android.backupsBetaMegaphone.2", + @get:JvmName("backupsMegaphone") + val backupsMegaphone: Boolean by remoteBoolean( + key = "android.backupsMegaphone.3", defaultValue = false, hotSwappable = true ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2b0499f81e..287886dfd8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4912,14 +4912,7 @@ Error connecting to service Backups - - Beta - - Info - - This is a beta feature and will be improved over time. - - + Unlock Signal Use your Android device lock settings to unlock Signal. @@ -7852,9 +7845,7 @@ Turn on Signal Secure Backups - - Try Signal Secure Backups - + Never lose a message when you get a new phone or reinstall Signal. Turn on