diff options
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 { |