From 541b4674a84381166cd65edc42dc41c29bee1d94 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 20 Feb 2026 11:47:14 -0500 Subject: [PATCH] Add remote_backups cta action for release notes. --- .../app/internal/InternalSettingsFragment.kt | 7 +++++++ .../app/internal/InternalSettingsRepository.kt | 4 ++-- .../app/internal/InternalSettingsViewModel.kt | 4 ++-- .../conversation/v2/ConversationFragment.kt | 15 +++++++-------- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt index 4be8c48900..1ab3769e77 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt @@ -798,6 +798,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter } ) + clickPref( + title = DSLSettingsText.from("Add remote backups note"), + onClick = { + viewModel.addSampleReleaseNote("remote_backups") + } + ) + clickPref( title = DSLSettingsText.from("Add remote donate megaphone"), onClick = { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt index 1c719ee9b5..fb01cf2139 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt @@ -42,7 +42,7 @@ class InternalSettingsRepository(context: Context) { } } - fun addSampleReleaseNote() { + fun addSampleReleaseNote(callToAction: String) { SignalExecutors.UNBOUNDED.execute { AppDependencies.jobManager.runSynchronously(CreateReleaseChannelJob.create(), 5000) @@ -52,7 +52,7 @@ class InternalSettingsRepository(context: Context) { val bodyRangeList = BodyRangeList.Builder() .addStyle(BodyRangeList.BodyRange.Style.BOLD, 0, title.length) - bodyRangeList.addButton("Call to Action Text", "action", body.lastIndex, 0) + bodyRangeList.addButton("Call to Action Text", callToAction, body.lastIndex, 0) val recipientId = SignalStore.releaseChannel.releaseChannelRecipientId!! val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(Recipient.resolved(recipientId)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt index 69521fd22c..a4860d5bfd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt @@ -154,8 +154,8 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito refresh() } - fun addSampleReleaseNote() { - repository.addSampleReleaseNote() + fun addSampleReleaseNote(callToAction: String = "action") { + repository.addSampleReleaseNote(callToAction) } fun addRemoteDonateMegaphone() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 18a0e35210..d6fa7bf7ec 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -158,6 +158,7 @@ import org.thoughtcrime.securesms.components.mention.MentionAnnotation import org.thoughtcrime.securesms.components.menu.ActionItem import org.thoughtcrime.securesms.components.menu.SignalBottomActionBar import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity +import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity.Companion.remoteBackups import org.thoughtcrime.securesms.components.settings.app.subscription.donate.CheckoutFlowActivity import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonateToSignalFragment import org.thoughtcrime.securesms.components.settings.conversation.ConversationSettingsActivity @@ -3482,14 +3483,12 @@ class ConversationFragment : } override fun onCallToAction(action: String) { - if ("gift_badge" == action) { - checkoutLauncher.launch(InAppPaymentType.ONE_TIME_GIFT) - } else if ("username_edit" == action) { - startActivity(EditProfileActivity.getIntentForUsernameEdit(requireContext())) - } else if ("calls_tab" == action) { - startActivity(MainActivity.clearTopAndOpenTab(requireContext(), MainNavigationListLocation.CALLS)) - } else if ("chat_folder" == action) { - startActivity(AppSettingsActivity.chatFolders(requireContext())) + when (action) { + "gift_badge" -> checkoutLauncher.launch(InAppPaymentType.ONE_TIME_GIFT) + "username_edit" -> startActivity(EditProfileActivity.getIntentForUsernameEdit(requireContext())) + "calls_tab" -> startActivity(MainActivity.clearTopAndOpenTab(requireContext(), MainNavigationListLocation.CALLS)) + "chat_folder" -> startActivity(AppSettingsActivity.chatFolders(requireContext())) + "remote_backups" -> startActivity(AppSettingsActivity.remoteBackups(requireContext())) } }