Added text to category changing dialog when shown with no categories (#5345)
* Added text to ChangeMangaCategoriesDialog if invoked with empty category list * Change dialog text, add negative button, and change positive button to open CategoryController * Tiny bit of code cleanup and reorganizing
This commit is contained in:
parent
9b967177c5
commit
8deca3b63a
3 changed files with 36 additions and 9 deletions
|
@ -9,6 +9,8 @@ import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.database.models.Category
|
import eu.kanade.tachiyomi.data.database.models.Category
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
|
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||||
|
import eu.kanade.tachiyomi.ui.category.CategoryController
|
||||||
|
|
||||||
class ChangeMangaCategoriesDialog<T>(bundle: Bundle? = null) :
|
class ChangeMangaCategoriesDialog<T>(bundle: Bundle? = null) :
|
||||||
DialogController(bundle) where T : Controller, T : ChangeMangaCategoriesDialog.Listener {
|
DialogController(bundle) where T : Controller, T : ChangeMangaCategoriesDialog.Listener {
|
||||||
|
@ -32,16 +34,30 @@ class ChangeMangaCategoriesDialog<T>(bundle: Bundle? = null) :
|
||||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||||
return MaterialDialog(activity!!)
|
return MaterialDialog(activity!!)
|
||||||
.title(R.string.action_move_category)
|
.title(R.string.action_move_category)
|
||||||
.listItemsMultiChoice(
|
|
||||||
items = categories.map { it.name },
|
|
||||||
initialSelection = preselected.toIntArray(),
|
|
||||||
allowEmptySelection = true
|
|
||||||
) { _, selections, _ ->
|
|
||||||
val newCategories = selections.map { categories[it] }
|
|
||||||
(targetController as? Listener)?.updateCategoriesForMangas(mangas, newCategories)
|
|
||||||
}
|
|
||||||
.positiveButton(android.R.string.ok)
|
|
||||||
.negativeButton(android.R.string.cancel)
|
.negativeButton(android.R.string.cancel)
|
||||||
|
.apply {
|
||||||
|
if (categories.isNotEmpty()) {
|
||||||
|
listItemsMultiChoice(
|
||||||
|
items = categories.map { it.name },
|
||||||
|
initialSelection = preselected.toIntArray(),
|
||||||
|
allowEmptySelection = true
|
||||||
|
) { _, selections, _ ->
|
||||||
|
val newCategories = selections.map { categories[it] }
|
||||||
|
(targetController as? Listener)?.updateCategoriesForMangas(mangas, newCategories)
|
||||||
|
}
|
||||||
|
.positiveButton(android.R.string.ok)
|
||||||
|
} else {
|
||||||
|
message(R.string.information_empty_category_dialog)
|
||||||
|
.positiveButton(R.string.action_edit_categories) {
|
||||||
|
if (targetController is LibraryController) {
|
||||||
|
val libController = targetController as LibraryController
|
||||||
|
libController.clearSelection()
|
||||||
|
}
|
||||||
|
router.popCurrentController()
|
||||||
|
router.pushController(CategoryController().withFadeTransaction())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Listener {
|
interface Listener {
|
||||||
|
|
|
@ -526,6 +526,16 @@ class LibraryController(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear all of the manga currently selected, and
|
||||||
|
* invalidate the action mode to revert the top toolbar
|
||||||
|
*/
|
||||||
|
fun clearSelection() {
|
||||||
|
selectedMangas.clear()
|
||||||
|
selectionRelay.call(LibrarySelectionEvent.Cleared())
|
||||||
|
invalidateActionMode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Move the selected manga to a list of categories.
|
* Move the selected manga to a list of categories.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -729,6 +729,7 @@
|
||||||
<string name="information_no_recent_manga">Nothing read recently</string>
|
<string name="information_no_recent_manga">Nothing read recently</string>
|
||||||
<string name="information_empty_library">Your library is empty. Add series to your library from Browse.</string>
|
<string name="information_empty_library">Your library is empty. Add series to your library from Browse.</string>
|
||||||
<string name="information_empty_category">You have no categories. Tap the plus button to create one for organizing your library.</string>
|
<string name="information_empty_category">You have no categories. Tap the plus button to create one for organizing your library.</string>
|
||||||
|
<string name="information_empty_category_dialog">You don\'t have any categories yet.</string>
|
||||||
<string name="information_cloudflare_bypass_failure">Failed to bypass Cloudflare</string>
|
<string name="information_cloudflare_bypass_failure">Failed to bypass Cloudflare</string>
|
||||||
<!-- Do not translate "WebView" -->
|
<!-- Do not translate "WebView" -->
|
||||||
<string name="information_webview_required">WebView is required for Tachiyomi</string>
|
<string name="information_webview_required">WebView is required for Tachiyomi</string>
|
||||||
|
|
Reference in a new issue