diff options
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt')
-rw-r--r-- | app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt b/app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt index 589aa74..9dbfea9 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt @@ -29,9 +29,12 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import foundation.e.advancedprivacy.R -import foundation.e.advancedprivacy.domain.entities.ShowFeaturesWarning -import foundation.e.advancedprivacy.domain.usecases.IpScramblingStateUseCase +import foundation.e.advancedprivacy.domain.entities.MainFeatures +import foundation.e.advancedprivacy.domain.entities.MainFeatures.FakeLocation +import foundation.e.advancedprivacy.domain.entities.MainFeatures.IpScrambling +import foundation.e.advancedprivacy.domain.entities.MainFeatures.TrackersControl import foundation.e.advancedprivacy.domain.usecases.ShowFeaturesWarningUseCase +import foundation.e.advancedprivacy.domain.usecases.VpnSupervisorUseCase import foundation.e.advancedprivacy.main.MainActivity import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.launchIn @@ -57,7 +60,7 @@ class WarningDialog : AppCompatActivity() { private fun createIntent( context: Context, - feature: ShowFeaturesWarning, + feature: MainFeatures, ): Intent { val intent = Intent(context, WarningDialog::class.java) intent.putExtra(PARAM_FEATURE, feature) @@ -67,13 +70,14 @@ class WarningDialog : AppCompatActivity() { } private var isWaitingForResult = false + private lateinit var feature: MainFeatures override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) window.setBackgroundDrawable(ColorDrawable(0)) - val feature = try { - intent.getParcelableExtra<ShowFeaturesWarning>(PARAM_FEATURE)!! + feature = try { + intent.getParcelableExtra<MainFeatures>(PARAM_FEATURE)!! } catch (e: Exception) { Timber.e(e, "Missing mandatory activity parameter") finish() @@ -82,7 +86,7 @@ class WarningDialog : AppCompatActivity() { showWarningDialog(feature) } - private fun showWarningDialog(feature: ShowFeaturesWarning) { + private fun showWarningDialog(feature: MainFeatures) { val builder = AlertDialog.Builder(this) builder.setOnDismissListener { if (!isWaitingForResult) finish() } @@ -92,23 +96,23 @@ class WarningDialog : AppCompatActivity() { builder.setMessage( when (feature) { - ShowFeaturesWarning.TrackersControl -> R.string.warningdialog_trackers_message - ShowFeaturesWarning.FakeLocation -> R.string.warningdialog_location_message - is ShowFeaturesWarning.IpScrambling -> R.string.warningdialog_ipscrambling_message + is TrackersControl -> R.string.warningdialog_trackers_message + is FakeLocation -> R.string.warningdialog_location_message + is IpScrambling -> R.string.warningdialog_ipscrambling_message } ) builder.setTitle( when (feature) { - ShowFeaturesWarning.TrackersControl -> R.string.warningdialog_trackers_title - ShowFeaturesWarning.FakeLocation -> R.string.warningdialog_location_title - is ShowFeaturesWarning.IpScrambling -> R.string.warningdialog_ipscrambling_title + is TrackersControl -> R.string.warningdialog_trackers_title + is FakeLocation -> R.string.warningdialog_location_title + is IpScrambling -> R.string.warningdialog_ipscrambling_title } ) builder.setPositiveButton( when (feature) { - is ShowFeaturesWarning.IpScrambling -> R.string.warningdialog_ipscrambling_cta + is IpScrambling -> R.string.warningdialog_ipscrambling_cta else -> R.string.ok } ) { _, _ -> @@ -117,7 +121,7 @@ class WarningDialog : AppCompatActivity() { .doNotShowAgain(feature) } - val vpnDisclaimerIntent = (feature as? ShowFeaturesWarning.IpScrambling) + val vpnDisclaimerIntent = (feature as? MainFeatures.IpScrambling) ?.startVpnDisclaimer if (vpnDisclaimerIntent != null) { @@ -126,7 +130,7 @@ class WarningDialog : AppCompatActivity() { } else finish() } - if (feature == ShowFeaturesWarning.TrackersControl) { + if (feature is MainFeatures.TrackersControl) { builder.setNeutralButton(R.string.warningdialog_trackers_secondary_cta) { _, _ -> MainActivity.deepLinkBuilder(this) .setDestination(R.id.trackersFragment) @@ -135,16 +139,17 @@ class WarningDialog : AppCompatActivity() { finish() } } - builder.show() } private val launchAndroidVpnDisclaimer = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - val ipScramblingStateUseCase = get<IpScramblingStateUseCase>(IpScramblingStateUseCase::class.java) + val vpnSupervisorUseCase = get<VpnSupervisorUseCase>( + VpnSupervisorUseCase::class.java + ) if (result.resultCode == Activity.RESULT_OK) { - ipScramblingStateUseCase.startIpScrambling() + vpnSupervisorUseCase.startVpnService(feature) } else { - ipScramblingStateUseCase.toggle(false) + vpnSupervisorUseCase.cancelStartVpnService(feature) } finish() } |