From d231e28732c3607c15bbac9d062ea0728c4945d0 Mon Sep 17 00:00:00 2001 From: Alexandre R d'anzi Date: Thu, 23 Jun 2022 17:56:25 +0200 Subject: [PATCH 1/2] Revert "advanced-privacy: run everything in same scope to prevent race conditions" This reverts commit d3c76d20e4a79d44947404a7bb411a8f5c496256. --- .../java/foundation/e/flowmvi/feature/BaseFeature.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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 e3dd2579..068cd8ee 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 @@ -24,7 +24,6 @@ import foundation.e.flowmvi.Reducer import foundation.e.flowmvi.SingleEventProducer import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow @@ -105,12 +104,11 @@ open class BaseFeature.collectIntoHandler( - @Suppress("UNUSED_PARAMETER")callerCoroutineScope: CoroutineScope, + callerCoroutineScope: CoroutineScope, @Suppress("UNUSED_PARAMETER") logger: Logger ) { - val scope = CoroutineScope(Dispatchers.IO + Job()) onEach { action -> - scope.launch { + callerCoroutineScope.launch(Dispatchers.IO) { actor.invoke(_state.value, action) .onEach { effect -> mutex.withLock { @@ -125,9 +123,9 @@ open class BaseFeature Date: Thu, 23 Jun 2022 17:56:42 +0200 Subject: [PATCH 2/2] Revert "Revert "Revert "privacycentralapp: use io dispatcher for actors""" This reverts commit 54f9e2181097e8a14112b19b2b9d578a4c4fffa8. --- .../domain/usecases/FakeLocationStateUseCase.kt | 12 ++++++++---- .../java/foundation/e/flowmvi/feature/BaseFeature.kt | 3 +-- 2 files changed, 9 insertions(+), 6 deletions(-) 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 d0f54608..5446d3be 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 @@ -24,7 +24,6 @@ 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 @@ -177,9 +176,14 @@ class FakeLocationStateUseCase( LocationManager.NETWORK_PROVIDER, // TODO: tight this with fakelocation module. 0L, 0f, - listener, - Looper.getMainLooper() - ) + listener + ) + // locationManager.requestLocationUpdates( + // LocationManager.NETWORK_PROVIDER, // TODO: tight this with fakelocation module. + // 0L, + // 0f, + // listener + // ) 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 068cd8ee..1429d1a0 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,7 +23,6 @@ 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 @@ -108,7 +107,7 @@ open class BaseFeature - callerCoroutineScope.launch(Dispatchers.IO) { + callerCoroutineScope.launch { actor.invoke(_state.value, action) .onEach { effect -> mutex.withLock { -- GitLab