feat: unify recommendation screens and add more sources (#1376)
* feat(recommendations): add mangaupdates.com support * feat(recommendations): display all tracker recommendation sources * refactor(recommendations): apply spotless * refactor: split RecommendationPagingSources * feat(recommendations): unify MangaDex & community recommendations * refactor: remove old screen * fix: update comment * style: fix formatting * refactor: move onClick handlers * fix: handle external recommendation links correctly * fix: apply spotless * feat: add comick recommendation source * fix: mark recs from comick as not initialized to force fetching missing metadata * Update app/src/main/java/exh/recs/BrowseRecommendsScreen.kt --------- Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
This commit is contained in:
@@ -40,7 +40,6 @@ import eu.kanade.presentation.manga.components.SetIntervalDialog
|
||||
import eu.kanade.presentation.util.AssistContentScreen
|
||||
import eu.kanade.presentation.util.Screen
|
||||
import eu.kanade.presentation.util.isTabletUi
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.isLocalOrStub
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
@@ -59,13 +58,10 @@ import eu.kanade.tachiyomi.ui.webview.WebViewScreen
|
||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||
import eu.kanade.tachiyomi.util.system.toShareIntent
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import exh.md.similar.MangaDexSimilarScreen
|
||||
import exh.pagepreview.PagePreviewScreen
|
||||
import exh.pref.DelegateSourcePreferences
|
||||
import exh.recs.RecommendsScreen
|
||||
import exh.source.MERGED_SOURCE_ID
|
||||
import exh.source.getMainSource
|
||||
import exh.source.isMdBasedSource
|
||||
import exh.ui.ifSourcesLoaded
|
||||
import exh.ui.metadata.MetadataViewScreen
|
||||
import kotlinx.coroutines.CancellationException
|
||||
@@ -214,7 +210,7 @@ class MangaScreen(
|
||||
onMetadataViewerClicked = { openMetadataViewer(navigator, successState.manga) },
|
||||
onEditInfoClicked = screenModel::showEditMangaInfoDialog,
|
||||
onRecommendClicked = {
|
||||
openRecommends(context, navigator, screenModel.source?.getMainSource(), successState.manga)
|
||||
openRecommends(navigator, screenModel.source?.getMainSource(), successState.manga)
|
||||
},
|
||||
onMergedSettingsClicked = screenModel::showEditMergedSettingsDialog,
|
||||
onMergeClicked = { openSmartSearch(navigator, successState.manga) },
|
||||
@@ -550,28 +546,9 @@ class MangaScreen(
|
||||
// EXH <--
|
||||
|
||||
// AZ -->
|
||||
private fun openRecommends(context: Context, navigator: Navigator, source: Source?, manga: Manga) {
|
||||
private fun openRecommends(navigator: Navigator, source: Source?, manga: Manga) {
|
||||
source ?: return
|
||||
if (source.isMdBasedSource() && Injekt.get<DelegateSourcePreferences>().delegateSources().get()) {
|
||||
MaterialAlertDialogBuilder(context)
|
||||
.setTitle(SYMR.strings.az_recommends.getString(context))
|
||||
.setSingleChoiceItems(
|
||||
arrayOf(
|
||||
context.stringResource(SYMR.strings.mangadex_similar),
|
||||
context.stringResource(SYMR.strings.community_recommendations),
|
||||
),
|
||||
-1,
|
||||
) { dialog, index ->
|
||||
dialog.dismiss()
|
||||
when (index) {
|
||||
0 -> navigator.push(MangaDexSimilarScreen(manga.id, source.id))
|
||||
1 -> navigator.push(RecommendsScreen(manga.id, source.id))
|
||||
}
|
||||
}
|
||||
.show()
|
||||
} else if (source is CatalogueSource) {
|
||||
navigator.push(RecommendsScreen(manga.id, source.id))
|
||||
}
|
||||
navigator.push(RecommendsScreen(manga.id, source.id))
|
||||
}
|
||||
// AZ <--
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user