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..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( @@ -208,7 +213,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 +223,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 -> 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 cb61c2b67..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(), ), @@ -150,7 +152,7 @@ open class FeedScreenModel( } private suspend fun hasTooManyFeeds(): Boolean { - return countFeedSavedSearchGlobal.await() > 10 + return countFeedSavedSearchGlobal.await() > MAX_FEED_ITEMS } fun getEnabledSources(): ImmutableList { @@ -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, @@ -323,3 +330,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/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/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/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 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?