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 4a2decb73b..eaa47a1d99 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 @@ -28,7 +28,6 @@ import org.thoughtcrime.securesms.components.settings.PreferenceViewHolder import org.thoughtcrime.securesms.components.settings.app.subscription.completed.TerminalDonationDelegate import org.thoughtcrime.securesms.components.settings.configure import org.thoughtcrime.securesms.events.ReminderUpdateEvent -import org.thoughtcrime.securesms.keyvalue.AccountValues import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter import org.thoughtcrime.securesms.recipients.Recipient diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkShareScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkShareScreen.kt index 7fe6624d2b..8122d57235 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkShareScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkShareScreen.kt @@ -44,6 +44,8 @@ import org.thoughtcrime.securesms.components.settings.app.usernamelinks.Username import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.UsernameLinkSettingsState.ActiveTab import org.thoughtcrime.securesms.util.Util import org.thoughtcrime.securesms.util.navigation.safeNavigate +import org.whispersystems.signalservice.api.push.UsernameLinkComponents +import java.util.UUID /** * A screen that shows all the data around your username link and how to share it, including a QR code. @@ -68,6 +70,12 @@ fun UsernameLinkShareScreen( UsernameLinkResetResult.NetworkError -> { ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_network_error), onDismiss = onLinkResultHandled) } + UsernameLinkResetResult.UnexpectedError -> { + ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_unknown_error), onDismiss = onLinkResultHandled) + } + is UsernameLinkResetResult.Success -> { + ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_success), onDismiss = onLinkResultHandled) + } else -> {} } @@ -223,6 +231,82 @@ private fun ScreenPreview() { } } +@Preview(name = "Light Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_NO) +@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +private fun ScreenPreviewResetSuccess() { + SignalTheme { + Surface { + UsernameLinkShareScreen( + state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.Success(UsernameLinkComponents(Util.getSecretBytes(32), UUID.randomUUID()))), + snackbarHostState = SnackbarHostState(), + scope = rememberCoroutineScope(), + navController = NavController(LocalContext.current), + onShareBadge = {}, + onResetClicked = {}, + onLinkResultHandled = {} + ) + } + } +} + +@Preview(name = "Light Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_NO) +@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +private fun ScreenPreviewResetNetworkError() { + SignalTheme { + Surface { + UsernameLinkShareScreen( + state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.NetworkError), + snackbarHostState = SnackbarHostState(), + scope = rememberCoroutineScope(), + navController = NavController(LocalContext.current), + onShareBadge = {}, + onResetClicked = {}, + onLinkResultHandled = {} + ) + } + } +} + +@Preview(name = "Light Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_NO) +@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +private fun ScreenPreviewResetNetworkUnavailable() { + SignalTheme { + Surface { + UsernameLinkShareScreen( + state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.NetworkUnavailable), + snackbarHostState = SnackbarHostState(), + scope = rememberCoroutineScope(), + navController = NavController(LocalContext.current), + onShareBadge = {}, + onResetClicked = {}, + onLinkResultHandled = {} + ) + } + } +} + +@Preview(name = "Light Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_NO) +@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +private fun ScreenPreviewResetUnexpectedError() { + SignalTheme { + Surface { + UsernameLinkShareScreen( + state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.UnexpectedError), + snackbarHostState = SnackbarHostState(), + scope = rememberCoroutineScope(), + navController = NavController(LocalContext.current), + onShareBadge = {}, + onResetClicked = {}, + onLinkResultHandled = {} + ) + } + } +} + @Preview(name = "Light Theme", group = "LinkRow", uiMode = Configuration.UI_MODE_NIGHT_NO) @Preview(name = "Dark Theme", group = "LinkRow", uiMode = Configuration.UI_MODE_NIGHT_YES) @Composable diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9c6dca5725..4f3f2dc273 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6484,6 +6484,10 @@ You do not have network access. Your link was not reset. Try again later. A network error occurred while trying to reset your link. Try again later. + + An unexpected error occurred while trying to reset your link. Try again later. + + Your QR code and link have been reset and a new QR code and link has been created. Scan this QR code with your phone to chat with me on Signal.