diff options
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt')
-rw-r--r-- | app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt b/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt index 11bce86..c99d5f1 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt @@ -18,7 +18,10 @@ package foundation.e.advancedprivacy.domain.usecases import foundation.e.advancedprivacy.data.repositories.LocalStateRepository -import foundation.e.advancedprivacy.domain.entities.MainFeatures +import foundation.e.advancedprivacy.domain.entities.ShowFeaturesWarning +import foundation.e.advancedprivacy.domain.entities.ShowFeaturesWarning.FakeLocation +import foundation.e.advancedprivacy.domain.entities.ShowFeaturesWarning.IpScrambling +import foundation.e.advancedprivacy.domain.entities.ShowFeaturesWarning.TrackersControl import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.dropWhile @@ -30,25 +33,25 @@ class ShowFeaturesWarningUseCase( private val localStateRepository: LocalStateRepository ) { - fun showWarning(): Flow<MainFeatures> { + fun showWarning(): Flow<ShowFeaturesWarning> { return merge( localStateRepository.blockTrackers.drop(1).dropWhile { !it } .filter { it && !localStateRepository.hideWarningTrackers } - .map { MainFeatures.TRACKERS_CONTROL }, + .map { TrackersControl }, localStateRepository.fakeLocationEnabled.drop(1).dropWhile { !it } .filter { it && !localStateRepository.hideWarningLocation } - .map { MainFeatures.FAKE_LOCATION }, - localStateRepository.ipScramblingSetting.drop(1).dropWhile { !it } - .filter { it && !localStateRepository.hideWarningIpScrambling } - .map { MainFeatures.IP_SCRAMBLING } + .map { FakeLocation }, + localStateRepository.startVpnDisclaimer.filter { + it.startVpnDisclaimer != null || !localStateRepository.hideWarningIpScrambling + } ) } - fun doNotShowAgain(feature: MainFeatures) { + fun doNotShowAgain(feature: ShowFeaturesWarning) { when (feature) { - MainFeatures.TRACKERS_CONTROL -> localStateRepository.hideWarningTrackers = true - MainFeatures.FAKE_LOCATION -> localStateRepository.hideWarningLocation = true - MainFeatures.IP_SCRAMBLING -> localStateRepository.hideWarningIpScrambling = true + TrackersControl -> localStateRepository.hideWarningTrackers = true + FakeLocation -> localStateRepository.hideWarningLocation = true + is IpScrambling -> localStateRepository.hideWarningIpScrambling = true } } } |