diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index 4ca360716..2cae6e891 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -38,7 +38,7 @@ jobs: uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 - name: Build app and run unit tests - run: ./gradlew detekt assembleStandardRelease testReleaseUnitTest testStandardReleaseUnitTest + run: ./gradlew assembleStandardRelease testReleaseUnitTest testStandardReleaseUnitTest - name: Upload APK uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_push.yml index 88fe57f46..207b166a2 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_push.yml @@ -36,7 +36,7 @@ jobs: uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 - name: Build app and run unit tests - run: ./gradlew detekt assembleStandardRelease testReleaseUnitTest testStandardReleaseUnitTest + run: ./gradlew assembleStandardRelease testReleaseUnitTest testStandardReleaseUnitTest - name: Upload APK uses: actions/upload-artifact@v4 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2315fd44d..1272b30cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,10 +24,6 @@ Before you start, please note that the ability to use following technologies is - [Android Studio](https://developer.android.com/studio) - Emulator or phone with developer options enabled to test changes. -## Linting - -Run the `detekt` gradle task. If the build fails, a report of issues can be found in `app/build/reports/detekt/`. The report is availble in several formats and details each issue that needs attention. - ## Getting help - Join [the Discord server](https://discord.gg/mihon) for online help and to ask questions while developing. diff --git a/app/src/main/java/eu/kanade/presentation/util/Navigator.kt b/app/src/main/java/eu/kanade/presentation/util/Navigator.kt index 86311d8e0..6cc93d6b2 100644 --- a/app/src/main/java/eu/kanade/presentation/util/Navigator.kt +++ b/app/src/main/java/eu/kanade/presentation/util/Navigator.kt @@ -28,7 +28,6 @@ import soup.compose.material.motion.animation.rememberSlideDistance /** * For invoking back press to the parent activity */ -@SuppressLint("ComposeCompositionLocalUsage") val LocalBackPress: ProvidableCompositionLocal<(() -> Unit)?> = staticCompositionLocalOf { null } interface Tab : cafe.adriel.voyager.navigator.tab.Tab { diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index d0b77cec1..877c76544 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -153,7 +153,6 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor ) } - @Suppress("MagicNumber") override fun newImageLoader(context: Context): ImageLoader { return ImageLoader.Builder(this).apply { val callFactoryLazy = lazy { Injekt.get().client } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt index 75c75b6b5..f026b30ff 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.data.backup.models import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber -@Suppress("MagicNumber") @Serializable data class Backup( @ProtoNumber(1) val backupManga: List, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt index d729efe16..b0d081a40 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt @@ -4,7 +4,6 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber import tachiyomi.domain.chapter.model.Chapter -@Suppress("MagicNumber") @Serializable data class BackupChapter( // in 1.x some of these values have different names diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupExtensionRepos.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupExtensionRepos.kt index fa9968667..256def7b5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupExtensionRepos.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupExtensionRepos.kt @@ -4,7 +4,6 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber import mihon.domain.extensionrepo.model.ExtensionRepo -@Suppress("MagicNumber") @Serializable class BackupExtensionRepos( @ProtoNumber(1) var baseUrl: String, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt index 410ecc67a..7b7498398 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt @@ -5,10 +5,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber import tachiyomi.domain.manga.model.Manga -@Suppress( - "DEPRECATION", - "MagicNumber", -) +@Suppress("DEPRECATION") @Serializable data class BackupManga( // in 1.x some of these values have different names diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt index 65a142099..832fe95f9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt @@ -45,7 +45,6 @@ import java.io.IOException * Available request parameter: * - [USE_CUSTOM_COVER_KEY]: Use custom cover if set by user, default is true */ -@Suppress("LongParameterList") class MangaCoverFetcher( private val url: String?, private val isLibraryManga: Boolean, diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt index 50ab94279..08027dc10 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt @@ -223,7 +223,6 @@ internal object ExtensionLoader { * @param context The application context. * @param extensionInfo The extension to load. */ - @Suppress("LongMethod", "CyclomaticComplexMethod", "ReturnCount") private suspend fun loadExtension(context: Context, extensionInfo: ExtensionInfo): LoadResult { val pkgManager = context.packageManager val pkgInfo = extensionInfo.packageInfo diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index e866c98c9..286f58239 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -174,7 +174,6 @@ class LibraryScreenModel( /** * Applies library filters to the given map of manga. */ - @Suppress("LongMethod", "CyclomaticComplexMethod") private suspend fun LibraryMap.applyFilters( trackMap: Map>, trackingFiler: Map, @@ -256,7 +255,6 @@ class LibraryScreenModel( /** * Applies library sorting to the given map of manga. */ - @Suppress("LongMethod", "CyclomaticComplexMethod") private fun LibraryMap.applySort( // Map> trackMap: Map>, diff --git a/app/src/main/java/mihon/core/migration/MigrationJobFactory.kt b/app/src/main/java/mihon/core/migration/MigrationJobFactory.kt index 801411013..c452707d5 100644 --- a/app/src/main/java/mihon/core/migration/MigrationJobFactory.kt +++ b/app/src/main/java/mihon/core/migration/MigrationJobFactory.kt @@ -12,7 +12,6 @@ class MigrationJobFactory( private val scope: CoroutineScope ) { - @SuppressWarnings("MaxLineLength") fun create(migrations: List): Deferred = with(scope) { return migrations.sortedBy { it.version } .fold(CompletableDeferred(true)) { acc: Deferred, migration: Migration -> diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index b72b8a98b..b825b4172 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,7 +6,6 @@ dependencies { implementation(androidx.gradle) implementation(kotlinx.gradle) implementation(kotlinx.compose.compiler.gradle) - implementation(libs.detekt.gradlePlugin) implementation(gradleApi()) implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) diff --git a/buildSrc/src/main/kotlin/mihon.android.application.gradle.kts b/buildSrc/src/main/kotlin/mihon.android.application.gradle.kts index 3c4c00ac3..7ba9c60fb 100644 --- a/buildSrc/src/main/kotlin/mihon.android.application.gradle.kts +++ b/buildSrc/src/main/kotlin/mihon.android.application.gradle.kts @@ -3,7 +3,6 @@ import mihon.buildlogic.configureAndroid import mihon.buildlogic.configureTest plugins { - id("mihon.code.detekt") id("com.android.application") kotlin("android") } diff --git a/buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts b/buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts index b857c4343..3a43a2aa1 100644 --- a/buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts +++ b/buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts @@ -2,7 +2,6 @@ import mihon.buildlogic.configureAndroid import mihon.buildlogic.configureTest plugins { - id("mihon.code.detekt") id("com.android.test") kotlin("android") } diff --git a/buildSrc/src/main/kotlin/mihon.code.detekt.gradle.kts b/buildSrc/src/main/kotlin/mihon.code.detekt.gradle.kts deleted file mode 100644 index 986138ee6..000000000 --- a/buildSrc/src/main/kotlin/mihon.code.detekt.gradle.kts +++ /dev/null @@ -1,47 +0,0 @@ -import io.gitlab.arturbosch.detekt.Detekt -import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask -import org.gradle.accessors.dm.LibrariesForLibs - -plugins { - id("io.gitlab.arturbosch.detekt") -} - -val libs = the() -dependencies { - detektPlugins(libs.detekt.rules.formatting) - detektPlugins(libs.detekt.rules.compose) -} - -private val configFile = files("$rootDir/config/detekt/detekt.yml") -private val baselineFile = file("$rootDir/config/detekt/baseline.xml") -private val kotlinFiles = "**/*.kt" -private val resourceFiles = "**/resources/**" -private val buildFiles = "**/build/**" -private val generatedFiles = "**/generated/**" -private val scriptsFiles = "**/*.kts" - -detekt { - buildUponDefaultConfig = true - parallel = true - autoCorrect = false - ignoreFailures = false - config.setFrom(configFile) - baseline = file(baselineFile) -} - -tasks.withType().configureEach { - include(kotlinFiles) - exclude(resourceFiles, buildFiles, generatedFiles, scriptsFiles) - reports { - html.required.set(true) - xml.required.set(false) - txt.required.set(false) - } -} - -tasks.withType().configureEach { - jvmTarget = JavaVersion.VERSION_17.toString() -} -tasks.withType().configureEach { - jvmTarget = JavaVersion.VERSION_17.toString() -} diff --git a/buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts b/buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts index 9f39d7737..0c37a3256 100644 --- a/buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts +++ b/buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts @@ -1,7 +1,6 @@ import mihon.buildlogic.configureCompose plugins { - id("mihon.code.detekt") id("com.android.library") } diff --git a/buildSrc/src/main/kotlin/mihon.library.gradle.kts b/buildSrc/src/main/kotlin/mihon.library.gradle.kts index 0ea496172..743bf07e3 100644 --- a/buildSrc/src/main/kotlin/mihon.library.gradle.kts +++ b/buildSrc/src/main/kotlin/mihon.library.gradle.kts @@ -2,7 +2,6 @@ import mihon.buildlogic.configureAndroid import mihon.buildlogic.configureTest plugins { - id("mihon.code.detekt") id("com.android.library") } diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml deleted file mode 100644 index 1845cae53..000000000 --- a/config/detekt/baseline.xml +++ /dev/null @@ -1,1327 +0,0 @@ - - - - - ComplexCondition:MangaScreenModel.kt$MangaScreenModel$(selectedItem.selected && selected) || (!selectedItem.selected && !selected) - ComplexCondition:ReaderNavigationOverlayView.kt$ReaderNavigationOverlayView$isVisible || (!showOnStart && firstLaunch) || navigation is DisabledNavigation - ComplexCondition:ReaderPageImageView.kt$ReaderPageImageView$config != null && config!!.landscapeZoom && config!!.minimumScaleType == SCALE_TYPE_CENTER_INSIDE && sWidth > sHeight && scale == minScale - ComposableParamOrder:ChapterSettingsDialog.kt$ChapterSettingsDialog - ComposableParamOrder:LazyLibraryGrid.kt$LazyLibraryGrid - ComposableParamOrder:SwitchPreferenceWidget.kt$SwitchPreferenceWidget - ComposableParamOrder:TrackingPreferenceWidget.kt$TrackingPreferenceWidget - ComposableParamOrder:TriStateListDialog.kt$TriStateListDialog - CompositionLocalAllowlist:Navigator.kt$LocalBackPress - CompositionLocalAllowlist:PreferenceItem.kt$LocalPreferenceHighlighted - CompositionLocalAllowlist:PreferenceItem.kt$LocalPreferenceMinHeight - ConstructorParameterNaming:AnilistModels.kt$ALManga$val average_score: Int - ConstructorParameterNaming:AnilistModels.kt$ALManga$val image_url_lge: String - ConstructorParameterNaming:AnilistModels.kt$ALManga$val publishing_status: String - ConstructorParameterNaming:AnilistModels.kt$ALManga$val remote_id: Long - ConstructorParameterNaming:AnilistModels.kt$ALManga$val start_date_fuzzy: Long - ConstructorParameterNaming:AnilistModels.kt$ALManga$val title_user_pref: String - ConstructorParameterNaming:AnilistModels.kt$ALManga$val total_chapters: Long - ConstructorParameterNaming:AnilistModels.kt$ALUserManga$val chapters_read: Int - ConstructorParameterNaming:AnilistModels.kt$ALUserManga$val completed_date_fuzzy: Long - ConstructorParameterNaming:AnilistModels.kt$ALUserManga$val library_id: Long - ConstructorParameterNaming:AnilistModels.kt$ALUserManga$val list_status: String - ConstructorParameterNaming:AnilistModels.kt$ALUserManga$val score_raw: Int - ConstructorParameterNaming:AnilistModels.kt$ALUserManga$val start_date_fuzzy: Long - ConstructorParameterNaming:AnilistModels.kt$OAuth$val access_token: String - ConstructorParameterNaming:AnilistModels.kt$OAuth$val expires_in: Long - ConstructorParameterNaming:AnilistModels.kt$OAuth$val token_type: String - ConstructorParameterNaming:BackupManga.kt$BackupManga$@ProtoNumber(103) var viewer_flags: Int? = null - ConstructorParameterNaming:BangumiModels.kt$Collection$val ep_status: Int? = 0 - ConstructorParameterNaming:BangumiModels.kt$Collection$val vol_status: Int? = 0 - ConstructorParameterNaming:BangumiModels.kt$OAuth$val access_token: String - ConstructorParameterNaming:BangumiModels.kt$OAuth$val created_at: Long = System.currentTimeMillis() / 1000 - ConstructorParameterNaming:BangumiModels.kt$OAuth$val expires_in: Long - ConstructorParameterNaming:BangumiModels.kt$OAuth$val refresh_token: String? - ConstructorParameterNaming:BangumiModels.kt$OAuth$val token_type: String - ConstructorParameterNaming:BangumiModels.kt$OAuth$val user_id: Long? - ConstructorParameterNaming:ExtensionDetailsScreenModel.kt$ExtensionDetailsScreenModel.State$private val _sources: ImmutableList<ExtensionSourceItem>? = null - ConstructorParameterNaming:KavitaModels.kt$SeriesDto$val thumbnail_url: String? = "" - ConstructorParameterNaming:KitsuModels.kt$OAuth$val access_token: String - ConstructorParameterNaming:KitsuModels.kt$OAuth$val created_at: Long - ConstructorParameterNaming:KitsuModels.kt$OAuth$val expires_in: Long - ConstructorParameterNaming:KitsuModels.kt$OAuth$val refresh_token: String? - ConstructorParameterNaming:KitsuModels.kt$OAuth$val token_type: String - ConstructorParameterNaming:MyAnimeListModels.kt$OAuth$val access_token: String - ConstructorParameterNaming:MyAnimeListModels.kt$OAuth$val created_at: Long = System.currentTimeMillis() - ConstructorParameterNaming:MyAnimeListModels.kt$OAuth$val expires_in: Long - ConstructorParameterNaming:MyAnimeListModels.kt$OAuth$val refresh_token: String - ConstructorParameterNaming:MyAnimeListModels.kt$OAuth$val token_type: String - ConstructorParameterNaming:ShikimoriModels.kt$OAuth$val access_token: String - ConstructorParameterNaming:ShikimoriModels.kt$OAuth$val created_at: Long - ConstructorParameterNaming:ShikimoriModels.kt$OAuth$val expires_in: Long - ConstructorParameterNaming:ShikimoriModels.kt$OAuth$val refresh_token: String? - ConstructorParameterNaming:ShikimoriModels.kt$OAuth$val token_type: String - CyclomaticComplexMethod:AnilistModels.kt$fun DomainTrack.toAnilistScore(): String - CyclomaticComplexMethod:BrowseSourceScreen.kt$@Composable fun BrowseSourceContent( source: Source?, mangaList: LazyPagingItems<StateFlow<Manga>>, columns: GridCells, displayMode: LibraryDisplayMode, snackbarHostState: SnackbarHostState, contentPadding: PaddingValues, onWebViewClick: () -> Unit, onHelpClick: () -> Unit, onLocalSourceHelpClick: () -> Unit, onMangaClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit, ) - CyclomaticComplexMethod:BrowseSourceScreen.kt$BrowseSourceScreen$@Composable override fun Content() - CyclomaticComplexMethod:BrowseSourceScreenModel.kt$BrowseSourceScreenModel$fun searchGenre(genreName: String) - CyclomaticComplexMethod:Button.kt$ButtonElevation$@Composable private fun animateElevation( enabled: Boolean, interactionSource: InteractionSource, ): State<Dp> - CyclomaticComplexMethod:DownloadCache.kt$DownloadCache$private fun renewCache() - CyclomaticComplexMethod:ExtensionLoader.kt$ExtensionLoader$private fun loadExtension(context: Context, extensionInfo: ExtensionInfo): LoadResult - CyclomaticComplexMethod:ExtensionsScreen.kt$@Composable private fun ExtensionContent( state: ExtensionsScreenModel.State, contentPadding: PaddingValues, onLongClickItem: (Extension) -> Unit, onClickItemCancel: (Extension) -> Unit, onOpenWebView: (Extension.Available) -> Unit, onInstallExtension: (Extension.Available) -> Unit, onUninstallExtension: (Extension) -> Unit, onUpdateExtension: (Extension.Installed) -> Unit, onTrustExtension: (Extension.Untrusted) -> Unit, onOpenExtension: (Extension.Installed) -> Unit, onClickUpdateAll: () -> Unit, ) - CyclomaticComplexMethod:ExtensionsScreen.kt$@Composable private fun ExtensionItemContent( extension: Extension, installStep: InstallStep, modifier: Modifier = Modifier, ) - CyclomaticComplexMethod:GetSourcesWithFavoriteCount.kt$GetSourcesWithFavoriteCount$private fun sortFn( direction: SetMigrateSorting.Direction, sorting: SetMigrateSorting.Mode, ): java.util.Comparator<Pair<Source, Long>> - CyclomaticComplexMethod:ImageUtil.kt$ImageUtil$fun chooseBackground(context: Context, imageStream: InputStream): Drawable - CyclomaticComplexMethod:LibraryScreenModel.kt$LibraryScreenModel$private fun LibraryMap.applySort( // Map<MangaId, List<Track>> trackMap: Map<Long, List<Track>>, ): LibraryMap - CyclomaticComplexMethod:LibraryScreenModel.kt$LibraryScreenModel$private suspend fun LibraryMap.applyFilters( trackMap: Map<Long, List<Track>>, loggedInTrackers: Map<Long, TriState>, ): LibraryMap - CyclomaticComplexMethod:LibraryTab.kt$LibraryTab$@Composable override fun Content() - CyclomaticComplexMethod:LibraryUpdateJob.kt$LibraryUpdateJob$private suspend fun addMangaToQueue(categoryId: Long) - CyclomaticComplexMethod:LocalSource.kt$LocalSource$override suspend fun getMangaDetails(manga: SManga): SManga - CyclomaticComplexMethod:LocalSource.kt$LocalSource$private fun updateCover(chapter: SChapter, manga: SManga): UniFile? - CyclomaticComplexMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?) - CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun handleIntentAction(intent: Intent, navigator: Navigator): Boolean - CyclomaticComplexMethod:MangaInfoHeader.kt$@Composable private fun ColumnScope.MangaContentInfo( title: String, doSearch: (query: String, global: Boolean) -> Unit, author: String?, artist: String?, status: Long, sourceName: String, isStubSource: Boolean, textAlign: TextAlign? = LocalTextStyle.current.textAlign, ) - CyclomaticComplexMethod:MangaScreen.kt$MangaScreen$@Composable override fun Content() - CyclomaticComplexMethod:MangaScreenModel.kt$MangaScreenModel$fun toggleSelection( item: ChapterList.Item, selected: Boolean, userSelected: Boolean = false, fromLongPress: Boolean = false, ) - CyclomaticComplexMethod:MigrateDialog.kt$MigrateDialogScreenModel$private suspend fun migrateMangaInternal( oldSource: Source?, newSource: Source, oldManga: Manga, newManga: Manga, sourceChapters: List<SChapter>, replace: Boolean, flags: Int, ) - CyclomaticComplexMethod:NotificationReceiver.kt$NotificationReceiver$override fun onReceive(context: Context, intent: Intent) - CyclomaticComplexMethod:PagerViewer.kt$PagerViewer$override fun handleKeyEvent(event: KeyEvent): Boolean - CyclomaticComplexMethod:PagerViewerAdapter.kt$PagerViewerAdapter$fun setChapters(chapters: ViewerChapters, forceTransition: Boolean) - CyclomaticComplexMethod:PreferenceItem.kt$@Composable internal fun PreferenceItem( item: Preference.PreferenceItem<*>, highlightKey: String?, ) - CyclomaticComplexMethod:RateLimitInterceptor.kt$RateLimitInterceptor$override fun intercept(chain: Interceptor.Chain): Response - CyclomaticComplexMethod:ReaderActivity.kt$ReaderActivity$override fun onCreate(savedInstanceState: Bundle?) - CyclomaticComplexMethod:ReaderActivity.kt$ReaderActivity$private fun initializeMenu() - CyclomaticComplexMethod:Scaffold.kt$@Composable private fun ScaffoldLayout( fabPosition: FabPosition, topBar: @Composable () -> Unit, startBar: @Composable () -> Unit, content: @Composable (PaddingValues) -> Unit, snackbar: @Composable () -> Unit, fab: @Composable () -> Unit, contentWindowInsets: WindowInsets, bottomBar: @Composable () -> Unit, ) - CyclomaticComplexMethod:SourcesScreenModel.kt$SourcesScreenModel$private fun collectLatestSources(sources: List<Source>) - CyclomaticComplexMethod:SyncChaptersWithSource.kt$SyncChaptersWithSource$suspend fun await( rawSourceChapters: List<SChapter>, manga: Manga, source: Source, manualFetch: Boolean = false, fetchWindow: Pair<Long, Long> = Pair(0, 0), ): List<Chapter> - CyclomaticComplexMethod:TriStateListDialog.kt$@Composable fun <T> TriStateListDialog( title: String, message: String? = null, items: List<T>, initialChecked: List<T>, initialInversed: List<T>, itemLabel: @Composable (T) -> String, onDismissRequest: () -> Unit, onValueChanged: (newIncluded: List<T>, newExcluded: List<T>) -> Unit, ) - CyclomaticComplexMethod:UpdatesScreenModel.kt$UpdatesScreenModel$fun toggleSelection( item: UpdatesItem, selected: Boolean, userSelected: Boolean = false, fromLongPress: Boolean = false, ) - CyclomaticComplexMethod:VerticalFastScroller.kt$@Composable fun VerticalFastScroller( listState: LazyListState, modifier: Modifier = Modifier, thumbAllowed: () -> Boolean = { true }, thumbColor: Color = MaterialTheme.colorScheme.primary, topContentPadding: Dp = Dp.Hairline, bottomContentPadding: Dp = Dp.Hairline, endContentPadding: Dp = Dp.Hairline, content: @Composable () -> Unit, ) - CyclomaticComplexMethod:VerticalFastScroller.kt$@Composable fun VerticalGridFastScroller( state: LazyGridState, columns: GridCells, arrangement: Arrangement.Horizontal, contentPadding: PaddingValues, modifier: Modifier = Modifier, thumbAllowed: () -> Boolean = { true }, thumbColor: Color = MaterialTheme.colorScheme.primary, topContentPadding: Dp = Dp.Hairline, bottomContentPadding: Dp = Dp.Hairline, endContentPadding: Dp = Dp.Hairline, content: @Composable () -> Unit, ) - CyclomaticComplexMethod:WebtoonRecyclerView.kt$WebtoonRecyclerView.Detector$override fun onTouchEvent(ev: MotionEvent): Boolean - CyclomaticComplexMethod:WebtoonViewer.kt$WebtoonViewer$override fun handleKeyEvent(event: KeyEvent): Boolean - DestructuringDeclarationWithTooManyEntries:ExtensionsScreenModel.kt$ExtensionsScreenModel$(_updates, _installed, _available, _untrusted) - DestructuringDeclarationWithTooManyEntries:MangaInfoHeader.kt$(shrunk, expanded, actual, scrim) - EmptyCatchBlock:RarPageLoader.kt$RarPageLoader${ } - EqualsAlwaysReturnsTrueOrFalse:FilterList.kt$FilterList$override fun equals(other: Any?): Boolean - ExplicitItLambdaParameter:ColorFilterPage.kt${ index, it -> FilterChip( selected = colorFilterMode == index, onClick = { screenModel.preferences.colorFilterMode().set(index) }, label = { Text(stringResource(it.first)) }, ) } - ExplicitItLambdaParameter:LibraryTab.kt$LibraryTab${ it: LibraryManga -> scope.launchIO { val chapter = screenModel.getNextUnreadChapter(it.manga) if (chapter != null) { context.startActivity( ReaderActivity.newIntent(context, chapter.mangaId, chapter.id), ) } else { snackbarHostState.showSnackbar(context.stringResource(MR.strings.no_next_chapter)) } } Unit } - ExplicitItLambdaParameter:ReadingModePage.kt${ index, it -> FilterChip( selected = imageScaleType == index + 1, onClick = { screenModel.preferences.imageScaleType().set(index + 1) }, label = { Text(stringResource(it)) }, ) } - ExplicitItLambdaParameter:ReadingModePage.kt${ index, it -> FilterChip( selected = selected == index, onClick = { onSelect(index) }, label = { Text(stringResource(it)) }, ) } - ExplicitItLambdaParameter:ReadingModePage.kt${ index, it -> FilterChip( selected = zoomStart == index + 1, onClick = { screenModel.preferences.zoomStart().set(index + 1) }, label = { Text(stringResource(it)) }, ) } - ExplicitItLambdaParameter:SettingsReaderScreen.kt$SettingsReaderScreen${ index, it -> index + 1 to stringResource(it) } - ExplicitItLambdaParameter:SettingsReaderScreen.kt$SettingsReaderScreen${ index, it -> index to stringResource(it) } - FinalNewline:Commands.kt$.Commands.kt - ForEachOnRange:MangaBottomActionMenu.kt$0..<5 - ForEachOnRange:MangaBottomActionMenu.kt$0..<7 - ForEachOnRange:UpdatesWidget.kt$0..<rowCount - ForbiddenComment:AddTracks.kt$AddTracks$// TODO: merge into [SyncChapterProgressWithTrack]? - ForbiddenComment:AddTracks.kt$AddTracks$// TODO: update all trackers based on common data - ForbiddenComment:AppTheme.kt$AppTheme.NORD$// TODO: re-enable for preview - ForbiddenComment:BackupRestorer.kt$BackupRestorer$// TODO: optionally trigger online library + tracker update - ForbiddenComment:BangumiApi.kt$BangumiApi$// TODO: get user readed chapter here - ForbiddenComment:BaseTracker.kt$BaseTracker$// TODO: Store all scores as 10 point in the future maybe? - ForbiddenComment:BaselineProfileGenerator.kt$BaselineProfileGenerator$// TODO: automate storage permissions and possibly open manga details screen too? - ForbiddenComment:CategoryDialogs.kt$// TODO: https://issuetracker.google.com/issues/204502668 - ForbiddenComment:Chapter.kt$// TODO: Remove when all deps are migrated - ForbiddenComment:ConfigurableSource.kt$// TODO: use getSourcePreferences once all extensions are on ext-lib 1.5 - ForbiddenComment:DisplayExtensions.kt$// TODO: move the logic to `isTabletUi()` when main activity is rewritten in Compose - ForbiddenComment:ExtensionReposDialogs.kt$// TODO: https://issuetracker.google.com/issues/204502668 - ForbiddenComment:GlobalSearchToolbar.kt$// TODO: make this UX better; it only applies when triggering a new search - ForbiddenComment:HomeScreen.kt$HomeScreen$// TODO: https://issuetracker.google.com/u/0/issues/316327367 - ForbiddenComment:LibrarySettingsDialog.kt$// TODO: re-enable when custom intervals are ready for stable - ForbiddenComment:LibraryTabs.kt$// TODO: use default when width is fixed upstream - ForbiddenComment:LibraryUpdateJob.kt$LibraryUpdateJob$// TODO: surface skipped reasons to user? - ForbiddenComment:LocalSource.kt$LocalSource$// TODO: remove support for this entirely after a while - ForbiddenComment:Localize.kt$// TODO: janky workaround for https://github.com/icerockdev/moko-resources/issues/337 - ForbiddenComment:MainActivity.kt$MainActivity$// TODO: replace with ComponentActivity#enableEdgeToEdge - ForbiddenComment:Manga.kt$// TODO: move these into the domain model - ForbiddenComment:MangaCoverScreenModel.kt$MangaCoverScreenModel$// TODO: Handle animated cover - ForbiddenComment:MangaInfoHeader.kt$// TODO: show something better when using custom interval - ForbiddenComment:PreferenceItem.kt$// TODO: use different composable? - ForbiddenComment:ReaderPreferences.kt$ReaderPreferences$// TODO: default this to true if reader long strip ever goes stable - ForbiddenComment:SettingsAdvancedScreen.kt$SettingsAdvancedScreen$// TODO: allow private option in stable versions once URL handling is more fleshed out - ForbiddenComment:Tracker.kt$Tracker$// TODO: Store all scores as 10 point in the future maybe? - ForbiddenComment:Tracker.kt$Tracker$// TODO: move this to an interactor, and update all trackers based on common data - ForbiddenComment:VerticalFastScroller.kt$// TODO: Sometimes item height is not available when scrolling up - FunctionNaming:Downloader.kt$Downloader$private fun _clearQueue() - FunctionNaming:Pin.kt$fun Pins(vararg pins: Pin) - FunctionNaming:PullRefresh.kt$PullToRefreshStateImpl.Companion$fun Saver( extraVerticalOffset: Float, positionalThreshold: Float, enabled: () -> Boolean, onRefresh: () -> Unit, ) - FunctionNaming:Requests.kt$fun DELETE( url: String, headers: Headers = DEFAULT_HEADERS, body: RequestBody = DEFAULT_BODY, cache: CacheControl = DEFAULT_CACHE_CONTROL, ): Request - FunctionNaming:Requests.kt$fun GET( url: HttpUrl, headers: Headers = DEFAULT_HEADERS, cache: CacheControl = DEFAULT_CACHE_CONTROL, ): Request - FunctionNaming:Requests.kt$fun GET( url: String, headers: Headers = DEFAULT_HEADERS, cache: CacheControl = DEFAULT_CACHE_CONTROL, ): Request - FunctionNaming:Requests.kt$fun POST( url: String, headers: Headers = DEFAULT_HEADERS, body: RequestBody = DEFAULT_BODY, cache: CacheControl = DEFAULT_CACHE_CONTROL, ): Request - FunctionNaming:Requests.kt$fun PUT( url: String, headers: Headers = DEFAULT_HEADERS, body: RequestBody = DEFAULT_BODY, cache: CacheControl = DEFAULT_CACHE_CONTROL, ): Request - FunctionParameterNaming:MangaScreen.kt$MangaScreen$manga_: Manga? - FunctionParameterNaming:MangaScreen.kt$MangaScreen$source_: Source? - FunctionParameterNaming:WebViewInterceptor.kt$_name: String - FunctionParameterNaming:WebViewInterceptor.kt$_value: String - ImportOrdering:Commands.kt$import org.gradle.api.Project import java.io.ByteArrayOutputStream import java.text.SimpleDateFormat import java.util.TimeZone import java.util.Date - Indentation:LocalesConfigPlugin.kt$ - InstanceOfCheckForException:AppUpdateDownloadJob.kt$AppUpdateDownloadJob$e is CancellationException - InstanceOfCheckForException:AppUpdateDownloadJob.kt$AppUpdateDownloadJob$e is StreamResetException - InstanceOfCheckForException:BackupRestoreJob.kt$BackupRestoreJob$e is CancellationException - InstanceOfCheckForException:Downloader.kt$Downloader$e is CancellationException - InstanceOfCheckForException:Downloader.kt$Downloader$error is CancellationException - InstanceOfCheckForException:HttpPageLoader.kt$HttpPageLoader$e is CancellationException - InstanceOfCheckForException:LibraryUpdateJob.kt$LibraryUpdateJob$e is CancellationException - InstanceOfCheckForException:MangaScreenModel.kt$MangaScreenModel$e is HttpException - InstanceOfCheckForException:MangaScreenModel.kt$MangaScreenModel$e is NoChaptersException - InstanceOfCheckForException:MetadataUpdateJob.kt$MetadataUpdateJob$e is CancellationException - InstanceOfCheckForException:ReaderViewModel.kt$ReaderViewModel$e is CancellationException - InstanceOfCheckForException:UncaughtExceptionInterceptor.kt$UncaughtExceptionInterceptor$e is IOException - LargeClass:MangaScreenModel.kt$MangaScreenModel : StateScreenModel - LongMethod:AboutScreen.kt$AboutScreen$@Composable override fun Content() - LongMethod:AdaptiveSheet.kt$@Composable fun AdaptiveSheet( isTabletUi: Boolean, tonalElevation: Dp, enableSwipeDismiss: Boolean, onDismissRequest: () -> Unit, modifier: Modifier = Modifier, content: @Composable () -> Unit, ) - LongMethod:AnilistApi.kt$AnilistApi$suspend fun findLibManga(track: Track, userid: Int): Track? - LongMethod:AppBar.kt$@Composable fun AppBarActions( actions: ImmutableList<AppBar.AppBarAction>, ) - LongMethod:AppBar.kt$@Composable fun SearchToolbar( searchQuery: String?, onChangeSearchQuery: (String?) -> Unit, modifier: Modifier = Modifier, titleContent: @Composable () -> Unit = {}, navigateUp: (() -> Unit)? = null, searchEnabled: Boolean = true, placeholderText: String? = null, onSearch: (String) -> Unit = {}, onClickCloseSearch: () -> Unit = { onChangeSearchQuery(null) }, actions: @Composable RowScope.() -> Unit = {}, scrollBehavior: TopAppBarScrollBehavior? = null, visualTransformation: VisualTransformation = VisualTransformation.None, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, ) - LongMethod:AppModule.kt$AppModule$override fun InjektRegistrar.registerInjectables() - LongMethod:AppThemePreferenceWidget.kt$@Composable fun AppThemePreviewItem( selected: Boolean, onClick: () -> Unit, ) - LongMethod:BrowseSourceScreen.kt$@Composable fun BrowseSourceContent( source: Source?, mangaList: LazyPagingItems<StateFlow<Manga>>, columns: GridCells, displayMode: LibraryDisplayMode, snackbarHostState: SnackbarHostState, contentPadding: PaddingValues, onWebViewClick: () -> Unit, onHelpClick: () -> Unit, onLocalSourceHelpClick: () -> Unit, onMangaClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit, ) - LongMethod:BrowseSourceScreen.kt$BrowseSourceScreen$@Composable override fun Content() - LongMethod:BrowseSourceToolbar.kt$@Composable fun BrowseSourceToolbar( searchQuery: String?, onSearchQueryChange: (String?) -> Unit, source: Source?, displayMode: LibraryDisplayMode, onDisplayModeChange: (LibraryDisplayMode) -> Unit, navigateUp: () -> Unit, onWebViewClick: () -> Unit, onHelpClick: () -> Unit, onSettingsClick: () -> Unit, onSearch: (String) -> Unit, scrollBehavior: TopAppBarScrollBehavior? = null, ) - LongMethod:Button.kt$ButtonElevation$@Composable private fun animateElevation( enabled: Boolean, interactionSource: InteractionSource, ): State<Dp> - LongMethod:CategoryDialogs.kt$@Composable fun ChangeCategoryDialog( initialSelection: ImmutableList<CheckboxState<Category>>, onDismissRequest: () -> Unit, onEditCategories: () -> Unit, onConfirm: (List<Long>, List<Long>) -> Unit, ) - LongMethod:ChapterDownloadIndicator.kt$@Composable private fun DownloadingIndicator( enabled: Boolean, downloadState: Download.State, downloadProgressProvider: () -> Int, onClick: (ChapterDownloadAction) -> Unit, modifier: Modifier = Modifier, ) - LongMethod:ChapterNavigator.kt$@Composable fun ChapterNavigator( isRtl: Boolean, onNextChapter: () -> Unit, enabledNext: Boolean, onPreviousChapter: () -> Unit, enabledPrevious: Boolean, currentPage: Int, totalPages: Int, onSliderValueChange: (Int) -> Unit, ) - LongMethod:ChapterSettingsDialog.kt$@Composable fun ChapterSettingsDialog( onDismissRequest: () -> Unit, manga: Manga? = null, onDownloadFilterChanged: (TriState) -> Unit, onUnreadFilterChanged: (TriState) -> Unit, onBookmarkedFilterChanged: (TriState) -> Unit, scanlatorFilterActive: Boolean, onScanlatorFilterClicked: (() -> Unit), onSortModeChanged: (Long) -> Unit, onDisplayModeChanged: (Long) -> Unit, onSetAsDefault: (applyToExistingManga: Boolean) -> Unit, onResetToDefault: () -> Unit, ) - LongMethod:ClearDatabaseScreen.kt$ClearDatabaseScreen$@Composable override fun Content() - LongMethod:ColorFilterPage.kt$@Composable internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) - LongMethod:CreateBackupScreen.kt$CreateBackupScreen$@Composable override fun Content() - LongMethod:DomainModule.kt$DomainModule$override fun InjektRegistrar.registerInjectables() - LongMethod:DownloadCache.kt$DownloadCache$private fun renewCache() - LongMethod:DownloadQueueScreen.kt$DownloadQueueScreen$@Composable override fun Content() - LongMethod:Downloader.kt$Downloader$private suspend fun downloadChapter(download: Download) - LongMethod:EditTextPreferenceWidget.kt$@Composable fun EditTextPreferenceWidget( title: String, subtitle: String?, icon: ImageVector?, value: String, onConfirm: suspend (String) -> Boolean, ) - LongMethod:ExtensionDetailsScreen.kt$@Composable fun ExtensionDetailsScreen( navigateUp: () -> Unit, state: ExtensionDetailsScreenModel.State, onClickSourcePreferences: (sourceId: Long) -> Unit, onClickEnableAll: () -> Unit, onClickDisableAll: () -> Unit, onClickClearCookies: () -> Unit, onClickUninstall: () -> Unit, onClickSource: (sourceId: Long) -> Unit, ) - LongMethod:ExtensionDetailsScreen.kt$@Composable private fun DetailsHeader( extension: Extension, onClickAgeRating: () -> Unit, onClickUninstall: () -> Unit, onClickAppInfo: (() -> Unit)?, ) - LongMethod:ExtensionLoader.kt$ExtensionLoader$private fun loadExtension(context: Context, extensionInfo: ExtensionInfo): LoadResult - LongMethod:ExtensionsScreen.kt$@Composable private fun ExtensionContent( state: ExtensionsScreenModel.State, contentPadding: PaddingValues, onLongClickItem: (Extension) -> Unit, onClickItemCancel: (Extension) -> Unit, onOpenWebView: (Extension.Available) -> Unit, onInstallExtension: (Extension.Available) -> Unit, onUninstallExtension: (Extension) -> Unit, onUpdateExtension: (Extension.Installed) -> Unit, onTrustExtension: (Extension.Untrusted) -> Unit, onOpenExtension: (Extension.Installed) -> Unit, onClickUpdateAll: () -> Unit, ) - LongMethod:ExtensionsScreen.kt$@Composable private fun ExtensionItemActions( extension: Extension, installStep: InstallStep, modifier: Modifier = Modifier, onClickItemCancel: (Extension) -> Unit = {}, onClickItemAction: (Extension) -> Unit = {}, onClickItemSecondaryAction: (Extension) -> Unit = {}, ) - LongMethod:GlobalSearchToolbar.kt$@Composable fun GlobalSearchToolbar( searchQuery: String?, progress: Int, total: Int, navigateUp: () -> Unit, onChangeSearchQuery: (String?) -> Unit, onSearch: (String) -> Unit, sourceFilter: SourceFilter, onChangeSearchFilter: (SourceFilter) -> Unit, onlyShowHasResults: Boolean, onToggleResults: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, ) - LongMethod:HomeScreen.kt$HomeScreen$@Composable override fun Content() - LongMethod:ImageUtil.kt$ImageUtil$fun chooseBackground(context: Context, imageStream: InputStream): Drawable - LongMethod:InfoScreen.kt$@Composable fun InfoScreen( icon: ImageVector, headingText: String, subtitleText: String, acceptText: String, onAcceptClick: () -> Unit, canAccept: Boolean = true, rejectText: String? = null, onRejectClick: (() -> Unit)? = null, content: @Composable ColumnScope.() -> Unit, ) - LongMethod:LibraryContent.kt$@Composable fun LibraryContent( categories: List<Category>, searchQuery: String?, selection: List<LibraryManga>, contentPadding: PaddingValues, currentPage: () -> Int, hasActiveFilters: Boolean, showPageTabs: Boolean, onChangeCurrentPage: (Int) -> Unit, onMangaClicked: (Long) -> Unit, onContinueReadingClicked: ((LibraryManga) -> Unit)?, onToggleSelection: (LibraryManga) -> Unit, onToggleRangeSelection: (LibraryManga) -> Unit, onRefresh: (Category?) -> Boolean, onGlobalSearchClicked: () -> Unit, getNumberOfMangaForCategory: (Category) -> Int?, getDisplayMode: (Int) -> PreferenceMutableState<LibraryDisplayMode>, getColumnsForOrientation: (Boolean) -> PreferenceMutableState<Int>, getLibraryForPage: (Int) -> List<LibraryItem>, ) - LongMethod:LibraryPager.kt$@Composable fun LibraryPager( state: PagerState, contentPadding: PaddingValues, hasActiveFilters: Boolean, selectedManga: List<LibraryManga>, searchQuery: String?, onGlobalSearchClicked: () -> Unit, getDisplayMode: (Int) -> PreferenceMutableState<LibraryDisplayMode>, getColumnsForOrientation: (Boolean) -> PreferenceMutableState<Int>, getLibraryForPage: (Int) -> List<LibraryItem>, onClickManga: (LibraryManga) -> Unit, onLongClickManga: (LibraryManga) -> Unit, onClickContinueReading: ((LibraryManga) -> Unit)?, ) - LongMethod:LibraryScreenModel.kt$LibraryScreenModel$private fun LibraryMap.applySort( // Map<MangaId, List<Track>> trackMap: Map<Long, List<Track>>, ): LibraryMap - LongMethod:LibraryScreenModel.kt$LibraryScreenModel$private suspend fun LibraryMap.applyFilters( trackMap: Map<Long, List<Track>>, loggedInTrackers: Map<Long, TriState>, ): LibraryMap - LongMethod:LibrarySettingsDialog.kt$@Composable private fun ColumnScope.DisplayPage( screenModel: LibrarySettingsScreenModel, ) - LongMethod:LibrarySettingsDialog.kt$@Composable private fun ColumnScope.FilterPage( screenModel: LibrarySettingsScreenModel, ) - LongMethod:LibraryTab.kt$LibraryTab$@Composable override fun Content() - LongMethod:LibraryUpdateJob.kt$LibraryUpdateJob$private suspend fun addMangaToQueue(categoryId: Long) - LongMethod:LibraryUpdateJob.kt$LibraryUpdateJob$private suspend fun updateChapterList() - LongMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?) - LongMethod:MainActivity.kt$MainActivity$private fun handleIntentAction(intent: Intent, navigator: Navigator): Boolean - LongMethod:MangaBottomActionMenu.kt$@Composable fun LibraryBottomActionMenu( visible: Boolean, onChangeCategoryClicked: () -> Unit, onMarkAsReadClicked: () -> Unit, onMarkAsUnreadClicked: () -> Unit, onDownloadClicked: ((DownloadAction) -> Unit)?, onDeleteClicked: () -> Unit, modifier: Modifier = Modifier, ) - LongMethod:MangaBottomActionMenu.kt$@Composable fun MangaBottomActionMenu( visible: Boolean, modifier: Modifier = Modifier, onBookmarkClicked: (() -> Unit)? = null, onRemoveBookmarkClicked: (() -> Unit)? = null, onMarkAsReadClicked: (() -> Unit)? = null, onMarkAsUnreadClicked: (() -> Unit)? = null, onMarkPreviousAsReadClicked: (() -> Unit)? = null, onDownloadClicked: (() -> Unit)? = null, onDeleteClicked: (() -> Unit)? = null, ) - LongMethod:MangaChapterListItem.kt$@Composable fun MangaChapterListItem( title: String, date: String?, readProgress: String?, scanlator: String?, read: Boolean, bookmark: Boolean, selected: Boolean, downloadIndicatorEnabled: Boolean, downloadStateProvider: () -> Download.State, downloadProgressProvider: () -> Int, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onLongClick: () -> Unit, onClick: () -> Unit, onDownloadClick: ((ChapterDownloadAction) -> Unit)?, onChapterSwipe: (LibraryPreferences.ChapterSwipeAction) -> Unit, modifier: Modifier = Modifier, ) - LongMethod:MangaCoverDialog.kt$@Composable fun MangaCoverDialog( coverDataProvider: () -> Manga, isCustomCover: Boolean, snackbarHostState: SnackbarHostState, onShareClick: () -> Unit, onSaveClick: () -> Unit, onEditClick: ((EditCoverAction) -> Unit)?, onDismissRequest: () -> Unit, ) - LongMethod:MangaDialogs.kt$@Composable fun SetIntervalDialog( interval: Int, nextUpdate: Instant?, onDismissRequest: () -> Unit, onValueChanged: ((Int) -> Unit)? = null, ) - LongMethod:MangaInfoHeader.kt$@Composable fun ExpandableMangaDescription( defaultExpandState: Boolean, description: String?, tagsProvider: () -> List<String>?, onTagSearch: (String) -> Unit, onCopyTagToClipboard: (tag: String) -> Unit, modifier: Modifier = Modifier, ) - LongMethod:MangaInfoHeader.kt$@Composable private fun ColumnScope.MangaContentInfo( title: String, doSearch: (query: String, global: Boolean) -> Unit, author: String?, artist: String?, status: Long, sourceName: String, isStubSource: Boolean, textAlign: TextAlign? = LocalTextStyle.current.textAlign, ) - LongMethod:MangaInfoHeader.kt$@Composable private fun MangaSummary( expandedDescription: String, shrunkDescription: String, expanded: Boolean, modifier: Modifier = Modifier, ) - LongMethod:MangaScreen.kt$@Composable fun MangaScreen( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, nextUpdate: Instant?, isTabletUi: Boolean, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onBackClicked: () -> Unit, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, // For tags menu onTagSearch: (String) -> Unit, onFilterButtonClicked: () -> Unit, onRefresh: () -> Unit, onContinueReading: () -> Unit, onSearch: (query: String, global: Boolean) -> Unit, // For cover dialog onCoverClicked: () -> Unit, // For top action menu onShareClicked: (() -> Unit)?, onDownloadActionClicked: ((DownloadAction) -> Unit)?, onEditCategoryClicked: (() -> Unit)?, onEditFetchIntervalClicked: (() -> Unit)?, onMigrateClicked: (() -> Unit)?, // For bottom action menu onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onMultiDeleteClicked: (List<Chapter>) -> Unit, // For chapter swipe onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, // Chapter selection onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) - LongMethod:MangaScreen.kt$@Composable fun MangaScreenLargeImpl( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, nextUpdate: Instant?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onBackClicked: () -> Unit, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, // For tags menu onTagSearch: (String) -> Unit, onCopyTagToClipboard: (tag: String) -> Unit, onFilterButtonClicked: () -> Unit, onRefresh: () -> Unit, onContinueReading: () -> Unit, onSearch: (query: String, global: Boolean) -> Unit, // For cover dialog onCoverClicked: () -> Unit, // For top action menu onShareClicked: (() -> Unit)?, onDownloadActionClicked: ((DownloadAction) -> Unit)?, onEditCategoryClicked: (() -> Unit)?, onEditIntervalClicked: (() -> Unit)?, onMigrateClicked: (() -> Unit)?, // For bottom action menu onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onMultiDeleteClicked: (List<Chapter>) -> Unit, // For swipe actions onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, // Chapter selection onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) - LongMethod:MangaScreen.kt$@Composable private fun MangaScreenSmallImpl( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, nextUpdate: Instant?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onBackClicked: () -> Unit, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, // For tags menu onTagSearch: (String) -> Unit, onCopyTagToClipboard: (tag: String) -> Unit, onFilterClicked: () -> Unit, onRefresh: () -> Unit, onContinueReading: () -> Unit, onSearch: (query: String, global: Boolean) -> Unit, // For cover dialog onCoverClicked: () -> Unit, // For top action menu onShareClicked: (() -> Unit)?, onDownloadActionClicked: ((DownloadAction) -> Unit)?, onEditCategoryClicked: (() -> Unit)?, onEditIntervalClicked: (() -> Unit)?, onMigrateClicked: (() -> Unit)?, // For bottom action menu onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onMultiDeleteClicked: (List<Chapter>) -> Unit, // For chapter swipe onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, // Chapter selection onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) - LongMethod:MangaScreen.kt$MangaScreen$@Composable override fun Content() - LongMethod:MangaScreen.kt$private fun LazyListScope.sharedChapterItems( manga: Manga, chapters: List<ChapterList>, isAnyChapterSelected: Boolean, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, ) - LongMethod:MangaToolbar.kt$@Composable fun MangaToolbar( title: String, titleAlphaProvider: () -> Float, hasFilters: Boolean, onBackClicked: () -> Unit, onClickFilter: () -> Unit, onClickShare: (() -> Unit)?, onClickDownload: ((DownloadAction) -> Unit)?, onClickEditCategory: (() -> Unit)?, onClickRefresh: () -> Unit, onClickMigrate: (() -> Unit)?, // For action mode actionModeCounter: Int, onSelectAll: () -> Unit, onInvertSelection: () -> Unit, modifier: Modifier = Modifier, backgroundAlphaProvider: () -> Float = titleAlphaProvider, ) - LongMethod:MigrateDialog.kt$@Composable internal fun MigrateDialog( oldManga: Manga, newManga: Manga, screenModel: MigrateDialogScreenModel, onDismissRequest: () -> Unit, onClickTitle: () -> Unit, onPopScreen: () -> Unit, ) - LongMethod:MigrateDialog.kt$MigrateDialogScreenModel$private suspend fun migrateMangaInternal( oldSource: Source?, newSource: Source, oldManga: Manga, newManga: Manga, sourceChapters: List<SChapter>, replace: Boolean, flags: Int, ) - LongMethod:MoreScreen.kt$@Composable fun MoreScreen( downloadQueueStateProvider: () -> DownloadQueueState, downloadedOnly: Boolean, onDownloadedOnlyChange: (Boolean) -> Unit, incognitoMode: Boolean, onIncognitoModeChange: (Boolean) -> Unit, isFDroid: Boolean, onClickDownloadQueue: () -> Unit, onClickCategories: () -> Unit, onClickStats: () -> Unit, onClickDataAndStorage: () -> Unit, onClickSettings: () -> Unit, onClickAbout: () -> Unit, ) - LongMethod:Notifications.kt$Notifications$fun createChannels(context: Context) - LongMethod:PreferenceItem.kt$@Composable internal fun PreferenceItem( item: Preference.PreferenceItem<*>, highlightKey: String?, ) - LongMethod:ReaderActivity.kt$ReaderActivity$override fun onCreate(savedInstanceState: Bundle?) - LongMethod:ReaderActivity.kt$ReaderActivity$private fun initializeMenu() - LongMethod:ReaderAppBars.kt$@Composable fun ReaderAppBars( visible: Boolean, fullscreen: Boolean, mangaTitle: String?, chapterTitle: String?, navigateUp: () -> Unit, onClickTopAppBar: () -> Unit, bookmarked: Boolean, onToggleBookmarked: () -> Unit, onOpenInWebView: (() -> Unit)?, onShare: (() -> Unit)?, viewer: Viewer?, onNextChapter: () -> Unit, enabledNext: Boolean, onPreviousChapter: () -> Unit, enabledPrevious: Boolean, currentPage: Int, totalPages: Int, onSliderValueChange: (Int) -> Unit, readingMode: ReadingMode, onClickReadingMode: () -> Unit, orientation: ReaderOrientation, onClickOrientation: () -> Unit, cropEnabled: Boolean, onClickCropBorder: () -> Unit, onClickSettings: () -> Unit, ) - LongMethod:ReadingModePage.kt$@Composable private fun ColumnScope.PagerViewerSettings(screenModel: ReaderSettingsScreenModel) - LongMethod:Scaffold.kt$@Composable private fun ScaffoldLayout( fabPosition: FabPosition, topBar: @Composable () -> Unit, startBar: @Composable () -> Unit, content: @Composable (PaddingValues) -> Unit, snackbar: @Composable () -> Unit, fab: @Composable () -> Unit, contentWindowInsets: WindowInsets, bottomBar: @Composable () -> Unit, ) - LongMethod:ScanlatorFilterDialog.kt$@Composable fun ScanlatorFilterDialog( availableScanlators: Set<String>, excludedScanlators: Set<String>, onDismissRequest: () -> Unit, onConfirm: (Set<String>) -> Unit, ) - LongMethod:SettingsAdvancedScreen.kt$SettingsAdvancedScreen$@Composable private fun getExtensionsGroup( basePreferences: BasePreferences, ): Preference.PreferenceGroup - LongMethod:SettingsAdvancedScreen.kt$SettingsAdvancedScreen$@Composable private fun getNetworkGroup( networkPreferences: NetworkPreferences, ): Preference.PreferenceGroup - LongMethod:SettingsDataScreen.kt$SettingsDataScreen$@Composable private fun getBackupAndRestoreGroup(backupPreferences: BackupPreferences): Preference.PreferenceGroup - LongMethod:SettingsLibraryScreen.kt$SettingsLibraryScreen$@Composable private fun getGlobalUpdateGroup( allCategories: List<Category>, libraryPreferences: LibraryPreferences, ): Preference.PreferenceGroup - LongMethod:SettingsMainScreen.kt$SettingsMainScreen$@Composable fun Content(twoPane: Boolean) - LongMethod:SettingsReaderScreen.kt$SettingsReaderScreen$@Composable private fun getPagedGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup - LongMethod:SettingsReaderScreen.kt$SettingsReaderScreen$@Composable private fun getWebtoonGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup - LongMethod:SettingsSearchScreen.kt$@Composable private fun SearchResult( searchKey: String, modifier: Modifier = Modifier, listState: LazyListState = rememberLazyListState(), contentPadding: PaddingValues = PaddingValues(), onItemClick: (SearchResultItem) -> Unit, ) - LongMethod:SettingsSearchScreen.kt$SettingsSearchScreen$@Composable override fun Content() - LongMethod:SettingsTrackingScreen.kt$SettingsTrackingScreen$@Composable override fun getPreferences(): List<Preference> - LongMethod:SettingsTrackingScreen.kt$SettingsTrackingScreen$@Composable private fun TrackingLoginDialog( tracker: Tracker, uNameStringRes: StringResource, onDismissRequest: () -> Unit, ) - LongMethod:SourceFilterDialog.kt$@Composable private fun FilterItem(filter: Filter<*>, onUpdate: () -> Unit) - LongMethod:SourceSearchScreen.kt$SourceSearchScreen$@Composable override fun Content() - LongMethod:SyncChaptersWithSource.kt$SyncChaptersWithSource$suspend fun await( rawSourceChapters: List<SChapter>, manga: Manga, source: Source, manualFetch: Boolean = false, fetchWindow: Pair<Long, Long> = Pair(0, 0), ): List<Chapter> - LongMethod:TrackInfoDialog.kt$TrackInfoDialogHomeScreen$@Composable override fun Content() - LongMethod:TrackInfoDialog.kt$TrackerRemoveScreen$@Composable override fun Content() - LongMethod:TrackInfoDialogHome.kt$@Composable private fun TrackInfoItem( title: String, tracker: Tracker, status: StringResource?, onStatusClick: () -> Unit, chapters: String, onChaptersClick: () -> Unit, score: String?, onScoreClick: (() -> Unit)?, startDate: String?, onStartDateClick: (() -> Unit)?, endDate: String?, onEndDateClick: (() -> Unit)?, onNewSearch: () -> Unit, onOpenInBrowser: () -> Unit, onRemoved: () -> Unit, ) - LongMethod:TrackerSearch.kt$@Composable fun TrackerSearch( query: TextFieldValue, onQueryChange: (TextFieldValue) -> Unit, onDispatchQuery: () -> Unit, queryResult: Result<List<TrackSearch>>?, selected: TrackSearch?, onSelectedChange: (TrackSearch) -> Unit, onConfirmSelection: () -> Unit, onDismissRequest: () -> Unit, ) - LongMethod:TrackerSearch.kt$@Composable private fun SearchResultItem( trackSearch: TrackSearch, selected: Boolean, onClick: () -> Unit, ) - LongMethod:TriStateListDialog.kt$@Composable fun <T> TriStateListDialog( title: String, message: String? = null, items: List<T>, initialChecked: List<T>, initialInversed: List<T>, itemLabel: @Composable (T) -> String, onDismissRequest: () -> Unit, onValueChanged: (newIncluded: List<T>, newExcluded: List<T>) -> Unit, ) - LongMethod:UpdatesScreen.kt$@Composable fun UpdateScreen( state: UpdatesScreenModel.State, snackbarHostState: SnackbarHostState, lastUpdated: Long, onClickCover: (UpdatesItem) -> Unit, onSelectAll: (Boolean) -> Unit, onInvertSelection: () -> Unit, onUpdateLibrary: () -> Boolean, onDownloadChapter: (List<UpdatesItem>, ChapterDownloadAction) -> Unit, onMultiBookmarkClicked: (List<UpdatesItem>, bookmark: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<UpdatesItem>, read: Boolean) -> Unit, onMultiDeleteClicked: (List<UpdatesItem>) -> Unit, onUpdateSelected: (UpdatesItem, Boolean, Boolean, Boolean) -> Unit, onOpenChapter: (UpdatesItem) -> Unit, ) - LongMethod:UpdatesTab.kt$UpdatesTab$@Composable override fun Content() - LongMethod:UpdatesUiItem.kt$@Composable private fun UpdatesUiItem( update: UpdatesWithRelations, selected: Boolean, readProgress: String?, onClick: () -> Unit, onLongClick: () -> Unit, onClickCover: (() -> Unit)?, onDownloadChapter: ((ChapterDownloadAction) -> Unit)?, // Download Indicator downloadStateProvider: () -> Download.State, downloadProgressProvider: () -> Int, modifier: Modifier = Modifier, ) - LongMethod:UpdatesWidget.kt$@Composable fun UpdatesWidget( data: ImmutableList<Pair<Long, Bitmap?>>?, contentColor: ColorProvider, topPadding: Dp, bottomPadding: Dp, modifier: GlanceModifier = GlanceModifier, ) - LongMethod:VerticalFastScroller.kt$@Composable fun VerticalFastScroller( listState: LazyListState, modifier: Modifier = Modifier, thumbAllowed: () -> Boolean = { true }, thumbColor: Color = MaterialTheme.colorScheme.primary, topContentPadding: Dp = Dp.Hairline, bottomContentPadding: Dp = Dp.Hairline, endContentPadding: Dp = Dp.Hairline, content: @Composable () -> Unit, ) - LongMethod:VerticalFastScroller.kt$@Composable fun VerticalGridFastScroller( state: LazyGridState, columns: GridCells, arrangement: Arrangement.Horizontal, contentPadding: PaddingValues, modifier: Modifier = Modifier, thumbAllowed: () -> Boolean = { true }, thumbColor: Color = MaterialTheme.colorScheme.primary, topContentPadding: Dp = Dp.Hairline, bottomContentPadding: Dp = Dp.Hairline, endContentPadding: Dp = Dp.Hairline, content: @Composable () -> Unit, ) - LongMethod:WebViewScreenContent.kt$@Composable fun WebViewScreenContent( onNavigateUp: () -> Unit, initialTitle: String?, url: String, onShare: (String) -> Unit, onOpenInBrowser: (String) -> Unit, onClearCookies: (String) -> Unit, headers: Map<String, String> = emptyMap(), onUrlChange: (String) -> Unit = {}, ) - LongMethod:WebtoonRecyclerView.kt$WebtoonRecyclerView.Detector$override fun onTouchEvent(ev: MotionEvent): Boolean - LongMethod:WheelPicker.kt$@Composable private fun <T> WheelPicker( items: ImmutableList<T>, modifier: Modifier = Modifier, startIndex: Int = 0, size: DpSize = DpSize(128.dp, 128.dp), onSelectionChanged: (index: Int) -> Unit = {}, manualInputType: KeyboardType? = null, backgroundContent: (@Composable (size: DpSize) -> Unit)? = { WheelPickerDefaults.Background(size = it) }, itemContent: @Composable LazyItemScope.(item: T) -> Unit, ) - LongParameterList:BottomReaderBar.kt$( backgroundColor: Color, readingMode: ReadingMode, onClickReadingMode: () -> Unit, orientation: ReaderOrientation, onClickOrientation: () -> Unit, cropEnabled: Boolean, onClickCropBorder: () -> Unit, onClickSettings: () -> Unit, ) - LongParameterList:BrowseSourceScreen.kt$( source: Source?, mangaList: LazyPagingItems<StateFlow<Manga>>, columns: GridCells, displayMode: LibraryDisplayMode, snackbarHostState: SnackbarHostState, contentPadding: PaddingValues, onWebViewClick: () -> Unit, onHelpClick: () -> Unit, onLocalSourceHelpClick: () -> Unit, onMangaClick: (Manga) -> Unit, onMangaLongClick: (Manga) -> Unit, ) - LongParameterList:BrowseSourceToolbar.kt$( searchQuery: String?, onSearchQueryChange: (String?) -> Unit, source: Source?, displayMode: LibraryDisplayMode, onDisplayModeChange: (LibraryDisplayMode) -> Unit, navigateUp: () -> Unit, onWebViewClick: () -> Unit, onHelpClick: () -> Unit, onSettingsClick: () -> Unit, onSearch: (String) -> Unit, scrollBehavior: TopAppBarScrollBehavior? = null, ) - LongParameterList:CategoryListItem.kt$( category: Category, canMoveUp: Boolean, canMoveDown: Boolean, onMoveUp: (Category) -> Unit, onMoveDown: (Category) -> Unit, onRename: () -> Unit, onDelete: () -> Unit, modifier: Modifier = Modifier, ) - LongParameterList:CategoryScreen.kt$( categories: List<Category>, lazyListState: LazyListState, paddingValues: PaddingValues, onClickRename: (Category) -> Unit, onClickDelete: (Category) -> Unit, onMoveUp: (Category) -> Unit, onMoveDown: (Category) -> Unit, ) - LongParameterList:CategoryScreen.kt$( state: CategoryScreenState.Success, onClickCreate: () -> Unit, onClickSortAlphabetically: () -> Unit, onClickRename: (Category) -> Unit, onClickDelete: (Category) -> Unit, onClickMoveUp: (Category) -> Unit, onClickMoveDown: (Category) -> Unit, navigateUp: () -> Unit, ) - LongParameterList:ChapterNavigator.kt$( isRtl: Boolean, onNextChapter: () -> Unit, enabledNext: Boolean, onPreviousChapter: () -> Unit, enabledPrevious: Boolean, currentPage: Int, totalPages: Int, onSliderValueChange: (Int) -> Unit, ) - LongParameterList:ChapterRepositoryImpl.kt$ChapterRepositoryImpl$( id: Long, mangaId: Long, url: String, name: String, scanlator: String?, read: Boolean, bookmark: Boolean, lastPageRead: Long, chapterNumber: Double, sourceOrder: Long, dateFetch: Long, dateUpload: Long, lastModifiedAt: Long, ) - LongParameterList:ChapterSettingsDialog.kt$( downloadFilter: TriState, onDownloadFilterChanged: ((TriState) -> Unit)?, unreadFilter: TriState, onUnreadFilterChanged: (TriState) -> Unit, bookmarkedFilter: TriState, onBookmarkedFilterChanged: (TriState) -> Unit, scanlatorFilterActive: Boolean, onScanlatorFilterClicked: (() -> Unit), ) - LongParameterList:ChapterSettingsDialog.kt$( onDismissRequest: () -> Unit, manga: Manga? = null, onDownloadFilterChanged: (TriState) -> Unit, onUnreadFilterChanged: (TriState) -> Unit, onBookmarkedFilterChanged: (TriState) -> Unit, scanlatorFilterActive: Boolean, onScanlatorFilterClicked: (() -> Unit), onSortModeChanged: (Long) -> Unit, onDisplayModeChanged: (Long) -> Unit, onSetAsDefault: (applyToExistingManga: Boolean) -> Unit, onResetToDefault: () -> Unit, ) - LongParameterList:ChapterTransition.kt$( topLabel: String, topChapter: Chapter?, topChapterDownloaded: Boolean, bottomLabel: String, bottomChapter: Chapter?, bottomChapterDownloaded: Boolean, fallbackLabel: String, chapterGap: Int, ) - LongParameterList:ExtensionDetailsScreen.kt$( contentPadding: PaddingValues, extension: Extension.Installed, sources: ImmutableList<ExtensionSourceItem>, onClickSourcePreferences: (sourceId: Long) -> Unit, onClickUninstall: () -> Unit, onClickSource: (sourceId: Long) -> Unit, ) - LongParameterList:ExtensionDetailsScreen.kt$( navigateUp: () -> Unit, state: ExtensionDetailsScreenModel.State, onClickSourcePreferences: (sourceId: Long) -> Unit, onClickEnableAll: () -> Unit, onClickDisableAll: () -> Unit, onClickClearCookies: () -> Unit, onClickUninstall: () -> Unit, onClickSource: (sourceId: Long) -> Unit, ) - LongParameterList:ExtensionsScreen.kt$( item: ExtensionUiModel.Item, onClickItem: (Extension) -> Unit, onLongClickItem: (Extension) -> Unit, onClickItemCancel: (Extension) -> Unit, onClickItemAction: (Extension) -> Unit, onClickItemSecondaryAction: (Extension) -> Unit, modifier: Modifier = Modifier, ) - LongParameterList:ExtensionsScreen.kt$( state: ExtensionsScreenModel.State, contentPadding: PaddingValues, onLongClickItem: (Extension) -> Unit, onClickItemCancel: (Extension) -> Unit, onOpenWebView: (Extension.Available) -> Unit, onInstallExtension: (Extension.Available) -> Unit, onUninstallExtension: (Extension) -> Unit, onUpdateExtension: (Extension.Installed) -> Unit, onTrustExtension: (Extension.Untrusted) -> Unit, onOpenExtension: (Extension.Installed) -> Unit, onClickUpdateAll: () -> Unit, ) - LongParameterList:ExtensionsScreen.kt$( state: ExtensionsScreenModel.State, contentPadding: PaddingValues, searchQuery: String?, onLongClickItem: (Extension) -> Unit, onClickItemCancel: (Extension) -> Unit, onOpenWebView: (Extension.Available) -> Unit, onInstallExtension: (Extension.Available) -> Unit, onUninstallExtension: (Extension) -> Unit, onUpdateExtension: (Extension.Installed) -> Unit, onTrustExtension: (Extension.Untrusted) -> Unit, onOpenExtension: (Extension.Installed) -> Unit, onClickUpdateAll: () -> Unit, onRefresh: () -> Unit, ) - LongParameterList:GlobalSearchScreen.kt$( items: Map<CatalogueSource, SearchItemResult>, contentPadding: PaddingValues, getManga: @Composable (Manga) -> State<Manga>, onClickSource: (CatalogueSource) -> Unit, onClickItem: (Manga) -> Unit, onLongClickItem: (Manga) -> Unit, fromSourceId: Long? = null, ) - LongParameterList:GlobalSearchScreen.kt$( state: SearchScreenModel.State, navigateUp: () -> Unit, onChangeSearchQuery: (String?) -> Unit, onSearch: (String) -> Unit, onChangeSearchFilter: (SourceFilter) -> Unit, onToggleResults: () -> Unit, getManga: @Composable (Manga) -> State<Manga>, onClickSource: (CatalogueSource) -> Unit, onClickItem: (Manga) -> Unit, onLongClickItem: (Manga) -> Unit, ) - LongParameterList:GlobalSearchToolbar.kt$( searchQuery: String?, progress: Int, total: Int, navigateUp: () -> Unit, onChangeSearchQuery: (String?) -> Unit, onSearch: (String) -> Unit, sourceFilter: SourceFilter, onChangeSearchFilter: (SourceFilter) -> Unit, onlyShowHasResults: Boolean, onToggleResults: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, ) - LongParameterList:HistoryMapper.kt$HistoryMapper$( historyId: Long, mangaId: Long, chapterId: Long, title: String, thumbnailUrl: String?, sourceId: Long, isFavorite: Boolean, coverLastModified: Long, chapterNumber: Double, readAt: Date?, readDuration: Long, ) - LongParameterList:HistoryScreen.kt$( state: HistoryScreenModel.State, snackbarHostState: SnackbarHostState, onSearchQueryChange: (String?) -> Unit, onClickCover: (mangaId: Long) -> Unit, onClickResume: (mangaId: Long, chapterId: Long) -> Unit, onDialogChange: (HistoryScreenModel.Dialog?) -> Unit, ) - LongParameterList:InfoScreen.kt$( icon: ImageVector, headingText: String, subtitleText: String, acceptText: String, onAcceptClick: () -> Unit, canAccept: Boolean = true, rejectText: String? = null, onRejectClick: (() -> Unit)? = null, content: @Composable ColumnScope.() -> Unit, ) - LongParameterList:LibraryComfortableGrid.kt$( items: List<LibraryItem>, columns: Int, contentPadding: PaddingValues, selection: List<LibraryManga>, onClick: (LibraryManga) -> Unit, onLongClick: (LibraryManga) -> Unit, onClickContinueReading: ((LibraryManga) -> Unit)?, searchQuery: String?, onGlobalSearchClicked: () -> Unit, ) - LongParameterList:LibraryCompactGrid.kt$( items: List<LibraryItem>, showTitle: Boolean, columns: Int, contentPadding: PaddingValues, selection: List<LibraryManga>, onClick: (LibraryManga) -> Unit, onLongClick: (LibraryManga) -> Unit, onClickContinueReading: ((LibraryManga) -> Unit)?, searchQuery: String?, onGlobalSearchClicked: () -> Unit, ) - LongParameterList:LibraryContent.kt$( categories: List<Category>, searchQuery: String?, selection: List<LibraryManga>, contentPadding: PaddingValues, currentPage: () -> Int, hasActiveFilters: Boolean, showPageTabs: Boolean, onChangeCurrentPage: (Int) -> Unit, onMangaClicked: (Long) -> Unit, onContinueReadingClicked: ((LibraryManga) -> Unit)?, onToggleSelection: (LibraryManga) -> Unit, onToggleRangeSelection: (LibraryManga) -> Unit, onRefresh: (Category?) -> Boolean, onGlobalSearchClicked: () -> Unit, getNumberOfMangaForCategory: (Category) -> Int?, getDisplayMode: (Int) -> PreferenceMutableState<LibraryDisplayMode>, getColumnsForOrientation: (Boolean) -> PreferenceMutableState<Int>, getLibraryForPage: (Int) -> List<LibraryItem>, ) - LongParameterList:LibraryList.kt$( items: List<LibraryItem>, contentPadding: PaddingValues, selection: List<LibraryManga>, onClick: (LibraryManga) -> Unit, onLongClick: (LibraryManga) -> Unit, onClickContinueReading: ((LibraryManga) -> Unit)?, searchQuery: String?, onGlobalSearchClicked: () -> Unit, ) - LongParameterList:LibraryPager.kt$( state: PagerState, contentPadding: PaddingValues, hasActiveFilters: Boolean, selectedManga: List<LibraryManga>, searchQuery: String?, onGlobalSearchClicked: () -> Unit, getDisplayMode: (Int) -> PreferenceMutableState<LibraryDisplayMode>, getColumnsForOrientation: (Boolean) -> PreferenceMutableState<Int>, getLibraryForPage: (Int) -> List<LibraryItem>, onClickManga: (LibraryManga) -> Unit, onLongClickManga: (LibraryManga) -> Unit, onClickContinueReading: ((LibraryManga) -> Unit)?, ) - LongParameterList:LibraryToolbar.kt$( hasActiveFilters: Boolean, selectedCount: Int, title: LibraryToolbarTitle, onClickUnselectAll: () -> Unit, onClickSelectAll: () -> Unit, onClickInvertSelection: () -> Unit, onClickFilter: () -> Unit, onClickRefresh: () -> Unit, onClickGlobalUpdate: () -> Unit, onClickOpenRandomManga: () -> Unit, searchQuery: String?, onSearchQueryChange: (String?) -> Unit, scrollBehavior: TopAppBarScrollBehavior?, ) - LongParameterList:LibraryToolbar.kt$( title: LibraryToolbarTitle, hasFilters: Boolean, searchQuery: String?, onSearchQueryChange: (String?) -> Unit, onClickFilter: () -> Unit, onClickRefresh: () -> Unit, onClickGlobalUpdate: () -> Unit, onClickOpenRandomManga: () -> Unit, scrollBehavior: TopAppBarScrollBehavior?, ) - LongParameterList:ListPreferenceWidget.kt$( value: T, title: String, subtitle: String?, icon: ImageVector?, entries: Map<out T, String>, onValueChange: (T) -> Unit, ) - LongParameterList:MangaBottomActionMenu.kt$( visible: Boolean, onChangeCategoryClicked: () -> Unit, onMarkAsReadClicked: () -> Unit, onMarkAsUnreadClicked: () -> Unit, onDownloadClicked: ((DownloadAction) -> Unit)?, onDeleteClicked: () -> Unit, modifier: Modifier = Modifier, ) - LongParameterList:MangaChapterListItem.kt$( action: LibraryPreferences.ChapterSwipeAction, read: Boolean, bookmark: Boolean, downloadState: Download.State, background: Color, onSwipe: () -> Unit, ) - LongParameterList:MangaChapterListItem.kt$( title: String, date: String?, readProgress: String?, scanlator: String?, read: Boolean, bookmark: Boolean, selected: Boolean, downloadIndicatorEnabled: Boolean, downloadStateProvider: () -> Download.State, downloadProgressProvider: () -> Int, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onLongClick: () -> Unit, onClick: () -> Unit, onDownloadClick: ((ChapterDownloadAction) -> Unit)?, onChapterSwipe: (LibraryPreferences.ChapterSwipeAction) -> Unit, modifier: Modifier = Modifier, ) - LongParameterList:MangaCoverDialog.kt$( coverDataProvider: () -> Manga, isCustomCover: Boolean, snackbarHostState: SnackbarHostState, onShareClick: () -> Unit, onSaveClick: () -> Unit, onEditClick: ((EditCoverAction) -> Unit)?, onDismissRequest: () -> Unit, ) - LongParameterList:MangaCoverFetcher.kt$MangaCoverFetcher$( private val url: String?, private val isLibraryManga: Boolean, private val options: Options, private val coverFileLazy: Lazy<File?>, private val customCoverFileLazy: Lazy<File>, private val diskCacheKeyLazy: Lazy<String>, private val sourceLazy: Lazy<HttpSource?>, private val callFactoryLazy: Lazy<Call.Factory>, private val diskCacheLazy: Lazy<DiskCache>, ) - LongParameterList:MangaInfoHeader.kt$( appBarPadding: Dp, coverDataProvider: () -> Manga, onCoverClick: () -> Unit, title: String, doSearch: (query: String, global: Boolean) -> Unit, author: String?, artist: String?, status: Long, sourceName: String, isStubSource: Boolean, ) - LongParameterList:MangaInfoHeader.kt$( favorite: Boolean, trackingCount: Int, nextUpdate: Instant?, isUserIntervalMode: Boolean, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, onEditIntervalClicked: (() -> Unit)?, onEditCategory: (() -> Unit)?, modifier: Modifier = Modifier, ) - LongParameterList:MangaInfoHeader.kt$( isTabletUi: Boolean, appBarPadding: Dp, title: String, author: String?, artist: String?, sourceName: String, isStubSource: Boolean, coverDataProvider: () -> Manga, status: Long, onCoverClick: () -> Unit, doSearch: (query: String, global: Boolean) -> Unit, modifier: Modifier = Modifier, ) - LongParameterList:MangaInfoHeader.kt$( title: String, doSearch: (query: String, global: Boolean) -> Unit, author: String?, artist: String?, status: Long, sourceName: String, isStubSource: Boolean, textAlign: TextAlign? = LocalTextStyle.current.textAlign, ) - LongParameterList:MangaMapper.kt$MangaMapper$( id: Long, source: Long, url: String, artist: String?, author: String?, description: String?, genre: List<String>?, title: String, status: Long, thumbnailUrl: String?, favorite: Boolean, lastUpdate: Long?, nextUpdate: Long?, initialized: Boolean, viewerFlags: Long, chapterFlags: Long, coverLastModified: Long, dateAdded: Long, updateStrategy: UpdateStrategy, calculateInterval: Long, lastModifiedAt: Long, favoriteModifiedAt: Long?, ) - LongParameterList:MangaMapper.kt$MangaMapper$( id: Long, source: Long, url: String, artist: String?, author: String?, description: String?, genre: List<String>?, title: String, status: Long, thumbnailUrl: String?, favorite: Boolean, lastUpdate: Long?, nextUpdate: Long?, initialized: Boolean, viewerFlags: Long, chapterFlags: Long, coverLastModified: Long, dateAdded: Long, updateStrategy: UpdateStrategy, calculateInterval: Long, lastModifiedAt: Long, favoriteModifiedAt: Long?, totalCount: Long, readCount: Double, latestUpload: Long, chapterFetchedAt: Long, lastRead: Long, bookmarkCount: Double, category: Long, ) - LongParameterList:MangaRestorer.kt$MangaRestorer$( manga: Manga, chapters: List<BackupChapter>, categories: List<Long>, backupCategories: List<BackupCategory>, history: List<BackupHistory>, tracks: List<BackupTracking>, excludedScanlators: List<String>, ) - LongParameterList:MangaScreen.kt$( manga: Manga, chapters: List<ChapterList>, isAnyChapterSelected: Boolean, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, ) - LongParameterList:MangaScreen.kt$( selected: List<ChapterList.Item>, onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onMultiDeleteClicked: (List<Chapter>) -> Unit, fillFraction: Float, modifier: Modifier = Modifier, ) - LongParameterList:MangaScreen.kt$( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, nextUpdate: Instant?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onBackClicked: () -> Unit, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, // For tags menu onTagSearch: (String) -> Unit, onCopyTagToClipboard: (tag: String) -> Unit, onFilterButtonClicked: () -> Unit, onRefresh: () -> Unit, onContinueReading: () -> Unit, onSearch: (query: String, global: Boolean) -> Unit, // For cover dialog onCoverClicked: () -> Unit, // For top action menu onShareClicked: (() -> Unit)?, onDownloadActionClicked: ((DownloadAction) -> Unit)?, onEditCategoryClicked: (() -> Unit)?, onEditIntervalClicked: (() -> Unit)?, onMigrateClicked: (() -> Unit)?, // For bottom action menu onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onMultiDeleteClicked: (List<Chapter>) -> Unit, // For swipe actions onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, // Chapter selection onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) - LongParameterList:MangaScreen.kt$( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, nextUpdate: Instant?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onBackClicked: () -> Unit, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, // For tags menu onTagSearch: (String) -> Unit, onCopyTagToClipboard: (tag: String) -> Unit, onFilterClicked: () -> Unit, onRefresh: () -> Unit, onContinueReading: () -> Unit, onSearch: (query: String, global: Boolean) -> Unit, // For cover dialog onCoverClicked: () -> Unit, // For top action menu onShareClicked: (() -> Unit)?, onDownloadActionClicked: ((DownloadAction) -> Unit)?, onEditCategoryClicked: (() -> Unit)?, onEditIntervalClicked: (() -> Unit)?, onMigrateClicked: (() -> Unit)?, // For bottom action menu onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onMultiDeleteClicked: (List<Chapter>) -> Unit, // For chapter swipe onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, // Chapter selection onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) - LongParameterList:MangaScreen.kt$( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, nextUpdate: Instant?, isTabletUi: Boolean, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, onBackClicked: () -> Unit, onChapterClicked: (Chapter) -> Unit, onDownloadChapter: ((List<ChapterList.Item>, ChapterDownloadAction) -> Unit)?, onAddToLibraryClicked: () -> Unit, onWebViewClicked: (() -> Unit)?, onWebViewLongClicked: (() -> Unit)?, onTrackingClicked: () -> Unit, // For tags menu onTagSearch: (String) -> Unit, onFilterButtonClicked: () -> Unit, onRefresh: () -> Unit, onContinueReading: () -> Unit, onSearch: (query: String, global: Boolean) -> Unit, // For cover dialog onCoverClicked: () -> Unit, // For top action menu onShareClicked: (() -> Unit)?, onDownloadActionClicked: ((DownloadAction) -> Unit)?, onEditCategoryClicked: (() -> Unit)?, onEditFetchIntervalClicked: (() -> Unit)?, onMigrateClicked: (() -> Unit)?, // For bottom action menu onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, onMultiDeleteClicked: (List<Chapter>) -> Unit, // For chapter swipe onChapterSwipe: (ChapterList.Item, LibraryPreferences.ChapterSwipeAction) -> Unit, // Chapter selection onChapterSelected: (ChapterList.Item, Boolean, Boolean, Boolean) -> Unit, onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) - LongParameterList:MangaToolbar.kt$( title: String, titleAlphaProvider: () -> Float, hasFilters: Boolean, onBackClicked: () -> Unit, onClickFilter: () -> Unit, onClickShare: (() -> Unit)?, onClickDownload: ((DownloadAction) -> Unit)?, onClickEditCategory: (() -> Unit)?, onClickRefresh: () -> Unit, onClickMigrate: (() -> Unit)?, // For action mode actionModeCounter: Int, onSelectAll: () -> Unit, onInvertSelection: () -> Unit, modifier: Modifier = Modifier, backgroundAlphaProvider: () -> Float = titleAlphaProvider, ) - LongParameterList:MigrateDialog.kt$( oldManga: Manga, newManga: Manga, screenModel: MigrateDialogScreenModel, onDismissRequest: () -> Unit, onClickTitle: () -> Unit, onPopScreen: () -> Unit, ) - LongParameterList:MigrateDialog.kt$MigrateDialogScreenModel$( oldSource: Source?, newSource: Source, oldManga: Manga, newManga: Manga, sourceChapters: List<SChapter>, replace: Boolean, flags: Int, ) - LongParameterList:MigrateSearchScreen.kt$( state: SearchScreenModel.State, fromSourceId: Long?, navigateUp: () -> Unit, onChangeSearchQuery: (String?) -> Unit, onSearch: (String) -> Unit, onChangeSearchFilter: (SourceFilter) -> Unit, onToggleResults: () -> Unit, getManga: @Composable (Manga) -> State<Manga>, onClickSource: (CatalogueSource) -> Unit, onClickItem: (Manga) -> Unit, onLongClickItem: (Manga) -> Unit, ) - LongParameterList:MigrateSourceScreen.kt$( list: ImmutableList<Pair<Source, Long>>, contentPadding: PaddingValues, onClickItem: (Source) -> Unit, onLongClickItem: (Source) -> Unit, sortingMode: SetMigrateSorting.Mode, onToggleSortingMode: () -> Unit, sortingDirection: SetMigrateSorting.Direction, onToggleSortingDirection: () -> Unit, ) - LongParameterList:MoreScreen.kt$( downloadQueueStateProvider: () -> DownloadQueueState, downloadedOnly: Boolean, onDownloadedOnlyChange: (Boolean) -> Unit, incognitoMode: Boolean, onIncognitoModeChange: (Boolean) -> Unit, isFDroid: Boolean, onClickDownloadQueue: () -> Unit, onClickCategories: () -> Unit, onClickStats: () -> Unit, onClickDataAndStorage: () -> Unit, onClickSettings: () -> Unit, onClickAbout: () -> Unit, ) - LongParameterList:ReaderAppBars.kt$( visible: Boolean, fullscreen: Boolean, mangaTitle: String?, chapterTitle: String?, navigateUp: () -> Unit, onClickTopAppBar: () -> Unit, bookmarked: Boolean, onToggleBookmarked: () -> Unit, onOpenInWebView: (() -> Unit)?, onShare: (() -> Unit)?, viewer: Viewer?, onNextChapter: () -> Unit, enabledNext: Boolean, onPreviousChapter: () -> Unit, enabledPrevious: Boolean, currentPage: Int, totalPages: Int, onSliderValueChange: (Int) -> Unit, readingMode: ReadingMode, onClickReadingMode: () -> Unit, orientation: ReaderOrientation, onClickOrientation: () -> Unit, cropEnabled: Boolean, onClickCropBorder: () -> Unit, onClickSettings: () -> Unit, ) - LongParameterList:Scaffold.kt$( fabPosition: FabPosition, topBar: @Composable () -> Unit, startBar: @Composable () -> Unit, content: @Composable (PaddingValues) -> Unit, snackbar: @Composable () -> Unit, fab: @Composable () -> Unit, contentWindowInsets: WindowInsets, bottomBar: @Composable () -> Unit, ) - LongParameterList:Scrollbar.kt$( orientation: Orientation, reverseDirection: Boolean, atEnd: Boolean, showScrollbar: Boolean, thickness: Float, color: Color, alpha: () -> Float, thumbSize: Float, scrollOffset: Float, positionOffset: Float, ) - LongParameterList:SetMangaChapterFlags.kt$SetMangaChapterFlags$( mangaId: Long, unreadFilter: Long, downloadedFilter: Long, bookmarkedFilter: Long, sortingMode: Long, sortingDirection: Long, displayMode: Long, ) - LongParameterList:SyncChaptersWithSource.kt$SyncChaptersWithSource$( private val downloadManager: DownloadManager, private val downloadProvider: DownloadProvider, private val chapterRepository: ChapterRepository, private val shouldUpdateDbChapter: ShouldUpdateDbChapter, private val updateManga: UpdateManga, private val updateChapter: UpdateChapter, private val getChaptersByMangaId: GetChaptersByMangaId, private val getExcludedScanlators: GetExcludedScanlators, ) - LongParameterList:TrackInfoDialogHome.kt$( title: String, tracker: Tracker, status: StringResource?, onStatusClick: () -> Unit, chapters: String, onChaptersClick: () -> Unit, score: String?, onScoreClick: (() -> Unit)?, startDate: String?, onStartDateClick: (() -> Unit)?, endDate: String?, onEndDateClick: (() -> Unit)?, onNewSearch: () -> Unit, onOpenInBrowser: () -> Unit, onRemoved: () -> Unit, ) - LongParameterList:TrackInfoDialogHome.kt$( trackItems: List<TrackItem>, dateFormat: DateFormat, onStatusClick: (TrackItem) -> Unit, onChapterClick: (TrackItem) -> Unit, onScoreClick: (TrackItem) -> Unit, onStartDateEdit: (TrackItem) -> Unit, onEndDateEdit: (TrackItem) -> Unit, onNewSearch: (TrackItem) -> Unit, onOpenInBrowser: (TrackItem) -> Unit, onRemoved: (TrackItem) -> Unit, ) - LongParameterList:TrackInfoDialogSelector.kt$( title: String, initialSelectedDateMillis: Long, selectableDates: SelectableDates, onConfirm: (Long) -> Unit, onRemove: (() -> Unit)?, onDismissRequest: () -> Unit, ) - LongParameterList:TrackMapper.kt$TrackMapper$( id: Long, mangaId: Long, syncId: Long, remoteId: Long, libraryId: Long?, title: String, lastChapterRead: Double, totalChapters: Long, status: Long, score: Double, remoteUrl: String, startDate: Long, finishDate: Long, ) - LongParameterList:TrackerSearch.kt$( query: TextFieldValue, onQueryChange: (TextFieldValue) -> Unit, onDispatchQuery: () -> Unit, queryResult: Result<List<TrackSearch>>?, selected: TrackSearch?, onSelectedChange: (TrackSearch) -> Unit, onConfirmSelection: () -> Unit, onDismissRequest: () -> Unit, ) - LongParameterList:TriStateListDialog.kt$( title: String, message: String? = null, items: List<T>, initialChecked: List<T>, initialInversed: List<T>, itemLabel: @Composable (T) -> String, onDismissRequest: () -> Unit, onValueChanged: (newIncluded: List<T>, newExcluded: List<T>) -> Unit, ) - LongParameterList:UpdatesRepositoryImpl.kt$UpdatesRepositoryImpl$( mangaId: Long, mangaTitle: String, chapterId: Long, chapterName: String, scanlator: String?, read: Boolean, bookmark: Boolean, lastPageRead: Long, sourceId: Long, favorite: Boolean, thumbnailUrl: String?, coverLastModified: Long, dateUpload: Long, dateFetch: Long, ) - LongParameterList:UpdatesScreen.kt$( onUpdateLibrary: () -> Unit, // For action mode actionModeCounter: Int, onSelectAll: () -> Unit, onInvertSelection: () -> Unit, onCancelActionMode: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, modifier: Modifier = Modifier, ) - LongParameterList:UpdatesScreen.kt$( state: UpdatesScreenModel.State, snackbarHostState: SnackbarHostState, lastUpdated: Long, onClickCover: (UpdatesItem) -> Unit, onSelectAll: (Boolean) -> Unit, onInvertSelection: () -> Unit, onUpdateLibrary: () -> Boolean, onDownloadChapter: (List<UpdatesItem>, ChapterDownloadAction) -> Unit, onMultiBookmarkClicked: (List<UpdatesItem>, bookmark: Boolean) -> Unit, onMultiMarkAsReadClicked: (List<UpdatesItem>, read: Boolean) -> Unit, onMultiDeleteClicked: (List<UpdatesItem>) -> Unit, onUpdateSelected: (UpdatesItem, Boolean, Boolean, Boolean) -> Unit, onOpenChapter: (UpdatesItem) -> Unit, ) - LongParameterList:UpdatesUiItem.kt$( uiModels: List<UpdatesUiModel>, selectionMode: Boolean, onUpdateSelected: (UpdatesItem, Boolean, Boolean, Boolean) -> Unit, onClickCover: (UpdatesItem) -> Unit, onClickUpdate: (UpdatesItem) -> Unit, onDownloadChapter: (List<UpdatesItem>, ChapterDownloadAction) -> Unit, ) - LongParameterList:UpdatesUiItem.kt$( update: UpdatesWithRelations, selected: Boolean, readProgress: String?, onClick: () -> Unit, onLongClick: () -> Unit, onClickCover: (() -> Unit)?, onDownloadChapter: ((ChapterDownloadAction) -> Unit)?, // Download Indicator downloadStateProvider: () -> Download.State, downloadProgressProvider: () -> Int, modifier: Modifier = Modifier, ) - LongParameterList:WebViewScreenContent.kt$( onNavigateUp: () -> Unit, initialTitle: String?, url: String, onShare: (String) -> Unit, onOpenInBrowser: (String) -> Unit, onClearCookies: (String) -> Unit, headers: Map<String, String> = emptyMap(), onUrlChange: (String) -> Unit = {}, ) - LongParameterList:WebtoonRecyclerView.kt$WebtoonRecyclerView$( fromRate: Float, toRate: Float, fromX: Float, toX: Float, fromY: Float, toY: Float, ) - LoopWithTooManyJumpStatements:DownloadStore.kt$DownloadStore$for - LoopWithTooManyJumpStatements:ImageUtil.kt$ImageUtil$for - LoopWithTooManyJumpStatements:Kavita.kt$Kavita$for - LoopWithTooManyJumpStatements:RateLimitInterceptor.kt$RateLimitInterceptor$while - LoopWithTooManyJumpStatements:UpdatesScreenModel.kt$UpdatesScreenModel$for - MagicNumber:AdaptiveSheet.kt$220 - MagicNumber:AdaptiveSheet.kt$90 - MagicNumber:Anilist.kt$Anilist$10 - MagicNumber:Anilist.kt$Anilist$10.0 - MagicNumber:Anilist.kt$Anilist$100 - MagicNumber:Anilist.kt$Anilist$10f - MagicNumber:Anilist.kt$Anilist$18 - MagicNumber:Anilist.kt$Anilist$20 - MagicNumber:Anilist.kt$Anilist$20.0 - MagicNumber:Anilist.kt$Anilist$25 - MagicNumber:Anilist.kt$Anilist$25.0 - MagicNumber:Anilist.kt$Anilist$35 - MagicNumber:Anilist.kt$Anilist$5 - MagicNumber:Anilist.kt$Anilist$60 - MagicNumber:AnilistApi.kt$AnilistApi$31536000000 - MagicNumber:AnilistModels.kt$10 - MagicNumber:AnilistModels.kt$30 - MagicNumber:AnilistModels.kt$35 - MagicNumber:AnilistModels.kt$50 - MagicNumber:AnilistModels.kt$60 - MagicNumber:AnilistModels.kt$70 - MagicNumber:AnilistModels.kt$90 - MagicNumber:App.kt$App$300 - MagicNumber:App.kt$App$8 - MagicNumber:AppThemePreferenceWidget.kt$0.3f - MagicNumber:AppThemePreferenceWidget.kt$0.5f - MagicNumber:AppThemePreferenceWidget.kt$0.6f - MagicNumber:AppThemePreferenceWidget.kt$0.7f - MagicNumber:AppThemePreferenceWidget.kt$0.8f - MagicNumber:AppThemePreferenceWidget.kt$16f - MagicNumber:AppThemePreferenceWidget.kt$9f - MagicNumber:AppUpdateDownloadJob.kt$AppUpdateDownloadJob.<no name provided>$100 - MagicNumber:AppUpdateDownloadJob.kt$AppUpdateDownloadJob.<no name provided>$200 - MagicNumber:AppUpdateNotifier.kt$AppUpdateNotifier$100 - MagicNumber:Backup.kt$Backup$100 - MagicNumber:Backup.kt$Backup$101 - MagicNumber:Backup.kt$Backup$104 - MagicNumber:Backup.kt$Backup$105 - MagicNumber:BackupCategory.kt$BackupCategory$100 - MagicNumber:BackupChapter.kt$BackupChapter$10 - MagicNumber:BackupChapter.kt$BackupChapter$11 - MagicNumber:BackupChapter.kt$BackupChapter$3 - MagicNumber:BackupChapter.kt$BackupChapter$4 - MagicNumber:BackupChapter.kt$BackupChapter$5 - MagicNumber:BackupChapter.kt$BackupChapter$6 - MagicNumber:BackupChapter.kt$BackupChapter$7 - MagicNumber:BackupChapter.kt$BackupChapter$8 - MagicNumber:BackupChapter.kt$BackupChapter$9 - MagicNumber:BackupCreateJob.kt$BackupCreateJob.Companion$10 - MagicNumber:BackupDecoder.kt$BackupDecoder$0x1f8b - MagicNumber:BackupHistory.kt$BackupHistory$3 - MagicNumber:BackupManga.kt$BackupManga$100 - MagicNumber:BackupManga.kt$BackupManga$101 - MagicNumber:BackupManga.kt$BackupManga$102 - MagicNumber:BackupManga.kt$BackupManga$103 - MagicNumber:BackupManga.kt$BackupManga$104 - MagicNumber:BackupManga.kt$BackupManga$105 - MagicNumber:BackupManga.kt$BackupManga$106 - MagicNumber:BackupManga.kt$BackupManga$107 - MagicNumber:BackupManga.kt$BackupManga$108 - MagicNumber:BackupManga.kt$BackupManga$13 - MagicNumber:BackupManga.kt$BackupManga$14 - MagicNumber:BackupManga.kt$BackupManga$16 - MagicNumber:BackupManga.kt$BackupManga$17 - MagicNumber:BackupManga.kt$BackupManga$18 - MagicNumber:BackupManga.kt$BackupManga$3 - MagicNumber:BackupManga.kt$BackupManga$4 - MagicNumber:BackupManga.kt$BackupManga$5 - MagicNumber:BackupManga.kt$BackupManga$6 - MagicNumber:BackupManga.kt$BackupManga$7 - MagicNumber:BackupManga.kt$BackupManga$8 - MagicNumber:BackupManga.kt$BackupManga$9 - MagicNumber:BackupPreferences.kt$BackupPreferences$12 - MagicNumber:BackupTracking.kt$BackupTracking$10 - MagicNumber:BackupTracking.kt$BackupTracking$100 - MagicNumber:BackupTracking.kt$BackupTracking$11 - MagicNumber:BackupTracking.kt$BackupTracking$3 - MagicNumber:BackupTracking.kt$BackupTracking$4 - MagicNumber:BackupTracking.kt$BackupTracking$5 - MagicNumber:BackupTracking.kt$BackupTracking$6 - MagicNumber:BackupTracking.kt$BackupTracking$7 - MagicNumber:BackupTracking.kt$BackupTracking$8 - MagicNumber:BackupTracking.kt$BackupTracking$9 - MagicNumber:Bangumi.kt$Bangumi$145 - MagicNumber:Bangumi.kt$Bangumi$153 - MagicNumber:Bangumi.kt$Bangumi$240 - MagicNumber:BangumiInterceptor.kt$BangumiInterceptor$1000 - MagicNumber:BangumiModels.kt$1000 - MagicNumber:BangumiModels.kt$3600 - MagicNumber:BangumiModels.kt$OAuth$1000 - MagicNumber:BasePreferenceWidget.kt$200 - MagicNumber:BrowseIcons.kt$0x1F888888 - MagicNumber:ChapterDownloadIndicator.kt$0.5f - MagicNumber:ChapterRecognition.kt$ChapterRecognition$10 - MagicNumber:ChapterRecognition.kt$ChapterRecognition$10.0 - MagicNumber:ChapterRecognition.kt$ChapterRecognition$2.0 - MagicNumber:ChapterRecognition.kt$ChapterRecognition$3 - MagicNumber:CircularProgressIndicator.kt$2000 - MagicNumber:ColorFilterPage.kt$16 - MagicNumber:ColorFilterPage.kt$24 - MagicNumber:ColorFilterPage.kt$8 - MagicNumber:CommonMangaItem.kt$0.33f - MagicNumber:CommonMangaItem.kt$0xAA000000 - MagicNumber:ContextExtensions.kt$3 - MagicNumber:ContextExtensions.kt$50 - MagicNumber:DateExtensions.kt$7 - MagicNumber:DelayedTrackingUpdateJob.kt$DelayedTrackingUpdateJob$3 - MagicNumber:DelayedTrackingUpdateJob.kt$DelayedTrackingUpdateJob.Companion$5 - MagicNumber:DeviceUtil.kt$DeviceUtil$1024 - MagicNumber:DeviceUtil.kt$DeviceUtil$3L - MagicNumber:DeviceUtil.kt$DeviceUtil$90000 - MagicNumber:DiskUtil.kt$DiskUtil$240 - MagicNumber:Download.kt$Download.State.DOWNLOADED$3 - MagicNumber:Download.kt$Download.State.ERROR$4 - MagicNumber:DownloadCache.kt$DownloadCache$1000 - MagicNumber:DownloadDropdownMenu.kt$10 - MagicNumber:DownloadDropdownMenu.kt$25 - MagicNumber:DownloadDropdownMenu.kt$5 - MagicNumber:DownloadHolder.kt$DownloadHolder$100 - MagicNumber:DownloadNotifier.kt$DownloadNotifier$15 - MagicNumber:DownloadNotifier.kt$DownloadNotifier$30 - MagicNumber:DownloadProvider.kt$DownloadProvider$4 - MagicNumber:DownloadQueueScreen.kt$DownloadQueueScreen$0.08f - MagicNumber:DownloadQueueScreen.kt$DownloadQueueScreen$0.12f - MagicNumber:DownloadQueueScreenModel.kt$DownloadQueueScreenModel$50 - MagicNumber:Downloader.kt$Downloader$100 - MagicNumber:Downloader.kt$Downloader$1000 - MagicNumber:Downloader.kt$Downloader$3 - MagicNumber:Downloader.kt$Downloader$5 - MagicNumber:DropdownMenu.kt$56 - MagicNumber:ExtensionDetailsScreen.kt$1.5f - MagicNumber:ExtensionInstallService.kt$ExtensionInstallService$100 - MagicNumber:FetchInterval.kt$FetchInterval$10 - MagicNumber:FetchInterval.kt$FetchInterval$1000 - MagicNumber:FetchInterval.kt$FetchInterval$3 - MagicNumber:FetchInterval.kt$FetchInterval$7 - MagicNumber:FetchInterval.kt$FetchInterval$8 - MagicNumber:GetApplicationRelease.kt$GetApplicationRelease$3 - MagicNumber:GlanceUtils.kt$10 - MagicNumber:GlanceUtils.kt$64 - MagicNumber:GlanceUtils.kt$95 - MagicNumber:GlobalSearchItem.kt$99f - MagicNumber:Hash.kt$Hash$15 - MagicNumber:Hash.kt$Hash$240 - MagicNumber:Hash.kt$Hash$4 - MagicNumber:HttpSource.kt$HttpSource$0xff - MagicNumber:HttpSource.kt$HttpSource$7 - MagicNumber:HttpSource.kt$HttpSource$8 - MagicNumber:ImageUtil.kt$ImageUtil$0.01 - MagicNumber:ImageUtil.kt$ImageUtil$0.0275 - MagicNumber:ImageUtil.kt$ImageUtil$100 - MagicNumber:ImageUtil.kt$ImageUtil$14 - MagicNumber:ImageUtil.kt$ImageUtil$18 - MagicNumber:ImageUtil.kt$ImageUtil$200 - MagicNumber:ImageUtil.kt$ImageUtil$22 - MagicNumber:ImageUtil.kt$ImageUtil$25 - MagicNumber:ImageUtil.kt$ImageUtil$3 - MagicNumber:ImageUtil.kt$ImageUtil$30 - MagicNumber:ImageUtil.kt$ImageUtil$32 - MagicNumber:ImageUtil.kt$ImageUtil$40 - MagicNumber:ImageUtil.kt$ImageUtil$5 - MagicNumber:ImageUtil.kt$ImageUtil$50 - MagicNumber:ImageUtil.kt$ImageUtil$6 - MagicNumber:ImageUtil.kt$ImageUtil$740 - MagicNumber:ImageUtil.kt$ImageUtil$9 - MagicNumber:Kavita.kt$Kavita$0xff - MagicNumber:Kavita.kt$Kavita$148 - MagicNumber:Kavita.kt$Kavita$198 - MagicNumber:Kavita.kt$Kavita$3 - MagicNumber:Kavita.kt$Kavita$7 - MagicNumber:Kavita.kt$Kavita$74 - MagicNumber:Kavita.kt$Kavita$8 - MagicNumber:KavitaApi.kt$KavitaApi$200 - MagicNumber:KavitaApi.kt$KavitaApi$204 - MagicNumber:KavitaApi.kt$KavitaApi$401 - MagicNumber:KavitaApi.kt$KavitaApi$500 - MagicNumber:KavitaModels.kt$OAuth$3 - MagicNumber:Kitsu.kt$Kitsu$20 - MagicNumber:Kitsu.kt$Kitsu$37 - MagicNumber:Kitsu.kt$Kitsu$50 - MagicNumber:Kitsu.kt$Kitsu$51 - MagicNumber:KitsuModels.kt$1000 - MagicNumber:KitsuModels.kt$3600 - MagicNumber:Komga.kt$Komga$37 - MagicNumber:Komga.kt$Komga$50 - MagicNumber:Komga.kt$Komga$51 - MagicNumber:LibraryScreenModel.kt$LibraryScreenModel$10 - MagicNumber:LibraryScreenModel.kt$LibraryScreenModel$25 - MagicNumber:LibraryScreenModel.kt$LibraryScreenModel$5 - MagicNumber:LibrarySortMode.kt$LibrarySort.Direction.Ascending$0b01000000 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.ChapterFetchDate$0b00011000 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.DateAdded$0b00011100 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.LastRead$0b00000100 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.LastUpdate$0b00001000 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.LatestChapter$0b00010100 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.TotalChapters$0b00010000 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.TrackerMean$0b000100000 - MagicNumber:LibrarySortMode.kt$LibrarySort.Type.UnreadCount$0b00001100 - MagicNumber:LibraryToolbar.kt$0.08f - MagicNumber:LibraryToolbar.kt$0.12f - MagicNumber:LibraryUpdateJob.kt$LibraryUpdateJob$5 - MagicNumber:LibraryUpdateJob.kt$LibraryUpdateJob.Companion$10 - MagicNumber:LibraryUpdateNotifier.kt$LibraryUpdateNotifier$40 - MagicNumber:MangaBottomActionMenu.kt$3 - MagicNumber:MangaBottomActionMenu.kt$4 - MagicNumber:MangaBottomActionMenu.kt$5 - MagicNumber:MangaBottomActionMenu.kt$6 - MagicNumber:MangaBottomActionMenu.kt$7 - MagicNumber:MangaCover.kt$MangaCover.Book$3f - MagicNumber:MangaInfoHeader.kt$0.2f - MagicNumber:MangaInfoHeader.kt$0.65f - MagicNumber:MangaScreenModel.kt$MangaScreenModel$10 - MagicNumber:MangaScreenModel.kt$MangaScreenModel$103 - MagicNumber:MangaScreenModel.kt$MangaScreenModel$25 - MagicNumber:MangaScreenModel.kt$MangaScreenModel$5 - MagicNumber:MangaUpdates.kt$MangaUpdates$146 - MagicNumber:MangaUpdates.kt$MangaUpdates$160 - MagicNumber:MangaUpdates.kt$MangaUpdates$173 - MagicNumber:MangaUpdatesApi.kt$MangaUpdatesApi$200 - MagicNumber:MetadataUpdateJob.kt$MetadataUpdateJob$5 - MagicNumber:Modifier.kt$0.16f - MagicNumber:Modifier.kt$0.22f - MagicNumber:MonetColorScheme.kt$MonetColorScheme.Companion$128 - MagicNumber:MyAnimeList.kt$MyAnimeList$162 - MagicNumber:MyAnimeList.kt$MyAnimeList$46 - MagicNumber:MyAnimeList.kt$MyAnimeList$81 - MagicNumber:MyAnimeListApi.kt$MyAnimeListApi$64 - MagicNumber:MyAnimeListInterceptor.kt$MyAnimeListInterceptor$401 - MagicNumber:MyAnimeListModels.kt$1000 - MagicNumber:NetworkHelper.kt$NetworkHelper$30 - MagicNumber:Page.kt$Page$100 - MagicNumber:PageIndicatorText.kt$235 - MagicNumber:PageIndicatorText.kt$45 - MagicNumber:PagerConfig.kt$PagerConfig$3 - MagicNumber:PagerConfig.kt$PagerConfig$4 - MagicNumber:PagerConfig.kt$PagerConfig$5 - MagicNumber:PagerPageHolder.kt$PagerPageHolder$16 - MagicNumber:PagerPageHolder.kt$PagerPageHolder$90f - MagicNumber:PagerViewer.kt$PagerViewer$5 - MagicNumber:PkceUtil.kt$PkceUtil$50 - MagicNumber:PullRefresh.kt$PullToRefreshStateImpl$4 - MagicNumber:ReaderActivity.kt$ReaderActivity$230 - MagicNumber:ReaderActivity.kt$ReaderActivity$242 - MagicNumber:ReaderActivity.kt$ReaderActivity.ReaderConfig$0.01f - MagicNumber:ReaderActivity.kt$ReaderActivity.ReaderConfig$100 - MagicNumber:ReaderActivity.kt$ReaderActivity.ReaderConfig$100f - MagicNumber:ReaderActivity.kt$ReaderActivity.ReaderConfig$255f - MagicNumber:ReaderActivity.kt$ReaderActivity.ReaderConfig$3 - MagicNumber:ReaderContentOverlay.kt$100f - MagicNumber:ReaderOrientation.kt$ReaderOrientation.FREE$0x00000008 - MagicNumber:ReaderOrientation.kt$ReaderOrientation.LANDSCAPE$0x00000018 - MagicNumber:ReaderOrientation.kt$ReaderOrientation.LOCKED_LANDSCAPE$0x00000028 - MagicNumber:ReaderOrientation.kt$ReaderOrientation.LOCKED_PORTRAIT$0x00000020 - MagicNumber:ReaderOrientation.kt$ReaderOrientation.PORTRAIT$0x00000010 - MagicNumber:ReaderOrientation.kt$ReaderOrientation.REVERSE_PORTRAIT$0x00000030 - MagicNumber:ReaderPageImageView.kt$ReaderPageImageView$180 - MagicNumber:ReaderPageImageView.kt$ReaderPageImageView$250 - MagicNumber:ReaderPageImageView.kt$ReaderPageImageView$500 - MagicNumber:ReaderPreferences.kt$ReaderPreferences$500 - MagicNumber:ReaderPreferences.kt$ReaderPreferences.ReaderHideThreshold.HIGH$13 - MagicNumber:ReaderPreferences.kt$ReaderPreferences.ReaderHideThreshold.HIGHEST$5 - MagicNumber:ReaderPreferences.kt$ReaderPreferences.ReaderHideThreshold.LOW$31 - MagicNumber:ReaderPreferences.kt$ReaderPreferences.ReaderHideThreshold.LOWEST$47 - MagicNumber:ReaderProgressIndicator.kt$ReaderProgressIndicator$100f - MagicNumber:ReaderSettingsDialog.kt$0.5f - MagicNumber:ReaderViewModel.kt$ReaderViewModel$0.25 - MagicNumber:ReadingMode.kt$ReadingMode.CONTINUOUS_VERTICAL$0x00000005 - MagicNumber:ReadingMode.kt$ReadingMode.VERTICAL$0x00000003 - MagicNumber:ReadingMode.kt$ReadingMode.WEBTOON$0x00000004 - MagicNumber:ReadingModePage.kt$100f - MagicNumber:ReadingModePage.kt$5 - MagicNumber:SaveImageNotifier.kt$SaveImageNotifier$1280 - MagicNumber:SaveImageNotifier.kt$SaveImageNotifier$720 - MagicNumber:Scaffold.kt$3 - MagicNumber:Scaffold.kt$4 - MagicNumber:Scaffold.kt$5 - MagicNumber:Scaffold.kt$6 - MagicNumber:Scaffold.kt$7 - MagicNumber:Scaffold.kt$8 - MagicNumber:Scaffold.kt$9 - MagicNumber:Scrollbar.kt$100 - MagicNumber:Scrollbar.kt$50 - MagicNumber:SecureActivityDelegate.kt$SecureActivityDelegate.Companion$60_000 - MagicNumber:SettingsDataScreen.kt$SettingsDataScreen$12 - MagicNumber:SettingsDataScreen.kt$SettingsDataScreen$168 - MagicNumber:SettingsDataScreen.kt$SettingsDataScreen$24 - MagicNumber:SettingsDataScreen.kt$SettingsDataScreen$48 - MagicNumber:SettingsDataScreen.kt$SettingsDataScreen$6 - MagicNumber:SettingsDownloadScreen.kt$SettingsDownloadScreen$10 - MagicNumber:SettingsDownloadScreen.kt$SettingsDownloadScreen$3 - MagicNumber:SettingsDownloadScreen.kt$SettingsDownloadScreen$4 - MagicNumber:SettingsDownloadScreen.kt$SettingsDownloadScreen$5 - MagicNumber:SettingsItems.kt$0.5f - MagicNumber:SettingsItems.kt$1.5f - MagicNumber:SettingsLibraryScreen.kt$SettingsLibraryScreen$12 - MagicNumber:SettingsLibraryScreen.kt$SettingsLibraryScreen$168 - MagicNumber:SettingsLibraryScreen.kt$SettingsLibraryScreen$24 - MagicNumber:SettingsLibraryScreen.kt$SettingsLibraryScreen$48 - MagicNumber:SettingsLibraryScreen.kt$SettingsLibraryScreen$72 - MagicNumber:SettingsMainScreen.kt$SettingsMainScreen$0.02f - MagicNumber:SettingsMainScreen.kt$SettingsMainScreen$0.05f - MagicNumber:SettingsMainScreen.kt$SettingsMainScreen$3 - MagicNumber:SettingsReaderScreen.kt$SettingsReaderScreen$100f - MagicNumber:SettingsReaderScreen.kt$SettingsReaderScreen$250 - MagicNumber:SettingsReaderScreen.kt$SettingsReaderScreen$3 - MagicNumber:SettingsReaderScreen.kt$SettingsReaderScreen$500 - MagicNumber:SettingsSearchScreen.kt$10 - MagicNumber:Shikimori.kt$Shikimori$40 - MagicNumber:ShikimoriModels.kt$1000 - MagicNumber:ShikimoriModels.kt$3600 - MagicNumber:Surface.kt$100f - MagicNumber:Surface.kt$4.5f - MagicNumber:Suwayomi.kt$Suwayomi$255 - MagicNumber:Suwayomi.kt$Suwayomi$35 - MagicNumber:Tabs.kt$0.08f - MagicNumber:Tabs.kt$0.12f - MagicNumber:TimeUtils.kt$4 - MagicNumber:TrackInfoDialog.kt$TrackChapterSelectorScreen.Model$10000 - MagicNumber:TrackInfoDialogSelector.kt$3L - MagicNumber:TrackInfoDialogSelector.kt$4L - MagicNumber:TrackInfoDialogSelector.kt$5L - MagicNumber:TrackInfoDialogSelector.kt$6L - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$10 - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$100 - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$1000L - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$100L - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$30 - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$365 - MagicNumber:TrackerSearchPreviewProvider.kt$TrackerSearchPreviewProvider$40 - MagicNumber:TrackingPreferenceWidget.kt$0xFF4CAF50 - MagicNumber:UniFileTempFileManager.kt$UniFileTempFileManager$3 - MagicNumber:UniFileTempFileManager.kt$UniFileTempFileManager$8192 - MagicNumber:UpdatesScreenModel.kt$UpdatesScreenModel$3 - MagicNumber:VerticalFastScroller.kt$100 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.LEFT$0x11 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.LEFT$0x28 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.LEFT$0x7D - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.LEFT$0xCC - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.MENU$0x81 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.MENU$0x8D - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.MENU$0x95 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.MENU$0xCC - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.NEXT$0x84 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.NEXT$0x96 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.NEXT$0xCC - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.NEXT$0xE2 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.PREV$0x33 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.PREV$0x77 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.PREV$0xCC - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.PREV$0xFF - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.RIGHT$0xA6 - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.RIGHT$0xCC - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.RIGHT$0xCF - MagicNumber:ViewerNavigation.kt$ViewerNavigation.NavigationRegion.RIGHT$0xD5 - MagicNumber:WebViewInterceptor.kt$WebViewInterceptor$30 - MagicNumber:WebtoonConfig.kt$WebtoonConfig$3 - MagicNumber:WebtoonConfig.kt$WebtoonConfig$4 - MagicNumber:WebtoonConfig.kt$WebtoonConfig$5 - MagicNumber:WebtoonPageHolder.kt$WebtoonPageHolder$0.8 - MagicNumber:WebtoonPageHolder.kt$WebtoonPageHolder$100f - MagicNumber:WebtoonPageHolder.kt$WebtoonPageHolder$16 - MagicNumber:WebtoonPageHolder.kt$WebtoonPageHolder$90f - MagicNumber:WebtoonRecyclerView.kt$WebtoonRecyclerView$0.4f - MagicNumber:WebtoonRecyclerView.kt$WebtoonRecyclerView$400 - MagicNumber:WebtoonRecyclerView.kt$WebtoonRecyclerView.Detector$0.5f - MagicNumber:WebtoonViewer.kt$WebtoonViewer$3 - MagicNumber:WebtoonViewer.kt$WebtoonViewer$5 - MagicNumber:WheelPicker.kt$0.2f - MagicNumber:WheelPicker.kt$1.2f - MagicNumber:WorkManagerExtensions.kt$500 - MatchingDeclarationName:ChapterDownloadIndicator.kt$ChapterDownloadAction - MatchingDeclarationName:CommonMangaItem.kt$CommonMangaItemDefaults - MatchingDeclarationName:EmptyScreen.kt$EmptyScreenAction - MatchingDeclarationName:LibrarySortMode.kt$LibrarySort : FlagWithMask - MatchingDeclarationName:MyAnimeListModels.kt$OAuth - MatchingDeclarationName:NetworkStateTracker.kt$NetworkState - MatchingDeclarationName:SettingsItems.kt$SettingsItemsPaddings - MatchingDeclarationName:ShikimoriModels.kt$OAuth - MatchingDeclarationName:TabbedDialog.kt$TabbedDialogPaddings - MaxLineLength:CoroutinesExtensions.kt$* - MaxLineLength:Downloader.kt$Downloader$. - MaxLineLength:LibraryUpdateJob.kt$LibraryUpdateJob$// failedUpdates will already have the source, don't need to copy it into the message - MaxLineLength:MainActivity.kt$MainActivity$// or the Google-specific search intent (triggered by saying or typing "search *query* on *Tachiyomi*" in Google Search/Google Assistant) - MaxLineLength:PreferenceScreen.kt$* - MaxLineLength:Scaffold.kt$* - MaxLineLength:SpecificHostRateLimitInterceptor.kt$* - MaxLineLength:WebViewUtil.kt$WebViewUtil$* - MemberNameEqualsClassName:ExtensionInstaller.kt$ExtensionInstaller$private val extensionInstaller = Injekt.get<BasePreferences>().extensionInstaller() - ModifierClickableOrder:ScanlatorFilterDialog.kt$clickable { if (isExcluded) { mutableExcludedScanlators.remove(scanlator) } else { mutableExcludedScanlators.add(scanlator) } } - ModifierMissing:AppBar.kt$AppBarActions - ModifierMissing:AppThemePreferenceWidget.kt$AppThemePreviewItem - ModifierMissing:BottomReaderBar.kt$BottomReaderBar - ModifierMissing:BrowseSourceComfortableGrid.kt$BrowseSourceComfortableGrid - ModifierMissing:BrowseSourceCompactGrid.kt$BrowseSourceCompactGrid - ModifierMissing:BrowseSourceList.kt$BrowseSourceList - ModifierMissing:BrowseSourceScreen.kt$BrowseSourceContent - ModifierMissing:BrowseSourceToolbar.kt$BrowseSourceToolbar - ModifierMissing:CategoryScreen.kt$CategoryScreen - ModifierMissing:ChapterNavigator.kt$ChapterNavigator - ModifierMissing:ChapterSettingsDialog.kt$ChapterSettingsDialog - ModifierMissing:ChapterSettingsDialog.kt$ScanlatorFilterItem - ModifierMissing:CollapsibleBox.kt$CollapsibleBox - ModifierMissing:CommonMangaItem.kt$MangaComfortableGridItem - ModifierMissing:CommonMangaItem.kt$MangaCompactGridItem - ModifierMissing:CommonMangaItem.kt$MangaListItem - ModifierMissing:CrashScreen.kt$CrashScreen - ModifierMissing:ExtensionDetailsScreen.kt$ExtensionDetailsScreen - ModifierMissing:ExtensionFilterScreen.kt$ExtensionFilterScreen - ModifierMissing:ExtensionReposScreen.kt$ExtensionReposScreen - ModifierMissing:ExtensionsScreen.kt$ExtensionScreen - ModifierMissing:GlobalSearchCardRow.kt$GlobalSearchCardRow - ModifierMissing:GlobalSearchResultItems.kt$GlobalSearchErrorResultItem - ModifierMissing:GlobalSearchResultItems.kt$GlobalSearchLoadingResultItem - ModifierMissing:GlobalSearchResultItems.kt$GlobalSearchResultItem - ModifierMissing:GlobalSearchScreen.kt$GlobalSearchScreen - ModifierMissing:GlobalSearchToolbar.kt$GlobalSearchToolbar - ModifierMissing:HistoryScreen.kt$HistoryScreen - ModifierMissing:HomeScreen.kt$HomeScreen$NavigationRailItem - ModifierMissing:InfoScreen.kt$InfoScreen - ModifierMissing:LibraryContent.kt$LibraryContent - ModifierMissing:LibraryPager.kt$LibraryPager - ModifierMissing:LibrarySettingsDialog.kt$LibrarySettingsDialog - ModifierMissing:LogoHeader.kt$LogoHeader - ModifierMissing:MangaCoverDialog.kt$MangaCoverDialog - ModifierMissing:MangaScreen.kt$MangaScreenLargeImpl - ModifierMissing:MigrateMangaScreen.kt$MigrateMangaScreen - ModifierMissing:MigrateSearchScreen.kt$MigrateSearchScreen - ModifierMissing:MigrateSourceScreen.kt$MigrateSourceScreen - ModifierMissing:ModeSelectionDialog.kt$ModeSelectionDialog - ModifierMissing:MoreScreen.kt$MoreScreen - ModifierMissing:NewUpdateScreen.kt$NewUpdateScreen - ModifierMissing:OnboardingScreen.kt$OnboardingScreen - ModifierMissing:PageIndicatorText.kt$PageIndicatorText - ModifierMissing:PreferenceGroupHeader.kt$PreferenceGroupHeader - ModifierMissing:PreferenceScaffold.kt$PreferenceScaffold - ModifierMissing:ReaderAppBars.kt$ReaderAppBars - ModifierMissing:ReaderPageActionsDialog.kt$ReaderPageActionsDialog - ModifierMissing:ReaderSettingsDialog.kt$ReaderSettingsDialog - ModifierMissing:SectionCard.kt$SectionCard - ModifierMissing:SettingsItems.kt$CheckboxItem - ModifierMissing:SettingsItems.kt$HeadingItem - ModifierMissing:SettingsItems.kt$IconItem - ModifierMissing:SettingsItems.kt$RadioItem - ModifierMissing:SettingsItems.kt$SelectItem - ModifierMissing:SettingsItems.kt$SettingsChipRow - ModifierMissing:SettingsItems.kt$SettingsIconGrid - ModifierMissing:SettingsItems.kt$SliderItem - ModifierMissing:SettingsItems.kt$SortItem - ModifierMissing:SettingsItems.kt$TextItem - ModifierMissing:SettingsItems.kt$TriStateItem - ModifierMissing:SettingsMainScreen.kt$SettingsMainScreen$Content - ModifierMissing:SourceFilterDialog.kt$SourceFilterDialog - ModifierMissing:SourcesFilterScreen.kt$SourcesFilterScreen - ModifierMissing:SourcesScreen.kt$SourcesScreen - ModifierMissing:StatsScreenContent.kt$StatsScreenContent - ModifierMissing:TabbedScreen.kt$TabbedScreen - ModifierMissing:Tabs.kt$TabText - ModifierMissing:TrackInfoDialogHome.kt$TrackInfoDialogHome - ModifierMissing:TrackInfoDialogSelector.kt$TrackChapterSelector - ModifierMissing:TrackInfoDialogSelector.kt$TrackDateSelector - ModifierMissing:TrackInfoDialogSelector.kt$TrackScoreSelector - ModifierMissing:TrackInfoDialogSelector.kt$TrackStatusSelector - ModifierMissing:TrackLogoIcon.kt$TrackLogoIcon - ModifierMissing:TrackerSearch.kt$TrackerSearch - ModifierMissing:UpdatesScreen.kt$UpdateScreen - ModifierMissing:WebViewScreenContent.kt$WebViewScreenContent - ModifierMissing:WheelPicker.kt$WheelPickerDefaults$Background - ModifierMissing:WheelPicker.kt$WheelPickerDefaults$Item - ModifierNotUsedAtRoot:DropdownMenu.kt$modifier = modifier - ModifierNotUsedAtRoot:MangaChapterListItem.kt$modifier = modifier .selectedBackground(selected) .combinedClickable( onClick = onClick, onLongClick = onLongClick, ) .padding(start = 16.dp, top = 12.dp, end = 8.dp, bottom = 12.dp) - ModifierNotUsedAtRoot:TrackingPreferenceWidget.kt$modifier = modifier .clickable(enabled = onClick != null, onClick = { onClick?.invoke() }) .fillMaxWidth() .padding(horizontal = PrefsHorizontalPadding, vertical = 8.dp) - NestedBlockDepth:Anilist.kt$Anilist$override suspend fun update(track: Track, didReadChapter: Boolean): Track - NestedBlockDepth:AppLanguageScreen.kt$AppLanguageScreen$private fun getLangs(context: Context): ImmutableList<Language> - NestedBlockDepth:BackupRestorer.kt$BackupRestorer$private fun writeErrorLog(): File - NestedBlockDepth:BrowseSourceScreenModel.kt$BrowseSourceScreenModel$fun searchGenre(genreName: String) - NestedBlockDepth:ChapterLoader.kt$ChapterLoader$private fun getPageLoader(chapter: ReaderChapter): PageLoader - NestedBlockDepth:CloseableExtensions.kt$inline fun <T : Closeable?> Array<T>.use(block: () -> Unit) - NestedBlockDepth:ContextExtensions.kt$fun Context.openInBrowser(uri: Uri, forceDefaultBrowser: Boolean = false) - NestedBlockDepth:DownloadQueueScreenModel.kt$DownloadQueueScreenModel.<no name provided>$override fun onMenuItemClick(position: Int, menuItem: MenuItem) - NestedBlockDepth:Downloader.kt$Downloader$private fun archiveChapter( mangaDir: UniFile, dirname: String, tmpDir: UniFile, ) - NestedBlockDepth:ExtensionInstaller.kt$ExtensionInstaller$fun installApk(downloadId: Long, uri: Uri) - NestedBlockDepth:ImageUtil.kt$ImageUtil$fun chooseBackground(context: Context, imageStream: InputStream): Drawable - NestedBlockDepth:KavitaApi.kt$KavitaApi$fun getNewToken(apiUrl: String, apiKey: String): String? - NestedBlockDepth:KavitaApi.kt$KavitaApi$private fun getLatestChapterRead(url: String): Double - NestedBlockDepth:Kitsu.kt$Kitsu$override suspend fun update(track: Track, didReadChapter: Boolean): Track - NestedBlockDepth:LibraryUpdateJob.kt$LibraryUpdateJob$private fun writeErrorFile(errors: List<Pair<Manga, String?>>): File - NestedBlockDepth:LocalSource.kt$LocalSource$private fun copyComicInfoFileFromArchive(chapterArchives: List<UniFile>, folderPath: String?): File? - NestedBlockDepth:LocalSource.kt$LocalSource$private fun updateCover(chapter: SChapter, manga: SManga): UniFile? - NestedBlockDepth:MyAnimeList.kt$MyAnimeList$override suspend fun update(track: Track, didReadChapter: Boolean): Track - NestedBlockDepth:SyncChaptersWithSource.kt$SyncChaptersWithSource$suspend fun await( rawSourceChapters: List<SChapter>, manga: Manga, source: Source, manualFetch: Boolean = false, fetchWindow: Pair<Long, Long> = Pair(0, 0), ): List<Chapter> - NestedBlockDepth:UniFileTempFileManager.kt$UniFileTempFileManager$fun createTempFile(file: UniFile): File - NestedBlockDepth:WebtoonRecyclerView.kt$WebtoonRecyclerView.Detector$override fun onTouchEvent(ev: MotionEvent): Boolean - NewLineAtEndOfFile:Commands.kt$.Commands.kt - NoConsecutiveBlankLines:LocalesConfigPlugin.kt$ - PreviewPublic:Scrollbar.kt$LazyListHorizontalScrollbarPreview - PreviewPublic:Scrollbar.kt$LazyListScrollbarPreview - RethrowCaughtException:LocalSource.kt$LocalSource$throw e - ReturnCount:AndroidDatabaseHandler.kt$AndroidDatabaseHandler$private suspend fun <T> dispatch(inTransaction: Boolean, block: suspend Database.() -> T): T - ReturnCount:AndroidSourceManager.kt$AndroidSourceManager$private suspend fun createStubSource(id: Long): StubSource - ReturnCount:BackupCreateJob.kt$BackupCreateJob$override suspend fun doWork(): Result - ReturnCount:ChapterRecognition.kt$ChapterRecognition$fun parseChapterNumber( mangaTitle: String, chapterName: String, chapterNumber: Double? = null, ): Double - ReturnCount:ChapterRecognition.kt$ChapterRecognition$private fun checkForDecimal(decimal: String?, alpha: String?): Double - ReturnCount:Download.kt$Download.Companion$suspend fun fromChapterId( chapterId: Long, getChapter: GetChapter = Injekt.get(), getManga: GetManga = Injekt.get(), sourceManager: SourceManager = Injekt.get(), ): Download? - ReturnCount:DownloadCache.kt$DownloadCache$fun isChapterDownloaded( chapterName: String, chapterScanlator: String?, mangaTitle: String, sourceId: Long, skipCache: Boolean, ): Boolean - ReturnCount:DownloadManager.kt$DownloadManager$fun renameSource(oldSource: Source, newSource: Source) - ReturnCount:Downloader.kt$Downloader$private fun isDownloadSuccessful( download: Download, tmpDir: UniFile, ): Boolean - ReturnCount:ExtensionInstallReceiver.kt$ExtensionInstallReceiver$override fun onReceive(context: Context, intent: Intent?) - ReturnCount:ExtensionInstallService.kt$ExtensionInstallService$override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int - ReturnCount:ExtensionInstaller.kt$ExtensionInstaller.DownloadCompletionReceiver$override fun onReceive(context: Context, intent: Intent?) - ReturnCount:ExtensionInstallerPreference.kt$ExtensionInstallerPreference$private fun check(value: ExtensionInstaller): ExtensionInstaller - ReturnCount:ExtensionLoader.kt$ExtensionLoader$fun installPrivateExtensionFile(context: Context, file: File): Boolean - ReturnCount:ExtensionLoader.kt$ExtensionLoader$private fun loadExtension(context: Context, extensionInfo: ExtensionInfo): LoadResult - ReturnCount:ExtensionLoader.kt$ExtensionLoader$private fun selectExtensionPackage(shared: ExtensionInfo?, private: ExtensionInfo?): ExtensionInfo? - ReturnCount:HttpPageLoader.kt$HttpPageLoader$private fun preloadNextPages(currentPage: ReaderPage, amount: Int): List<PriorityPage> - ReturnCount:ImageUtil.kt$ImageUtil$fun chooseBackground(context: Context, imageStream: InputStream): Drawable - ReturnCount:ImageUtil.kt$ImageUtil$fun isAnimatedAndSupported(stream: InputStream): Boolean - ReturnCount:ImageUtil.kt$ImageUtil$fun splitTallImage(tmpDir: UniFile, imageFile: UniFile, filenamePrefix: String): Boolean - ReturnCount:KavitaApi.kt$KavitaApi$fun getNewToken(apiUrl: String, apiKey: String): String? - ReturnCount:KavitaApi.kt$KavitaApi$private fun getLatestChapterRead(url: String): Double - ReturnCount:KitsuDateHelper.kt$KitsuDateHelper$fun parse(dateString: String?): Long - ReturnCount:LibraryUpdateJob.kt$LibraryUpdateJob$override suspend fun doWork(): Result - ReturnCount:LocalSource.kt$LocalSource$private fun copyComicInfoFileFromArchive(chapterArchives: List<UniFile>, folderPath: String?): File? - ReturnCount:MainActivity.kt$MainActivity$private fun handleIntentAction(intent: Intent, navigator: Navigator): Boolean - ReturnCount:MangaCoverFetcher.kt$MangaCoverFetcher$private suspend fun httpLoader(): FetchResult - ReturnCount:MangaExtensions.kt$fun Manga.prepUpdateCover(coverCache: CoverCache, remoteManga: SManga, refreshSameUrl: Boolean): Manga - ReturnCount:MangaExtensions.kt$fun Manga.removeCovers(coverCache: CoverCache = Injekt.get()): Manga - ReturnCount:MangaExtensions.kt$fun Manga.shouldDownloadNewChapters(dbCategories: List<Long>, preferences: DownloadPreferences): Boolean - ReturnCount:MangaScreen.kt$MangaScreen$private fun getMangaUrl(manga_: Manga?, source_: Source?): String? - ReturnCount:MissingChapters.kt$fun List<Double>.missingChaptersCount(): Int - ReturnCount:MissingChapters.kt$fun calculateChapterGap(higherChapter: Chapter?, lowerChapter: Chapter?): Int - ReturnCount:MyAnimeList.kt$MyAnimeList$override suspend fun search(query: String): List<TrackSearch> - ReturnCount:NetworkExtensions.kt$fun Context.isConnectedToWifi(): Boolean - ReturnCount:NetworkExtensions.kt$fun Context.isOnline(): Boolean - ReturnCount:PagerPageHolder.kt$PagerPageHolder$private fun process(page: ReaderPage, imageStream: BufferedInputStream): InputStream - ReturnCount:PagerViewer.kt$PagerViewer$override fun handleKeyEvent(event: KeyEvent): Boolean - ReturnCount:PagerViewer.kt$PagerViewer$private fun checkAllowPreload(page: ReaderPage?): Boolean - ReturnCount:PagerViewerAdapter.kt$PagerViewerAdapter$fun onPageSplit(currentPage: Any?, newPage: InsertPage) - ReturnCount:ReaderActivity.kt$ReaderActivity$override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean - ReturnCount:ReaderActivity.kt$ReaderActivity$private fun moveToPageIndex(index: Int) - ReturnCount:ReaderViewModel.kt$ReaderViewModel$fun getChapterUrl(): String? - ReturnCount:ReaderViewModel.kt$ReaderViewModel$fun setAsCover() - ReturnCount:ReaderViewModel.kt$ReaderViewModel$private fun downloadNextChapters() - ReturnCount:ReaderViewModel.kt$ReaderViewModel$private fun updateTrackChapterRead(readerChapter: ReaderChapter) - ReturnCount:ReaderViewModel.kt$ReaderViewModel$suspend fun preload(chapter: ReaderChapter) - ReturnCount:ViewExtensions.kt$fun View?.isVisibleOnScreen(): Boolean - ReturnCount:WebViewInterceptor.kt$WebViewInterceptor$override fun intercept(chain: Interceptor.Chain): Response - ReturnCount:WebViewInterceptor.kt$private fun isRequestHeaderSafe(_name: String, _value: String): Boolean - ReturnCount:WebtoonFrame.kt$WebtoonFrame$override fun dispatchTouchEvent(ev: MotionEvent): Boolean - ReturnCount:WebtoonPageHolder.kt$WebtoonPageHolder$private fun process(imageStream: BufferedInputStream): InputStream - ReturnCount:WebtoonRecyclerView.kt$WebtoonRecyclerView.Detector$override fun onTouchEvent(ev: MotionEvent): Boolean - ReturnCount:WebtoonViewer.kt$WebtoonViewer$override fun handleKeyEvent(event: KeyEvent): Boolean - ReturnCount:WebtoonViewer.kt$WebtoonViewer$private fun checkAllowPreload(page: ReaderPage?): Boolean - SerialVersionUIDInSerializableClass:Category.kt$Category : Serializable - SerialVersionUIDInSerializableClass:Manga.kt$Manga : Serializable - SpreadOperator:ChapterRepositoryImpl.kt$ChapterRepositoryImpl$(*chapterUpdates.toTypedArray()) - SpreadOperator:ChapterSanitizer.kt$ChapterSanitizer$(*CHAPTER_TRIM_CHARS) - SpreadOperator:LibraryScreenModel.kt$LibraryScreenModel$(*prefFlows) - SpreadOperator:MangaRepositoryImpl.kt$MangaRepositoryImpl$(*mangaUpdates.toTypedArray()) - SpreadOperator:SourcesScreenModel.kt$SourcesScreenModel$( SourceUiModel.Header(it.key), *it.value.map { source -> SourceUiModel.Item(source) }.toTypedArray(), ) - SpreadOperator:TrackRepositoryImpl.kt$TrackRepositoryImpl$(*tracks.toTypedArray()) - SwallowedException:AboutScreen.kt$AboutScreen$e: Exception - SwallowedException:AndroidPreference.kt$AndroidPreference$e: ClassCastException - SwallowedException:AndroidPreference.kt$AndroidPreference.Object$e: Exception - SwallowedException:Anilist.kt$Anilist$e: ClassCastException - SwallowedException:Anilist.kt$Anilist$e: Exception - SwallowedException:Anilist.kt$Anilist$e: Throwable - SwallowedException:AnilistModels.kt$ALManga$e: Exception - SwallowedException:BackupRestorer.kt$BackupRestorer$e: Exception - SwallowedException:Bangumi.kt$Bangumi$e: Exception - SwallowedException:Bangumi.kt$Bangumi$e: Throwable - SwallowedException:BrowseIcons.kt$e: Exception - SwallowedException:ChapterCache.kt$ChapterCache$e: IOException - SwallowedException:ChapterLoader.kt$ChapterLoader$e: UnsupportedRarV5Exception - SwallowedException:ContextExtensions.kt$e: Exception - SwallowedException:ContextExtensions.kt$e: PackageManager.NameNotFoundException - SwallowedException:CrashLogUtil.kt$CrashLogUtil$e: Throwable - SwallowedException:CreateBackupScreen.kt$CreateBackupScreen$e: ActivityNotFoundException - SwallowedException:DeviceUtil.kt$DeviceUtil$e: Exception - SwallowedException:DownloadPendingDeleter.kt$DownloadPendingDeleter$e: Exception - SwallowedException:DownloadStore.kt$DownloadStore$e: Exception - SwallowedException:Downloader.kt$Downloader$e: Throwable - SwallowedException:ExtensionLoader.kt$ExtensionLoader$error: PackageManager.NameNotFoundException - SwallowedException:GetChapterByUrlAndMangaId.kt$GetChapterByUrlAndMangaId$e: Exception - SwallowedException:HttpSource.kt$HttpSource$e: URISyntaxException - SwallowedException:ImageUtil.kt$ImageUtil$e: Exception - SwallowedException:Kavita.kt$Kavita$e: Exception - SwallowedException:KavitaApi.kt$KavitaApi$e: SocketTimeoutException - SwallowedException:Kitsu.kt$Kitsu$e: Exception - SwallowedException:KitsuModels.kt$KitsuSearchManga$e: IllegalArgumentException - SwallowedException:Komga.kt$Komga$e: Exception - SwallowedException:LibrarySortMode.kt$LibrarySort.Companion$e: Exception - SwallowedException:LocalSource.kt$LocalSource$e: Format.UnknownFormatException - SwallowedException:MangaScreen.kt$MangaScreen$e: Exception - SwallowedException:MangaUpdates.kt$MangaUpdates$e: Exception - SwallowedException:MangaUpdatesApi.kt$MangaUpdatesApi$e: Exception - SwallowedException:MetadataUpdateJob.kt$MetadataUpdateJob$e: Exception - SwallowedException:MyAnimeList.kt$MyAnimeList$e: Exception - SwallowedException:MyAnimeList.kt$MyAnimeList$e: Throwable - SwallowedException:MyAnimeListApi.kt$MyAnimeListApi$e: Exception - SwallowedException:OkHttpExtensions.kt$ex: Throwable - SwallowedException:Pager.kt$Pager$e: IllegalArgumentException - SwallowedException:Pager.kt$Pager$e: IndexOutOfBoundsException - SwallowedException:Pager.kt$Pager$e: NullPointerException - SwallowedException:PreferenceStore.kt$e: IllegalArgumentException - SwallowedException:RarPageLoader.kt$RarPageLoader$e: Exception - SwallowedException:ReaderActivity.kt$ReaderActivity$e: ArrayIndexOutOfBoundsException - SwallowedException:ReaderViewModel.kt$ReaderViewModel$e: Exception - SwallowedException:SettingsAdvancedScreen.kt$SettingsAdvancedScreen$e: ActivityNotFoundException - SwallowedException:SettingsDataScreen.kt$SettingsDataScreen$e: ActivityNotFoundException - SwallowedException:Shikimori.kt$Shikimori$e: Exception - SwallowedException:Shikimori.kt$Shikimori$e: Throwable - SwallowedException:StorageStep.kt$StorageStep$e: ActivityNotFoundException - SwallowedException:Suwayomi.kt$Suwayomi$e: Exception - SwallowedException:TrackInfoDialog.kt$TrackInfoDialogHomeScreen.Model$e: Exception - ThrowingExceptionsWithoutMessageOrCause:MangaScreenModel.kt$MangaScreenModel$IllegalStateException() - ThrowingExceptionsWithoutMessageOrCause:OkHttpExtensions.kt$Exception() - ThrowingExceptionsWithoutMessageOrCause:PackageInstallerInstaller.kt$PackageInstallerInstaller$IllegalStateException() - ThrowingExceptionsWithoutMessageOrCause:ShizukuInstaller.kt$ShizukuInstaller$IllegalStateException() - ThrowingExceptionsWithoutMessageOrCause:TrackInfoDialog.kt$TrackInfoDialogHomeScreen.Model$Exception() - ThrowsCount:BackupCreator.kt$BackupCreator$suspend fun backup(uri: Uri, options: BackupOptions): String - ThrowsCount:FileExtensions.kt$fun File.copyAndSetReadOnlyTo(target: File, overwrite: Boolean = false, bufferSize: Int = DEFAULT_BUFFER_SIZE): File - ThrowsCount:KavitaApi.kt$KavitaApi$fun getNewToken(apiUrl: String, apiKey: String): String? - ThrowsCount:LocalSource.kt$LocalSource$fun getFormat(chapter: SChapter): Format - TooGenericExceptionCaught:AboutScreen.kt$AboutScreen$e: Exception - TooGenericExceptionCaught:AddTracks.kt$AddTracks$e: Exception - TooGenericExceptionCaught:AndroidPreference.kt$AndroidPreference.Object$e: Exception - TooGenericExceptionCaught:Anilist.kt$Anilist$e: Exception - TooGenericExceptionCaught:Anilist.kt$Anilist$e: Throwable - TooGenericExceptionCaught:AnilistModels.kt$ALManga$e: Exception - TooGenericExceptionCaught:App.kt$App$e: Exception - TooGenericExceptionCaught:AppUpdateDownloadJob.kt$AppUpdateDownloadJob$e: Exception - TooGenericExceptionCaught:BackupCreateJob.kt$BackupCreateJob$e: Exception - TooGenericExceptionCaught:BackupCreator.kt$BackupCreator$e: Exception - TooGenericExceptionCaught:BackupFileValidator.kt$BackupFileValidator$e: Exception - TooGenericExceptionCaught:BackupRestoreJob.kt$BackupRestoreJob$e: Exception - TooGenericExceptionCaught:BackupRestorer.kt$BackupRestorer$e: Exception - TooGenericExceptionCaught:Bangumi.kt$Bangumi$e: Exception - TooGenericExceptionCaught:Bangumi.kt$Bangumi$e: Throwable - TooGenericExceptionCaught:BaseTracker.kt$BaseTracker$e: Exception - TooGenericExceptionCaught:BaseTracker.kt$BaseTracker$e: Throwable - TooGenericExceptionCaught:BrowseIcons.kt$e: Exception - TooGenericExceptionCaught:ChapterCache.kt$ChapterCache$e: Exception - TooGenericExceptionCaught:ChapterLoader.kt$ChapterLoader$e: Throwable - TooGenericExceptionCaught:ChapterRepositoryImpl.kt$ChapterRepositoryImpl$e: Exception - TooGenericExceptionCaught:CloseableExtensions.kt$closeException: Throwable - TooGenericExceptionCaught:CloseableExtensions.kt$e: Throwable - TooGenericExceptionCaught:CloudflareInterceptor.kt$CloudflareInterceptor$e: Exception - TooGenericExceptionCaught:ContextExtensions.kt$e: Exception - TooGenericExceptionCaught:ContextExtensions.kt$e: Throwable - TooGenericExceptionCaught:CrashLogUtil.kt$CrashLogUtil$e: Throwable - TooGenericExceptionCaught:CreateCategoryWithName.kt$CreateCategoryWithName$e: Exception - TooGenericExceptionCaught:DeleteCategory.kt$DeleteCategory$e: Exception - TooGenericExceptionCaught:DeleteTrack.kt$DeleteTrack$e: Exception - TooGenericExceptionCaught:DeviceUtil.kt$DeviceUtil$e: Exception - TooGenericExceptionCaught:DownloadCache.kt$DownloadCache$e: Throwable - TooGenericExceptionCaught:DownloadPendingDeleter.kt$DownloadPendingDeleter$e: Exception - TooGenericExceptionCaught:DownloadProvider.kt$DownloadProvider$e: Throwable - TooGenericExceptionCaught:DownloadStore.kt$DownloadStore$e: Exception - TooGenericExceptionCaught:Downloader.kt$Downloader$e: Exception - TooGenericExceptionCaught:Downloader.kt$Downloader$e: Throwable - TooGenericExceptionCaught:Downloader.kt$Downloader$error: Throwable - TooGenericExceptionCaught:ExtensionApi.kt$ExtensionApi$e: Throwable - TooGenericExceptionCaught:ExtensionDetailsScreenModel.kt$ExtensionDetailsScreenModel$e: Exception - TooGenericExceptionCaught:ExtensionInstallActivity.kt$ExtensionInstallActivity$error: Exception - TooGenericExceptionCaught:ExtensionInstaller.kt$ExtensionInstaller$e: Exception - TooGenericExceptionCaught:ExtensionLoader.kt$ExtensionLoader$e: Exception - TooGenericExceptionCaught:ExtensionLoader.kt$ExtensionLoader$e: Throwable - TooGenericExceptionCaught:ExtensionManager.kt$ExtensionManager$e: Exception - TooGenericExceptionCaught:GetChapter.kt$GetChapter$e: Exception - TooGenericExceptionCaught:GetChapterByUrlAndMangaId.kt$GetChapterByUrlAndMangaId$e: Exception - TooGenericExceptionCaught:GetChaptersByMangaId.kt$GetChaptersByMangaId$e: Exception - TooGenericExceptionCaught:GetManga.kt$GetManga$e: Exception - TooGenericExceptionCaught:GetTracks.kt$GetTracks$e: Exception - TooGenericExceptionCaught:GlobalExceptionHandler.kt$GlobalExceptionHandler.Companion$e: Exception - TooGenericExceptionCaught:HistoryRepositoryImpl.kt$HistoryRepositoryImpl$e: Exception - TooGenericExceptionCaught:HttpPageLoader.kt$HttpPageLoader$e: Throwable - TooGenericExceptionCaught:ImageSaver.kt$ImageSaver$e: Exception - TooGenericExceptionCaught:ImageUtil.kt$ImageUtil$e: Exception - TooGenericExceptionCaught:InsertTrack.kt$InsertTrack$e: Exception - TooGenericExceptionCaught:Kavita.kt$Kavita$e: Exception - TooGenericExceptionCaught:KavitaApi.kt$KavitaApi$e: Exception - TooGenericExceptionCaught:Kitsu.kt$Kitsu$e: Exception - TooGenericExceptionCaught:Komga.kt$Komga$e: Exception - TooGenericExceptionCaught:KomgaApi.kt$KomgaApi$e: Exception - TooGenericExceptionCaught:LibrarySortMode.kt$LibrarySort.Companion$e: Exception - TooGenericExceptionCaught:LibraryUpdateJob.kt$LibraryUpdateJob$e: Exception - TooGenericExceptionCaught:LibraryUpdateJob.kt$LibraryUpdateJob$e: Throwable - TooGenericExceptionCaught:LocalSource.kt$LocalSource$e: Exception - TooGenericExceptionCaught:LocalSource.kt$LocalSource$e: Throwable - TooGenericExceptionCaught:MainActivity.kt$MainActivity$e: Exception - TooGenericExceptionCaught:MangaCoverFetcher.kt$MangaCoverFetcher$e: Exception - TooGenericExceptionCaught:MangaCoverScreenModel.kt$MangaCoverScreenModel$e: Exception - TooGenericExceptionCaught:MangaCoverScreenModel.kt$MangaCoverScreenModel$e: Throwable - TooGenericExceptionCaught:MangaRepositoryImpl.kt$MangaRepositoryImpl$e: Exception - TooGenericExceptionCaught:MangaScreen.kt$MangaScreen$e: Exception - TooGenericExceptionCaught:MangaScreenModel.kt$MangaScreenModel$e: Throwable - TooGenericExceptionCaught:MangaUpdates.kt$MangaUpdates$e: Exception - TooGenericExceptionCaught:MangaUpdatesApi.kt$MangaUpdatesApi$e: Exception - TooGenericExceptionCaught:MetadataUpdateJob.kt$MetadataUpdateJob$e: Exception - TooGenericExceptionCaught:MetadataUpdateJob.kt$MetadataUpdateJob$e: Throwable - TooGenericExceptionCaught:MyAnimeList.kt$MyAnimeList$e: Exception - TooGenericExceptionCaught:MyAnimeList.kt$MyAnimeList$e: Throwable - TooGenericExceptionCaught:MyAnimeListApi.kt$MyAnimeListApi$e: Exception - TooGenericExceptionCaught:OkHttpExtensions.kt$<no name provided>$e: Exception - TooGenericExceptionCaught:OkHttpExtensions.kt$ex: Throwable - TooGenericExceptionCaught:OkioExtensions.kt$e: Exception - TooGenericExceptionCaught:PackageInstallerInstaller.kt$PackageInstallerInstaller$e: Exception - TooGenericExceptionCaught:Pager.kt$Pager$e: IndexOutOfBoundsException - TooGenericExceptionCaught:Pager.kt$Pager$e: NullPointerException - TooGenericExceptionCaught:PagerPageHolder.kt$PagerPageHolder$e: Throwable - TooGenericExceptionCaught:QueryPagingSource.kt$QueryPagingSource$e: Exception - TooGenericExceptionCaught:RarPageLoader.kt$RarPageLoader$e: Exception - TooGenericExceptionCaught:ReaderActivity.kt$ReaderActivity$e: ArrayIndexOutOfBoundsException - TooGenericExceptionCaught:ReaderViewModel.kt$ReaderViewModel$e: Exception - TooGenericExceptionCaught:ReaderViewModel.kt$ReaderViewModel$e: Throwable - TooGenericExceptionCaught:RefreshTracks.kt$RefreshTracks$e: Throwable - TooGenericExceptionCaught:RenameCategory.kt$RenameCategory$e: Exception - TooGenericExceptionCaught:ReorderCategory.kt$ReorderCategory$e: Exception - TooGenericExceptionCaught:RestoreBackupScreen.kt$RestoreBackupScreenModel$e: Exception - TooGenericExceptionCaught:SearchScreenModel.kt$SearchScreenModel$e: Exception - TooGenericExceptionCaught:SetMangaCategories.kt$SetMangaCategories$e: Exception - TooGenericExceptionCaught:SetReadStatus.kt$SetReadStatus$e: Exception - TooGenericExceptionCaught:SettingsAdvancedScreen.kt$SettingsAdvancedScreen$e: Throwable - TooGenericExceptionCaught:SettingsDataScreen.kt$SettingsDataScreen$e: Throwable - TooGenericExceptionCaught:SettingsTrackingScreen.kt$SettingsTrackingScreen$e: Throwable - TooGenericExceptionCaught:Shikimori.kt$Shikimori$e: Exception - TooGenericExceptionCaught:Shikimori.kt$Shikimori$e: Throwable - TooGenericExceptionCaught:ShizukuInstaller.kt$ShizukuInstaller$e: Exception - TooGenericExceptionCaught:SourcePagingSource.kt$SourcePagingSource$e: Exception - TooGenericExceptionCaught:Suwayomi.kt$Suwayomi$e: Exception - TooGenericExceptionCaught:SyncChapterProgressWithTrack.kt$SyncChapterProgressWithTrack$e: Throwable - TooGenericExceptionCaught:TrackChapter.kt$TrackChapter$e: Exception - TooGenericExceptionCaught:TrackInfoDialog.kt$TrackInfoDialogHomeScreen.Model$e: Exception - TooGenericExceptionCaught:TrackInfoDialog.kt$TrackerSearchScreen.Model$e: Throwable - TooGenericExceptionCaught:UncaughtExceptionInterceptor.kt$UncaughtExceptionInterceptor$e: Exception - TooGenericExceptionCaught:UpdateCategory.kt$UpdateCategory$e: Exception - TooGenericExceptionCaught:UpdateChapter.kt$UpdateChapter$e: Exception - TooGenericExceptionCaught:WebViewActivity.kt$WebViewActivity$e: Exception - TooGenericExceptionCaught:WebViewScreenModel.kt$WebViewScreenModel$e: Exception - TooGenericExceptionCaught:WebViewUtil.kt$WebViewUtil$e: Throwable - TooGenericExceptionCaught:WebtoonPageHolder.kt$WebtoonPageHolder$e: Throwable - TooGenericExceptionCaught:WidgetManager.kt$WidgetManager$e: Exception - TooGenericExceptionThrown:Anilist.kt$Anilist$throw Exception("$track not found on user library") - TooGenericExceptionThrown:Anilist.kt$Anilist$throw Exception("Unknown score type") - TooGenericExceptionThrown:AnilistApi.kt$AnilistApi$throw Exception("Could not find manga") - TooGenericExceptionThrown:AnilistInterceptor.kt$AnilistInterceptor$throw Exception("Not authenticated with Anilist") - TooGenericExceptionThrown:AppUpdateDownloadJob.kt$AppUpdateDownloadJob$throw Exception("Unsuccessful response") - TooGenericExceptionThrown:BangumiApi.kt$BangumiApi$throw Exception("Null Response") - TooGenericExceptionThrown:BangumiInterceptor.kt$BangumiInterceptor$throw Exception("Not authenticated with Bangumi") - TooGenericExceptionThrown:ChapterLoader.kt$ChapterLoader$throw Exception(context.stringResource(MR.strings.page_list_empty_error)) - TooGenericExceptionThrown:DownloadManager.kt$DownloadManager$throw Exception(context.stringResource(MR.strings.page_list_empty_error)) - TooGenericExceptionThrown:DownloadProvider.kt$DownloadProvider$throw Exception( context.stringResource( MR.strings.invalid_location, downloadsDir?.displayablePath ?: "", ), ) - TooGenericExceptionThrown:Downloader.kt$Downloader$throw Exception(context.stringResource(MR.strings.page_list_empty_error)) - TooGenericExceptionThrown:ExtensionLoader.kt$ExtensionLoader$throw Exception("Unknown source class type: ${obj.javaClass}") - TooGenericExceptionThrown:HttpSource.kt$HttpSource$throw RuntimeException(e) - TooGenericExceptionThrown:KitsuApi.kt$KitsuApi$throw Exception("Could not find manga") - TooGenericExceptionThrown:KitsuInterceptor.kt$KitsuInterceptor$throw Exception("Not authenticated with Kitsu") - TooGenericExceptionThrown:KitsuModels.kt$KitsuLibManga$throw Exception("Unknown status") - TooGenericExceptionThrown:KitsuModels.kt$throw Exception("Unknown status") - TooGenericExceptionThrown:LocalSource.kt$LocalSource$throw Exception(context.stringResource(MR.strings.chapter_not_found)) - TooGenericExceptionThrown:LocalSource.kt$LocalSource$throw Exception(context.stringResource(MR.strings.local_invalid_format)) - TooGenericExceptionThrown:MangaUpdates.kt$MangaUpdates$throw Throwable("Unable to login") - TooGenericExceptionThrown:ShikimoriApi.kt$ShikimoriApi$throw Exception("Too much mangas in response") - TooGenericExceptionThrown:ShikimoriInterceptor.kt$ShikimoriInterceptor$throw Exception("Not authenticated with Shikimori") - TooGenericExceptionThrown:ShizukuInstaller.kt$ShizukuInstaller$throw RuntimeException("Failed to commit install session $sessionId") - TooGenericExceptionThrown:ShizukuInstaller.kt$ShizukuInstaller$throw RuntimeException("Failed to create install session") - TooGenericExceptionThrown:ShizukuInstaller.kt$ShizukuInstaller$throw RuntimeException("Failed to write APK to session $sessionId") - TooGenericExceptionThrown:TrackInfoDialog.kt$TrackInfoDialogHomeScreen.Model$throw Exception() - TooManyFunctions:AndroidDatabaseHandler.kt$AndroidDatabaseHandler : DatabaseHandler - TooManyFunctions:Anilist.kt$Anilist : BaseTrackerDeletableTracker - TooManyFunctions:AnilistApi.kt$AnilistApi - TooManyFunctions:Bangumi.kt$Bangumi : BaseTracker - TooManyFunctions:BaseTracker.kt$BaseTracker : Tracker - TooManyFunctions:BrowseSourceScreenModel.kt$BrowseSourceScreenModel : StateScreenModel - TooManyFunctions:CategoryRepositoryImpl.kt$CategoryRepositoryImpl : CategoryRepository - TooManyFunctions:ChapterRepository.kt$ChapterRepository - TooManyFunctions:ChapterRepositoryImpl.kt$ChapterRepositoryImpl : ChapterRepository - TooManyFunctions:ChapterTransition.kt$eu.kanade.presentation.reader.ChapterTransition.kt - TooManyFunctions:DohProviders.kt$eu.kanade.tachiyomi.network.DohProviders.kt - TooManyFunctions:DownloadCache.kt$DownloadCache - TooManyFunctions:DownloadManager.kt$DownloadManager - TooManyFunctions:DownloadPreferences.kt$DownloadPreferences - TooManyFunctions:DownloadProvider.kt$DownloadProvider - TooManyFunctions:DownloadQueueScreenModel.kt$DownloadQueueScreenModel : ScreenModel - TooManyFunctions:Downloader.kt$Downloader - TooManyFunctions:EpubFile.kt$EpubFile : Closeable - TooManyFunctions:ExtensionLoader.kt$ExtensionLoader - TooManyFunctions:ExtensionManager.kt$ExtensionManager - TooManyFunctions:ExtensionsScreenModel.kt$ExtensionsScreenModel : StateScreenModel - TooManyFunctions:HttpSource.kt$HttpSource : CatalogueSource - TooManyFunctions:ImageUtil.kt$ImageUtil - TooManyFunctions:Kavita.kt$Kavita : BaseTrackerEnhancedTracker - TooManyFunctions:Kitsu.kt$Kitsu : BaseTrackerDeletableTracker - TooManyFunctions:Komga.kt$Komga : BaseTrackerEnhancedTracker - TooManyFunctions:LibraryPreferences.kt$LibraryPreferences - TooManyFunctions:LibraryScreenModel.kt$LibraryScreenModel : StateScreenModel - TooManyFunctions:LocalSource.kt$LocalSource : CatalogueSourceUnmeteredSource - TooManyFunctions:MangaCoverFetcher.kt$MangaCoverFetcher : Fetcher - TooManyFunctions:MangaRepository.kt$MangaRepository - TooManyFunctions:MangaRepositoryImpl.kt$MangaRepositoryImpl : MangaRepository - TooManyFunctions:MangaRestorer.kt$MangaRestorer - TooManyFunctions:MangaScreenModel.kt$MangaScreenModel : StateScreenModel - TooManyFunctions:MangaUpdates.kt$MangaUpdates : BaseTrackerDeletableTracker - TooManyFunctions:MyAnimeList.kt$MyAnimeList : BaseTrackerDeletableTracker - TooManyFunctions:MyAnimeListApi.kt$MyAnimeListApi - TooManyFunctions:NotificationReceiver.kt$NotificationReceiver : BroadcastReceiver - TooManyFunctions:NotificationReceiver.kt$NotificationReceiver$Companion - TooManyFunctions:PagerPageHolder.kt$PagerPageHolder : ReaderPageImageViewPositionableView - TooManyFunctions:PagerViewer.kt$PagerViewer : Viewer - TooManyFunctions:ParsedHttpSource.kt$ParsedHttpSource : HttpSource - TooManyFunctions:ReaderActivity.kt$ReaderActivity : BaseActivity - TooManyFunctions:ReaderPageImageView.kt$ReaderPageImageView : FrameLayout - TooManyFunctions:ReaderPreferences.kt$ReaderPreferences - TooManyFunctions:ReaderViewModel.kt$ReaderViewModel : ViewModel - TooManyFunctions:SettingsItems.kt$tachiyomi.presentation.core.components.SettingsItems.kt - TooManyFunctions:SharedPreferencesDataStore.kt$SharedPreferencesDataStore : PreferenceDataStore - TooManyFunctions:Shikimori.kt$Shikimori : BaseTrackerDeletableTracker - TooManyFunctions:SourcePreferences.kt$SourcePreferences - TooManyFunctions:Suwayomi.kt$Suwayomi : BaseTrackerEnhancedTracker - TooManyFunctions:Tracker.kt$Tracker - TooManyFunctions:UpdatesScreenModel.kt$UpdatesScreenModel : StateScreenModel - TooManyFunctions:WebtoonPageHolder.kt$WebtoonPageHolder : WebtoonBaseHolder - TooManyFunctions:WebtoonRecyclerView.kt$WebtoonRecyclerView : RecyclerView - TooManyFunctions:WebtoonViewer.kt$WebtoonViewer : Viewer - TopLevelPropertyNaming:App.kt$private const val ACTION_DISABLE_INCOGNITO_MODE = "tachi.action.DISABLE_INCOGNITO_MODE" - TopLevelPropertyNaming:AppBar.kt$const val SEARCH_DEBOUNCE_MILLIS = 250L - TopLevelPropertyNaming:BackupCreateJob.kt$private const val IS_AUTO_BACKUP_KEY = "is_auto_backup" // Boolean - TopLevelPropertyNaming:BackupCreateJob.kt$private const val LOCATION_URI_KEY = "location_uri" // String - TopLevelPropertyNaming:BackupCreateJob.kt$private const val OPTIONS_KEY = "options" // BooleanArray - TopLevelPropertyNaming:BackupCreateJob.kt$private const val TAG_AUTO = "BackupCreator" - TopLevelPropertyNaming:BackupCreateJob.kt$private const val TAG_MANUAL = "$TAG_AUTO:manual" - TopLevelPropertyNaming:BackupRestoreJob.kt$private const val LOCATION_URI_KEY = "location_uri" // String - TopLevelPropertyNaming:BackupRestoreJob.kt$private const val OPTIONS_KEY = "options" // BooleanArray - TopLevelPropertyNaming:BackupRestoreJob.kt$private const val SYNC_KEY = "sync" // Boolean - TopLevelPropertyNaming:ChapterCache.kt$/** Application cache version. */ private const val PARAMETER_APP_VERSION = 1 - TopLevelPropertyNaming:ChapterCache.kt$/** The maximum number of bytes this cache should use to store. */ private const val PARAMETER_CACHE_SIZE = 100L * 1024 * 1024 - TopLevelPropertyNaming:ChapterCache.kt$/** The number of values per cache entry. Must be positive. */ private const val PARAMETER_VALUE_COUNT = 1 - TopLevelPropertyNaming:ColorFilterPage.kt$private const val ALPHA_MASK: Long = 0xFF000000 - TopLevelPropertyNaming:ColorFilterPage.kt$private const val BLUE_MASK: Long = 0x000000FF - TopLevelPropertyNaming:ColorFilterPage.kt$private const val GREEN_MASK: Long = 0x0000FF00 - TopLevelPropertyNaming:ColorFilterPage.kt$private const val RED_MASK: Long = 0x00FF0000 - TopLevelPropertyNaming:ComicInfo.kt$const val COMIC_INFO_FILE = "ComicInfo.xml" - TopLevelPropertyNaming:DatabaseAdapter.kt$private const val LIST_OF_STRINGS_SEPARATOR = ", " - TopLevelPropertyNaming:DateExtensions.kt$private const val MILLISECONDS_IN_DAY = 86_400_000L - TopLevelPropertyNaming:DisplayExtensions.kt$// make sure icons on the nav rail fit private const val TABLET_UI_MIN_SCREEN_WIDTH_LANDSCAPE_DP = 600 - TopLevelPropertyNaming:DisplayExtensions.kt$// some tablets have screen width like 711dp = 1600px / 2.25 private const val TABLET_UI_MIN_SCREEN_WIDTH_PORTRAIT_DP = 700 - TopLevelPropertyNaming:DisplayExtensions.kt$private const val TABLET_UI_REQUIRED_SCREEN_WIDTH_DP = 720 - TopLevelPropertyNaming:DohProviders.kt$/** * Based on https://github.com/square/okhttp/blob/ef5d0c83f7bbd3a0c0534e7ca23cbc4ee7550f3b/okhttp-dnsoverhttps/src/test/java/okhttp3/dnsoverhttps/DohProviders.java */ const val PREF_DOH_CLOUDFLARE = 1 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_360 = 7 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_ADGUARD = 3 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_ALIDNS = 5 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_CONTROLD = 10 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_DNSPOD = 6 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_GOOGLE = 2 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_MULLVAD = 9 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_NJALLA = 11 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_QUAD101 = 8 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_QUAD9 = 4 - TopLevelPropertyNaming:DohProviders.kt$const val PREF_DOH_SHECAN = 12 - TopLevelPropertyNaming:Downloader.kt$// Arbitrary minimum required space to start a download: 200 MB private const val MIN_DISK_SPACE = 200L * 1024 * 1024 - TopLevelPropertyNaming:ExtensionInstallActivity.kt$private const val INSTALL_REQUEST_CODE = 500 - TopLevelPropertyNaming:GLUtil.kt$// Safe minimum default size private const val IMAGE_MAX_BITMAP_DIMENSION = 2048 - TopLevelPropertyNaming:GuidesStep.kt$const val GETTING_STARTED_URL = "https://mihon.app/docs/guides/getting-started" - TopLevelPropertyNaming:KomgaApi.kt$private const val READLIST_API = "/api/v1/readlists" - TopLevelPropertyNaming:LibraryUpdateNotifier.kt$private const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60 - TopLevelPropertyNaming:LibraryUpdateNotifier.kt$private const val NOTIF_ICON_SIZE = 192 - TopLevelPropertyNaming:LibraryUpdateNotifier.kt$private const val NOTIF_MAX_CHAPTERS = 5 - TopLevelPropertyNaming:LibraryUpdateNotifier.kt$private const val NOTIF_TITLE_MAX_LEN = 45 - TopLevelPropertyNaming:LocalCoverManager.kt$private const val DEFAULT_COVER_NAME = "cover.jpg" - TopLevelPropertyNaming:MainActivity.kt$// Splash screen private const val SPLASH_MIN_DURATION = 500 // ms - TopLevelPropertyNaming:MainActivity.kt$private const val SPLASH_EXIT_ANIM_DURATION = 400L // ms - TopLevelPropertyNaming:MainActivity.kt$private const val SPLASH_MAX_DURATION = 5000 // ms - TopLevelPropertyNaming:PackageInstallerInstaller.kt$private const val INSTALL_ACTION = "PackageInstallerInstaller.INSTALL_ACTION" - TopLevelPropertyNaming:ReaderNavigationOverlayView.kt$private const val FADE_DURATION = 1000L - TopLevelPropertyNaming:ReaderPageImageView.kt$private const val MAX_ZOOM_SCALE = 5F - TopLevelPropertyNaming:ShizukuInstaller.kt$private const val SHIZUKU_PERMISSION_REQUEST_CODE = 14045 - TopLevelPropertyNaming:StorageManager.kt$private const val AUTOMATIC_BACKUPS_PATH = "autobackup" - TopLevelPropertyNaming:StorageManager.kt$private const val DOWNLOADS_PATH = "downloads" - TopLevelPropertyNaming:StorageManager.kt$private const val LOCAL_SOURCE_PATH = "local" - TopLevelPropertyNaming:SuwayomiApi.kt$private const val ADDRESS_DEFAULT = "" - TopLevelPropertyNaming:SuwayomiApi.kt$private const val ADDRESS_TITLE = "Server URL Address" - TopLevelPropertyNaming:SuwayomiApi.kt$private const val LOGIN_DEFAULT = "" - TopLevelPropertyNaming:SuwayomiApi.kt$private const val LOGIN_TITLE = "Login (Basic Auth)" - TopLevelPropertyNaming:SuwayomiApi.kt$private const val PASSWORD_DEFAULT = "" - TopLevelPropertyNaming:SuwayomiApi.kt$private const val PASSWORD_TITLE = "Password (Basic Auth)" - TopLevelPropertyNaming:WebtoonAdapter.kt$/** * View holder type of a chapter page view. */ private const val PAGE_VIEW = 0 - TopLevelPropertyNaming:WebtoonAdapter.kt$/** * View holder type of a chapter transition view. */ private const val TRANSITION_VIEW = 1 - TopLevelPropertyNaming:WebtoonRecyclerView.kt$private const val ANIMATOR_DURATION_TIME = 200 - TopLevelPropertyNaming:WebtoonRecyclerView.kt$private const val DEFAULT_RATE = 1f - TopLevelPropertyNaming:WebtoonRecyclerView.kt$private const val MAX_SCALE_RATE = 3f - TopLevelPropertyNaming:WebtoonRecyclerView.kt$private const val MIN_RATE = 0.5f - UnstableCollections:CategoryScreen.kt$List<Category> - UnstableCollections:Commons.kt$List<Category> - UnstableCollections:Commons.kt$Set<String> - UnstableCollections:GlobalSearchCardRow.kt$List<Manga> - UnstableCollections:GlobalSearchScreen.kt$Map<CatalogueSource, SearchItemResult> - UnstableCollections:HistoryScreen.kt$List<HistoryUiModel> - UnstableCollections:LibraryComfortableGrid.kt$List<LibraryItem> - UnstableCollections:LibraryComfortableGrid.kt$List<LibraryManga> - UnstableCollections:LibraryCompactGrid.kt$List<LibraryItem> - UnstableCollections:LibraryCompactGrid.kt$List<LibraryManga> - UnstableCollections:LibraryContent.kt$List<Category> - UnstableCollections:LibraryContent.kt$List<LibraryManga> - UnstableCollections:LibraryList.kt$List<LibraryItem> - UnstableCollections:LibraryList.kt$List<LibraryManga> - UnstableCollections:LibraryPager.kt$List<LibraryManga> - UnstableCollections:LibraryTabs.kt$List<Category> - UnstableCollections:ListPreferenceWidget.kt$Map<out T, String> - UnstableCollections:MangaScreen.kt$List<ChapterList.Item> - UnstableCollections:MultiSelectListPreferenceWidget.kt$Set<String> - UnstableCollections:PreferenceScreen.kt$List<Preference> - UnstableCollections:ScanlatorFilterDialog.kt$Set<String> - UnstableCollections:SettingsDownloadScreen.kt$SettingsDownloadScreen$List<Category> - UnstableCollections:SettingsLibraryScreen.kt$SettingsLibraryScreen$List<Category> - UnstableCollections:TrackInfoDialogHome.kt$List<TrackItem> - UnstableCollections:TrackInfoDialogSelector.kt$Map<Long, StringResource?> - UnstableCollections:TriStateListDialog.kt$List<T> - UnstableCollections:UpdatesScreen.kt$List<UpdatesItem> - UnstableCollections:WebViewScreenContent.kt$Map<String, String> - UnusedParameter:UpdatesRepositoryImpl.kt$UpdatesRepositoryImpl$dateUpload: Long - UnusedPrivateMember:AppThemePreferenceWidget.kt$@PreviewLightDark @Composable private fun AppThemesListPreview() - UnusedPrivateMember:ChapterTransition.kt$@PreviewLightDark @Composable private fun TransitionTextLongTitlePreview() - UnusedPrivateMember:ChapterTransition.kt$@PreviewLightDark @Composable private fun TransitionTextNoNextPreview() - UnusedPrivateMember:ChapterTransition.kt$@PreviewLightDark @Composable private fun TransitionTextNoPreviousPreview() - UnusedPrivateMember:ChapterTransition.kt$@PreviewLightDark @Composable private fun TransitionTextPreview() - UnusedPrivateMember:ChapterTransition.kt$@PreviewLightDark @Composable private fun TransitionTextWithGapPreview() - UnusedPrivateMember:CrashScreen.kt$@PreviewLightDark @Composable private fun CrashScreenPreview() - UnusedPrivateMember:EmptyScreen.kt$@PreviewLightDark @Composable private fun NoActionPreview() - UnusedPrivateMember:EmptyScreen.kt$@PreviewLightDark @Composable private fun WithActionPreview() - UnusedPrivateMember:GuidesStep.kt$@PreviewLightDark @Composable private fun GuidesStepPreview() - UnusedPrivateMember:HistoryDialogs.kt$@PreviewLightDark @Composable private fun HistoryDeleteDialogPreview() - UnusedPrivateMember:HistoryItem.kt$@PreviewLightDark @Composable private fun HistoryItemPreviews( @PreviewParameter(HistoryWithRelationsProvider::class) historyWithRelations: HistoryWithRelations, ) - UnusedPrivateMember:InfoScreen.kt$@PreviewLightDark @Composable private fun InfoScaffoldPreview() - UnusedPrivateMember:InfoWidget.kt$@PreviewLightDark @Composable private fun InfoWidgetPreview() - UnusedPrivateMember:LibraryBadges.kt$@PreviewLightDark @Composable private fun BadgePreview() - UnusedPrivateMember:MissingChapterCountListItem.kt$@PreviewLightDark @Composable private fun Preview() - UnusedPrivateMember:ModeSelectionDialog.kt$@PreviewLightDark @Composable private fun Preview() - UnusedPrivateMember:NewUpdateScreen.kt$@PreviewLightDark @Composable private fun NewUpdateScreenPreview() - UnusedPrivateMember:OrientationSelectDialog.kt$@PreviewLightDark @Composable private fun DialogContentPreview() - UnusedPrivateMember:PageIndicatorText.kt$@PreviewLightDark @Composable private fun PageIndicatorTextPreview() - UnusedPrivateMember:PermissionStep.kt$PermissionStep$@Composable private fun SectionHeader( text: String, modifier: Modifier = Modifier, ) - UnusedPrivateMember:ReadingModeSelectDialog.kt$@PreviewLightDark @Composable private fun DialogContentPreview() - UnusedPrivateMember:SwitchPreferenceWidget.kt$@PreviewLightDark @Composable private fun SwitchPreferenceWidgetPreview() - UnusedPrivateMember:TextPreferenceWidget.kt$@PreviewLightDark @Composable private fun TextPreferenceWidgetPreview() - UnusedPrivateMember:TrackInfoDialogHome.kt$@PreviewLightDark @Composable private fun TrackInfoDialogHomePreviews( @PreviewParameter(TrackInfoDialogHomePreviewProvider::class) content: @Composable () -> Unit, ) - UnusedPrivateMember:TrackInfoDialogSelector.kt$@PreviewLightDark @Composable private fun TrackStatusSelectorPreviews() - UnusedPrivateMember:TrackLogoIcon.kt$@PreviewLightDark @Composable private fun TrackLogoIconPreviews( @PreviewParameter(TrackLogoIconPreviewProvider::class) tracker: Tracker, ) - UnusedPrivateMember:TrackerSearch.kt$@PreviewLightDark @Composable private fun TrackerSearchPreviews( @PreviewParameter(TrackerSearchPreviewProvider::class) content: @Composable () -> Unit, ) - UnusedPrivateProperty:JavaScriptEngine.kt$JavaScriptEngine$context: Context - UnusedPrivateProperty:LibraryUpdateJob.kt$LibraryUpdateJob.Companion$private const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60 - UnusedPrivateProperty:MainActivity.kt$MainActivity$private val sourcePreferences: SourcePreferences by injectLazy() - UnusedPrivateProperty:MainActivity.kt$MainActivity$private val uiPreferences: UiPreferences by injectLazy() - UnusedPrivateProperty:MetadataUpdateJob.kt$MetadataUpdateJob.Companion$private const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60 - UseCheckOrError:CatalogueSource.kt$CatalogueSource$throw IllegalStateException("Not used") - UseCheckOrError:MangaScreenModel.kt$MangaScreenModel$throw IllegalStateException() - UseCheckOrError:PackageInstallerInstaller.kt$PackageInstallerInstaller$throw IllegalStateException() - UseCheckOrError:ReadingMode.kt$ReadingMode.Companion$throw IllegalStateException("Preference value must be resolved: $preference") - UseCheckOrError:ShizukuInstaller.kt$ShizukuInstaller$throw IllegalStateException() - UseCheckOrError:Source.kt$Source$throw IllegalStateException("Not used") - UseCheckOrError:SourceFilterDialog.kt$throw IllegalStateException("Unknown TriState state: $this") - UseCheckOrError:TransactionContext.kt$TransactionElement$throw IllegalStateException("Transaction was never started or was already released") - VariableNaming:Chapter.kt$Chapter$var date_fetch: Long - VariableNaming:Chapter.kt$Chapter$var last_modified: Long - VariableNaming:Chapter.kt$Chapter$var last_page_read: Int - VariableNaming:Chapter.kt$Chapter$var manga_id: Long? - VariableNaming:Chapter.kt$Chapter$var source_order: Int - VariableNaming:LocalSource.kt$LocalSource$private val LATEST_FILTERS = FilterList(OrderBy.Latest(context)) - VariableNaming:LocalSource.kt$LocalSource$private val POPULAR_FILTERS = FilterList(OrderBy.Popular(context)) - VariableNaming:SChapter.kt$SChapter$var chapter_number: Float - VariableNaming:SChapter.kt$SChapter$var date_upload: Long - VariableNaming:SManga.kt$SManga$var thumbnail_url: String? - VariableNaming:SManga.kt$SManga$var update_strategy: UpdateStrategy - VariableNaming:Track.kt$Track$var finished_reading_date: Long - VariableNaming:Track.kt$Track$var last_chapter_read: Double - VariableNaming:Track.kt$Track$var library_id: Long? - VariableNaming:Track.kt$Track$var manga_id: Long - VariableNaming:Track.kt$Track$var remote_id: Long - VariableNaming:Track.kt$Track$var started_reading_date: Long - VariableNaming:Track.kt$Track$var total_chapters: Long - VariableNaming:Track.kt$Track$var tracker_id: Long - VariableNaming:Track.kt$Track$var tracking_url: String - VariableNaming:TrackSearch.kt$TrackSearch$var cover_url: String = "" - VariableNaming:TrackSearch.kt$TrackSearch$var publishing_status: String = "" - VariableNaming:TrackSearch.kt$TrackSearch$var publishing_type: String = "" - VariableNaming:TrackSearch.kt$TrackSearch$var start_date: String = "" - - diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml deleted file mode 100644 index d1a3e3dbb..000000000 --- a/config/detekt/detekt.yml +++ /dev/null @@ -1,24 +0,0 @@ -naming: - FunctionNaming: - functionPattern: '[a-z][a-zA-Z0-9]*' - ignoreAnnotated: [ 'Composable' ] - TopLevelPropertyNaming: - constantPattern: '[A-Z][A-Za-z0-9]*' - -complexity: - LongMethod: - ignoreAnnotated: [ 'Composable' ] - LongParameterList: - ignoreDefaultParameters: true - ignoreAnnotated: [ 'Composable' ] - -style: - MagicNumber: - ignorePropertyDeclaration: true - ignoreCompanionObjectPropertyDeclaration: true - ReturnCount: - excludeGuardClauses: true - SerialVersionUIDInSerializableClass: - active: false - UnusedPrivateMember: - ignoreAnnotated: [ 'Preview' ] diff --git a/data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt index 099ccb0da..ffc4e5446 100644 --- a/data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt @@ -127,7 +127,6 @@ class ChapterRepositoryImpl( } } - @Suppress("LongParameterList") private fun mapChapter( id: Long, mangaId: Long, diff --git a/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt b/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt index 8f0a68d43..53b45ad09 100644 --- a/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt +++ b/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt @@ -5,7 +5,6 @@ import tachiyomi.domain.library.model.LibraryManga import tachiyomi.domain.manga.model.Manga object MangaMapper { - @Suppress("LongParameterList") fun mapManga( id: Long, source: Long, @@ -58,7 +57,6 @@ object MangaMapper { version = version, ) - @Suppress("LongParameterList") fun mapLibraryManga( id: Long, source: Long, diff --git a/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt index 06b7bde58..f7aaf4c99 100644 --- a/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt @@ -67,7 +67,6 @@ class MangaRepositoryImpl( } } - @Suppress("MagicNumber") override suspend fun getUpcomingManga(statuses: Set): Flow> { val epochMillis = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toEpochSecond() * 1000 return handler.subscribeToList { diff --git a/domain/src/main/java/mihon/domain/extensionrepo/interactor/CreateExtensionRepo.kt b/domain/src/main/java/mihon/domain/extensionrepo/interactor/CreateExtensionRepo.kt index ec9ca6e72..c44006970 100644 --- a/domain/src/main/java/mihon/domain/extensionrepo/interactor/CreateExtensionRepo.kt +++ b/domain/src/main/java/mihon/domain/extensionrepo/interactor/CreateExtensionRepo.kt @@ -48,7 +48,6 @@ class CreateExtensionRepo( * * @param repo Extension Repo holder for passing to DB/Error Dialog */ - @Suppress("ReturnCount") private suspend fun handleInsertionError(repo: ExtensionRepo): Result { val repoExists = repository.getRepo(repo.baseUrl) if (repoExists != null) { diff --git a/domain/src/main/java/mihon/domain/extensionrepo/service/ExtensionRepoService.kt b/domain/src/main/java/mihon/domain/extensionrepo/service/ExtensionRepoService.kt index 8262961a7..27e00f3a2 100644 --- a/domain/src/main/java/mihon/domain/extensionrepo/service/ExtensionRepoService.kt +++ b/domain/src/main/java/mihon/domain/extensionrepo/service/ExtensionRepoService.kt @@ -17,7 +17,6 @@ class ExtensionRepoService( ) { val client = networkHelper.client - @Suppress("TooGenericExceptionCaught") suspend fun fetchRepoDetails( repo: String, ): ExtensionRepo? { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 76ad11c9a..648faf7f3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,8 +8,6 @@ shizuku_version = "12.2.0" sqldelight = "2.0.2" sqlite = "2.4.0" voyager = "1.0.0" -detekt = "1.23.6" -detektCompose = "0.3.12" [libraries] desugar = "com.android.tools:desugar_jdk_libs:2.0.4" @@ -98,10 +96,6 @@ voyager-screenmodel = { module = "cafe.adriel.voyager:voyager-screenmodel", vers voyager-tab-navigator = { module = "cafe.adriel.voyager:voyager-tab-navigator", version.ref = "voyager" } voyager-transitions = { module = "cafe.adriel.voyager:voyager-transitions", version.ref = "voyager" } -detekt-gradlePlugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt" } -detekt-rules-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } -detekt-rules-compose = { module = "io.nlopez.compose.rules:detekt", version.ref = "detektCompose" } - [bundles] okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsoverhttps"] js-engine = ["quickjs-android"] diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Scaffold.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Scaffold.kt index 6420084a7..16063f621 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Scaffold.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/components/material/Scaffold.kt @@ -152,7 +152,6 @@ fun Scaffold( * @param bottomBar the content to place at the bottom of the [Scaffold], on top of the * [content], typically a [NavigationBar]. */ -@Suppress("CyclomaticComplexMethod") @OptIn(ExperimentalMaterial3Api::class) @Composable private fun ScaffoldLayout(