aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/advancedprivacy/common
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-11-06 08:14:27 +0000
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-11-06 08:14:27 +0000
commit95d9421d4d982562f83db019e5c3f59c5acfcdf4 (patch)
tree56c69c0911e512aaaecd22cb02f2c1305f42d8e2 /app/src/main/java/foundation/e/advancedprivacy/common
parent50e213ce1db332b95af5018e553c0ee2cd810e39 (diff)
parent9d55978063947d5865bb3fa4e0c2ebef78f78812 (diff)
downloadadvanced-privacy-95d9421d4d982562f83db019e5c3f59c5acfcdf4.tar.gz
Merge branch 'epic18-standalone_trackers_tor' into 'main'
epic18: Manage VPN services for Tor or Tracker control See merge request e/os/advanced-privacy!149
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/common')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt8
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt43
2 files changed, 30 insertions, 21 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt b/app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt
index d73f770..562144d 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt
@@ -1,4 +1,5 @@
/*
+ * Copyright (C) 2023 MURENA SAS
* Copyright (C) 2022 E FOUNDATION
*
* This program is free software: you can redistribute it and/or modify
@@ -21,12 +22,15 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import foundation.e.advancedprivacy.Notifications
-import foundation.e.advancedprivacy.data.repositories.LocalStateRepository
+import foundation.e.advancedprivacy.domain.repositories.LocalStateRepository
+import org.koin.java.KoinJavaComponent.inject
class BootCompletedReceiver : BroadcastReceiver() {
+
+ private val localStateRepository by inject<LocalStateRepository>(LocalStateRepository::class.java)
+
override fun onReceive(context: Context, intent: Intent?) {
if (intent?.action == Intent.ACTION_BOOT_COMPLETED) {
- val localStateRepository = LocalStateRepository(context)
if (localStateRepository.firstBoot) {
Notifications.showFirstBootNotification(context)
localStateRepository.firstBoot = false
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()
}