From f0721e484d5561ae42828fbafdfdb7dfb59c702d Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 1 Feb 2023 15:17:54 +0100 Subject: [PATCH] Avoid hardcoded dispatchers. Fix issue detected by sonar. --- .../android/features/rageshake/logs/VectorFileLogger.kt | 4 +++- .../android/features/rageshake/reporter/BugReporter.kt | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/logs/VectorFileLogger.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/logs/VectorFileLogger.kt index f8a6e8eab7..1d8d0b349b 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/logs/VectorFileLogger.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/logs/VectorFileLogger.kt @@ -20,6 +20,7 @@ import android.content.Context import android.util.Log import io.element.android.libraries.androidutils.file.safeDelete import io.element.android.libraries.core.data.tryOrNull +import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -38,6 +39,7 @@ import java.util.logging.Logger class VectorFileLogger( context: Context, // private val vectorPreferences: VectorPreferences + private val dispatcher: CoroutineDispatcher = Dispatchers.IO, ) : Timber.Tree() { companion object { @@ -109,7 +111,7 @@ class VectorFileLogger( @OptIn(DelicateCoroutinesApi::class) override fun log(priority: Int, tag: String?, message: String, t: Throwable?) { fileHandler ?: return - GlobalScope.launch(Dispatchers.IO) { + GlobalScope.launch(dispatcher) { if (skipLog(priority)) return@launch if (t != null) { logToFile(t) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/reporter/BugReporter.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/reporter/BugReporter.kt index 4cfa7cabae..6cf888a44e 100755 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/reporter/BugReporter.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/reporter/BugReporter.kt @@ -24,11 +24,11 @@ import io.element.android.features.rageshake.logs.VectorFileLogger import io.element.android.features.rageshake.screenshot.ScreenshotHolder import io.element.android.libraries.androidutils.file.compressFile import io.element.android.libraries.androidutils.file.safeDelete +import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.extensions.toOnOff import io.element.android.libraries.core.mimetype.MimeTypes import io.element.android.libraries.di.ApplicationContext import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -55,6 +55,7 @@ class BugReporter @Inject constructor( @ApplicationContext private val context: Context, private val screenshotHolder: ScreenshotHolder, private val crashDataStore: CrashDataStore, + private val coroutineDispatchers: CoroutineDispatchers, /* private val activeSessionHolder: ActiveSessionHolder, private val versionProvider: VersionProvider, @@ -169,7 +170,7 @@ class BugReporter @Inject constructor( coroutineScope.launch { var serverError: String? = null var reportURL: String? = null - withContext(Dispatchers.IO) { + withContext(coroutineDispatchers.io) { var bugDescription = theBugDescription val crashCallStack = crashDataStore.crashInfo().first() @@ -419,7 +420,7 @@ class BugReporter @Inject constructor( } } - withContext(Dispatchers.Main) { + withContext(coroutineDispatchers.main) { mBugReportCall = null // delete when the bug report has been successfully sent