diff options
author | Leonard Kugis <leonard@kug.is> | 2023-12-23 00:52:30 +0100 |
---|---|---|
committer | Leonard Kugis <leonard@kug.is> | 2023-12-23 00:52:30 +0100 |
commit | eab77a885f6cca1d785ca57c4cd9182dc1a898cf (patch) | |
tree | 7dba714b870895220d815368d7762212ff10c5eb /app/src/main/java/foundation/e/advancedprivacy/domain | |
parent | 98df413858d1ac577f9c510a9490f382b3f848b4 (diff) | |
download | advanced-privacy-eab77a885f6cca1d785ca57c4cd9182dc1a898cf.tar.gz |
Implemented altitude/speed/jitter parameters
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/domain')
-rw-r--r-- | app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt | 29 |
1 files changed, 21 insertions, 8 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 282116e..8cf5f43 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 @@ -32,6 +32,7 @@ import foundation.e.advancedprivacy.domain.repositories.LocalStateRepository import foundation.e.advancedprivacy.dummy.CityDataSource import foundation.e.advancedprivacy.externalinterfaces.permissions.IPermissionsPrivacyModule import foundation.e.advancedprivacy.fakelocation.domain.usecases.FakeLocationModule +import foundation.e.advancedprivacy.features.location.FakeLocationState import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -49,11 +50,11 @@ class FakeLocationStateUseCase( private val appContext: Context, coroutineScope: CoroutineScope ) { - private val _configuredLocationMode = MutableStateFlow<Triple<LocationMode, Float?, Float?>>( - Triple(LocationMode.REAL_LOCATION, null, null) + private val _configuredLocationMode = MutableStateFlow<FakeLocationState>( + FakeLocationState(LocationMode.REAL_LOCATION, null, null, null, null, false, null, null, false) ) - val configuredLocationMode: StateFlow<Triple<LocationMode, Float?, Float?>> = _configuredLocationMode + val configuredLocationMode: StateFlow<FakeLocationState> = _configuredLocationMode init { coroutineScope.launch { @@ -76,8 +77,8 @@ class FakeLocationStateUseCase( if (isEnabled && hasAcquireMockLocationPermission()) { fakeLocationModule.startFakeLocation() - fakeLocationModule.setFakeLocation(fakeLocation.first.toDouble(), fakeLocation.second.toDouble()) - localStateRepository.locationMode.value = configuredLocationMode.value.first + fakeLocationModule.setFakeLocation(localStateRepository.fakeAltitude.toDouble(), localStateRepository.fakeSpeed, localStateRepository.fakeJitter, fakeLocation.first.toDouble(), fakeLocation.second.toDouble()) + localStateRepository.locationMode.value = configuredLocationMode.value.mode } else { fakeLocationModule.stopFakeLocation() localStateRepository.locationMode.value = LocationMode.REAL_LOCATION @@ -89,6 +90,12 @@ class FakeLocationStateUseCase( permissionsModule.setAppOpMode(appDesc, AppOpsManager.OPSTR_MOCK_LOCATION, AppOpModes.ALLOWED) } + fun setFakeLocationParameters(altitude: Float, speed: Float, jitter: Float) { + localStateRepository.fakeAltitude = altitude + localStateRepository.fakeSpeed = speed + localStateRepository.fakeJitter = jitter + } + fun setSpecificLocation(latitude: Float, longitude: Float) { setFakeLocation(latitude to longitude, true) } @@ -115,16 +122,22 @@ class FakeLocationStateUseCase( isFakeLocationEnabled: Boolean, fakeLocation: Pair<Float, Float>, isSpecificLocation: Boolean = false, - ): Triple<LocationMode, Float?, Float?> { - return Triple( + ): FakeLocationState { + return FakeLocationState( when { !isFakeLocationEnabled -> LocationMode.REAL_LOCATION (fakeLocation in citiesRepository.citiesLocationsList && !isSpecificLocation) -> LocationMode.RANDOM_LOCATION else -> LocationMode.SPECIFIC_LOCATION }, + null, + null, + null, + null, + false, fakeLocation.first, - fakeLocation.second + fakeLocation.second, + false ) } |