summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt
diff options
context:
space:
mode:
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.kt43
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()
}