summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt
diff options
context:
space:
mode:
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.kt25
1 files changed, 12 insertions, 13 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 c99d5f1..f8a0986 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
@@ -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
@@ -17,11 +18,11 @@
package foundation.e.advancedprivacy.domain.usecases
-import foundation.e.advancedprivacy.data.repositories.LocalStateRepository
-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 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.repositories.LocalStateRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.dropWhile
@@ -33,24 +34,22 @@ class ShowFeaturesWarningUseCase(
private val localStateRepository: LocalStateRepository
) {
- fun showWarning(): Flow<ShowFeaturesWarning> {
+ fun showWarning(): Flow<MainFeatures> {
return merge(
- localStateRepository.blockTrackers.drop(1).dropWhile { !it }
- .filter { it && !localStateRepository.hideWarningTrackers }
- .map { TrackersControl },
localStateRepository.fakeLocationEnabled.drop(1).dropWhile { !it }
.filter { it && !localStateRepository.hideWarningLocation }
.map { FakeLocation },
localStateRepository.startVpnDisclaimer.filter {
- it.startVpnDisclaimer != null || !localStateRepository.hideWarningIpScrambling
+ (it is IpScrambling && !localStateRepository.hideWarningIpScrambling) ||
+ (it is TrackersControl && !localStateRepository.hideWarningTrackers)
}
)
}
- fun doNotShowAgain(feature: ShowFeaturesWarning) {
+ fun doNotShowAgain(feature: MainFeatures) {
when (feature) {
- TrackersControl -> localStateRepository.hideWarningTrackers = true
- FakeLocation -> localStateRepository.hideWarningLocation = true
+ is TrackersControl -> localStateRepository.hideWarningTrackers = true
+ is FakeLocation -> localStateRepository.hideWarningLocation = true
is IpScrambling -> localStateRepository.hideWarningIpScrambling = true
}
}