diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt index a8f39e896..151af0927 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt @@ -239,6 +239,7 @@ fun LibraryBottomActionMenu( onClickCleanTitles: (() -> Unit)?, onClickMigrate: (() -> Unit)?, onClickAddToMangaDex: (() -> Unit)?, + onClickResetInfo: (() -> Unit)?, // SY <-- modifier: Modifier = Modifier, ) { @@ -267,7 +268,7 @@ fun LibraryBottomActionMenu( } } // SY --> - val showOverflow = onClickCleanTitles != null || onClickAddToMangaDex != null + val showOverflow = onClickCleanTitles != null || onClickAddToMangaDex != null || onClickResetInfo != null val configuration = LocalConfiguration.current val moveMarkPrev = remember { !configuration.isTabletUi() } var overFlowOpen by remember { mutableStateOf(false) } @@ -364,6 +365,12 @@ fun LibraryBottomActionMenu( onClick = onClickAddToMangaDex, ) } + if (onClickResetInfo != null) { + DropdownMenuItem( + text = { Text(text = stringResource(SYMR.strings.reset_info)) }, + onClick = onClickResetInfo, + ) + } } } else { Button( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index 43a94a80a..22488c82a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -750,6 +750,24 @@ class LibraryScreenModel( clearSelection() } } + + fun resetInfo() { + state.value.selection.fastForEach { (manga) -> + val mangaInfo = CustomMangaInfo( + id = manga.id, + title = null, + author = null, + artist = null, + thumbnailUrl = null, + description = null, + genre = null, + status = null, + ) + + setCustomMangaInfo.set(mangaInfo) + } + clearSelection() + } // SY <-- /** @@ -1336,6 +1354,18 @@ class LibraryScreenModel( val showAddToMangadex: Boolean by lazy { selection.any { it.manga.source in mangaDexSourceIds } } + + val showResetInfo: Boolean by lazy { + selection.fastAny { (manga) -> + manga.title != manga.ogTitle || + manga.author != manga.ogAuthor || + manga.artist != manga.ogArtist || + manga.thumbnailUrl != manga.ogThumbnailUrl || + manga.description != manga.ogDescription || + manga.genre != manga.ogGenre || + manga.status != manga.ogStatus + } + } // SY <-- fun getLibraryItemsByCategoryId(categoryId: Long): List? { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt index 599b8ae27..cb78ffb7a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt @@ -205,6 +205,7 @@ object LibraryTab : Tab { } }, onClickAddToMangaDex = screenModel::syncMangaToDex.takeIf { state.showAddToMangadex }, + onClickResetInfo = screenModel::resetInfo.takeIf { state.showResetInfo }, // SY <-- ) }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index 456456ac5..0c1f429e1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -201,6 +201,7 @@ private fun onViewCreated(manga: Manga, context: Context, binding: EditMangaDial binding.mangaGenresTags.clearFocus() binding.resetTags.setOnClickListener { resetTags(manga, binding, scope) } + binding.resetInfo.setOnClickListener { resetInfo(manga, binding, scope) } } private fun resetTags(manga: Manga, binding: EditMangaDialogBinding, scope: CoroutineScope) { @@ -217,6 +218,15 @@ private fun loadCover(manga: Manga, context: Context, binding: EditMangaDialogBi } } +private fun resetInfo(manga: Manga, binding: EditMangaDialogBinding, scope: CoroutineScope) { + binding.title.setText("") + binding.mangaAuthor.setText("") + binding.mangaArtist.setText("") + binding.thumbnailUrl.setText("") + binding.mangaDescription.setText("") + resetTags(manga, binding, scope) +} + private fun ChipGroup.setChips(items: List, scope: CoroutineScope) { removeAllViews() diff --git a/app/src/main/res/layout/edit_manga_dialog.xml b/app/src/main/res/layout/edit_manga_dialog.xml index 205207812..1f7d67ebb 100644 --- a/app/src/main/res/layout/edit_manga_dialog.xml +++ b/app/src/main/res/layout/edit_manga_dialog.xml @@ -139,6 +139,16 @@ android:text="@string/reset_tags" android:textAllCaps="false" /> +