Implement copying of Manga URL to Clipboard (#8587)
feat: Implement copying of Manga URL to Clipboard (cherry picked from commit ef3a6c80a7638209a5a41a0923bd9195380429aa) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt
This commit is contained in:
parent
6a79e90b53
commit
c07ccf7943
@ -102,6 +102,7 @@ fun MangaScreen(
|
|||||||
onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?,
|
onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?,
|
||||||
onAddToLibraryClicked: () -> Unit,
|
onAddToLibraryClicked: () -> Unit,
|
||||||
onWebViewClicked: (() -> Unit)?,
|
onWebViewClicked: (() -> Unit)?,
|
||||||
|
onWebViewLongClicked: (() -> Unit)?,
|
||||||
onTrackingClicked: (() -> Unit)?,
|
onTrackingClicked: (() -> Unit)?,
|
||||||
onTagClicked: (String) -> Unit,
|
onTagClicked: (String) -> Unit,
|
||||||
onFilterButtonClicked: () -> Unit,
|
onFilterButtonClicked: () -> Unit,
|
||||||
@ -148,6 +149,7 @@ fun MangaScreen(
|
|||||||
onDownloadChapter = onDownloadChapter,
|
onDownloadChapter = onDownloadChapter,
|
||||||
onAddToLibraryClicked = onAddToLibraryClicked,
|
onAddToLibraryClicked = onAddToLibraryClicked,
|
||||||
onWebViewClicked = onWebViewClicked,
|
onWebViewClicked = onWebViewClicked,
|
||||||
|
onWebViewLongClicked = onWebViewLongClicked,
|
||||||
onTrackingClicked = onTrackingClicked,
|
onTrackingClicked = onTrackingClicked,
|
||||||
onTagClicked = onTagClicked,
|
onTagClicked = onTagClicked,
|
||||||
onFilterClicked = onFilterButtonClicked,
|
onFilterClicked = onFilterButtonClicked,
|
||||||
@ -186,6 +188,7 @@ fun MangaScreen(
|
|||||||
onDownloadChapter = onDownloadChapter,
|
onDownloadChapter = onDownloadChapter,
|
||||||
onAddToLibraryClicked = onAddToLibraryClicked,
|
onAddToLibraryClicked = onAddToLibraryClicked,
|
||||||
onWebViewClicked = onWebViewClicked,
|
onWebViewClicked = onWebViewClicked,
|
||||||
|
onWebViewLongClicked = onWebViewLongClicked,
|
||||||
onTrackingClicked = onTrackingClicked,
|
onTrackingClicked = onTrackingClicked,
|
||||||
onTagClicked = onTagClicked,
|
onTagClicked = onTagClicked,
|
||||||
onFilterButtonClicked = onFilterButtonClicked,
|
onFilterButtonClicked = onFilterButtonClicked,
|
||||||
@ -227,6 +230,7 @@ private fun MangaScreenSmallImpl(
|
|||||||
onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?,
|
onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?,
|
||||||
onAddToLibraryClicked: () -> Unit,
|
onAddToLibraryClicked: () -> Unit,
|
||||||
onWebViewClicked: (() -> Unit)?,
|
onWebViewClicked: (() -> Unit)?,
|
||||||
|
onWebViewLongClicked: (() -> Unit)?,
|
||||||
onTrackingClicked: (() -> Unit)?,
|
onTrackingClicked: (() -> Unit)?,
|
||||||
onTagClicked: (String) -> Unit,
|
onTagClicked: (String) -> Unit,
|
||||||
onFilterClicked: () -> Unit,
|
onFilterClicked: () -> Unit,
|
||||||
@ -403,6 +407,7 @@ private fun MangaScreenSmallImpl(
|
|||||||
trackingCount = state.trackingCount,
|
trackingCount = state.trackingCount,
|
||||||
onAddToLibraryClicked = onAddToLibraryClicked,
|
onAddToLibraryClicked = onAddToLibraryClicked,
|
||||||
onWebViewClicked = onWebViewClicked,
|
onWebViewClicked = onWebViewClicked,
|
||||||
|
onWebViewLongClicked = onWebViewLongClicked,
|
||||||
onTrackingClicked = onTrackingClicked,
|
onTrackingClicked = onTrackingClicked,
|
||||||
onEditCategory = onEditCategoryClicked,
|
onEditCategory = onEditCategoryClicked,
|
||||||
// SY -->
|
// SY -->
|
||||||
@ -505,6 +510,7 @@ fun MangaScreenLargeImpl(
|
|||||||
onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?,
|
onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?,
|
||||||
onAddToLibraryClicked: () -> Unit,
|
onAddToLibraryClicked: () -> Unit,
|
||||||
onWebViewClicked: (() -> Unit)?,
|
onWebViewClicked: (() -> Unit)?,
|
||||||
|
onWebViewLongClicked: (() -> Unit)?,
|
||||||
onTrackingClicked: (() -> Unit)?,
|
onTrackingClicked: (() -> Unit)?,
|
||||||
onTagClicked: (String) -> Unit,
|
onTagClicked: (String) -> Unit,
|
||||||
onFilterButtonClicked: () -> Unit,
|
onFilterButtonClicked: () -> Unit,
|
||||||
@ -669,6 +675,7 @@ fun MangaScreenLargeImpl(
|
|||||||
trackingCount = state.trackingCount,
|
trackingCount = state.trackingCount,
|
||||||
onAddToLibraryClicked = onAddToLibraryClicked,
|
onAddToLibraryClicked = onAddToLibraryClicked,
|
||||||
onWebViewClicked = onWebViewClicked,
|
onWebViewClicked = onWebViewClicked,
|
||||||
|
onWebViewLongClicked = onWebViewLongClicked,
|
||||||
onTrackingClicked = onTrackingClicked,
|
onTrackingClicked = onTrackingClicked,
|
||||||
onEditCategory = onEditCategoryClicked,
|
onEditCategory = onEditCategoryClicked,
|
||||||
// SY -->
|
// SY -->
|
||||||
|
@ -160,6 +160,7 @@ fun MangaActionRow(
|
|||||||
trackingCount: Int,
|
trackingCount: Int,
|
||||||
onAddToLibraryClicked: () -> Unit,
|
onAddToLibraryClicked: () -> Unit,
|
||||||
onWebViewClicked: (() -> Unit)?,
|
onWebViewClicked: (() -> Unit)?,
|
||||||
|
onWebViewLongClicked: (() -> Unit)?,
|
||||||
onTrackingClicked: (() -> Unit)?,
|
onTrackingClicked: (() -> Unit)?,
|
||||||
onEditCategory: (() -> Unit)?,
|
onEditCategory: (() -> Unit)?,
|
||||||
// SY -->
|
// SY -->
|
||||||
@ -197,6 +198,7 @@ fun MangaActionRow(
|
|||||||
icon = Icons.Outlined.Public,
|
icon = Icons.Outlined.Public,
|
||||||
color = defaultActionButtonColor,
|
color = defaultActionButtonColor,
|
||||||
onClick = onWebViewClicked,
|
onClick = onWebViewClicked,
|
||||||
|
onLongClick = onWebViewLongClicked,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// SY -->
|
// SY -->
|
||||||
|
@ -77,6 +77,7 @@ import eu.kanade.tachiyomi.ui.webview.WebViewActivity
|
|||||||
import eu.kanade.tachiyomi.util.chapter.getNextUnread
|
import eu.kanade.tachiyomi.util.chapter.getNextUnread
|
||||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||||
import eu.kanade.tachiyomi.util.lang.withNonCancellableContext
|
import eu.kanade.tachiyomi.util.lang.withNonCancellableContext
|
||||||
|
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||||
import eu.kanade.tachiyomi.util.system.toShareIntent
|
import eu.kanade.tachiyomi.util.system.toShareIntent
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import exh.md.similar.MangaDexSimilarController
|
import exh.md.similar.MangaDexSimilarController
|
||||||
@ -152,6 +153,7 @@ class MangaScreen(
|
|||||||
}
|
}
|
||||||
}.takeIf { isHttpSource },
|
}.takeIf { isHttpSource },
|
||||||
// SY <--
|
// SY <--
|
||||||
|
onWebViewLongClicked = { copyMangaUrl(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource },
|
||||||
onTrackingClicked = screenModel::showTrackDialog.takeIf { successState.trackingAvailable },
|
onTrackingClicked = screenModel::showTrackDialog.takeIf { successState.trackingAvailable },
|
||||||
onTagClicked = { performGenreSearch(router, it, screenModel.source!!) },
|
onTagClicked = { performGenreSearch(router, it, screenModel.source!!) },
|
||||||
onFilterButtonClicked = screenModel::showSettingsDialog,
|
onFilterButtonClicked = screenModel::showSettingsDialog,
|
||||||
@ -433,6 +435,16 @@ class MangaScreen(
|
|||||||
// SY <--
|
// SY <--
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy Manga URL to Clipboard
|
||||||
|
*/
|
||||||
|
private fun copyMangaUrl(context: Context, manga_: Manga?, source_: Source?) {
|
||||||
|
val manga = manga_ ?: return
|
||||||
|
val source = source_ as? HttpSource ?: return
|
||||||
|
val url = source.getMangaUrl(manga.toSManga())
|
||||||
|
context.copyToClipboard(url, url)
|
||||||
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
private fun openMetadataViewer(router: Router, manga: Manga) {
|
private fun openMetadataViewer(router: Router, manga: Manga) {
|
||||||
router.pushController(MetadataViewController(manga))
|
router.pushController(MetadataViewController(manga))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user