From 593197cd7ea0e7006aacd2a989fcf9417680abec Mon Sep 17 00:00:00 2001 From: Pupil Date: Tue, 25 Feb 2020 19:17:23 +0900 Subject: [PATCH] Bug fix Thin mode added Cancel all downloads added --- app/build.gradle | 2 - .../quaver/pupil/ExampleInstrumentedTest.kt | 4 +- app/src/main/AndroidManifest.xml | 1 + .../pupil/adapters/GalleryBlockAdapter.kt | 50 ++++++++------ .../java/xyz/quaver/pupil/ui/MainActivity.kt | 18 ++++- .../xyz/quaver/pupil/ui/ReaderActivity.kt | 4 +- .../xyz/quaver/pupil/util/download/Cache.kt | 28 +++++--- .../pupil/util/download/DownloadWorker.kt | 41 ++++------- .../main/java/xyz/quaver/pupil/util/file.kt | 64 +----------------- app/src/main/res/drawable/cancel.xml | 8 +++ app/src/main/res/drawable/img_thumbnail.jpg | Bin 69921 -> 0 bytes .../main/res/layout/activity_main_content.xml | 7 ++ app/src/main/res/menu/main.xml | 3 + app/src/main/res/values-ja/strings.xml | 2 + app/src/main/res/values-ko/strings.xml | 2 + app/src/main/res/values/dimen.xml | 2 +- app/src/main/res/values/strings.xml | 3 + 17 files changed, 115 insertions(+), 124 deletions(-) create mode 100644 app/src/main/res/drawable/cancel.xml delete mode 100644 app/src/main/res/drawable/img_thumbnail.jpg diff --git a/app/build.gradle b/app/build.gradle index 0f0316d4..7c9bf7f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -74,14 +74,12 @@ dependencies { implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' implementation 'com.github.arimorty:floatingsearchview:2.1.1' implementation 'com.github.clans:fab:1.6.4' - implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' kapt 'com.github.bumptech.glide:compiler:4.11.0' implementation ("com.github.bumptech.glide:recyclerview-integration:4.11.0") { transitive = false } - implementation 'net.rdrei.android.dirchooser:library:3.2@aar' implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation 'com.andrognito.patternlockview:patternlockview:1.0.0' diff --git a/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt b/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt index 92c22553..2d73549c 100644 --- a/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt @@ -105,9 +105,9 @@ class ExampleInstrumentedTest { val galleryID = 1561552 runBlocking { - Log.i("PUPILD", Cache(context).getReader(galleryID)?.title ?: "null") + Log.i("PUPILD", Cache(context).getReader(galleryID)?.galleryInfo?.title ?: "null") } - Log.i("PUPILD", Cache(context).getReaderOrNull(galleryID)?.title ?: "null") + Log.i("PUPILD", Cache(context).getReaderOrNull(galleryID)?.galleryInfo?.title ?: "null") } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f9bf5296..addcb73f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ + ) : RecyclerSwipeAdapter(), SwipeAdapterInterface { +class GalleryBlockAdapter(private val context: Context, private val galleries: List) : RecyclerSwipeAdapter(), SwipeAdapterInterface { enum class ViewType { NEXT, @@ -68,11 +67,12 @@ class GalleryBlockAdapter(context: Context, private val galleries: List - Regex("^[0-9]+.+\$").matches(file.name) - } ?: 0 + progress = Cache(context).getImages(galleryID)?.size ?: 0 if (visibility == View.GONE) { visibility = View.VISIBLE @@ -126,6 +124,10 @@ class GalleryBlockAdapter(context: Context, private val galleries: List= 0) //download in progress + if (Cache(context).isDownloading(galleryID)) //download in progress worker.cancel(galleryID) else { Cache(context).setDownloading(galleryID, true) @@ -724,6 +731,15 @@ class MainActivity : AppCompatActivity() { setOnMenuItemClickListener { when(it.itemId) { R.id.main_menu_settings -> startActivityForResult(Intent(this@MainActivity, SettingsActivity::class.java), REQUEST_SETTINGS) + R.id.main_menu_thin -> { + main_recyclerview.apply { + (adapter as GalleryBlockAdapter).apply { + isThin = !isThin + } + + adapter = adapter // Force to redraw + } + } R.id.main_menu_sort_newest -> { sortMode = SortMode.NEWEST it.isChecked = true diff --git a/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt b/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt index 5caf8770..f4a6c22e 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt @@ -362,7 +362,7 @@ class ReaderActivity : AppCompatActivity() { window.attributes = this } - reader_recyclerview.adapter?.notifyDataSetChanged() // Force to redraw + reader_recyclerview.adapter = reader_recyclerview.adapter // Force to redraw } private fun scrollMode(isScroll: Boolean) { @@ -388,7 +388,7 @@ class ReaderActivity : AppCompatActivity() { if (worker.progress[galleryID]?.all { !it.isFinite() } == true) // If download is finished, stop animating post { setImageResource(R.drawable.ic_download) - labelText = getString(R.string.reader_fab_download) + labelText = getString(R.string.reader_fab_download_cancel) } else // Or continue animate post { 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 757dbf9a..14a0e7a1 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 @@ -21,21 +21,19 @@ package xyz.quaver.pupil.util.download import android.content.Context import android.content.ContextWrapper import android.util.Base64 +import android.util.Log import android.util.SparseArray import androidx.preference.PreferenceManager import com.crashlytics.android.Crashlytics -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.async -import kotlinx.coroutines.withContext +import kotlinx.coroutines.* import kotlinx.io.InputStream import xyz.quaver.Code import xyz.quaver.hitomi.GalleryBlock import xyz.quaver.hitomi.Reader import xyz.quaver.proxy -import xyz.quaver.pupil.util.copyRecursively import xyz.quaver.pupil.util.getCachedGallery import xyz.quaver.pupil.util.getDownloadDirectory +import xyz.quaver.pupil.util.isParentOf import xyz.quaver.pupil.util.json import java.io.File import java.io.FileOutputStream @@ -247,15 +245,27 @@ class Cache(context: Context) : ContextWrapper(context) { } } - fun moveToDownload(galleryID: Int) { + fun moveToDownload(galleryID: Int) = CoroutineScope(Dispatchers.IO).launch { val cache = getCachedGallery(galleryID).also { if (!it.exists()) - return + return@launch } - val download = File(getDownloadDirectory(this), galleryID.toString()) + val download = File(getDownloadDirectory(this@Cache), galleryID.toString()) - cache.copyRecursively(download, true) { _, _ -> OnErrorAction.SKIP } + if (download.isParentOf(cache)) + return@launch + + Log.i("PUPILD", "MOVING ${cache.canonicalPath} --> ${download.canonicalPath}") + + cache.copyRecursively(download, true) { file, err -> + Log.i("PUPILD", "MOVING ERROR ${file.canonicalPath} ${err.message}") + OnErrorAction.SKIP + } + Log.i("PUPILD", "MOVED ${cache.canonicalPath}") + + Log.i("PUPILD", "DELETING ${cache.canonicalPath}") cache.deleteRecursively() + Log.i("PUPILD", "DELETED ${cache.canonicalPath}") } fun isDownloading(galleryID: Int) = getCachedMetadata(galleryID)?.isDownloading == true diff --git a/app/src/main/java/xyz/quaver/pupil/util/download/DownloadWorker.kt b/app/src/main/java/xyz/quaver/pupil/util/download/DownloadWorker.kt index 2d54ef0c..cd957af8 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/download/DownloadWorker.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/download/DownloadWorker.kt @@ -149,7 +149,6 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont private val loop = loop() private val worker = SparseArray() - val clients = SparseArray() val interceptor = Interceptor { chain -> val request = chain.request() @@ -159,7 +158,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont .body(ProgressResponseBody(request.tag(), response.body(), progressListener)) .build() } - fun buildClient() = + val client = OkHttpClient.Builder() .addInterceptor(interceptor) .connectTimeout(0, TimeUnit.SECONDS) @@ -172,17 +171,14 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont queue.clear() loop.cancel() - for (i in 0..worker.size()) { + for (i in 0 until worker.size()) { val galleryID = worker.keyAt(i) Cache(this@DownloadWorker).setDownloading(galleryID, false) worker[galleryID]?.cancel() } - for (i in 0 until clients.size()) { - clients.valueAt(i).dispatcher().cancelAll() - } - clients.clear() + client.dispatcher().cancelAll() progress.clear() exception.clear() @@ -194,17 +190,19 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont queue.remove(galleryID) worker[galleryID]?.cancel() - clients[galleryID]?.dispatcher()?.cancelAll() - clients.remove(galleryID) + client.dispatcher().queuedCalls().filter { + ((it.request().tag() as Pair<*, *>).first as Int) == galleryID + }.forEach { + it.cancel() + } progress.remove(galleryID) exception.remove(galleryID) notification.remove(galleryID) notificationManager.cancel(galleryID) - if (progress.indexOfKey(galleryID) >= 0) { + if (progress.indexOfKey(galleryID) >= 0) Cache(this@DownloadWorker).setDownloading(galleryID, false) - } } fun isCompleted(galleryID: Int) = progress[galleryID]?.all { !it.isFinite() } == true @@ -236,10 +234,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont tag(galleryID to index) }.build() - if (clients.get(galleryID) == null) - clients.put(galleryID, buildClient()) - - clients[galleryID]?.newCall(request)?.enqueue(callback) + client.newCall(request).enqueue(callback) } private fun download(galleryID: Int) = CoroutineScope(Dispatchers.IO).launch { @@ -294,8 +289,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont notify(galleryID) CoroutineScope(Dispatchers.IO).launch { - if (isCompleted(galleryID) && clients.indexOfKey(galleryID) >= 0) { - clients.remove(galleryID) + if (isCompleted(galleryID)) { with(Cache(this@DownloadWorker)) { if (isDownloading(galleryID)) { moveToDownload(galleryID) @@ -320,8 +314,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont notify(galleryID) CoroutineScope(Dispatchers.IO).launch { - if (isCompleted(galleryID) && clients.indexOfKey(galleryID) >= 0) { - clients.remove(galleryID) + if (isCompleted(galleryID)) { with(Cache(this@DownloadWorker)) { if (isDownloading(galleryID)) { moveToDownload(galleryID) @@ -340,8 +333,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont notify(galleryID) CoroutineScope(Dispatchers.IO).launch { - if (isCompleted(galleryID) && clients.indexOfKey(galleryID) >= 0) { - clients.remove(galleryID) + if (isCompleted(galleryID)) { with(Cache(this@DownloadWorker)) { if (isDownloading(galleryID)) { moveToDownload(galleryID) @@ -418,7 +410,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont val galleryID = queue.peek() ?: continue - if (clients.indexOfKey(galleryID) >= 0) // Gallery already downloading! + if (progress.indexOfKey(galleryID) >= 0) // Gallery already downloading! continue if (notification[galleryID] == null) @@ -427,10 +419,7 @@ class DownloadWorker private constructor(context: Context) : ContextWrapper(cont if (Cache(this@DownloadWorker).isDownloading(galleryID)) notificationManager.notify(galleryID, notification[galleryID].build()) - if (clients.size() >= preferences.getInt("max_download", 4)) - continue - - Log.i("PUPILD", "QUEUED $galleryID #${clients.size()+1}") + Log.i("PUPILD", "QUEUED $galleryID") worker.put(galleryID, download(galleryID)) queue.poll() diff --git a/app/src/main/java/xyz/quaver/pupil/util/file.kt b/app/src/main/java/xyz/quaver/pupil/util/file.kt index 497424c1..4ed014e2 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/file.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/file.kt @@ -26,7 +26,6 @@ import android.os.storage.StorageManager import android.provider.DocumentsContract import androidx.core.content.ContextCompat import androidx.preference.PreferenceManager -import kotlinx.io.IOException import java.io.File import java.io.FileOutputStream import java.lang.reflect.Array @@ -214,64 +213,5 @@ fun Uri.toFile(context: Context): File? { return File(context.getExternalFilesDir(null)?.canonicalPath?.substringBeforeLast("/Android/data") ?: return null, folderName) } -fun File.copyRecursively( - target: File, - overwrite: Boolean = false, - onError: (File, IOException) -> OnErrorAction = { _, exception -> throw exception } -): Boolean { - if (!exists()) { - return onError(this, NoSuchFileException(file = this, reason = "The source file doesn't exist.")) != - OnErrorAction.TERMINATE - } - try { - // We cannot break for loop from inside a lambda, so we have to use an exception here - for (src in walkTopDown().onFail { f, e -> if (onError(f, e) == OnErrorAction.TERMINATE) throw IOException("Walk failed") }) { - if (!src.exists()) { - if (onError(src, NoSuchFileException(file = src, reason = "The source file doesn't exist.")) == - OnErrorAction.TERMINATE) - return false - } else { - val relPath = src.toRelativeString(this) - val dstFile = File(target, relPath) - if (dstFile.exists() && !(src.isDirectory && dstFile.isDirectory)) { - val stillExists = if (!overwrite) true else { - if (dstFile.isDirectory) - !dstFile.deleteRecursively() - else - !dstFile.delete() - } - - if (stillExists) { - if (onError(dstFile, FileAlreadyExistsException(file = src, - other = dstFile, - reason = "The destination file already exists.")) == OnErrorAction.TERMINATE) - return false - - continue - } - } - - if (src.isDirectory) { - dstFile.mkdirs() - } else { - val length = try { - src.copyTo(dstFile, overwrite).length() - } catch (e: IOException) { - if (onError(src, e) == OnErrorAction.TERMINATE) - return false - else - -1 - } - - if (length != src.length()) { - if (onError(src, IOException("Source file wasn't copied completely, length of destination file differs.")) == OnErrorAction.TERMINATE) - return false - } - } - } - } - return true - } catch (e: IOException) { - return false - } -} \ No newline at end of file +fun File.isParentOf(another: File) = + another.absolutePath.startsWith(this.absolutePath) \ No newline at end of file diff --git a/app/src/main/res/drawable/cancel.xml b/app/src/main/res/drawable/cancel.xml new file mode 100644 index 00000000..cad57ac3 --- /dev/null +++ b/app/src/main/res/drawable/cancel.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/img_thumbnail.jpg b/app/src/main/res/drawable/img_thumbnail.jpg deleted file mode 100644 index c6959911147c3ad7d34aa8ab3c3ec15640ddca5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69921 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 diff --git a/app/src/main/res/layout/activity_main_content.xml b/app/src/main/res/layout/activity_main_content.xml index 3041a890..aa8350ee 100644 --- a/app/src/main/res/layout/activity_main_content.xml +++ b/app/src/main/res/layout/activity_main_content.xml @@ -82,6 +82,13 @@ android:layout_margin="16dp" app:menu_colorNormal="@color/colorAccent"> + + + + diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 5cb0d9a4..5c54d534 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -130,4 +130,6 @@ エラー サーバーアドレス サーバー + 簡単モード + すべてのダウンロード取り消し \ No newline at end of file diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 05c173f1..99ebfe1f 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -130,4 +130,6 @@ 잘못된 값 서버 주소 서버 + 간단히 보기 모드 + 다운로드 모두 취소 \ No newline at end of file diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml index 68307f90..64a437a1 100644 --- a/app/src/main/res/values/dimen.xml +++ b/app/src/main/res/values/dimen.xml @@ -11,6 +11,6 @@ 8dp - 50dp + 100dp 150dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c79b2143..fd51625d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,6 +53,8 @@ Email me! Discord + Toggle Thin Mode + Sort Newest Popular @@ -61,6 +63,7 @@ Current page: %1$d\nMaximum page: %2$d Open Gallery by ID Failed to open gallery + Cancel all downloads Move to page %1$d