From 27a1c3aa763f64229265d089543c313b51cefb96 Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Wed, 31 Jan 2024 11:08:04 +0700 Subject: [PATCH 1/3] Increase limitation of Feed from 10 to 20 Also fix limtation message spelling --- .../eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt | 4 +++- .../tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt | 3 ++- i18n-sy/src/commonMain/resources/MR/base/strings.xml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) 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 cb61c2b67..e07403b32 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 @@ -150,7 +150,7 @@ open class FeedScreenModel( } private suspend fun hasTooManyFeeds(): Boolean { - return countFeedSavedSearchGlobal.await() > 10 + return countFeedSavedSearchGlobal.await() > MAX_FEED_ITEMS } fun getEnabledSources(): ImmutableList { @@ -323,3 +323,5 @@ data class FeedScreenState( val isLoadingItems get() = items?.fastAny { it.results == null } != false } + +const val MAX_FEED_ITEMS = 20 diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt index a1973332b..a6713712c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt @@ -17,6 +17,7 @@ import eu.kanade.presentation.browse.SourceFeedUI import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.online.all.MangaDex +import eu.kanade.tachiyomi.ui.browse.feed.MAX_FEED_ITEMS import exh.source.getMainSource import exh.source.mangaDexSourceIds import exh.util.nullIfBlank @@ -107,7 +108,7 @@ open class SourceFeedScreenModel( } private suspend fun hasTooManyFeeds(): Boolean { - return countFeedSavedSearchBySourceId.await(source.id) > 10 + return countFeedSavedSearchBySourceId.await(source.id) > MAX_FEED_ITEMS } fun createFeed(savedSearchId: Long) { diff --git a/i18n-sy/src/commonMain/resources/MR/base/strings.xml b/i18n-sy/src/commonMain/resources/MR/base/strings.xml index 03cbe4055..cf086b52f 100644 --- a/i18n-sy/src/commonMain/resources/MR/base/strings.xml +++ b/i18n-sy/src/commonMain/resources/MR/base/strings.xml @@ -374,7 +374,7 @@ Feed Delete feed item? - Too many sources in your feed, cannot add more then 10 + Too many sources in your feed, cannot add more than limited You don\'t have any sources in your feed, navigate to the top right to add one Add %1$s to feed? From 46e7e1fbcad469f3141fce0371043db88a9df329 Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Wed, 31 Jan 2024 12:03:03 +0700 Subject: [PATCH 2/3] Feed: [Fix] Not trying to add Feed if not select anything on dialog box Fix warning with RadioSelector declaration --- .../main/java/eu/kanade/presentation/browse/FeedScreen.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 06bd90a55..a2bb415b6 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt @@ -208,7 +208,7 @@ fun FeedAddSearchDialog( }, onDismissRequest = onDismiss, confirmButton = { - TextButton(onClick = { onClickAdd(source, selected?.let { savedSearches[it] }) }) { + TextButton(onClick = { onClickAdd(source, selected?.let { savedSearches[it] }) }, /* KMK --> */ enabled = selected != null /* KMK <-- */) { Text(text = stringResource(MR.strings.action_ok)) } }, @@ -218,9 +218,9 @@ fun FeedAddSearchDialog( @Composable fun RadioSelector( options: ImmutableList, - optionStrings: ImmutableList = remember { options.map { it.toString() }.toImmutableList() }, selected: Int?, - onSelectOption: (Int) -> Unit, + optionStrings: ImmutableList = remember { options.map { it.toString() }.toImmutableList() }, + onSelectOption: (Int) -> Unit /* KMK --> */ = {} /* KMK <-- */, ) { Column(Modifier.verticalScroll(rememberScrollState())) { optionStrings.forEachIndexed { index, option -> From 6a7db7b2e4a4accd542e327867ab537ebedd608d Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Wed, 31 Jan 2024 16:03:01 +0700 Subject: [PATCH 3/3] =?UTF-8?q?Feed:=20will=20get=20Popular=20if=20source?= =?UTF-8?q?=20doesn=E2=80=99t=20support=20Latest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/eu/kanade/presentation/browse/FeedScreen.kt | 7 ++++++- .../eu/kanade/presentation/browse/SourcesScreen.kt | 2 +- .../browse/components/GlobalSearchResultItems.kt | 4 +--- .../tachiyomi/ui/browse/feed/FeedScreenModel.kt | 11 +++++++++-- .../eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt | 7 ++++++- .../tachiyomi/domain/source/model/FeedSavedSearch.kt | 2 +- 6 files changed, 24 insertions(+), 9 deletions(-) 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 a2bb415b6..258b4709a 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt @@ -195,7 +195,12 @@ fun FeedAddSearchDialog( val context = LocalContext.current val savedSearchStrings = remember { savedSearches.map { - it?.name ?: context.stringResource(MR.strings.latest) + // KMK --> + it?.name ?: if (source.supportsLatest) + context.stringResource(MR.strings.latest) + else + context.stringResource(MR.strings.popular) + // KMK <-- }.toImmutableList() } RadioSelector( diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt index 41b730e93..9ed791d13 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt @@ -112,7 +112,7 @@ fun SourcesScreen( FastScrollLazyColumn( state = lazyListState, - // KMK <-- + // KMK <-- contentPadding = contentPadding + topSmallPaddingValues, ) { items( diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt b/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt index e8536ccb9..193e9ebf6 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt @@ -30,15 +30,13 @@ import tachiyomi.presentation.core.i18n.stringResource @Composable fun GlobalSearchResultItem( - // SY --> - modifier: Modifier = Modifier, - // SY <-- title: String, // SY --> subtitle: String?, // SY <-- onClick: () -> Unit, // SY --> + modifier: Modifier = Modifier, onLongClick: (() -> Unit)? = null, // SY <-- content: @Composable () -> Unit, 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 e07403b32..82197e884 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 @@ -130,7 +130,9 @@ open class FeedScreenModel( dialog = Dialog.AddFeedSearch( source, ( - (if (source.supportsLatest) persistentListOf(null) else persistentListOf()) + + // KMK --> + persistentListOf(null) + + // KMK <--> getSourceSavedSearches(source.id) ).toImmutableList(), ), @@ -231,7 +233,12 @@ open class FeedScreenModel( if (itemUI.source != null) { withContext(coroutineDispatcher) { if (itemUI.savedSearch == null) { - itemUI.source.getLatestUpdates(1) + // KMK --> + if (itemUI.source.supportsLatest) + itemUI.source.getLatestUpdates(1) + else + itemUI.source.getPopularManga(1) + // KMK <-- } else { itemUI.source.getSearchManga( 1, 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 19723c3d8..ba9300c86 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 @@ -78,7 +78,12 @@ fun Screen.feedTab(): TabContent { navigator.push( BrowseSourceScreen( source.id, - GetRemoteManga.QUERY_LATEST, + // KMK --> + listingQuery = if (!source.supportsLatest) + GetRemoteManga.QUERY_POPULAR + else + GetRemoteManga.QUERY_LATEST, + // KMK <-- ), ) }, diff --git a/domain/src/main/java/tachiyomi/domain/source/model/FeedSavedSearch.kt b/domain/src/main/java/tachiyomi/domain/source/model/FeedSavedSearch.kt index fd1b5c235..658c13ab6 100644 --- a/domain/src/main/java/tachiyomi/domain/source/model/FeedSavedSearch.kt +++ b/domain/src/main/java/tachiyomi/domain/source/model/FeedSavedSearch.kt @@ -7,7 +7,7 @@ data class FeedSavedSearch( // Source for the saved search val source: Long, - // If -1 then get latest, if set get the saved search + // If null then get latest/popular, if set get the saved search val savedSearch: Long?, // If the feed is a global or source specific feed