mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Implement copying of Manga URL to Clipboard (#8587)
feat: Implement copying of Manga URL to Clipboard
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							2a2c6cee5f
						
					
				
				
					commit
					ef3a6c80a7
				
			| @@ -80,6 +80,7 @@ fun MangaScreen( | ||||
|     onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?, | ||||
|     onAddToLibraryClicked: () -> Unit, | ||||
|     onWebViewClicked: (() -> Unit)?, | ||||
|     onWebViewLongClicked: (() -> Unit)?, | ||||
|     onTrackingClicked: (() -> Unit)?, | ||||
|     onTagClicked: (String) -> Unit, | ||||
|     onFilterButtonClicked: () -> Unit, | ||||
| @@ -116,6 +117,7 @@ fun MangaScreen( | ||||
|             onDownloadChapter = onDownloadChapter, | ||||
|             onAddToLibraryClicked = onAddToLibraryClicked, | ||||
|             onWebViewClicked = onWebViewClicked, | ||||
|             onWebViewLongClicked = onWebViewLongClicked, | ||||
|             onTrackingClicked = onTrackingClicked, | ||||
|             onTagClicked = onTagClicked, | ||||
|             onFilterClicked = onFilterButtonClicked, | ||||
| @@ -144,6 +146,7 @@ fun MangaScreen( | ||||
|             onDownloadChapter = onDownloadChapter, | ||||
|             onAddToLibraryClicked = onAddToLibraryClicked, | ||||
|             onWebViewClicked = onWebViewClicked, | ||||
|             onWebViewLongClicked = onWebViewLongClicked, | ||||
|             onTrackingClicked = onTrackingClicked, | ||||
|             onTagClicked = onTagClicked, | ||||
|             onFilterButtonClicked = onFilterButtonClicked, | ||||
| @@ -175,6 +178,7 @@ private fun MangaScreenSmallImpl( | ||||
|     onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?, | ||||
|     onAddToLibraryClicked: () -> Unit, | ||||
|     onWebViewClicked: (() -> Unit)?, | ||||
|     onWebViewLongClicked: (() -> Unit)?, | ||||
|     onTrackingClicked: (() -> Unit)?, | ||||
|     onTagClicked: (String) -> Unit, | ||||
|     onFilterClicked: () -> Unit, | ||||
| @@ -332,6 +336,7 @@ private fun MangaScreenSmallImpl( | ||||
|                             trackingCount = state.trackingCount, | ||||
|                             onAddToLibraryClicked = onAddToLibraryClicked, | ||||
|                             onWebViewClicked = onWebViewClicked, | ||||
|                             onWebViewLongClicked = onWebViewLongClicked, | ||||
|                             onTrackingClicked = onTrackingClicked, | ||||
|                             onEditCategory = onEditCategoryClicked, | ||||
|                         ) | ||||
| @@ -381,6 +386,7 @@ fun MangaScreenLargeImpl( | ||||
|     onDownloadChapter: ((List<ChapterItem>, ChapterDownloadAction) -> Unit)?, | ||||
|     onAddToLibraryClicked: () -> Unit, | ||||
|     onWebViewClicked: (() -> Unit)?, | ||||
|     onWebViewLongClicked: (() -> Unit)?, | ||||
|     onTrackingClicked: (() -> Unit)?, | ||||
|     onTagClicked: (String) -> Unit, | ||||
|     onFilterButtonClicked: () -> Unit, | ||||
| @@ -525,6 +531,7 @@ fun MangaScreenLargeImpl( | ||||
|                             trackingCount = state.trackingCount, | ||||
|                             onAddToLibraryClicked = onAddToLibraryClicked, | ||||
|                             onWebViewClicked = onWebViewClicked, | ||||
|                             onWebViewLongClicked = onWebViewLongClicked, | ||||
|                             onTrackingClicked = onTrackingClicked, | ||||
|                             onEditCategory = onEditCategoryClicked, | ||||
|                         ) | ||||
|   | ||||
| @@ -162,6 +162,7 @@ fun MangaActionRow( | ||||
|     trackingCount: Int, | ||||
|     onAddToLibraryClicked: () -> Unit, | ||||
|     onWebViewClicked: (() -> Unit)?, | ||||
|     onWebViewLongClicked: (() -> Unit)?, | ||||
|     onTrackingClicked: (() -> Unit)?, | ||||
|     onEditCategory: (() -> Unit)?, | ||||
| ) { | ||||
| @@ -196,6 +197,7 @@ fun MangaActionRow( | ||||
|                 icon = Icons.Outlined.Public, | ||||
|                 color = defaultActionButtonColor, | ||||
|                 onClick = onWebViewClicked, | ||||
|                 onLongClick = onWebViewLongClicked, | ||||
|             ) | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -61,6 +61,7 @@ import eu.kanade.tachiyomi.ui.manga.track.TrackInfoDialogHomeScreen | ||||
| import eu.kanade.tachiyomi.ui.reader.ReaderActivity | ||||
| import eu.kanade.tachiyomi.ui.updates.UpdatesController | ||||
| import eu.kanade.tachiyomi.ui.webview.WebViewActivity | ||||
| import eu.kanade.tachiyomi.util.system.copyToClipboard | ||||
| import eu.kanade.tachiyomi.util.system.toShareIntent | ||||
| import eu.kanade.tachiyomi.util.system.toast | ||||
|  | ||||
| @@ -101,6 +102,7 @@ class MangaScreen( | ||||
|                 haptic.performHapticFeedback(HapticFeedbackType.LongPress) | ||||
|             }, | ||||
|             onWebViewClicked = { openMangaInWebView(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource }, | ||||
|             onWebViewLongClicked = { copyMangaUrl(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource }, | ||||
|             onTrackingClicked = screenModel::showTrackDialog.takeIf { successState.trackingAvailable }, | ||||
|             onTagClicked = { performGenreSearch(router, it, screenModel.source!!) }, | ||||
|             onFilterButtonClicked = screenModel::showSettingsDialog, | ||||
| @@ -326,4 +328,14 @@ class MangaScreen( | ||||
|         val controller = SearchController(manga) | ||||
|         router.pushController(controller) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 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) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user