From 5cdeb5520c74fbaab1909dc1876361ed73f11b55 Mon Sep 17 00:00:00 2001 From: jacquarg Date: Tue, 12 Apr 2022 09:09:40 +0200 Subject: 5249 display whitelisted trackers count in app trackers menu subtitle. --- .../features/dashboard/DashboardFeature.kt | 52 +++++++++------------- .../features/dashboard/DashboardFragment.kt | 2 +- 2 files changed, 23 insertions(+), 31 deletions(-) (limited to 'app/src/main/java/foundation/e/privacycentralapp/features') diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt index 8a4ee54..e8302f4 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt @@ -30,6 +30,7 @@ import foundation.e.privacycentralapp.domain.usecases.IpScramblingStateUseCase import foundation.e.privacycentralapp.domain.usecases.TrackersStateUseCase import foundation.e.privacycentralapp.domain.usecases.TrackersStatisticsUseCase import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge @@ -53,8 +54,7 @@ class DashboardFeature( val isAllTrackersBlocked: Boolean = false, val locationMode: LocationMode = LocationMode.REAL_LOCATION, val internetPrivacyMode: InternetPrivacyMode = InternetPrivacyMode.REAL_IP, - val totalGraph: Int? = null, - // val graphData + val leakedTrackersCount: Int? = null, val trackersCount: Int? = null, val activeTrackersCount: Int? = null, val dayStatistics: List>? = null, @@ -87,7 +87,8 @@ class DashboardFeature( val dayStatistics: List>, val dayLabels: List, val dayTrackersCount: Int, - val trackersCount: Int + val trackersCount: Int, + val activeTrackersCount: Int ) : Effect() data class TrackersBlockedUpdatedEffect(val areAllTrackersBlocked: Boolean) : Effect() data class UpdateLocationModeEffect(val mode: LocationMode) : Effect() @@ -117,8 +118,9 @@ class DashboardFeature( is Effect.TrackersStatisticsUpdatedEffect -> state.copy( dayStatistics = effect.dayStatistics, dayLabels = effect.dayLabels, - activeTrackersCount = effect.dayTrackersCount, - trackersCount = effect.trackersCount + leakedTrackersCount = effect.dayTrackersCount, + trackersCount = effect.trackersCount, + activeTrackersCount = effect.activeTrackersCount ) is Effect.TrackersBlockedUpdatedEffect -> state.copy( @@ -133,7 +135,7 @@ class DashboardFeature( when (action) { Action.TogglePrivacyAction -> { getPrivacyStateUseCase.toggle() - flowOf(Effect.NoEffect) + flowOf(Effect.NewStatisticsAvailablesEffect) } Action.InitAction -> merge( @@ -146,18 +148,6 @@ class DashboardFeature( trackersStatisticsUseCase.listenUpdates().map { Effect.NewStatisticsAvailablesEffect }, - flowOf( - // trackersStatisticsUseCase.listenDayStatistics().map { - trackersStatisticsUseCase.getDayStatistics().let { - (dayStatistics, trackersCount) -> - Effect.TrackersStatisticsUpdatedEffect( - dayStatistics = dayStatistics.callsBlockedNLeaked, - dayLabels = dayStatistics.periods, - dayTrackersCount = dayStatistics.trackersCount, - trackersCount = trackersCount - ) - } - ), trackersStateUseCase.areAllTrackersBlocked.map { Effect.TrackersBlockedUpdatedEffect(it) }, @@ -171,18 +161,20 @@ class DashboardFeature( Effect.OpenInternetActivityPrivacyEffect ) Action.ShowTrackers -> flowOf(Effect.OpenTrackersEffect) - Action.FetchStatistics -> flowOf( - // trackersStatisticsUseCase.listenDayStatistics().map { - trackersStatisticsUseCase.getDayStatistics().let { - (dayStatistics, trackersCount) -> - Effect.TrackersStatisticsUpdatedEffect( - dayStatistics = dayStatistics.callsBlockedNLeaked, - dayLabels = dayStatistics.periods, - dayTrackersCount = dayStatistics.trackersCount, - trackersCount = trackersCount - ) - } - ) + Action.FetchStatistics -> flow { + emit( + trackersStatisticsUseCase.getDayStatistics() + .let { (dayStatistics, trackersCount) -> + Effect.TrackersStatisticsUpdatedEffect( + dayStatistics = dayStatistics.callsBlockedNLeaked, + dayLabels = dayStatistics.periods, + dayTrackersCount = dayStatistics.trackersCount, + trackersCount = trackersCount, + activeTrackersCount = trackersStatisticsUseCase.getNonBLockedTrackersCount() + ) + } + ) + } } }, singleEventProducer = { _, _, effect -> diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt index 51dee3d..96ace56 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt @@ -231,7 +231,7 @@ class DashboardFragment : binding.graphLegend.text = Html.fromHtml( getString( R.string.dashboard_graph_trackers_legend, - state.activeTrackersCount?.toString() ?: "No" + state.leakedTrackersCount?.toString() ?: "No" ), FROM_HTML_MODE_LEGACY ) -- cgit v1.2.3