From 764a265053e35c7cea1bdfc65b2dd9c9bbc58201 Mon Sep 17 00:00:00 2001 From: Pupil Date: Fri, 21 Feb 2020 20:11:43 +0900 Subject: [PATCH] Image loading optimization --- app/build.gradle | 4 ++-- app/release/output.json | 2 +- .../xyz/quaver/pupil/adapters/ReaderAdapter.kt | 7 +++---- .../java/xyz/quaver/pupil/ui/MainActivity.kt | 2 -- .../xyz/quaver/pupil/util/download/Cache.kt | 17 +++++++++++++++++ 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 60480e46..cbe65bf0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ android { minSdkVersion 16 targetSdkVersion 29 versionCode 42 - versionName "4.6-alpha5" + versionName "4.6-alpha6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true vectorDrawables.useSupportLibrary = true @@ -68,7 +68,7 @@ dependencies { implementation "androidx.biometric:biometric:1.0.1" implementation 'com.android.support:multidex:1.0.3' implementation "com.daimajia.swipelayout:library:1.2.0@aar" - implementation 'com.google.android.material:material:1.2.0-alpha04' + implementation 'com.google.android.material:material:1.2.0-alpha05' implementation 'com.google.firebase:firebase-core:17.2.2' implementation 'com.google.firebase:firebase-perf:19.0.5' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' diff --git a/app/release/output.json b/app/release/output.json index 18826f15..a12550dd 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":42,"versionName":"4.6-alpha5","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":42,"versionName":"4.6-alpha6","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt b/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt index 7eda96d9..bfd499b6 100644 --- a/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt +++ b/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt @@ -118,15 +118,14 @@ class ReaderAdapter(private val context: Context, holder.view.reader_index.text = (position+1).toString() - val images = Cache(context).getImages(galleryID) + val images = Cache(context).getImage(galleryID, position) - if (images?.get(position) != null) { + if (images != null) { glide - .load(images[position]) + .load(images) .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true) .error(R.drawable.image_broken_variant) - .dontTransform() .apply { if (BuildConfig.CENSOR) override(5, 8) diff --git a/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt b/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt index 34ceca14..97f50840 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt @@ -25,7 +25,6 @@ import android.net.Uri import android.os.Bundle import android.text.* import android.text.style.AlignmentSpan -import android.util.Log import android.view.KeyEvent import android.view.MotionEvent import android.view.View @@ -120,7 +119,6 @@ class MainActivity : AppCompatActivity() { val lockManager = try { LockManager(this) } catch (e: Exception) { - Log.i("PUPILD", e.toString()) android.app.AlertDialog.Builder(this).apply { setTitle(R.string.warning) setMessage(R.string.lock_corrupted) diff --git a/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt b/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt index 98d2e09c..6e05cbb8 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt @@ -188,6 +188,23 @@ class Cache(context: Context) : ContextWrapper(context) { } } + val imageExts = listOf( + "jpg", + "webp" + ) + fun getImage(galleryID: Int, index: Int): File? { + val gallery = getCachedGallery(galleryID) + + for (ext in imageExts) { + File(gallery, "%05d.$ext".format(index)).let { + if (it.exists()) + return it + } + } + + return null + } + fun putImage(galleryID: Int, name: String, data: ByteArray) { val cache = File(getCachedGallery(galleryID), name).also { if (!it.exists())