diff options
author | Leonard Kugis <leonard@kug.is> | 2024-01-03 22:51:08 +0100 |
---|---|---|
committer | Leonard Kugis <leonard@kug.is> | 2024-01-03 22:51:08 +0100 |
commit | 992fa2d9a9bc519215c0b352688691ba012ca04a (patch) | |
tree | b84ed8965cb828e7f53acf5c9a7e30edd3b7675d /app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt | |
parent | 5db0bdfdf62ae0915b587399a0ff4ce53bca813b (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.kt | 28 |
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 { |