aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/privacycentralapp/domain
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/domain')
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/GetQuickPrivacyStateUseCase.kt3
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/IpScramblingStateUseCase.kt44
2 files changed, 25 insertions, 22 deletions
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/GetQuickPrivacyStateUseCase.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/GetQuickPrivacyStateUseCase.kt
index e1f773f..688bdc4 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/GetQuickPrivacyStateUseCase.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/GetQuickPrivacyStateUseCase.kt
@@ -22,6 +22,7 @@ import foundation.e.privacycentralapp.domain.entities.InternetPrivacyMode
import foundation.e.privacycentralapp.domain.entities.LocationMode
import foundation.e.privacycentralapp.domain.entities.QuickPrivacyState
import foundation.e.privacycentralapp.domain.entities.TrackerMode
+import foundation.e.privacymodules.permissions.data.ApplicationDescription
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.SharedFlow
@@ -106,6 +107,6 @@ class GetQuickPrivacyStateUseCase(
localStateRepository.setShowQuickPrivacyDisabledMessage(false)
}
- val otherVpnRunning: SharedFlow<Boolean> = localStateRepository.otherVpnRunning
+ val otherVpnRunning: SharedFlow<ApplicationDescription> = localStateRepository.otherVpnRunning
}
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/IpScramblingStateUseCase.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/IpScramblingStateUseCase.kt
index 3320721..a0003eb 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/IpScramblingStateUseCase.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/IpScramblingStateUseCase.kt
@@ -126,30 +126,32 @@ class IpScramblingStateUseCase(
}
private fun applySettings(isQuickPrivacyEnabled: Boolean, isIpScramblingEnabled: Boolean) {
+ val mode = localStateRepository.internetPrivacyMode.value
when {
- isQuickPrivacyEnabled && isIpScramblingEnabled -> when (localStateRepository.internetPrivacyMode.value) {
- InternetPrivacyMode.REAL_IP, InternetPrivacyMode.REAL_IP_LOADING -> {
- var intent = ipScramblerModule.prepareAndroidVpn()
- if (intent != null) {
- permissionsPrivacyModule.setVpnPackageAuthorization(appDesc.packageName)
- intent = ipScramblerModule.prepareAndroidVpn()
- }
-
- if (intent != null) {
- coroutineScope.launch {
- localStateRepository.emitOtherVpnRunning()
- }
- localStateRepository.setIpScramblingSetting(enabled = false)
- } else {
- ipScramblerModule.start(enableNotification = false)
- }
- }
- else -> {}
+ isQuickPrivacyEnabled && isIpScramblingEnabled &&
+ mode in setOf(InternetPrivacyMode.REAL_IP, InternetPrivacyMode.REAL_IP_LOADING) ->
+ applyStartIpScrambling()
+
+ mode in setOf(InternetPrivacyMode.HIDE_IP, InternetPrivacyMode.HIDE_IP_LOADING) ->
+ ipScramblerModule.stop()
+ else -> {}
}
- else -> when (localStateRepository.internetPrivacyMode.value) {
- InternetPrivacyMode.HIDE_IP, InternetPrivacyMode.HIDE_IP_LOADING -> ipScramblerModule.stop()
- else -> {}
+ }
+
+ private fun applyStartIpScrambling() {
+ ipScramblerModule.prepareAndroidVpn()?.let {
+ permissionsPrivacyModule.setVpnPackageAuthorization(appDesc.packageName)
+ permissionsPrivacyModule.getAlwaysOnVpnPackage()
+ }?.let {
+ coroutineScope.launch {
+ localStateRepository.emitOtherVpnRunning(
+ permissionsPrivacyModule.getApplicationDescription(packageName = it, withIcon = false)
+ )
}
+ localStateRepository.setIpScramblingSetting(enabled = false)
+
+ }?: run {
+ ipScramblerModule.start(enableNotification = false)
}
}