summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt
diff options
context:
space:
mode:
authorLeonard Kugis <leonard@kug.is>2024-01-03 22:51:08 +0100
committerLeonard Kugis <leonard@kug.is>2024-01-03 22:51:08 +0100
commit992fa2d9a9bc519215c0b352688691ba012ca04a (patch)
treeb84ed8965cb828e7f53acf5c9a7e30edd3b7675d /app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt
parent5db0bdfdf62ae0915b587399a0ff4ce53bca813b (diff)
Fixed route interpolation
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt28
1 files changed, 18 insertions, 10 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt b/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt
index c88c638..049c707 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt
@@ -37,6 +37,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlin.time.Duration.Companion.milliseconds
import foundation.e.advancedprivacy.domain.entities.FakeLocationCoordinate
+import android.util.Log
class FakeLocationViewModel(
private val fakeLocationStateUseCase: FakeLocationStateUseCase
@@ -58,8 +59,8 @@ class FakeLocationViewModel(
private val specificLocationInputFlow = MutableSharedFlow<Action.SetSpecificLocationAction>()
private val mockLocationParametersInputFlow = MutableSharedFlow<Action.UpdateMockLocationParameters>()
- private val setRouteLoopEnabledInputFlow = MutableSharedFlow<Action.SetRouteLoopEnabledAction>()
- private val setRouteInputFlow = MutableSharedFlow<Action.SetRoute>()
+ private val routeLoopEnabledInputFlow = MutableSharedFlow<Action.SetRouteLoopEnabledAction>()
+ private val routeInputFlow = MutableSharedFlow<Action.SetRoute>()
@OptIn(FlowPreview::class)
suspend fun doOnStartedState() = withContext(Dispatchers.Main) {
@@ -73,7 +74,9 @@ class FakeLocationViewModel(
speed = ss.speed,
jitter = ss.jitter,
specificLatitude = ss.specificLatitude,
- specificLongitude = ss.specificLongitude
+ specificLongitude = ss.specificLongitude,
+ route = ss.route,
+ loopRoute = ss.loopRoute
)
}
},
@@ -85,14 +88,14 @@ class FakeLocationViewModel(
.debounce(SET_MOCK_LOCATION_PARAMETERS_DELAY).map { action ->
fakeLocationStateUseCase.setFakeLocationParameters(action.altitude, action.speed, action.jitter)
},
- setRouteLoopEnabledInputFlow
- .debounce(SET_ROUTE_LOOP_ENABLED_DELAY).map { action ->
- fakeLocationStateUseCase.setRouteLoopEnabled(action.isEnabled)
- },
- setRouteInputFlow
+ routeInputFlow
.debounce(SET_ROUTE_DELAY).map { action ->
fakeLocationStateUseCase.setRoute(action.route)
},
+ routeLoopEnabledInputFlow
+ .debounce(SET_ROUTE_LOOP_ENABLED_DELAY).map { action ->
+ fakeLocationStateUseCase.setRouteLoopEnabled(action.isEnabled)
+ },
).collect {}
}
}
@@ -106,7 +109,7 @@ class FakeLocationViewModel(
is Action.UseRealLocationAction -> fakeLocationStateUseCase.useRealLocation()
is Action.UseRoute -> fakeLocationStateUseCase.useRoute()
is Action.UpdateMockLocationParameters -> updateMockLocationParameters(action)
- is Action.SetRoute -> setRouteInputFlow.emit(action)
+ is Action.SetRoute -> setRoute(action)
is Action.SetRouteLoopEnabledAction -> setRouteLoopEnabled(action)
is Action.RouteStartAction -> fakeLocationStateUseCase.routeStart()
is Action.RouteStopAction -> fakeLocationStateUseCase.routeStop()
@@ -128,8 +131,13 @@ class FakeLocationViewModel(
mockLocationParametersInputFlow.emit(action)
}
+ private suspend fun setRoute(action: Action.SetRoute) {
+ fakeLocationStateUseCase.setRoute(action.route)
+ routeInputFlow.emit(action)
+ }
+
private suspend fun setRouteLoopEnabled(action: Action.SetRouteLoopEnabledAction) {
- setRouteLoopEnabledInputFlow.emit(action)
+ routeLoopEnabledInputFlow.emit(action)
}
sealed class SingleEvent {