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.kt6
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/IpScramblingStateUseCase.kt24
2 files changed, 19 insertions, 11 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 a9c608e..e1f773f 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
@@ -17,7 +17,6 @@
package foundation.e.privacycentralapp.domain.usecases
-import android.util.Log
import foundation.e.privacycentralapp.data.repositories.LocalStateRepository
import foundation.e.privacycentralapp.domain.entities.InternetPrivacyMode
import foundation.e.privacycentralapp.domain.entities.LocationMode
@@ -25,8 +24,8 @@ import foundation.e.privacycentralapp.domain.entities.QuickPrivacyState
import foundation.e.privacycentralapp.domain.entities.TrackerMode
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch
@@ -106,4 +105,7 @@ class GetQuickPrivacyStateUseCase(
fun resetQuickPrivacyDisabledMessage() {
localStateRepository.setShowQuickPrivacyDisabledMessage(false)
}
+
+ val otherVpnRunning: SharedFlow<Boolean> = 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 c7c434c..3320721 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
@@ -25,7 +25,6 @@ import foundation.e.privacymodules.permissions.IPermissionsPrivacyModule
import foundation.e.privacymodules.permissions.data.ApplicationDescription
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.channels.awaitClose
-import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.callbackFlow
@@ -38,11 +37,10 @@ class IpScramblingStateUseCase(
private val appDesc: ApplicationDescription,
private val localStateRepository: LocalStateRepository,
private val appListsRepository: AppListsRepository,
- coroutineScope: CoroutineScope
+ private val coroutineScope: CoroutineScope
) {
- val _configuredMode = MutableStateFlow(localStateRepository.isIpScramblingEnabled)
- val configuredMode: StateFlow<Boolean> = _configuredMode
+ val configuredMode: StateFlow<Boolean> = localStateRepository.ipScramblingSetting
val internetPrivacyMode: StateFlow<InternetPrivacyMode> = callbackFlow {
val listener = object : IIpScramblerModule.Listener {
@@ -71,7 +69,7 @@ class IpScramblingStateUseCase(
init {
coroutineScope.launch {
localStateRepository.quickPrivacyEnabledFlow.collect {
- applySettings(it, localStateRepository.isIpScramblingEnabled)
+ applySettings(it, localStateRepository.ipScramblingSetting.value)
}
}
@@ -81,8 +79,7 @@ class IpScramblingStateUseCase(
}
fun toggle(hideIp: Boolean) {
- localStateRepository.isIpScramblingEnabled = hideIp
- _configuredMode.value = hideIp
+ localStateRepository.setIpScramblingSetting(enabled = hideIp)
if (!localStateRepository.isQuickPrivacyEnabled) {
localStateRepository.setShowQuickPrivacyDisabledMessage(true)
@@ -132,11 +129,20 @@ class IpScramblingStateUseCase(
when {
isQuickPrivacyEnabled && isIpScramblingEnabled -> when (localStateRepository.internetPrivacyMode.value) {
InternetPrivacyMode.REAL_IP, InternetPrivacyMode.REAL_IP_LOADING -> {
- val intent = ipScramblerModule.prepareAndroidVpn()
+ 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)
}
- ipScramblerModule.start(enableNotification = false)
}
else -> {}
}