From 350bf0a7f61d653d776b4d9d281f2fb4f5fc16ac Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Mar 2021 09:11:55 +0100 Subject: [PATCH] reverting the coroutines thing, it is too unstable --- app/build.gradle | 11 +++-------- .../gallery/pro/extensions/Activity.kt | 14 ++++++-------- .../gallery/pro/helpers/MediaFetcher.kt | 14 +++++--------- .../gallery/pro/interfaces/DateTakensDao.kt | 6 +++--- 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cd8792c13..0e0520f4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -96,14 +96,9 @@ dependencies { kapt 'com.github.bumptech.glide:compiler:4.10.0' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0' - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2" - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2" - - kapt "androidx.room:room-compiler:2.2.6" - implementation "androidx.room:room-ktx:2.2.6" - implementation "androidx.room:room-runtime:2.2.6" - annotationProcessor "androidx.room:room-compiler:2.2.6" + kapt 'androidx.room:room-compiler:2.2.6' + implementation 'androidx.room:room-runtime:2.2.6' + annotationProcessor 'androidx.room:room-compiler:2.2.6' } // Apply the PESDKPlugin diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt index 5315dd2d8..a0fdf3c51 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt @@ -19,7 +19,6 @@ import android.util.DisplayMetrics import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.exifinterface.media.ExifInterface -import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.bumptech.glide.load.DecodeFormat import com.bumptech.glide.load.engine.DiskCacheStrategy @@ -37,9 +36,6 @@ import com.simplemobiletools.gallery.pro.dialogs.PickDirectoryDialog import com.simplemobiletools.gallery.pro.helpers.RECYCLE_BIN import com.simplemobiletools.gallery.pro.models.DateTaken import com.squareup.picasso.Picasso -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import java.io.File import java.io.FileOutputStream import java.io.InputStream @@ -446,7 +442,7 @@ fun AppCompatActivity.fixDateTaken( var didUpdateFile = false val operations = ArrayList() - lifecycleScope.launch(Dispatchers.IO) { + ensureBackgroundThread { val dateTakens = ArrayList() for (path in paths) { @@ -490,8 +486,10 @@ fun AppCompatActivity.fixDateTaken( toast(R.string.no_date_takens_found) } - withContext(Dispatchers.Main) { callback?.invoke() } - return@launch + runOnUiThread { + callback?.invoke() + } + return@ensureBackgroundThread } val resultSize = contentResolver.applyBatch(MediaStore.AUTHORITY, operations).size @@ -504,7 +502,7 @@ fun AppCompatActivity.fixDateTaken( dateTakensDB.insertAll(dateTakens) } - withContext(Dispatchers.Main) { + runOnUiThread { if (showToasts) { toast(if (didUpdateFile) R.string.dates_fixed_successfully else R.string.unknown_error_occurred) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt index 8a4b17f07..25d2ffb60 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt @@ -15,8 +15,6 @@ import com.simplemobiletools.gallery.pro.extensions.* import com.simplemobiletools.gallery.pro.models.Medium import com.simplemobiletools.gallery.pro.models.ThumbnailItem import com.simplemobiletools.gallery.pro.models.ThumbnailSection -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.runBlocking import java.io.File import java.util.* @@ -460,12 +458,10 @@ class MediaFetcher(val context: Context) { } val dateTakenValues = try { - runBlocking { - if (folder == FAVORITES) { - context.dateTakensDB.getAllDateTakens() - } else { - context.dateTakensDB.getDateTakensFromPath(folder) - } + if (folder == FAVORITES) { + context.dateTakensDB.getAllDateTakens() + } else { + context.dateTakensDB.getDateTakensFromPath(folder) } } catch (e: Exception) { return dateTakens @@ -499,7 +495,7 @@ class MediaFetcher(val context: Context) { } } - val dateTakenValues = runBlocking(Dispatchers.IO) { context.dateTakensDB.getAllDateTakens() } + val dateTakenValues = context.dateTakensDB.getAllDateTakens() dateTakenValues.forEach { dateTakens[it.fullPath] = it.taken diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt index 93b27b88c..5041727e9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt @@ -9,11 +9,11 @@ import com.simplemobiletools.gallery.pro.models.DateTaken @Dao interface DateTakensDao { @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertAll(dateTakens: List) + fun insertAll(dateTakens: List) @Query("SELECT full_path, filename, parent_path, date_taken, last_fixed, last_modified FROM date_takens WHERE parent_path = :path COLLATE NOCASE") - suspend fun getDateTakensFromPath(path: String): List + fun getDateTakensFromPath(path: String): List @Query("SELECT full_path, filename, parent_path, date_taken, last_fixed, last_modified FROM date_takens") - suspend fun getAllDateTakens(): List + fun getAllDateTakens(): List }