Update okio
This commit is contained in:
@@ -114,7 +114,7 @@ dependencies {
|
|||||||
|
|
||||||
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
|
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
|
||||||
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.9.3'
|
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:4.3.2'
|
||||||
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding: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.json:json:20220924'
|
||||||
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
|
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:rules:1.5.0'
|
||||||
androidTestImplementation 'androidx.test:core-ktx: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'
|
androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
|
||||||
|
|
||||||
|
|||||||
@@ -23,10 +23,7 @@ class CbzFetcher(
|
|||||||
val zip = ZipFile(uri.schemeSpecificPart)
|
val zip = ZipFile(uri.schemeSpecificPart)
|
||||||
val entry = zip.getEntry(uri.fragment)
|
val entry = zip.getEntry(uri.fragment)
|
||||||
val ext = MimeTypeMap.getFileExtensionFromUrl(entry.name)
|
val ext = MimeTypeMap.getFileExtensionFromUrl(entry.name)
|
||||||
val bufferedSource = ExtraCloseableBufferedSource(
|
val bufferedSource = zip.getInputStream(entry).source().withExtraCloseable(zip).buffer()
|
||||||
zip.getInputStream(entry).source().buffer(),
|
|
||||||
zip,
|
|
||||||
)
|
|
||||||
SourceResult(
|
SourceResult(
|
||||||
source = ImageSource(
|
source = ImageSource(
|
||||||
source = bufferedSource,
|
source = bufferedSource,
|
||||||
@@ -50,4 +47,4 @@ class CbzFetcher(
|
|||||||
}
|
}
|
||||||
|
|
||||||
class CbzMetadata(val uri: Uri) : ImageSource.Metadata()
|
class CbzMetadata(val uri: Uri) : ImageSource.Metadata()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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() }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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)
|
||||||
Reference in New Issue
Block a user