aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/privacycentralapp/domain
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2022-09-30 06:23:47 +0000
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2022-09-30 06:23:47 +0000
commit613617234962627eb974d9e058df0efabc18177b (patch)
tree5eb6c83733d44f719d696d5e7e3b19c52a413bcf /app/src/main/java/foundation/e/privacycentralapp/domain
parent893b34402f3990a818bf3e75edc924468eb30811 (diff)
parente73ab3e91b125f9f868c9ffe3ed8042d4f338673 (diff)
downloadadvanced-privacy-613617234962627eb974d9e058df0efabc18177b.tar.gz
Merge branch '5907-deprecated_trackers_in_db' into 'main'
5907: Hide deprecated trackers from trackers counts. See merge request e/os/advanced-privacy!93
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/domain')
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt43
1 files changed, 26 insertions, 17 deletions
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt
index 52e0bad..0a47bc5 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt
@@ -18,7 +18,6 @@
package foundation.e.privacycentralapp.domain.usecases
import android.content.res.Resources
-import android.util.Log
import foundation.e.privacycentralapp.R
import foundation.e.privacycentralapp.common.throttleFirst
import foundation.e.privacycentralapp.data.repositories.AppListsRepository
@@ -156,6 +155,28 @@ class TrackersStatisticsUseCase(
return trackers.sortedBy { it.label.lowercase() }
}
+ fun getTrackersWithWhiteList(appUid: Int): List<Pair<Tracker, Boolean>> {
+ val trackers: List<Tracker>
+ val whiteListedTrackersIds: Set<String>
+ if (appUid == appListsRepository.dummySystemApp.uid) {
+ val hiddenApps = appListsRepository.getHiddenSystemApps()
+ trackers = trackTrackersPrivacyModule.getTrackers(hiddenApps.map { it.uid })
+
+ whiteListedTrackersIds = hiddenApps.fold(HashSet<String>()) { acc, app ->
+ acc.addAll(blockTrackersPrivacyModule.getWhiteList(app.uid).map { it.id })
+ acc
+ }
+
+ } else {
+ trackers = trackTrackersPrivacyModule.getTrackersForApp(appUid)
+ whiteListedTrackersIds = blockTrackersPrivacyModule.getWhiteList(appUid)
+ .map { it.id }.toSet()
+ }
+
+ return trackers.sortedBy { it.label.lowercase() }.map { tracker -> tracker to whiteListedTrackersIds.any { tracker.id == it }}
+ }
+
+
fun getCalls(appUid: Int): Pair<Int, Int> {
return if (appUid == appListsRepository.dummySystemApp.uid) {
appListsRepository.getHiddenSystemApps().map {
@@ -168,6 +189,8 @@ class TrackersStatisticsUseCase(
fun getAppsWithCounts(): Flow<List<AppWithCounts>> {
val trackersCounts = trackTrackersPrivacyModule.getTrackersCountByApp()
+ val hiddenAppsTrackersWithWhiteList =
+ getTrackersWithWhiteList(appListsRepository.dummySystemApp.uid)
return appListsRepository.getVisibleApps()
.map { apps ->
@@ -178,12 +201,12 @@ class TrackersStatisticsUseCase(
isWhitelisted = !blockTrackersPrivacyModule.isBlockingEnabled() ||
isWhitelisted(app.uid, appListsRepository, blockTrackersPrivacyModule),
trackersCount = if (app.uid == appListsRepository.dummySystemApp.uid) {
- getHiddenSystemAppsTrackersCount()
+ hiddenAppsTrackersWithWhiteList.size
} else {
trackersCounts.getOrDefault(app.uid, 0)
},
whiteListedTrackersCount = if (app.uid == appListsRepository.dummySystemApp.uid) {
- getHiddenSystemAppWhitelistedTrackersCount()
+ hiddenAppsTrackersWithWhiteList.count { it.second }
} else {
blockTrackersPrivacyModule.getWhiteList(app.uid).size
},
@@ -198,20 +221,6 @@ class TrackersStatisticsUseCase(
}
}
- private fun getHiddenSystemAppsTrackersCount(): Int {
- return trackTrackersPrivacyModule.getTrackersCount(
- appListsRepository.getHiddenSystemApps().map { it.uid }
- )
- }
-
- private fun getHiddenSystemAppWhitelistedTrackersCount(): Int {
- return appListsRepository.getHiddenSystemApps().fold(HashSet<String>()) { acc, app ->
- acc.addAll(blockTrackersPrivacyModule.getWhiteList(app.uid).map { it.id })
- acc
- }.size
- }
-
-
private val mostLeakedAppsComparator: Comparator<AppWithCounts> = Comparator { o1, o2 ->
val leaks = o2.leaks - o1.leaks
if (leaks != 0) leaks else {