aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/advancedprivacy/domain
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/domain')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt26
1 files changed, 17 insertions, 9 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt b/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt
index 2a69b3a..581df09 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt
@@ -60,7 +60,7 @@ class FakeLocationStateUseCase(
init {
coroutineScope.launch {
localStateRepository.fakeLocationEnabled.collect {
- applySettings(it, localStateRepository.fakeLocation)
+ applySettings(it, it)
}
}
}
@@ -73,12 +73,16 @@ class FakeLocationStateUseCase(
permissionsModule.toggleDangerousPermission(appDesc, android.Manifest.permission.ACCESS_FINE_LOCATION, true)
}
- private fun applySettings(isEnabled: Boolean, fakeLocation: Pair<Float, Float>, isSpecificLocation: Boolean = false) {
- _configuredLocationMode.value = computeLocationMode(isEnabled, fakeLocation, isSpecificLocation)
+ private fun applySettings(isEnabled: Boolean, isSpecificLocation: Boolean = false) {
+ _configuredLocationMode.value = computeLocationMode(isEnabled, localStateRepository.fakeAltitude, localStateRepository.fakeSpeed, localStateRepository.fakeJitter, localStateRepository.fakeLocation, isSpecificLocation)
if (isEnabled && hasAcquireMockLocationPermission()) {
fakeLocationModule.startFakeLocation()
- fakeLocationModule.setFakeLocation(localStateRepository.fakeAltitude.toDouble(), localStateRepository.fakeSpeed, localStateRepository.fakeJitter, fakeLocation.first.toDouble(), fakeLocation.second.toDouble())
+ fakeLocationModule.setFakeLocation(localStateRepository.fakeAltitude.toDouble(),
+ localStateRepository.fakeSpeed,
+ localStateRepository.fakeJitter,
+ localStateRepository.fakeLocation.first.toDouble(),
+ localStateRepository.fakeLocation.second.toDouble())
localStateRepository.locationMode.value = configuredLocationMode.value.mode
} else {
fakeLocationModule.stopFakeLocation()
@@ -95,6 +99,7 @@ class FakeLocationStateUseCase(
localStateRepository.fakeAltitude = altitude
localStateRepository.fakeSpeed = speed
localStateRepository.fakeJitter = jitter
+ applySettings(localStateRepository.fakeLocationEnabled.value, localStateRepository.fakeLocationEnabled.value)
}
fun setSpecificLocation(latitude: Float, longitude: Float) {
@@ -111,16 +116,19 @@ class FakeLocationStateUseCase(
private fun setFakeLocation(location: Pair<Float, Float>, isSpecificLocation: Boolean = false) {
localStateRepository.fakeLocation = location
localStateRepository.setFakeLocationEnabled(true)
- applySettings(true, location, isSpecificLocation)
+ applySettings(true, isSpecificLocation)
}
fun stopFakeLocation() {
localStateRepository.setFakeLocationEnabled(false)
- applySettings(false, localStateRepository.fakeLocation)
+ applySettings(false, false)
}
private fun computeLocationMode(
isFakeLocationEnabled: Boolean,
+ altitude: Float,
+ speed: Float,
+ jitter: Float,
fakeLocation: Pair<Float, Float>,
isSpecificLocation: Boolean = false,
): FakeLocationState {
@@ -132,9 +140,9 @@ class FakeLocationStateUseCase(
else -> LocationMode.SPECIFIC_LOCATION
},
null,
- null,
- null,
- null,
+ altitude,
+ speed,
+ jitter,
false,
fakeLocation.first,
fakeLocation.second,