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/IpScramblingStateUseCase.kt9
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStateUseCase.kt36
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt28
3 files changed, 42 insertions, 31 deletions
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 9216233..e753d7b 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
@@ -97,6 +97,11 @@ class IpScramblingStateUseCase(
mutable.removeAll(getHiddenPackageNames())
mutable.add(appListsRepository.dummySystemApp.packageName)
whitelist = mutable
+ } else if (AppListsRepository.appsCompatibiltyPNames.any { it in whitelist }) {
+ val mutable = whitelist.toMutableSet()
+ mutable.removeAll(AppListsRepository.appsCompatibiltyPNames)
+ mutable.add(appListsRepository.dummyAppsCompatibilityApp.packageName)
+ whitelist = mutable
}
return whitelist
@@ -109,12 +114,16 @@ class IpScramblingStateUseCase(
if (visibleList.contains(packageName)) {
if (packageName == appListsRepository.dummySystemApp.packageName) {
rawList.removeAll(getHiddenPackageNames())
+ } else if (packageName == appListsRepository.dummyAppsCompatibilityApp.packageName) {
+ rawList.removeAll(AppListsRepository.appsCompatibiltyPNames)
} else {
rawList.remove(packageName)
}
} else {
if (packageName == appListsRepository.dummySystemApp.packageName) {
rawList.addAll(getHiddenPackageNames())
+ } else if (packageName == appListsRepository.dummyAppsCompatibilityApp.packageName) {
+ rawList.addAll(AppListsRepository.appsCompatibiltyPNames)
} else {
rawList.add(packageName)
}
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStateUseCase.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStateUseCase.kt
index 11f0466..820073b 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStateUseCase.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStateUseCase.kt
@@ -54,10 +54,6 @@ class TrackersStateUseCase(
blockTrackersPrivacyModule.isWhiteListEmpty()
}
- fun getApplicationDescription(packageName: String): ApplicationDescription? {
- return appListsRepository.getApplicationDescription(packageName)
- }
-
fun getApplicationDescription(appUid: Int): ApplicationDescription? {
return appListsRepository.getApplicationDescription(appUid)
}
@@ -66,32 +62,18 @@ class TrackersStateUseCase(
return isWhitelisted(appUid, appListsRepository, blockTrackersPrivacyModule)
}
- fun getTrackersWhitelistIds(appUid: Int): List<String> {
- return if (appUid == appListsRepository.dummySystemApp.uid) {
- appListsRepository.getAllProfilesHiddenSystemApps().fold(mutableSetOf<String>()) { acc, app ->
- acc.addAll(blockTrackersPrivacyModule.getWhiteList(app.uid).map { it.id })
- acc
- }.toList()
- } else blockTrackersPrivacyModule.getWhiteList(appUid).map { it.id }
- }
-
fun toggleAppWhitelist(appUid: Int, isWhitelisted: Boolean) {
- if (appUid == appListsRepository.dummySystemApp.uid) {
- appListsRepository.getAllProfilesHiddenSystemApps().forEach {
- blockTrackersPrivacyModule.setWhiteListed(it.uid, isWhitelisted)
- }
- } else blockTrackersPrivacyModule.setWhiteListed(appUid, isWhitelisted)
+ appListsRepository.applyForHiddenApps(appUid) { uid ->
+ blockTrackersPrivacyModule.setWhiteListed(uid, isWhitelisted)
+ }
updateAllTrackersBlockedState()
}
fun blockTracker(appUid: Int, tracker: Tracker, isBlocked: Boolean) {
- if (appUid == appListsRepository.dummySystemApp.uid) {
- appListsRepository.getAllProfilesHiddenSystemApps().forEach {
- blockTrackersPrivacyModule.setWhiteListed(tracker, it.uid, !isBlocked)
- }
- } else blockTrackersPrivacyModule.setWhiteListed(tracker, appUid, !isBlocked)
-
+ appListsRepository.applyForHiddenApps(appUid) { uid ->
+ blockTrackersPrivacyModule.setWhiteListed(tracker, uid, !isBlocked)
+ }
updateAllTrackersBlockedState()
}
@@ -106,9 +88,5 @@ fun isWhitelisted(
appListsRepository: AppListsRepository,
blockTrackersPrivacyModule: IBlockTrackersPrivacyModule
): Boolean {
- return if (appUid == appListsRepository.dummySystemApp.uid) {
- appListsRepository.getAllProfilesHiddenSystemApps().any {
- blockTrackersPrivacyModule.isWhitelisted(it.uid)
- }
- } else blockTrackersPrivacyModule.isWhitelisted(appUid)
+ return appListsRepository.anyForHiddenApps(appUid, blockTrackersPrivacyModule::isWhitelisted)
}
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 404032b..cc6ec45 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
@@ -166,6 +166,10 @@ class TrackersStatisticsUseCase(
appListsRepository.getAllProfilesHiddenSystemApps().map {
trackTrackersPrivacyModule.getTrackersForApp(it.uid)
}.flatten().distinctBy { it.id }
+ } else if (appUid == appListsRepository.dummyAppsCompatibilityApp.uid) {
+ appListsRepository.getAllProfilesACApps().map {
+ trackTrackersPrivacyModule.getTrackersForApp(it.uid)
+ }.flatten().distinctBy { it.id }
} else trackTrackersPrivacyModule.getTrackersForApp(appUid)
return trackers.sortedBy { it.label.lowercase() }
@@ -182,6 +186,14 @@ class TrackersStatisticsUseCase(
acc.addAll(blockTrackersPrivacyModule.getWhiteList(app.uid).map { it.id })
acc
}
+ } else if (appUid == appListsRepository.dummyAppsCompatibilityApp.uid) {
+ val acApps = appListsRepository.getAllProfilesACApps()
+ trackers = trackTrackersPrivacyModule.getTrackers(acApps.map { it.uid })
+
+ whiteListedTrackersIds = acApps.fold(HashSet<String>()) { acc, app ->
+ acc.addAll(blockTrackersPrivacyModule.getWhiteList(app.uid).map { it.id })
+ acc
+ }
} else {
trackers = trackTrackersPrivacyModule.getTrackersForApp(appUid)
whiteListedTrackersIds = blockTrackersPrivacyModule.getWhiteList(appUid)
@@ -198,6 +210,12 @@ class TrackersStatisticsUseCase(
}.reduce { (accBlocked, accLeaked), (blocked, leaked) ->
accBlocked + blocked to accLeaked + leaked
}
+ } else if (appUid == appListsRepository.dummyAppsCompatibilityApp.uid) {
+ appListsRepository.getAllProfilesACApps().map {
+ trackTrackersPrivacyModule.getPastDayTrackersCallsForApp(it.uid)
+ }.reduce { (accBlocked, accLeaked), (blocked, leaked) ->
+ accBlocked + blocked to accLeaked + leaked
+ }
} else trackTrackersPrivacyModule.getPastDayTrackersCallsForApp(appUid)
}
@@ -205,6 +223,8 @@ class TrackersStatisticsUseCase(
val trackersCounts = trackTrackersPrivacyModule.getTrackersCountByApp()
val hiddenAppsTrackersWithWhiteList =
getTrackersWithWhiteList(appListsRepository.dummySystemApp.uid)
+ val acAppsTrackersWithWhiteList =
+ getTrackersWithWhiteList(appListsRepository.dummyAppsCompatibilityApp.uid)
return appListsRepository.getAllProfilesVisibleApps()
.map { apps ->
@@ -216,19 +236,23 @@ class TrackersStatisticsUseCase(
isWhitelisted(app.uid, appListsRepository, blockTrackersPrivacyModule),
trackersCount = if (app.uid == appListsRepository.dummySystemApp.uid) {
hiddenAppsTrackersWithWhiteList.size
+ } else if (app.uid == appListsRepository.dummyAppsCompatibilityApp.uid) {
+ acAppsTrackersWithWhiteList.size
} else {
trackersCounts.getOrDefault(app.uid, 0)
},
whiteListedTrackersCount = if (app.uid == appListsRepository.dummySystemApp.uid) {
hiddenAppsTrackersWithWhiteList.count { it.second }
+ } else if (app.uid == appListsRepository.dummyAppsCompatibilityApp.uid) {
+ acAppsTrackersWithWhiteList.count { it.second }
} else {
blockTrackersPrivacyModule.getWhiteList(app.uid).size
},
- blockedLeaks = appListsRepository.foldForHiddenSystemApp(app.uid) {
+ blockedLeaks = appListsRepository.foldForHiddenApp(app.uid) {
appUid ->
callsByApp.getOrDefault(appUid, 0 to 0).first
},
- leaks = appListsRepository.foldForHiddenSystemApp(app.uid) {
+ leaks = appListsRepository.foldForHiddenApp(app.uid) {
appUid ->
callsByApp.getOrDefault(appUid, 0 to 0).second
}