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 7e458931be..c618eec2bd 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 @@ -194,17 +194,20 @@ class EditMangaDialog : DialogController { binding.addTagEditText.requestFocus() showKeyboard() } + binding.addTagEditText.setOnFocusChangeListener { v, hasFocus -> + if (!hasFocus && v.parent != null) { + addTags() + } + } binding.addTagEditText.setOnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_DONE) { - val tags: List = binding.mangaGenresTags.tags.toList() + binding.addTagEditText.text.toString() - setGenreTags(tags) - binding.seriesType.setSelection(manga.seriesType(customTags = tags.joinToString(", ")) - 1) + addTags(true) binding.addTagEditText.clearFocus() - binding.addTagEditText.setText("") hideKeyboard() + } else { + binding.addTagChip.isVisible = true + binding.addTagEditText.isVisible = false } - binding.addTagChip.isVisible = true - binding.addTagEditText.isVisible = false true } @@ -221,6 +224,21 @@ class EditMangaDialog : DialogController { } } + private fun addTags(textCanBeBlank: Boolean = false) { + if ((textCanBeBlank || !binding.addTagEditText.text.isNullOrBlank()) && + binding.addTagEditText.isVisible + ) { + val newTags = binding.addTagEditText.text.toString().split(",") + .mapNotNull { tag -> tag.trim().takeUnless { it.isBlank() } } + val tags: List = binding.mangaGenresTags.tags.toList() + newTags + binding.addTagEditText.setText("") + setGenreTags(tags) + binding.seriesType.setSelection(manga.seriesType(customTags = tags.joinToString(", ")) - 1) + binding.addTagChip.isVisible = true + binding.addTagEditText.isVisible = false + } + } + private fun TachiyomiTextInputEditText.appendOriginalTextOnLongClick(originalText: String?) { setOnLongClickListener { if (this.text.isNullOrBlank()) { @@ -339,6 +357,7 @@ class EditMangaDialog : DialogController { } private fun onPositiveButtonClick() { + addTags() infoController.presenter.updateManga( binding.title.text.toString(), binding.mangaAuthor.text.toString(), diff --git a/app/src/main/res/layout/edit_manga_dialog.xml b/app/src/main/res/layout/edit_manga_dialog.xml index 662ba6f2c8..896b64ee43 100644 --- a/app/src/main/res/layout/edit_manga_dialog.xml +++ b/app/src/main/res/layout/edit_manga_dialog.xml @@ -151,6 +151,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" + android:imeOptions="actionDone" android:importantForAutofill="no" android:hint="@string/add_tag" android:inputType="text"