aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/advancedprivacy/data
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/data')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepository.kt46
1 files changed, 35 insertions, 11 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepository.kt b/app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepository.kt
index 540d502..9643899 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepository.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepository.kt
@@ -30,6 +30,9 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import foundation.e.advancedprivacy.domain.entities.FakeLocationCoordinate
class LocalStateRepositoryImpl(context: Context) : LocalStateRepository {
companion object {
@@ -39,7 +42,9 @@ class LocalStateRepositoryImpl(context: Context) : LocalStateRepository {
private const val KEY_FAKE_ALTITUDE = "fakeAltitude"
private const val KEY_FAKE_SPEED = "fakeSpeed"
private const val KEY_FAKE_JITTER = "fakeJitter"
- private const val KEY_FAKE_LOCATION = "fakeLocation"
+ private const val KEY_LOCATION_MODE = "locationMode"
+ private const val KEY_LOCATION_ROUTE = "locationRoute"
+ private const val KEY_LOCATION_ROUTE_LOOP = "locationRouteLoop"
private const val KEY_FAKE_LATITUDE = "fakeLatitude"
private const val KEY_FAKE_LONGITUDE = "fakeLongitude"
private const val KEY_FIRST_BOOT = "firstBoot"
@@ -61,15 +66,6 @@ class LocalStateRepositoryImpl(context: Context) : LocalStateRepository {
override val areAllTrackersBlocked: MutableStateFlow<Boolean> = MutableStateFlow(false)
- private val _fakeLocationEnabled = MutableStateFlow(sharedPref.getBoolean(KEY_FAKE_LOCATION, false))
-
- override val fakeLocationEnabled = _fakeLocationEnabled.asStateFlow()
-
- override fun setFakeLocationEnabled(enabled: Boolean) {
- set(KEY_FAKE_LOCATION, enabled)
- _fakeLocationEnabled.update { enabled }
- }
-
override var fakeAltitude: Float
get() = sharedPref.getFloat(KEY_FAKE_ALTITUDE, 3.0f)
set(value) {
@@ -108,7 +104,35 @@ class LocalStateRepositoryImpl(context: Context) : LocalStateRepository {
.apply()
}
- override val locationMode: MutableStateFlow<LocationMode> = MutableStateFlow(LocationMode.REAL_LOCATION)
+ override var route: List<FakeLocationCoordinate>
+ get() {
+ return Gson().fromJson<List<FakeLocationCoordinate>>(sharedPref.getString(KEY_LOCATION_ROUTE, "[]"), object : TypeToken<List<FakeLocationCoordinate>>() {}.type)
+ }
+ set(value) {
+ sharedPref.edit()
+ .putString(KEY_LOCATION_ROUTE, Gson().toJson(value))
+ .apply()
+ }
+
+ override var routeLoopEnabled: Boolean
+ get() = sharedPref.getBoolean(KEY_LOCATION_ROUTE_LOOP, false)
+ set(value) {
+ sharedPref.edit()
+ .putBoolean(KEY_LOCATION_ROUTE_LOOP, value)
+ .apply()
+ }
+
+ private val _locationMode = MutableStateFlow(LocationMode.valueOf(sharedPref.getString(KEY_LOCATION_MODE, LocationMode.REAL_LOCATION.toString()) ?: "REAL_LOCATION"))
+
+ override val locationMode = _locationMode.asStateFlow()
+
+ override fun setLocationMode(mode: LocationMode) {
+ sharedPref.edit()
+ .putString(KEY_LOCATION_MODE, mode.toString())
+ .apply()
+ //set(KEY_LOCATION_MODE, mode.toString())
+ _locationMode.update { mode }
+ }
private val _ipScramblingSetting = MutableStateFlow(sharedPref.getBoolean(KEY_IP_SCRAMBLING, false))