diff options
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/domain')
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> { |
