From 0a8527b4947ce40b9864305139afedc59f00ad87 Mon Sep 17 00:00:00 2001 From: Guillaume Jacquart Date: Sat, 17 Sep 2022 18:24:52 +0200 Subject: 4208 Add CUSTOM state for tracker control. --- .../features/dashboard/DashboardFragment.kt | 14 ++++++++------ .../privacycentralapp/features/dashboard/DashboardState.kt | 3 ++- .../features/dashboard/DashboardViewModel.kt | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'app/src/main/java/foundation/e/privacycentralapp/features') 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 adb54bb..4d38ec8 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 @@ -42,6 +42,7 @@ import foundation.e.privacycentralapp.common.initQuickPrivacySnackbar import foundation.e.privacycentralapp.databinding.FragmentDashboardBinding import foundation.e.privacycentralapp.domain.entities.LocationMode import foundation.e.privacycentralapp.domain.entities.QuickPrivacyState +import foundation.e.privacycentralapp.domain.entities.TrackerMode import foundation.e.privacycentralapp.features.dashboard.DashboardViewModel.Action import foundation.e.privacycentralapp.features.dashboard.DashboardViewModel.SingleEvent import foundation.e.privacycentralapp.features.internetprivacy.InternetPrivacyFragment @@ -199,15 +200,16 @@ class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) { binding.togglePrivacyCentral.isChecked = state.quickPrivacyState.isEnabled() - binding.stateTrackers.text = getString( - if (state.isTrackersDenied) R.string.dashboard_state_trackers_on - else R.string.dashboard_state_trackers_off - ) + binding.stateTrackers.text = getString(when(state.trackerMode) { + TrackerMode.DENIED -> R.string.dashboard_state_trackers_on + TrackerMode.VULNERABLE -> R.string.dashboard_state_trackers_off + TrackerMode.CUSTOM -> R.string.dashboard_state_trackers_custom + }) binding.stateTrackers.setTextColor( getColor( requireContext(), - if (state.isTrackersDenied) R.color.green_valid - else R.color.red_off + if (state.trackerMode == TrackerMode.VULNERABLE) R.color.red_off + else R.color.green_valid ) ) diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardState.kt b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardState.kt index 65aa444..fb00f07 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardState.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardState.kt @@ -19,10 +19,11 @@ package foundation.e.privacycentralapp.features.dashboard import foundation.e.privacycentralapp.domain.entities.LocationMode import foundation.e.privacycentralapp.domain.entities.QuickPrivacyState +import foundation.e.privacycentralapp.domain.entities.TrackerMode data class DashboardState( val quickPrivacyState: QuickPrivacyState = QuickPrivacyState.DISABLED, - val isTrackersDenied: Boolean = false, + val trackerMode: TrackerMode = TrackerMode.VULNERABLE, val isLocationHidden: Boolean = false, val isIpHidden: Boolean? = false, val locationMode: LocationMode = LocationMode.REAL_LOCATION, diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardViewModel.kt b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardViewModel.kt index e3a9722..0ddceb1 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardViewModel.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardViewModel.kt @@ -63,8 +63,8 @@ class DashboardViewModel( trackersStatisticsUseCase.listenUpdates().flatMapLatest { fetchStatistics() }, - getPrivacyStateUseCase.isTrackersDenied.map { - _state.update { s -> s.copy(isTrackersDenied = it) } + getPrivacyStateUseCase.trackerMode.map { + _state.update { s -> s.copy(trackerMode = it) } }, getPrivacyStateUseCase.isLocationHidden.map { _state.update { s -> s.copy(isLocationHidden = it) } -- cgit v1.2.3