aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/advancedprivacy/features
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-05-10 23:02:11 +0200
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-05-10 23:02:11 +0200
commitd94e8043e82b3402689c229acef8d8ccf2959c36 (patch)
tree8bf557691e803a529fc3671e2b44fc0348013c9e /app/src/main/java/foundation/e/advancedprivacy/features
parent5a432ecde520ee039786848296e5227571404158 (diff)
downloadadvanced-privacy-d94e8043e82b3402689c229acef8d8ccf2959c36.tar.gz
1222: tight toggle feature to UI switch state.
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/features')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt21
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt13
2 files changed, 25 insertions, 9 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt
index b30935c..02fd1ad 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt
@@ -89,13 +89,25 @@ class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) {
viewModel.submitAction(Action.ShowMostLeakedApp)
}
binding.toggleTrackers.setOnClickListener {
- viewModel.submitAction(Action.ToggleTrackers)
+ viewModel.submitAction(
+ Action.ToggleTrackers(
+ enabled = binding.toggleTrackers.isChecked
+ )
+ )
}
binding.toggleLocation.setOnClickListener {
- viewModel.submitAction(Action.ToggleLocation)
+ viewModel.submitAction(
+ Action.ToggleLocation(
+ enabled = binding.toggleLocation.isChecked
+ )
+ )
}
binding.toggleIpscrambling.setOnClickListener {
- viewModel.submitAction(Action.ToggleIpScrambling)
+ viewModel.submitAction(
+ Action.ToggleIpScrambling(
+ enabled = binding.toggleIpscrambling.isChecked
+ )
+ )
}
binding.myLocation.container.setOnClickListener {
viewModel.submitAction(Action.ShowFakeMyLocationAction)
@@ -230,6 +242,9 @@ class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) {
binding.toggleIpscrambling.isChecked = state.ipScramblingMode.isChecked
val isLoading = state.ipScramblingMode.isLoading
+ binding.toggleIpscrambling.isEnabled = (
+ state.ipScramblingMode != InternetPrivacyMode.REAL_IP_LOADING
+ )
binding.stateIpAddress.text = getString(
if (state.ipScramblingMode == InternetPrivacyMode.HIDE_IP) R.string.dashboard_state_ipaddress_on
diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt b/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt
index d82b073..cc1263b 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt
@@ -89,13 +89,14 @@ class DashboardViewModel(
fun submitAction(action: Action) = viewModelScope.launch {
when (action) {
is Action.ToggleTrackers -> {
- getPrivacyStateUseCase.toggleTrackers()
+ getPrivacyStateUseCase.toggleTrackers(action.enabled)
// Add delay here to prevent race condition with trackers state.
delay(200)
fetchStatistics().first()
}
- is Action.ToggleLocation -> getPrivacyStateUseCase.toggleLocation()
- is Action.ToggleIpScrambling -> getPrivacyStateUseCase.toggleIpScrambling()
+ is Action.ToggleLocation -> getPrivacyStateUseCase.toggleLocation(action.enabled)
+ is Action.ToggleIpScrambling ->
+ getPrivacyStateUseCase.toggleIpScrambling(action.enabled)
is Action.ShowFakeMyLocationAction ->
_singleEvents.emit(SingleEvent.NavigateToLocationSingleEvent)
is Action.ShowAppsPermissions ->
@@ -146,9 +147,9 @@ class DashboardViewModel(
}
sealed class Action {
- object ToggleTrackers : Action()
- object ToggleLocation : Action()
- object ToggleIpScrambling : Action()
+ data class ToggleTrackers(val enabled: Boolean) : Action()
+ data class ToggleLocation(val enabled: Boolean) : Action()
+ data class ToggleIpScrambling(val enabled: Boolean) : Action()
object ShowFakeMyLocationAction : Action()
object ShowInternetActivityPrivacyAction : Action()
object ShowAppsPermissions : Action()