From ed561708099dd77a125c6fffbe9fbcef5f55dc17 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 9 Jan 2023 15:25:47 +0200 Subject: [PATCH] Update okio --- app/build.gradle | 6 +++--- .../koitharu/kotatsu/local/data/CbzFetcher.kt | 7 ++----- .../data/ExtraCloseableBufferedSource.kt | 18 ---------------- .../local/data/ExtraCloseableSource.kt | 21 +++++++++++++++++++ 4 files changed, 26 insertions(+), 26 deletions(-) delete mode 100644 app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableBufferedSource.kt create mode 100644 app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableSource.kt diff --git a/app/build.gradle b/app/build.gradle index f77fc3d75..549262924 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -114,7 +114,7 @@ dependencies { implementation 'com.squareup.okhttp3:okhttp:4.10.0' implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.9.3' - implementation 'com.squareup.okio:okio:3.2.0' + implementation 'com.squareup.okio:okio:3.3.0' implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2' implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2' @@ -138,10 +138,10 @@ dependencies { testImplementation 'org.json:json:20220924' testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4' - androidTestImplementation 'androidx.test:runner:1.5.1' + androidTestImplementation 'androidx.test:runner:1.5.2' androidTestImplementation 'androidx.test:rules:1.5.0' androidTestImplementation 'androidx.test:core-ktx:1.5.0' - androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.4' + androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.5' androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4' diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/CbzFetcher.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/CbzFetcher.kt index c773a05d3..3db7b7038 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/CbzFetcher.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/CbzFetcher.kt @@ -23,10 +23,7 @@ class CbzFetcher( val zip = ZipFile(uri.schemeSpecificPart) val entry = zip.getEntry(uri.fragment) val ext = MimeTypeMap.getFileExtensionFromUrl(entry.name) - val bufferedSource = ExtraCloseableBufferedSource( - zip.getInputStream(entry).source().buffer(), - zip, - ) + val bufferedSource = zip.getInputStream(entry).source().withExtraCloseable(zip).buffer() SourceResult( source = ImageSource( source = bufferedSource, @@ -50,4 +47,4 @@ class CbzFetcher( } class CbzMetadata(val uri: Uri) : ImageSource.Metadata() -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableBufferedSource.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableBufferedSource.kt deleted file mode 100644 index 69ba2565a..000000000 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableBufferedSource.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.koitharu.kotatsu.local.data - -import okhttp3.internal.closeQuietly -import okio.BufferedSource -import okio.Closeable - -class ExtraCloseableBufferedSource( - private val delegate: BufferedSource, - vararg closeable: Closeable, -) : BufferedSource by delegate { - - private val extraCloseable = closeable - - override fun close() { - delegate.close() - extraCloseable.forEach { x -> x.closeQuietly() } - } -} \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableSource.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableSource.kt new file mode 100644 index 000000000..342c6bac8 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/ExtraCloseableSource.kt @@ -0,0 +1,21 @@ +package org.koitharu.kotatsu.local.data + +import okhttp3.internal.closeQuietly +import okio.Closeable +import okio.Source + +private class ExtraCloseableSource( + private val delegate: Source, + private val extraCloseable: Closeable, +) : Source by delegate { + + override fun close() { + try { + delegate.close() + } finally { + extraCloseable.closeQuietly() + } + } +} + +fun Source.withExtraCloseable(closeable: Closeable): Source = ExtraCloseableSource(this, closeable)