diff options
| author | jacquarg <guillaume.jacquart@hoodbrains.com> | 2022-04-12 18:55:02 +0200 |
|---|---|---|
| committer | jacquarg <guillaume.jacquart@hoodbrains.com> | 2022-04-12 18:55:02 +0200 |
| commit | 14815678aaa5020e81f0cca9274f289e6ac7e2d5 (patch) | |
| tree | d3843d84ed1da95f9f43a34bd1fc82c480b789cf /app/src/main/java/foundation/e/privacycentralapp/features | |
| parent | b14d22413713fd865fafb8a53e44fd74017a6279 (diff) | |
| download | advanced-privacy-14815678aaa5020e81f0cca9274f289e6ac7e2d5.tar.gz | |
5248 hide whitelist app trackers and fix counts when privacy protection disabled.
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/features')
3 files changed, 24 insertions, 18 deletions
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 e8302f4..ca45393 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,7 +30,6 @@ 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 @@ -161,20 +160,20 @@ class DashboardFeature( Effect.OpenInternetActivityPrivacyEffect ) Action.ShowTrackers -> flowOf(Effect.OpenTrackersEffect) - Action.FetchStatistics -> flow<Effect> { - emit( - trackersStatisticsUseCase.getDayStatistics() - .let { (dayStatistics, trackersCount) -> - Effect.TrackersStatisticsUpdatedEffect( - dayStatistics = dayStatistics.callsBlockedNLeaked, - dayLabels = dayStatistics.periods, - dayTrackersCount = dayStatistics.trackersCount, - trackersCount = trackersCount, - activeTrackersCount = trackersStatisticsUseCase.getNonBLockedTrackersCount() - ) - } - ) - } + Action.FetchStatistics -> + trackersStatisticsUseCase.getNonBlockedTrackersCount() + .map { nonBlockedTrackersCount -> + trackersStatisticsUseCase.getDayStatistics() + .let { (dayStatistics, trackersCount) -> + Effect.TrackersStatisticsUpdatedEffect( + dayStatistics = dayStatistics.callsBlockedNLeaked, + dayLabels = dayStatistics.periods, + dayTrackersCount = dayStatistics.trackersCount, + trackersCount = trackersCount, + activeTrackersCount = nonBlockedTrackersCount + ) + } + } } }, singleEventProducer = { _, _, effect -> diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt index 270dfcb..c1eef47 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt @@ -66,7 +66,7 @@ class AppTrackersFeature( } fun getTrackersCount() = trackers?.size ?: 0 - fun getBlockedTrackersCount(): Int = if (isBlockingActivated) + fun getBlockedTrackersCount(): Int = if (isQuickPrivacyEnabled && isBlockingActivated) getTrackersCount() - (whitelist?.size ?: 0) else 0 } @@ -160,7 +160,9 @@ class AppTrackersFeature( } ?: flowOf(Effect.ErrorEffect(R.string.apptrackers_error_no_app)) is Action.BlockAllToggleAction -> - state.appDesc?.uid?.let { appUid -> + if (!state.isQuickPrivacyEnabled) { + flowOf(Effect.QuickPrivacyDisabledWarningEffect) + } else state.appDesc?.uid?.let { appUid -> flow { trackersStateUseCase.toggleAppWhitelist(appUid, !action.isBlocked) diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFragment.kt index 8e2dc3b..d6edee6 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFragment.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFragment.kt @@ -109,6 +109,10 @@ class AppTrackersFragment : viewModel.submitAction(Action.BlockAllToggleAction(binding.blockAllToggle.isChecked)) } + binding.blockAllToggleClicker.setOnClickListener { + viewModel.submitAction(Action.BlockAllToggleAction(false)) + } + binding.trackers.apply { layoutManager = LinearLayoutManager(requireContext()) setHasFixedSize(true) @@ -128,7 +132,6 @@ class AppTrackersFragment : } override fun render(state: State) { - binding.trackersCountSummary.text = if (state.getTrackersCount() == 0) "" else getString( R.string.apptrackers_trackers_count_summary, @@ -137,6 +140,8 @@ class AppTrackersFragment : ) binding.blockAllToggle.isChecked = state.isBlockingActivated + binding.blockAllToggle.isEnabled = state.isQuickPrivacyEnabled + binding.blockAllToggleClicker.isVisible = !state.isQuickPrivacyEnabled binding.trackersListTitle.isVisible = state.isBlockingActivated |
