diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/backups/ui/periodical/TelegramBackupUploader.kt b/app/src/main/kotlin/org/koitharu/kotatsu/backups/ui/periodical/TelegramBackupUploader.kt index d1b15296d..f20443b48 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/backups/ui/periodical/TelegramBackupUploader.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/backups/ui/periodical/TelegramBackupUploader.kt @@ -36,7 +36,7 @@ class TelegramBackupUploader @Inject constructor( suspend fun uploadBackup(file: File) { val requestBody = file.asRequestBody("application/zip".toMediaTypeOrNull()) val multipartBody = MultipartBody.Builder() - .setType(MultipartBody.Companion.FORM) + .setType(MultipartBody.FORM) .addFormDataPart("chat_id", requireChatId()) .addFormDataPart("document", file.name, requestBody) .build() diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt index 236dbd091..9871eda5e 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt @@ -798,7 +798,7 @@ class AppRouter private constructor( else -> true } - fun shortMangaUrl(mangaId: Long) = Uri.Builder() + fun shortMangaUrl(mangaId: Long): Uri = Uri.Builder() .scheme("kotatsu") .path("manga") .appendQueryParameter("id", mangaId.toString()) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt index e17e8477c..69fa199c2 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt @@ -19,6 +19,7 @@ import coil3.request.Options import coil3.size.pxOrElse import coil3.toAndroidUri import coil3.toBitmap +import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.ensureActive import kotlinx.coroutines.runInterruptible import okio.FileSystem @@ -41,7 +42,6 @@ import org.koitharu.kotatsu.local.data.LocalStorageCache import org.koitharu.kotatsu.parsers.util.runCatchingCancellable import java.io.File import javax.inject.Inject -import kotlin.coroutines.coroutineContext import coil3.Uri as CoilUri class FaviconFetcher( @@ -88,7 +88,7 @@ class FaviconFetcher( var favicons = repository.getFavicons() var lastError: Exception? = null while (favicons.isNotEmpty()) { - coroutineContext.ensureActive() + currentCoroutineContext().ensureActive() val icon = favicons.find(sizePx) ?: throwNSEE(lastError) try { val result = imageLoader.fetch(icon.url, options) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/DetailsInteractor.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/DetailsInteractor.kt index ed569cb37..e8c1aa04f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/DetailsInteractor.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/DetailsInteractor.kt @@ -1,13 +1,11 @@ package org.koitharu.kotatsu.details.domain -import android.util.Log import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChangedBy import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flowOf -import kotlinx.coroutines.flow.onEach import org.koitharu.kotatsu.core.model.FavouriteCategory import org.koitharu.kotatsu.core.model.isNsfw import org.koitharu.kotatsu.core.prefs.AppSettings diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt index e8e211b36..9563c6784 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt @@ -27,7 +27,7 @@ class ReadingTimeUseCase @Inject constructor( // Impossible task, I guess. Good luck on this. var averageTimeSec: Int = 20 /* pages */ * getSecondsPerPage(manga.id) * chapters.size if (isOnHistoryBranch) { - averageTimeSec = (averageTimeSec * (1f - checkNotNull(history).percent)).roundToInt() + averageTimeSec = (averageTimeSec * (1f - history.percent)).roundToInt() } if (averageTimeSec < 60) { return null diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt index 1ee1087d6..3708db89f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt @@ -2,7 +2,6 @@ package org.koitharu.kotatsu.details.ui import android.app.assist.AssistContent import android.content.Context -import android.os.Build import android.os.Bundle import android.text.SpannedString import android.view.Gravity diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/explore/ui/adapter/ExploreAdapterDelegates.kt b/app/src/main/kotlin/org/koitharu/kotatsu/explore/ui/adapter/ExploreAdapterDelegates.kt index bbb115658..751d19892 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/explore/ui/adapter/ExploreAdapterDelegates.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/explore/ui/adapter/ExploreAdapterDelegates.kt @@ -1,7 +1,6 @@ package org.koitharu.kotatsu.explore.ui.adapter import android.view.View -import androidx.appcompat.widget.TooltipCompat import androidx.core.content.ContextCompat import androidx.core.text.bold import androidx.core.text.buildSpannedString diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt index 420dc4060..1a82afe3a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/sheet/FilterSheetFragment.kt @@ -1,6 +1,5 @@ package org.koitharu.kotatsu.filter.ui.sheet -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/image/ui/CoverImageView.kt b/app/src/main/kotlin/org/koitharu/kotatsu/image/ui/CoverImageView.kt index 0b6560e76..e66f1cd0f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/image/ui/CoverImageView.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/image/ui/CoverImageView.kt @@ -2,14 +2,12 @@ package org.koitharu.kotatsu.image.ui import android.content.Context import android.graphics.drawable.LayerDrawable -import android.os.Build import android.util.AttributeSet import android.view.Gravity import android.view.ViewGroup import android.view.ViewTreeObserver import android.view.ViewTreeObserver.OnPreDrawListener import androidx.annotation.AttrRes -import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat import androidx.core.content.withStyledAttributes import androidx.core.graphics.ColorUtils @@ -205,6 +203,7 @@ class CoverImageView @JvmOverloads constructor( is HttpStatusException -> statusCode.toString() is ContentUnavailableException, is FileNotFoundException -> "404" + is TooManyRequestExceptions -> "429" is ParseException -> "" is UnsupportedSourceException -> "X" @@ -266,7 +265,7 @@ class CoverImageView @JvmOverloads constructor( width = Dimension(height.px * view.aspectRationWidth / view.aspectRationHeight) } } - return Size(checkNotNull(width), checkNotNull(height)) + return Size(width, height) } private fun getWidth() = getDimension( diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/MangaIndex.kt b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/MangaIndex.kt index d7713b290..29376d44f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/MangaIndex.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/MangaIndex.kt @@ -27,7 +27,6 @@ import org.koitharu.kotatsu.parsers.util.json.getLongOrDefault import org.koitharu.kotatsu.parsers.util.json.getStringOrNull import org.koitharu.kotatsu.parsers.util.json.mapJSONToSet import org.koitharu.kotatsu.parsers.util.json.toStringSet -import org.koitharu.kotatsu.parsers.util.nullIfEmpty import org.koitharu.kotatsu.parsers.util.runCatchingCancellable import org.koitharu.kotatsu.parsers.util.toTitleCase import java.io.File diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/EdgeDetector.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/EdgeDetector.kt index 9db9045cd..253748716 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/EdgeDetector.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/domain/EdgeDetector.kt @@ -8,11 +8,9 @@ import android.graphics.Rect import androidx.annotation.ColorInt import androidx.core.graphics.alpha import androidx.core.graphics.blue -import androidx.core.graphics.get import androidx.core.graphics.green import androidx.core.graphics.red import com.davemorrissey.labs.subscaleview.ImageSource -import com.davemorrissey.labs.subscaleview.decoder.ImageRegionDecoder import com.davemorrissey.labs.subscaleview.decoder.SkiaPooledImageRegionDecoder import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async @@ -23,7 +21,6 @@ import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext import org.koitharu.kotatsu.core.util.SynchronizedSieveCache -import org.koitharu.kotatsu.core.util.ext.use import kotlin.math.abs import kotlin.math.max import kotlin.math.min @@ -46,19 +43,19 @@ class EdgeDetector(private val context: Context) { } val scaleFactor = calculateScaleFactor(size) val sampleSize = (1f / scaleFactor).toInt().coerceAtLeast(1) - + val fullBitmap = decoder.decodeRegion( - Rect(0, 0, size.x, size.y), - sampleSize + Rect(0, 0, size.x, size.y), + sampleSize, ) - + try { val edges = coroutineScope { listOf( - async { detectLeftRightEdge(fullBitmap, size, sampleSize, isLeft = true) }, - async { detectTopBottomEdge(fullBitmap, size, sampleSize, isTop = true) }, - async { detectLeftRightEdge(fullBitmap, size, sampleSize, isLeft = false) }, - async { detectTopBottomEdge(fullBitmap, size, sampleSize, isTop = false) }, + async { detectLeftRightEdge(fullBitmap, size, sampleSize, isLeft = true) }, + async { detectTopBottomEdge(fullBitmap, size, sampleSize, isTop = true) }, + async { detectLeftRightEdge(fullBitmap, size, sampleSize, isLeft = false) }, + async { detectTopBottomEdge(fullBitmap, size, sampleSize, isTop = false) }, ).awaitAll() } var hasEdges = false @@ -91,10 +88,10 @@ class EdgeDetector(private val context: Context) { val rectCount = size.x / BLOCK_SIZE val maxRect = rectCount / 3 val blockPixels = IntArray(BLOCK_SIZE * BLOCK_SIZE) - + val bitmapWidth = bitmap.width val bitmapHeight = bitmap.height - + for (i in 0 until rectCount) { if (i > maxRect) { return -1 @@ -103,16 +100,16 @@ class EdgeDetector(private val context: Context) { for (j in 0 until size.y / BLOCK_SIZE) { val regionX = if (isLeft) i * BLOCK_SIZE else size.x - (i + 1) * BLOCK_SIZE val regionY = j * BLOCK_SIZE - + // Convert to bitmap coordinates val bitmapX = regionX / sampleSize val bitmapY = regionY / sampleSize val blockWidth = min(BLOCK_SIZE / sampleSize, bitmapWidth - bitmapX) val blockHeight = min(BLOCK_SIZE / sampleSize, bitmapHeight - bitmapY) - + if (blockWidth > 0 && blockHeight > 0) { bitmap.getPixels(blockPixels, 0, blockWidth, bitmapX, bitmapY, blockWidth, blockHeight) - + for (ii in 0 until minOf(blockWidth, dd / sampleSize)) { for (jj in 0 until blockHeight) { val bi = if (isLeft) ii else blockWidth - ii - 1 @@ -141,10 +138,10 @@ class EdgeDetector(private val context: Context) { val rectCount = size.y / BLOCK_SIZE val maxRect = rectCount / 3 val blockPixels = IntArray(BLOCK_SIZE * BLOCK_SIZE) - + val bitmapWidth = bitmap.width val bitmapHeight = bitmap.height - + for (j in 0 until rectCount) { if (j > maxRect) { return -1 @@ -153,16 +150,16 @@ class EdgeDetector(private val context: Context) { for (i in 0 until size.x / BLOCK_SIZE) { val regionX = i * BLOCK_SIZE val regionY = if (isTop) j * BLOCK_SIZE else size.y - (j + 1) * BLOCK_SIZE - + // Convert to bitmap coordinates val bitmapX = regionX / sampleSize val bitmapY = regionY / sampleSize val blockWidth = min(BLOCK_SIZE / sampleSize, bitmapWidth - bitmapX) val blockHeight = min(BLOCK_SIZE / sampleSize, bitmapHeight - bitmapY) - + if (blockWidth > 0 && blockHeight > 0) { bitmap.getPixels(blockPixels, 0, blockWidth, bitmapX, bitmapY, blockWidth, blockHeight) - + for (jj in 0 until minOf(blockHeight, dd / sampleSize)) { for (ii in 0 until blockWidth) { val bj = if (isTop) jj else blockHeight - jj - 1 @@ -218,4 +215,4 @@ class EdgeDetector(private val context: Context) { private fun region(x: Int, y: Int) = Rect(x, y, x + BLOCK_SIZE, y + BLOCK_SIZE) } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/scrobbling/mal/data/MALRepository.kt b/app/src/main/kotlin/org/koitharu/kotatsu/scrobbling/mal/data/MALRepository.kt index 91d21a714..fa3d0bed7 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/scrobbling/mal/data/MALRepository.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/scrobbling/mal/data/MALRepository.kt @@ -183,7 +183,7 @@ class MALRepository @Inject constructor( storage.clear() } - private fun jsonToManga(json: JSONObject, sourceTitle: String): ScrobblerManga? { + private fun jsonToManga(json: JSONObject, sourceTitle: String): ScrobblerManga { val node = json.getJSONObject("node") val title = node.getString("title") return ScrobblerManga( diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt b/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt index 1a1452d39..2eac1ab88 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt @@ -1,6 +1,5 @@ package org.koitharu.kotatsu.search.ui.suggestion.adapter -import androidx.appcompat.widget.TooltipCompat import androidx.core.view.updatePadding import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/about/AppUpdateViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/about/AppUpdateViewModel.kt index 7ded312c2..cd5f0dce4 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/about/AppUpdateViewModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/about/AppUpdateViewModel.kt @@ -8,6 +8,7 @@ import androidx.core.net.toUri import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.isActive @@ -18,7 +19,6 @@ import org.koitharu.kotatsu.core.util.ext.MutableEventFlow import org.koitharu.kotatsu.core.util.ext.call import org.koitharu.kotatsu.core.util.ext.requireValue import javax.inject.Inject -import kotlin.coroutines.coroutineContext @HiltViewModel class AppUpdateViewModel @Inject constructor( @@ -79,7 +79,7 @@ class AppUpdateViewModel @Inject constructor( private suspend fun observeDownload(id: Long) { val query = DownloadManager.Query() query.setFilterById(id) - while (coroutineContext.isActive) { + while (currentCoroutineContext().isActive) { downloadManager.query(query).use { cursor -> if (cursor.moveToFirst()) { val bytesDownloaded = cursor.getLong( diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsFragment.kt index 3095fc5ea..f7f70966a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsFragment.kt @@ -24,7 +24,7 @@ class DiscordSettingsFragment : BasePreferenceFragment(R.string.discord) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.pref_discord) - findPreference(AppSettings.Companion.KEY_DISCORD_TOKEN)?.let { pref -> + findPreference(AppSettings.KEY_DISCORD_TOKEN)?.let { pref -> pref.dialogMessage = pref.context.getString( R.string.discord_token_description, pref.context.getString(R.string.sign_in), @@ -44,21 +44,21 @@ class DiscordSettingsFragment : BasePreferenceFragment(R.string.discord) { } override fun onDisplayPreferenceDialog(preference: Preference) { - if (preference is EditTextPreference && preference.key == AppSettings.Companion.KEY_DISCORD_TOKEN) { - if (parentFragmentManager.findFragmentByTag(TokenDialogFragment.Companion.DIALOG_FRAGMENT_TAG) != null) { + if (preference is EditTextPreference && preference.key == AppSettings.KEY_DISCORD_TOKEN) { + if (parentFragmentManager.findFragmentByTag(TokenDialogFragment.DIALOG_FRAGMENT_TAG) != null) { return } val f = TokenDialogFragment.newInstance(preference.key) @Suppress("DEPRECATION") f.setTargetFragment(this, 0) - f.show(parentFragmentManager, TokenDialogFragment.Companion.DIALOG_FRAGMENT_TAG) + f.show(parentFragmentManager, TokenDialogFragment.DIALOG_FRAGMENT_TAG) return } super.onDisplayPreferenceDialog(preference) } private fun bindTokenPreference(state: TokenState, token: String?) { - val pref = findPreference(AppSettings.Companion.KEY_DISCORD_TOKEN) ?: return + val pref = findPreference(AppSettings.KEY_DISCORD_TOKEN) ?: return when (state) { TokenState.EMPTY -> { pref.icon = null diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsViewModel.kt index c52e4cadf..57e2324b4 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsViewModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/discord/DiscordSettingsViewModel.kt @@ -34,7 +34,7 @@ class DiscordSettingsViewModel @Inject constructor( TokenState.CHECKING to settings.discordToken, ) - private suspend fun checkToken(): Flow> = flow { + private fun checkToken(): Flow> = flow { val token = settings.discordToken if (!settings.isDiscordRpcEnabled) { emit( diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/suggestions/ui/SuggestionsWorker.kt b/app/src/main/kotlin/org/koitharu/kotatsu/suggestions/ui/SuggestionsWorker.kt index 0dda6d100..38e5c1c1a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/suggestions/ui/SuggestionsWorker.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/suggestions/ui/SuggestionsWorker.kt @@ -46,7 +46,6 @@ import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.exceptions.CloudFlareException -import org.koitharu.kotatsu.core.exceptions.CloudFlareProtectedException import org.koitharu.kotatsu.core.exceptions.resolve.CaptchaHandler import org.koitharu.kotatsu.core.model.distinctById import org.koitharu.kotatsu.core.model.getLocale diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/tracker/work/TrackerNotificationHelper.kt b/app/src/main/kotlin/org/koitharu/kotatsu/tracker/work/TrackerNotificationHelper.kt index 6e097ecc6..454ae4349 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/tracker/work/TrackerNotificationHelper.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/tracker/work/TrackerNotificationHelper.kt @@ -24,7 +24,6 @@ import org.koitharu.kotatsu.core.util.ext.checkNotificationPermission import org.koitharu.kotatsu.core.util.ext.getQuantityStringSafe import org.koitharu.kotatsu.core.util.ext.mangaSourceExtra import org.koitharu.kotatsu.core.util.ext.toBitmapOrNull -import org.koitharu.kotatsu.parsers.model.ContentRating import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaChapter import javax.inject.Inject diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 232bd1a42..d2f7e8ce6 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -45,7 +45,7 @@ @drawable/m3_split_button_chevron_avd - @bool/light_status_bar + @bool/light_status_bar @android:color/transparent @color/dim @null diff --git a/app/src/test/kotlin/org/koitharu/kotatsu/reader/domain/ChapterPagesTest.kt b/app/src/test/kotlin/org/koitharu/kotatsu/reader/domain/ChapterPagesTest.kt index 7af0389aa..f66f42c43 100644 --- a/app/src/test/kotlin/org/koitharu/kotatsu/reader/domain/ChapterPagesTest.kt +++ b/app/src/test/kotlin/org/koitharu/kotatsu/reader/domain/ChapterPagesTest.kt @@ -4,7 +4,6 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test import org.koitharu.kotatsu.core.model.TestMangaSource -import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.reader.ui.pager.ReaderPage import kotlin.random.Random