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