diff --git a/app/src/main/java/org/thoughtcrime/securesms/billing/upgrade/UpgradeToPaidTierBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/billing/upgrade/UpgradeToPaidTierBottomSheet.kt index 514683879d..6a86ad9a47 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/billing/upgrade/UpgradeToPaidTierBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/billing/upgrade/UpgradeToPaidTierBottomSheet.kt @@ -12,7 +12,9 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.core.os.bundleOf +import androidx.fragment.app.Fragment import androidx.fragment.app.setFragmentResult +import androidx.fragment.app.setFragmentResultListener import kotlinx.coroutines.rx3.asFlowable import org.signal.core.ui.Dialogs import org.thoughtcrime.securesms.backup.v2.MessageBackupTier @@ -32,6 +34,18 @@ abstract class UpgradeToPaidTierBottomSheet : ComposeBottomSheetDialogFragment() companion object { const val RESULT_KEY = "UpgradeToPaidTierBottomSheet.RESULT_KEY" + + fun addResultListener(fragment: Fragment, onUpgradedToPaidTier: () -> Unit) { + fragment.setFragmentResultListener(RESULT_KEY) { key, bundle -> + if (RESULT_KEY == key) { + val didCompleteSignup = bundle.getBoolean(RESULT_KEY, false) + + if (didCompleteSignup) { + onUpgradedToPaidTier() + } + } + } + } } private val viewModel: MessageBackupsFlowViewModel by viewModel { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsFragment.kt index 0cd0d36e02..70291e5e8a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsFragment.kt @@ -5,6 +5,7 @@ package org.thoughtcrime.securesms.components.settings.app.storage +import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.widget.TextView @@ -63,6 +64,7 @@ import org.signal.core.ui.Texts import org.signal.core.ui.theme.SignalTheme import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.billing.upgrade.UpgradeToEnableOptimizedStorageSheet +import org.thoughtcrime.securesms.billing.upgrade.UpgradeToPaidTierBottomSheet import org.thoughtcrime.securesms.compose.ComposeFragment import org.thoughtcrime.securesms.database.MediaTable import org.thoughtcrime.securesms.keyvalue.KeepMessagesDuration @@ -82,6 +84,12 @@ class ManageStorageSettingsFragment : ComposeFragment() { private val viewModel by viewModel { ManageStorageSettingsViewModel() } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + UpgradeToPaidTierBottomSheet.addResultListener(this) { + viewModel.setOptimizeStorage(true) + } + } + @ExperimentalMaterial3Api @Composable override fun FragmentContent() {