diff --git a/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt index caf07b42a..d12065eee 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt @@ -74,7 +74,7 @@ fun FeedScreen( selection: List, // KMK <-- onRefresh: () -> Unit, - getMangaState: @Composable (Manga, CatalogueSource?) -> State, + getMangaState: @Composable (Manga) -> State, ) { when { state.isLoading -> LoadingScreen() @@ -123,7 +123,7 @@ fun FeedScreen( ) { FeedItem( item = item, - getMangaState = { getMangaState(it, item.source) }, + getMangaState = { getMangaState(it) }, onClickManga = onClickManga, // KMK --> onLongClickManga = onLongClickManga, diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt index c1c3e1ce4..7587dc8fa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt @@ -109,8 +109,6 @@ class MergedSource : HttpSource() { suspend fun fetchChaptersForMergedManga( manga: Manga, downloadChapters: Boolean = true, - editScanlators: Boolean = false, - dedupe: Boolean = true, ) { fetchChaptersAndSync(manga, downloadChapters) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt index 8197def21..4d8e14bdd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt @@ -287,7 +287,7 @@ open class FeedScreenModel( } @Composable - fun getManga(initialManga: DomainManga, source: CatalogueSource?): State { + fun getManga(initialManga: DomainManga): State { return produceState(initialValue = initialManga) { getManga.subscribe(initialManga.url, initialManga.source) .collectLatest { manga -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt index e74005b6d..242fba874 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt @@ -140,7 +140,7 @@ fun Screen.feedTab( selection = bulkFavoriteState.selection, // KMK <-- onRefresh = screenModel::init, - getMangaState = { manga, source -> screenModel.getManga(initialManga = manga, source = source) }, + getMangaState = { manga -> screenModel.getManga(initialManga = manga) }, ) state.dialog?.let { dialog -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreen.kt index bed4169e9..15744bb5c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreen.kt @@ -121,7 +121,7 @@ class MigrationListScreen(private val config: MigrationProcedureConfig) : Screen ) val onDismissRequest = { screenModel.dialog.value = null } - when (val dialog = dialog) { + when (@Suppress("NAME_SHADOWING") val dialog = dialog) { is MigrationListScreenModel.Dialog.MigrateMangaDialog -> { MigrationMangaDialog( onDismissRequest = onDismissRequest, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt index d000613ee..023686920 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt @@ -155,7 +155,7 @@ data class SourceSearchScreen( } val onDismissRequest = { screenModel.setDialog(null) } - when (val dialog = state.dialog) { + when (state.dialog) { is BrowseSourceScreenModel.Dialog.Filter -> { SourceFilterDialog( onDismissRequest = onDismissRequest, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt index 855e4d5bc..444ccf579 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt @@ -16,6 +16,7 @@ import eu.kanade.presentation.components.TabContent import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationScreen import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrateMangaScreen import kotlinx.collections.immutable.persistentListOf +import kotlinx.coroutines.DelicateCoroutinesApi import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.lang.withUIContext import tachiyomi.domain.UnsortedPreferences @@ -55,6 +56,7 @@ fun Screen.migrateSourceTab(): TabContent { // SY --> onClickAll = { source -> // TODO: Jay wtf, need to clean this up sometime + @OptIn(DelicateCoroutinesApi::class) launchIO { val manga = Injekt.get().await() val sourceMangas = 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 22488c82a..0f7a4534d 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 @@ -59,6 +59,7 @@ import kotlinx.collections.immutable.PersistentList import kotlinx.collections.immutable.mutate import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList +import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.asFlow import kotlinx.coroutines.flow.collectLatest @@ -740,6 +741,7 @@ class LibraryScreenModel( clearSelection() } + @OptIn(DelicateCoroutinesApi::class) fun syncMangaToDex() { launchIO { MdUtil.getEnabledMangaDex(unsortedPreferences, sourcePreferences, sourceManager)?.let { mdex -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index 0c1f429e1..780616365 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -66,6 +66,7 @@ fun EditMangaDialog( confirmButton = { TextButton( onClick = { + @Suppress("NAME_SHADOWING") val binding = binding ?: return@TextButton onPositiveClick( binding.title.text.toString(), @@ -120,7 +121,7 @@ fun EditMangaDialog( } private fun onViewCreated(manga: Manga, context: Context, binding: EditMangaDialogBinding, scope: CoroutineScope) { - loadCover(manga, context, binding) + loadCover(manga, binding) val statusAdapter: ArrayAdapter = ArrayAdapter( context, @@ -188,7 +189,7 @@ private fun onViewCreated(manga: Manga, context: Context, binding: EditMangaDial binding.mangaDescription.hint = context.stringResource( SYMR.strings.description_hint, - manga.ogDescription?.takeIf { it.isNotBlank() }?.let { it.replace("\n", " ").chop(20) } ?: "" + manga.ogDescription?.takeIf { it.isNotBlank() }?.replace("\n", " ")?.chop(20) ?: "" ) binding.thumbnailUrl.hint = context.stringResource( @@ -212,7 +213,7 @@ private fun resetTags(manga: Manga, binding: EditMangaDialogBinding, scope: Coro } } -private fun loadCover(manga: Manga, context: Context, binding: EditMangaDialogBinding) { +private fun loadCover(manga: Manga, binding: EditMangaDialogBinding) { binding.mangaCover.load(manga) { transformations(RoundedCornersTransformation(4.dpToPx.toFloat())) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index e12d06b9c..ca8263d79 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -73,6 +73,7 @@ import exh.source.isMdBasedSource import exh.ui.ifSourcesLoaded import exh.ui.metadata.MetadataViewScreen import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.take @@ -546,6 +547,7 @@ class MangaScreen( navigator.push(SourcesScreen(smartSearchConfig)) } + @OptIn(DelicateCoroutinesApi::class) private fun mergeWithAnother( navigator: Navigator, context: Context, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index cf1ec3fa3..3b9384094 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -1005,6 +1005,7 @@ class MangaScreenModel( downloadManager.getQueuedDownloadOrNull(chapter.id) } // SY --> + @Suppress("NAME_SHADOWING") val manga = mergedData?.manga?.get(chapter.mangaId) ?: manga val source = mergedData?.sources?.find { manga.source == it.id }?.takeIf { mergedData.sources.size > 2 } // SY <-- @@ -1078,7 +1079,7 @@ class MangaScreenModel( downloadNewChapters(newChapters) } } else { - state.source.fetchChaptersForMergedManga(state.manga, manualFetch, true, dedupe) + state.source.fetchChaptersForMergedManga(state.manga, manualFetch) } } } catch (e: Throwable) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt index 9e35ae0cc..53d94d13b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt @@ -164,7 +164,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { return when (item) { is ReaderPage -> PagerPageHolder(readerThemedContext, viewer, item, item2 as? ReaderPage) is ChapterTransition -> PagerTransitionHolder(readerThemedContext, viewer, item) - else -> throw NotImplementedError("Holder for ${item.javaClass} not implemented") + // SY --> else -> throw NotImplementedError("Holder for ${item.javaClass} not implemented") SY <-- } } diff --git a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt index 1b1a9d23c..906e04b05 100644 --- a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt +++ b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt @@ -2,6 +2,7 @@ package exh.favorites import android.content.Context import android.net.wifi.WifiManager +import android.os.Build import android.os.PowerManager import eu.kanade.domain.manga.interactor.UpdateManga import eu.kanade.tachiyomi.network.POST @@ -136,10 +137,18 @@ class FavoritesSyncHelper(val context: Context) { } ignore { wifiLock?.release() } wifiLock = ignore { - context.wifiManager.createWifiLock( - WifiManager.WIFI_MODE_FULL_HIGH_PERF, - "teh:ExhFavoritesSyncWifi", - ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + context.wifiManager.createWifiLock( + WifiManager.WIFI_MODE_FULL_LOW_LATENCY, + "teh:ExhFavoritesSyncWifi", + ) + } else { + @Suppress("DEPRECATION") + context.wifiManager.createWifiLock( + WifiManager.WIFI_MODE_FULL_HIGH_PERF, + "teh:ExhFavoritesSyncWifi", + ) + } } // Do not update galleries while syncing favorites diff --git a/app/src/main/java/exh/md/similar/MangaDexSimilarScreen.kt b/app/src/main/java/exh/md/similar/MangaDexSimilarScreen.kt index 7ef6cb3c4..33cd209c5 100644 --- a/app/src/main/java/exh/md/similar/MangaDexSimilarScreen.kt +++ b/app/src/main/java/exh/md/similar/MangaDexSimilarScreen.kt @@ -41,7 +41,6 @@ class MangaDexSimilarScreen(val mangaId: Long, val sourceId: Long) : Screen() { } val screenModel = rememberScreenModel { MangaDexSimilarScreenModel(mangaId, sourceId) } - val state by screenModel.state.collectAsState() val navigator = LocalNavigator.currentOrThrow // KMK --> diff --git a/app/src/main/java/exh/recs/RecommendsScreen.kt b/app/src/main/java/exh/recs/RecommendsScreen.kt index 9743809ac..0aa37cb33 100644 --- a/app/src/main/java/exh/recs/RecommendsScreen.kt +++ b/app/src/main/java/exh/recs/RecommendsScreen.kt @@ -40,7 +40,6 @@ class RecommendsScreen(val mangaId: Long, val sourceId: Long) : Screen() { } val screenModel = rememberScreenModel { RecommendsScreenModel(mangaId, sourceId) } - val state by screenModel.state.collectAsState() val navigator = LocalNavigator.currentOrThrow // KMK --> diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt b/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt index 91f525dfa..952a8d307 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewScreen.kt @@ -50,7 +50,7 @@ class MetadataViewScreen(private val mangaId: Long, private val sourceId: Long) ) }, ) { paddingValues -> - when (val state = state) { + when (@Suppress("NAME_SHADOWING") val state = state) { MetadataViewState.Loading -> LoadingScreen() MetadataViewState.MetadataNotFound -> EmptyScreen(MR.strings.no_results_found) MetadataViewState.SourceNotFound -> EmptyScreen(MR.strings.source_empty_screen)