summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt30
1 files changed, 14 insertions, 16 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 5a16308..8831fff 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
@@ -25,7 +25,6 @@ import android.location.Location
import android.location.LocationListener
import android.location.LocationManager
import android.os.Bundle
-import android.util.Log
import foundation.e.advancedprivacy.data.repositories.LocalStateRepository
import foundation.e.advancedprivacy.domain.entities.LocationMode
import foundation.e.advancedprivacy.dummy.CityDataSource
@@ -38,6 +37,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
+import timber.log.Timber
import kotlin.random.Random
class FakeLocationStateUseCase(
@@ -134,15 +134,7 @@ class FakeLocationStateUseCase(
private var localListener = object : LocationListener {
override fun onLocationChanged(location: Location) {
- currentLocation.update { previous ->
- if ((previous?.time ?: 0) + 1800 < location.time ||
- (previous?.accuracy ?: Float.MAX_VALUE) > location.accuracy
- ) {
- location
- } else {
- previous
- }
- }
+ currentLocation.update { location }
}
@Deprecated("Deprecated since API 29, never called.")
@@ -198,13 +190,19 @@ class FakeLocationStateUseCase(
)
}
- networkProvider?.let { locationManager.getLastKnownLocation(it) }
- ?: gpsProvider?.let { locationManager.getLastKnownLocation(it) }
- ?.let {
- localListener.onLocationChanged(it)
- }
+ var lastKnownLocation = networkProvider?.let {
+ locationManager.getLastKnownLocation(it)
+ }
+
+ if (lastKnownLocation == null) {
+ lastKnownLocation = gpsProvider?.let {
+ locationManager.getLastKnownLocation(it)
+ }
+ }
+
+ lastKnownLocation?.let { localListener.onLocationChanged(it) }
} catch (se: SecurityException) {
- Log.e(TAG, "Missing permission", se)
+ Timber.e("Missing permission", se)
}
}
}