diff --git a/.editorconfig b/.editorconfig index 1643a8a4f..c0d9bb514 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,3 +1,4 @@ [*.{kt,kts}] +ij_kotlin_imports_layout = * ktlint_code_style = intellij_idea ktlint_function_naming_ignore_when_annotated_with = Composable diff --git a/app/src/gms/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt b/app/src/gms/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt index 5a8a0e0ce..32d95a3a4 100644 --- a/app/src/gms/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt +++ b/app/src/gms/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt @@ -7,6 +7,13 @@ import com.hippo.ehviewer.client.CHROME_USER_AGENT import com.hippo.ehviewer.client.EhCookieStore import eu.kanade.tachiyomi.util.system.logcat import io.ktor.utils.io.pool.DirectByteBufferPool +import java.nio.ByteBuffer +import java.nio.channels.FileChannel +import kotlin.contracts.InvocationKind +import kotlin.contracts.contract +import kotlin.coroutines.Continuation +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine @@ -17,13 +24,6 @@ import org.chromium.net.CronetException import org.chromium.net.UrlRequest import org.chromium.net.UrlResponseInfo import splitties.init.appCtx -import java.nio.ByteBuffer -import java.nio.channels.FileChannel -import kotlin.contracts.InvocationKind -import kotlin.contracts.contract -import kotlin.coroutines.Continuation -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException private const val TAG = "CronetRequest" val pool = DirectByteBufferPool(32) diff --git a/app/src/main/kotlin/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt b/app/src/main/kotlin/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt index 5745afc78..089e0ce4e 100644 --- a/app/src/main/kotlin/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt +++ b/app/src/main/kotlin/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt @@ -23,14 +23,6 @@ import com.davemorrissey.labs.subscaleview.decoder.Decoder import com.davemorrissey.labs.subscaleview.decoder.ImageDecoder import com.davemorrissey.labs.subscaleview.provider.InputProvider import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job -import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.cancel -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import java.util.Locale import java.util.concurrent.locks.ReadWriteLock import java.util.concurrent.locks.ReentrantReadWriteLock @@ -39,6 +31,14 @@ import kotlin.math.max import kotlin.math.min import kotlin.math.roundToInt import kotlin.math.sqrt +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext /** * Displays an image subsampled as necessary to avoid loading too much image data into memory. After zooming in, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt index 44487d8d0..b8b5a47f5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt @@ -4,6 +4,8 @@ package com.hippo.ehviewer import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.FavListUrlBuilder +import java.util.Locale +import kotlin.reflect.KProperty import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.asFlow @@ -12,8 +14,6 @@ import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.flatMapMerge import splitties.preferences.DataStorePreferences import splitties.preferences.edit -import java.util.Locale -import kotlin.reflect.KProperty object Settings : DataStorePreferences(null) { private const val KEY_SHOW_TAG_TRANSLATIONS = "show_tag_translations" diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt index 4448ee734..e6cbce68f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt @@ -54,6 +54,9 @@ import com.hippo.ehviewer.util.AppConfig import com.hippo.ehviewer.util.StatusCodeException import com.hippo.ehviewer.util.isCronetSupported import io.ktor.utils.io.pool.DirectByteBufferPool +import java.io.File +import java.nio.ByteBuffer +import kotlin.math.ceil import kotlinx.coroutines.CancellationException import kotlinx.coroutines.delay import kotlinx.serialization.json.add @@ -68,9 +71,6 @@ import okhttp3.Request import okhttp3.RequestBody.Companion.asRequestBody import org.jsoup.Jsoup import splitties.init.appCtx -import java.io.File -import java.nio.ByteBuffer -import kotlin.math.ceil private const val TAG = "EhEngine" private const val MAX_REQUEST_SIZE = 25 diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhRequestBuilder.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhRequestBuilder.kt index db3683908..1d3eae5b9 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhRequestBuilder.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhRequestBuilder.kt @@ -19,6 +19,10 @@ import android.util.Log import com.hippo.ehviewer.EhApplication.Companion.baseOkHttpClient import com.hippo.ehviewer.EhApplication.Companion.noRedirectOkHttpClient import com.hippo.ehviewer.EhApplication.Companion.okHttpClient +import kotlin.contracts.InvocationKind +import kotlin.contracts.contract +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine @@ -38,10 +42,6 @@ import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import okhttp3.executeAsync import okio.BufferedSource -import kotlin.contracts.InvocationKind -import kotlin.contracts.contract -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException inline fun ehRequest(url: String, referer: String? = null, origin: String? = null, builder: Request.Builder.() -> Unit = {}) = Request.Builder().url(url).apply { addHeader("User-Agent", CHROME_USER_AGENT) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt index 41fc66e36..a9251c810 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt @@ -24,6 +24,8 @@ import com.hippo.ehviewer.R import com.hippo.ehviewer.util.AppConfig import com.hippo.ehviewer.util.FileUtils import com.hippo.ehviewer.util.copyToFile +import java.io.File +import java.nio.charset.StandardCharsets import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -42,8 +44,6 @@ import okio.blackholeSink import okio.buffer import okio.source import splitties.init.appCtx -import java.io.File -import java.nio.charset.StandardCharsets object EhTagDatabase : CoroutineScope { private const val NAMESPACE_PREFIX = "n" diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/data/ListUrlBuilder.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/data/ListUrlBuilder.kt index 599c6dbe3..8dea03ece 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/data/ListUrlBuilder.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/data/ListUrlBuilder.kt @@ -25,9 +25,9 @@ import com.hippo.ehviewer.dao.QuickSearch import com.hippo.ehviewer.ui.main.AdvanceTable import com.hippo.ehviewer.util.encodeUTF8 import com.hippo.ehviewer.util.toIntOrDefault -import kotlinx.parcelize.Parcelize import java.io.UnsupportedEncodingException import java.net.URLDecoder +import kotlinx.parcelize.Parcelize @Parcelize data class ListUrlBuilder( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt index 648d89872..20824a421 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt @@ -41,6 +41,10 @@ import com.hippo.ehviewer.util.toFloatOrDefault import com.hippo.ehviewer.util.toIntOrDefault import com.hippo.ehviewer.util.trimAnd import com.hippo.ehviewer.util.unescapeXml +import java.time.Instant +import java.time.ZoneOffset +import java.time.format.DateTimeFormatter +import java.util.Locale import org.jsoup.Jsoup import org.jsoup.nodes.Document import org.jsoup.nodes.Element @@ -48,10 +52,6 @@ import org.jsoup.nodes.Node import org.jsoup.select.Elements import org.jsoup.select.NodeTraversor import org.jsoup.select.NodeVisitor -import java.time.Instant -import java.time.ZoneOffset -import java.time.format.DateTimeFormatter -import java.util.Locale object GalleryDetailParser { private val PATTERN_ERROR = Regex("
\n

([^<]+)

") diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/HomeParser.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/HomeParser.kt index 6c0a9f5f3..4447e8b42 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/HomeParser.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/HomeParser.kt @@ -3,8 +3,8 @@ package com.hippo.ehviewer.client.parser import android.os.Parcelable import com.hippo.ehviewer.client.exception.InsufficientFundsException import com.hippo.ehviewer.client.exception.ParseException -import kotlinx.parcelize.Parcelize import java.nio.ByteBuffer +import kotlinx.parcelize.Parcelize object HomeParser { private val PATTERN_FUNDS = Regex("Available: ([\\d,]+) Credits.*Available: ([\\d,]+) kGP", RegexOption.DOT_MATCHES_ALL) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/coil/MergeInterceptor.kt b/app/src/main/kotlin/com/hippo/ehviewer/coil/MergeInterceptor.kt index 2cf0f83d4..6f9b731ac 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/coil/MergeInterceptor.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/coil/MergeInterceptor.kt @@ -3,6 +3,8 @@ package com.hippo.ehviewer.coil import coil.intercept.Interceptor import coil.request.ImageResult import com.hippo.ehviewer.Settings +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException import kotlinx.coroutines.CancellableContinuation import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope @@ -11,8 +13,6 @@ import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine import kotlinx.coroutines.withContext -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException object MergeInterceptor : Interceptor { private val pendingContinuationMap: HashMap>> = hashMapOf() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt b/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt index 72a1e75bc..64210a6e1 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt @@ -24,12 +24,12 @@ import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhCookieStore import com.hippo.ehviewer.client.EhEngine import eu.kanade.tachiyomi.util.lang.withIOContext -import splitties.init.appCtx import java.time.Duration import java.time.Instant import java.time.LocalDateTime import java.time.temporal.ChronoUnit import java.util.concurrent.TimeUnit +import splitties.init.appCtx private val signedIn get() = EhCookieStore.hasSignedIn() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt index 068f59623..c23eaeaa8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt @@ -39,6 +39,7 @@ import com.hippo.ehviewer.util.runAssertingNotMainThread import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withUIContext +import java.util.LinkedList import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.awaitClose @@ -50,7 +51,6 @@ import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.launch import splitties.init.appCtx import splitties.preferences.edit -import java.util.LinkedList object DownloadManager : OnSpiderListener { // All download info list diff --git a/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt b/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt index 484f17217..e82511009 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/gallery/ArchivePageLoader.kt @@ -35,6 +35,7 @@ import com.hippo.ehviewer.jni.providePassword import com.hippo.ehviewer.jni.releaseByteBuffer import com.hippo.ehviewer.util.FileUtils import com.hippo.unifile.UniFile +import java.nio.ByteBuffer import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineStart import kotlinx.coroutines.Dispatchers @@ -48,7 +49,6 @@ import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import moe.tarsin.coroutines.NamedMutex import moe.tarsin.coroutines.withLock -import java.nio.ByteBuffer class ArchivePageLoader(context: Context, private val uri: Uri, passwdFlow: Flow) : PageLoader2(), CoroutineScope { override val coroutineContext = Dispatchers.IO + Job() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt b/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt index ae5e4e823..c8a9b5fab 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt @@ -46,11 +46,11 @@ import com.hippo.ehviewer.util.isAtLeastP import com.hippo.ehviewer.util.isAtLeastU import com.hippo.unifile.UniFile import com.hippo.unifile.openInputStream +import java.nio.ByteBuffer +import kotlin.math.min import okio.buffer import okio.source import splitties.init.appCtx -import java.nio.ByteBuffer -import kotlin.math.min class Image private constructor(drawable: Drawable, private val src: AutoCloseable) { var mObtainedDrawable: Drawable? = drawable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/legacy/CleanupObsoleteCache.kt b/app/src/main/kotlin/com/hippo/ehviewer/legacy/CleanupObsoleteCache.kt index ab9e0e7a5..6e5f27486 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/legacy/CleanupObsoleteCache.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/legacy/CleanupObsoleteCache.kt @@ -2,8 +2,8 @@ package com.hippo.ehviewer.legacy import android.app.Application import eu.kanade.tachiyomi.util.lang.launchIO -import kotlinx.coroutines.DelicateCoroutinesApi import java.io.File +import kotlinx.coroutines.DelicateCoroutinesApi private val OBSOLETE_CACHE_DIRS = arrayOf( "image", diff --git a/app/src/main/kotlin/com/hippo/ehviewer/legacy/SpiderInfoCompat.kt b/app/src/main/kotlin/com/hippo/ehviewer/legacy/SpiderInfoCompat.kt index 60d73a1e2..5d29af6ad 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/legacy/SpiderInfoCompat.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/legacy/SpiderInfoCompat.kt @@ -1,9 +1,9 @@ package com.hippo.ehviewer.legacy import com.hippo.ehviewer.spider.SpiderInfo +import java.io.InputStream import okio.buffer import okio.source -import java.io.InputStream fun readLegacySpiderInfo(inputStream: InputStream): SpiderInfo { val source = inputStream.source().buffer() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt index 146d28c82..51fe7ac75 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt @@ -17,6 +17,7 @@ package com.hippo.ehviewer.spider import android.os.ParcelFileDescriptor import android.os.ParcelFileDescriptor.MODE_READ_WRITE +import com.hippo.ehviewer.EhApplication.Companion.imageCache as sCache import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.client.EhUtils.getSuitableTitle import com.hippo.ehviewer.client.data.GalleryInfo @@ -38,14 +39,13 @@ import com.hippo.ehviewer.util.isCronetSupported import com.hippo.ehviewer.util.sendTo import com.hippo.unifile.UniFile import com.hippo.unifile.openOutputStream +import java.util.Locale +import kotlin.io.path.readText import okhttp3.MediaType.Companion.toMediaType import okhttp3.Response import okio.Buffer import okio.ForwardingSink import okio.sink -import java.util.Locale -import kotlin.io.path.readText -import com.hippo.ehviewer.EhApplication.Companion.imageCache as sCache class SpiderDen(mGalleryInfo: GalleryInfo) { private val mGid = mGalleryInfo.gid diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderInfo.kt index d10c4010b..397a3364a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderInfo.kt @@ -7,13 +7,13 @@ import com.hippo.ehviewer.legacy.readLegacySpiderInfo import com.hippo.unifile.UniFile import com.hippo.unifile.openInputStream import com.hippo.unifile.openOutputStream +import java.io.File import kotlinx.serialization.Serializable import kotlinx.serialization.cbor.Cbor import kotlinx.serialization.decodeFromByteArray import kotlinx.serialization.encodeToByteArray import moe.tarsin.coroutines.runSuspendCatching import splitties.init.appCtx -import java.io.File @Serializable class SpiderInfo( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt index 0de014ae4..0d8a64ca4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt @@ -42,6 +42,9 @@ import com.hippo.ehviewer.image.Image import com.hippo.ehviewer.util.ExceptionUtils import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.util.lang.launchIO +import java.time.Instant +import java.util.concurrent.atomic.AtomicInteger +import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -59,9 +62,6 @@ import kotlinx.coroutines.sync.withPermit import kotlinx.coroutines.withTimeout import moe.tarsin.coroutines.runSuspendCatching import splitties.init.appCtx -import java.time.Instant -import java.util.concurrent.atomic.AtomicInteger -import kotlin.time.Duration.Companion.seconds class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineScope { override val coroutineContext = Dispatchers.IO + Job() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt index aece5c365..3376e39c9 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -69,12 +69,12 @@ import com.hippo.ehviewer.util.getParcelableExtraCompat import com.hippo.ehviewer.util.getUrlFromClipboard import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.lang.withUIContext +import java.io.File +import java.io.FileOutputStream import kotlinx.coroutines.delay import kotlinx.coroutines.launch import splitties.systemservices.clipboardManager import splitties.systemservices.connectivityManager -import java.io.File -import java.io.FileOutputStream class MainActivity : EhActivity() { private lateinit var binding: ActivityMainBinding diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt index 81519e0d6..a19f166ad 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt @@ -64,10 +64,10 @@ import com.hippo.ehviewer.util.ExceptionUtils import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.lang.withUIContext +import java.util.Locale import kotlinx.coroutines.Job import kotlinx.coroutines.launch import okhttp3.Cookie -import java.util.Locale @Composable fun CookieSignInScene(windowSizeClass: WindowSizeClass) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index 9e289902b..7e3027807 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -81,6 +81,7 @@ import com.hippo.ehviewer.databinding.ItemDownloadBinding import com.hippo.ehviewer.databinding.ItemDrawerListBinding import com.hippo.ehviewer.databinding.SceneDownloadBinding import com.hippo.ehviewer.download.DownloadManager +import com.hippo.ehviewer.download.DownloadManager as downloadManager import com.hippo.ehviewer.download.DownloadService import com.hippo.ehviewer.download.DownloadService.Companion.clear import com.hippo.ehviewer.download.downloadDir @@ -115,7 +116,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import rikka.core.res.resolveColor -import com.hippo.ehviewer.download.DownloadManager as downloadManager @SuppressLint("RtlHardcoded") class DownloadsScene : diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt index 95a08c852..2e9ce2c24 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt @@ -88,17 +88,17 @@ import com.hippo.ehviewer.util.lazyMut import com.hippo.ehviewer.util.setValue import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withIOContext -import kotlinx.coroutines.Job -import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.launch -import moe.tarsin.coroutines.runSuspendCatching -import rikka.core.res.resolveColor import java.time.Instant import java.time.LocalDateTime import java.time.ZoneId import java.time.ZoneOffset import java.time.format.DateTimeFormatter import java.util.Locale +import kotlinx.coroutines.Job +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.launch +import moe.tarsin.coroutines.runSuspendCatching +import rikka.core.res.resolveColor // Note that we do not really follow mvvm structure, just use it as ... storage class VMStorage : ViewModel() { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt index ef6447707..3fee289eb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt @@ -91,9 +91,9 @@ import com.hippo.ehviewer.util.getParcelableCompat import com.hippo.ehviewer.util.toBBCode import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withUIContext +import kotlin.math.hypot import moe.tarsin.coroutines.runSuspendCatching import rikka.core.res.resolveColor -import kotlin.math.hypot class GalleryCommentsScene : BaseToolbarScene(), View.OnClickListener, OnRefreshListener { private var _binding: SceneGalleryCommentsBinding? = null diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index 693634f2f..a33857c6b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -136,6 +136,7 @@ import com.hippo.ehviewer.databinding.DialogArchiveListBinding import com.hippo.ehviewer.databinding.DialogRateBinding import com.hippo.ehviewer.databinding.DialogTorrentListBinding import com.hippo.ehviewer.databinding.ItemGalleryCommentBinding +import com.hippo.ehviewer.download.DownloadManager as EhDownloadManager import com.hippo.ehviewer.ktbuilder.imageRequest import com.hippo.ehviewer.spider.SpiderQueen import com.hippo.ehviewer.spider.SpiderQueen.Companion.MODE_READ @@ -172,6 +173,7 @@ import com.hippo.ehviewer.util.addTextToClipboard import com.hippo.ehviewer.util.getParcelableCompat import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withUIContext +import kotlin.math.roundToInt import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Job import kotlinx.coroutines.sync.Mutex @@ -179,8 +181,6 @@ import kotlinx.coroutines.sync.withLock import moe.tarsin.coroutines.runSuspendCatching import okhttp3.HttpUrl.Companion.toHttpUrl import splitties.systemservices.downloadManager -import kotlin.math.roundToInt -import com.hippo.ehviewer.download.DownloadManager as EhDownloadManager class GalleryDetailScene : BaseScene() { private var mDownloadState = 0 diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index 6f191e3bd..220db6760 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -108,12 +108,6 @@ import com.hippo.ehviewer.util.setValue import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.lang.withUIContext -import kotlinx.coroutines.delay -import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.launch -import kotlinx.parcelize.Parcelize -import moe.tarsin.coroutines.runSuspendCatching -import rikka.core.res.resolveColor import java.io.File import java.time.Instant import java.time.LocalDateTime @@ -121,6 +115,12 @@ import java.time.ZoneId import java.time.ZoneOffset import java.time.format.DateTimeFormatter import java.util.Locale +import kotlinx.coroutines.delay +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.launch +import kotlinx.parcelize.Parcelize +import moe.tarsin.coroutines.runSuspendCatching +import rikka.core.res.resolveColor class VMStorage1 : ViewModel() { var urlBuilder = ListUrlBuilder() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt index 9ca7776df..7fb38946e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt @@ -43,10 +43,10 @@ import com.hippo.ehviewer.util.AppConfig import com.hippo.ehviewer.util.ExceptionUtils import com.hippo.ehviewer.util.installPackage import eu.kanade.tachiyomi.util.lang.withUIContext +import java.io.File import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import moe.tarsin.coroutines.runSuspendCatching -import java.io.File private const val REPO_URL = "https://github.com/${BuildConfig.REPO_NAME}" private const val RELEASE_URL = "$REPO_URL/releases" diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index 79f15dea0..d75b86b5a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -38,13 +38,13 @@ import com.hippo.ehviewer.ui.LocalNavController import com.hippo.ehviewer.ui.tools.observed import com.hippo.ehviewer.util.AppConfig import com.hippo.ehviewer.util.ReadableTime +import java.io.File +import java.util.zip.ZipEntry +import java.util.zip.ZipOutputStream import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import moe.tarsin.coroutines.runSuspendCatching -import java.io.File -import java.util.zip.ZipEntry -import java.util.zip.ZipOutputStream @Composable fun AdvancedScreen() { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt index ea743c69a..40c226c53 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt @@ -50,13 +50,13 @@ import com.jamal.composeprefs3.ui.prefs.SliderPref import com.jamal.composeprefs3.ui.prefs.SpannedTextPref import com.jamal.composeprefs3.ui.prefs.SwitchPref import com.jamal.composeprefs3.ui.prefs.TextPref -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch import kotlin.coroutines.resume import kotlin.coroutines.suspendCoroutine import kotlin.math.roundToInt import kotlin.reflect.KMutableProperty0 +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch object PreferenceTokens { val PreferenceHeaderHeight = 56.dp diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt index 18051f6a4..c04cc818b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt @@ -47,9 +47,9 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties import com.jamal.composeprefs3.ui.ifNotNullThen +import kotlin.coroutines.resume import kotlinx.coroutines.CancellableContinuation import kotlinx.coroutines.suspendCancellableCoroutine -import kotlin.coroutines.resume interface DialogScope { var expectedValue: R diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalFastScroller.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalFastScroller.kt index fa66b0e5a..c00110652 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalFastScroller.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalFastScroller.kt @@ -46,14 +46,14 @@ import androidx.compose.ui.util.fastFirstOrNull import androidx.compose.ui.util.fastForEach import androidx.compose.ui.util.fastMaxBy import com.hippo.ehviewer.ui.tools.Scroller.STICKY_HEADER_KEY_PREFIX -import kotlinx.coroutines.channels.BufferOverflow -import kotlinx.coroutines.flow.MutableSharedFlow -import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.flow.sample import kotlin.math.abs import kotlin.math.max import kotlin.math.min import kotlin.math.roundToInt +import kotlinx.coroutines.channels.BufferOverflow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.sample /** * Draws vertical fast scroller to a lazy list diff --git a/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt b/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt index e8fc694d9..565daa9cd 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt @@ -6,6 +6,10 @@ import com.hippo.ehviewer.client.execute import com.hippo.ehviewer.client.executeAndParseAs import eu.kanade.tachiyomi.util.system.logcat import io.ktor.util.encodeBase64 +import java.io.File +import java.time.Instant +import java.time.temporal.ChronoUnit +import java.util.zip.ZipInputStream import moe.tarsin.coroutines.runSuspendCatching import okhttp3.Request import okio.sink @@ -14,10 +18,6 @@ import tachiyomi.data.release.GithubArtifacts import tachiyomi.data.release.GithubCommitComparison import tachiyomi.data.release.GithubRelease import tachiyomi.data.release.GithubWorkflowRuns -import java.io.File -import java.time.Instant -import java.time.temporal.ChronoUnit -import java.util.zip.ZipInputStream private const val API_URL = "https://api.github.com/repos/${BuildConfig.REPO_NAME}" private const val LATEST_RELEASE_URL = "$API_URL/releases/latest" diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/AppConfig.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/AppConfig.kt index 8147a3345..3b72b1633 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/AppConfig.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/AppConfig.kt @@ -17,8 +17,8 @@ package com.hippo.ehviewer.util import android.os.Environment import com.hippo.ehviewer.client.exception.ParseException -import splitties.init.appCtx import java.io.File +import splitties.init.appCtx fun File.ensureDirectory() = if (exists()) isDirectory else mkdirs() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt index a2dccb830..a172ec132 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt @@ -17,7 +17,6 @@ package com.hippo.ehviewer.util import com.hippo.ehviewer.R import com.hippo.ehviewer.client.exception.EhException -import splitties.init.appCtx import java.io.IOException import java.net.MalformedURLException import java.net.ProtocolException @@ -25,6 +24,7 @@ import java.net.SocketException import java.net.SocketTimeoutException import java.net.UnknownHostException import javax.net.ssl.SSLException +import splitties.init.appCtx object ExceptionUtils { fun getReadableString(e: Throwable): String { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/IOUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/IOUtils.kt index 18971cc47..7420bee82 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/IOUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/IOUtils.kt @@ -1,9 +1,9 @@ package com.hippo.ehviewer.util +import java.io.File import okhttp3.ResponseBody import okio.buffer import okio.sink -import java.io.File fun ResponseBody.copyToFile(file: File) { file.outputStream().use { os -> diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt index 8ecdf6638..7066ce8c5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt @@ -22,10 +22,10 @@ import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner import arrow.atomic.AtomicInt import eu.kanade.tachiyomi.util.lang.withUIContext -import rikka.core.util.ContextUtils.requireActivity import java.io.File import kotlin.coroutines.resume import kotlin.coroutines.suspendCoroutine +import rikka.core.util.ContextUtils.requireActivity // Fuck off the silly Android launcher and callback :) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/OSUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/OSUtils.kt index 2ba3425ad..c60e57358 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/OSUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/OSUtils.kt @@ -16,11 +16,11 @@ package com.hippo.ehviewer.util import android.os.Looper -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.runBlocking import java.io.BufferedReader import java.io.FileReader import java.util.regex.Pattern +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.runBlocking object OSUtils { private const val PROCFS_MEMFILE = "/proc/meminfo" diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt index 63d75e2ec..006ddef9b 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt @@ -8,12 +8,12 @@ import android.webkit.WebViewClient import androidx.core.content.ContextCompat import com.hippo.ehviewer.client.EhCookieStore import com.hippo.ehviewer.client.exception.CloudflareBypassException +import java.io.IOException +import java.util.concurrent.CountDownLatch import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.Interceptor import okhttp3.Request import okhttp3.Response -import java.io.IOException -import java.util.concurrent.CountDownLatch class CloudflareInterceptor(context: Context) : WebViewInterceptor(context) { private val executor = ContextCompat.getMainExecutor(context) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/WebViewInterceptor.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/WebViewInterceptor.kt index 26a6eda2c..d056e43e1 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/WebViewInterceptor.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/WebViewInterceptor.kt @@ -4,13 +4,13 @@ import android.content.Context import android.webkit.WebSettings import android.webkit.WebView import com.hippo.ehviewer.util.setDefaultSettings +import java.util.Locale +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit import okhttp3.Headers import okhttp3.Interceptor import okhttp3.Request import okhttp3.Response -import java.util.Locale -import java.util.concurrent.CountDownLatch -import java.util.concurrent.TimeUnit abstract class WebViewInterceptor(private val context: Context) : Interceptor { /** diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 0a75a50a9..7aab448f8 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -98,6 +98,12 @@ import eu.kanade.tachiyomi.util.view.copy import eu.kanade.tachiyomi.util.view.popupMenu import eu.kanade.tachiyomi.util.view.setTooltip import eu.kanade.tachiyomi.widget.listener.SimpleAnimationListener +import java.io.File +import java.io.IOException +import java.util.concurrent.atomic.AtomicReference +import kotlin.coroutines.Continuation +import kotlin.coroutines.resume +import kotlin.math.abs import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.ensureActive @@ -109,12 +115,6 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.sample import kotlinx.coroutines.suspendCancellableCoroutine import splitties.systemservices.clipboardManager -import java.io.File -import java.io.IOException -import java.util.concurrent.atomic.AtomicReference -import kotlin.coroutines.Continuation -import kotlin.coroutines.resume -import kotlin.math.abs class ReaderActivity : EhActivity() { lateinit var binding: ReaderActivityBinding diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index fb71eaa73..7e15dcdd1 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -17,10 +17,10 @@ import androidx.core.graphics.blue import androidx.core.graphics.green import androidx.core.graphics.red import com.hippo.ehviewer.R -import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences -import splitties.systemservices.windowManager -import kotlin.math.roundToInt import com.hippo.ehviewer.Settings as AppSettings +import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences +import kotlin.math.roundToInt +import splitties.systemservices.windowManager /** * Returns the color for the given attribute. diff --git a/app/src/main/kotlin/moe/tarsin/coroutines/NamedMutex.kt b/app/src/main/kotlin/moe/tarsin/coroutines/NamedMutex.kt index f1876fcea..4b698d1ea 100644 --- a/app/src/main/kotlin/moe/tarsin/coroutines/NamedMutex.kt +++ b/app/src/main/kotlin/moe/tarsin/coroutines/NamedMutex.kt @@ -1,9 +1,9 @@ package moe.tarsin.coroutines import arrow.core.memoize -import kotlinx.coroutines.sync.Mutex import kotlin.contracts.InvocationKind import kotlin.contracts.contract +import kotlinx.coroutines.sync.Mutex class NamedMutex { val innerMutexGetter = { _: T -> Mutex() }.memoize() diff --git a/app/src/oss/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt b/app/src/oss/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt index 74dc99930..4a69678eb 100644 --- a/app/src/oss/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt +++ b/app/src/oss/kotlin/com/hippo/ehviewer/cronet/CronetKt.kt @@ -15,12 +15,6 @@ import com.hippo.ehviewer.client.CHROME_USER_AGENT import com.hippo.ehviewer.client.EhCookieStore import eu.kanade.tachiyomi.util.system.logcat import io.ktor.utils.io.pool.DirectByteBufferPool -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.suspendCancellableCoroutine -import okhttp3.HttpUrl.Companion.toHttpUrl -import okio.Path.Companion.toOkioPath -import splitties.init.appCtx import java.nio.ByteBuffer import java.nio.channels.FileChannel import kotlin.contracts.InvocationKind @@ -28,6 +22,12 @@ import kotlin.contracts.contract import kotlin.coroutines.Continuation import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.suspendCancellableCoroutine +import okhttp3.HttpUrl.Companion.toHttpUrl +import okio.Path.Companion.toOkioPath +import splitties.init.appCtx private const val TAG = "CronetRequest" val pool = DirectByteBufferPool(32)