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/TrackersStateUseCase.kt4
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/TrackersStatisticsUseCase.kt52
2 files changed, 37 insertions, 19 deletions
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 e140b19..e8759cb 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
@@ -68,10 +68,6 @@ class TrackersStateUseCase(
return permissionsPrivacyModule.getApplicationDescription(packageName)
}
- fun getTrackers(appUid: Int): List<Tracker> {
- return trackersPrivacyModule.getTrackersForApp(appUid)
- }
-
fun isWhitelisted(appUid: Int): Boolean {
return blockTrackersPrivacyModule.isWhitelisted(appUid)
}
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 fcc3676..2ed1077 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,37 +18,59 @@
package foundation.e.privacycentralapp.domain.usecases
import foundation.e.privacymodules.trackers.ITrackTrackersPrivacyModule
+import foundation.e.privacymodules.trackers.Tracker
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.callbackFlow
class TrackersStatisticsUseCase(
private val trackTrackersPrivacyModule: ITrackTrackersPrivacyModule
) {
- fun getPastDayTrackersCalls(): List<Int> {
- return trackTrackersPrivacyModule.getPastDayTrackersCalls().pruneEmptyHistoric()
+ fun listenUpdates(): Flow<Unit> = callbackFlow {
+ val listener = object : ITrackTrackersPrivacyModule.Listener {
+ override fun onNewData() {
+ offer(Unit)
+ }
+ }
+ awaitClose { trackTrackersPrivacyModule.removeListener(listener) }
}
- fun getDayMonthYearStatistics(): Triple<List<Int>, List<Int>, List<Int>> {
- return Triple(
- trackTrackersPrivacyModule.getPastDayTrackersCalls().pruneEmptyHistoric(),
- trackTrackersPrivacyModule.getPastMonthTrackersCalls().pruneEmptyHistoric(),
- trackTrackersPrivacyModule.getPastYearTrackersCalls().pruneEmptyHistoric()
- )
+ fun listenDayStatistics(): Flow<Triple<List<Int>, Int, Int>> = callbackFlow {
+ val listener = object : ITrackTrackersPrivacyModule.Listener {
+ override fun onNewData() {
+ offer(getDayStatistics())
+ }
+ }
+
+ offer(getDayStatistics())
+ trackTrackersPrivacyModule.addListener(listener)
+ awaitClose { trackTrackersPrivacyModule.removeListener(listener) }
}
- fun getDayMonthYearCounts(): Triple<Int, Int, Int> {
+ fun getDayStatistics(): Triple<List<Int>, Int, Int> {
return Triple(
+ trackTrackersPrivacyModule.getPastDayTrackersCalls(),
trackTrackersPrivacyModule.getPastDayTrackersCount(),
- trackTrackersPrivacyModule.getPastMonthTrackersCount(),
- trackTrackersPrivacyModule.getPastYearTrackersCount()
+ trackTrackersPrivacyModule.getTrackersCount()
)
}
- fun getPastDayTrackersCount(): Int {
- return trackTrackersPrivacyModule.getPastDayTrackersCount()
+ fun getDayMonthYearStatistics(): Triple<
+ Pair<List<Int>, Int>,
+ Pair<List<Int>, Int>,
+ Pair<List<Int>, Int>> {
+ return with(trackTrackersPrivacyModule) {
+ Triple(
+ getPastDayTrackersCalls() to getPastDayTrackersCount(),
+ getPastMonthTrackersCalls() to getPastMonthTrackersCount(),
+ getPastYearTrackersCalls() to getPastYearTrackersCount()
+ )
+ }
}
- fun getTrackersCount(): Int {
- return trackTrackersPrivacyModule.getTrackersCount()
+ fun getTrackers(appUid: Int): List<Tracker> {
+ return trackTrackersPrivacyModule.getTrackersForApp(appUid)
}
private fun List<Int>.pruneEmptyHistoric(): List<Int> {