diff options
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/domain')
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 -> {} } |
