summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/build.gradle4
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt24
-rw-r--r--flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt3
3 files changed, 16 insertions, 15 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 6b5ca8d..adcf81b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -112,8 +112,8 @@ dependencies {
implementation 'foundation.e:privacymodule.trackerfilter:0.7.0'
implementation 'foundation.e:privacymodule.api:1.1.0'
- e29Implementation 'foundation.e:privacymodule.e-29:0.4.2'
- e30Implementation 'foundation.e:privacymodule.e-30:0.4.2'
+ e29Implementation 'foundation.e:privacymodule.e-29:0.4.3'
+ e30Implementation 'foundation.e:privacymodule.e-30:0.4.3'
implementation 'foundation.e:privacymodule.tor:0.2.3'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt
index a475aa2..d0f5460 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt
@@ -19,10 +19,12 @@ package foundation.e.privacycentralapp.domain.usecases
import android.app.AppOpsManager
import android.content.Context
+import android.content.pm.PackageManager
import android.location.Location
import android.location.LocationListener
import android.location.LocationManager
import android.os.Bundle
+import android.os.Looper
import android.util.Log
import foundation.e.privacycentralapp.data.repositories.LocalStateRepository
import foundation.e.privacycentralapp.domain.entities.LocationMode
@@ -62,10 +64,13 @@ class FakeLocationStateUseCase(
get() = appContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager
private fun acquireLocationPermission() {
- permissionsModule.toggleDangerousPermission(
- appDesc,
- android.Manifest.permission.ACCESS_FINE_LOCATION, true
- )
+ if (appContext.checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ permissionsModule.toggleDangerousPermission(
+ appDesc,
+ android.Manifest.permission.ACCESS_FINE_LOCATION,
+ true
+ )
+ }
}
private fun applySettings(isQuickPrivacyEnabled: Boolean, fakeLocation: Pair<Float, Float>?, isSpecificLocation: Boolean = false) {
@@ -172,14 +177,9 @@ class FakeLocationStateUseCase(
LocationManager.NETWORK_PROVIDER, // TODO: tight this with fakelocation module.
0L,
0f,
- listener
- )
- // locationManager.requestLocationUpdates(
- // LocationManager.NETWORK_PROVIDER, // TODO: tight this with fakelocation module.
- // 0L,
- // 0f,
- // listener
- // )
+ listener,
+ Looper.getMainLooper()
+ )
val location: Location? = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)
location?.let { listener.onLocationChanged(it) }
diff --git a/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt b/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt
index 1429d1a..068cd8e 100644
--- a/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt
+++ b/flow-mvi/src/main/java/foundation/e/flowmvi/feature/BaseFeature.kt
@@ -23,6 +23,7 @@ import foundation.e.flowmvi.MVIView
import foundation.e.flowmvi.Reducer
import foundation.e.flowmvi.SingleEventProducer
import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
@@ -107,7 +108,7 @@ open class BaseFeature<State : Any, in Action : Any, in Effect : Any, SingleEven
@Suppress("UNUSED_PARAMETER") logger: Logger
) {
onEach { action ->
- callerCoroutineScope.launch {
+ callerCoroutineScope.launch(Dispatchers.IO) {
actor.invoke(_state.value, action)
.onEach { effect ->
mutex.withLock {