Bottom action menu in library
This commit is contained in:
@@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BottomActionMenuController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.RootController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.SecondaryDrawerController
|
||||
@@ -41,6 +42,7 @@ import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.util.view.inflate
|
||||
import eu.kanade.tachiyomi.widget.BottomActionMenu
|
||||
import java.io.IOException
|
||||
import kotlinx.android.synthetic.main.library_controller.empty_view
|
||||
import kotlinx.android.synthetic.main.library_controller.library_pager
|
||||
@@ -58,6 +60,7 @@ class LibraryController(
|
||||
RootController,
|
||||
TabbedController,
|
||||
SecondaryDrawerController,
|
||||
BottomActionMenuController,
|
||||
ActionMode.Callback,
|
||||
ChangeMangaCategoriesDialog.Listener,
|
||||
DeleteLibraryMangasDialog.Listener {
|
||||
@@ -72,6 +75,7 @@ class LibraryController(
|
||||
* Action mode for selections.
|
||||
*/
|
||||
private var actionMode: ActionMode? = null
|
||||
private var bottomActionMenu: BottomActionMenu? = null
|
||||
|
||||
/**
|
||||
* Library search query.
|
||||
@@ -179,9 +183,9 @@ class LibraryController(
|
||||
}
|
||||
|
||||
override fun onDestroyView(view: View) {
|
||||
destroyActionModeIfNeeded()
|
||||
adapter?.onDestroy()
|
||||
adapter = null
|
||||
actionMode = null
|
||||
tabsVisibilitySubscription?.unsubscribe()
|
||||
tabsVisibilitySubscription = null
|
||||
super.onDestroyView(view)
|
||||
@@ -320,7 +324,7 @@ class LibraryController(
|
||||
/**
|
||||
* Destroys the action mode.
|
||||
*/
|
||||
fun destroyActionModeIfNeeded() {
|
||||
private fun destroyActionModeIfNeeded() {
|
||||
actionMode?.finish()
|
||||
}
|
||||
|
||||
@@ -414,7 +418,7 @@ class LibraryController(
|
||||
}
|
||||
|
||||
override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean {
|
||||
mode.menuInflater.inflate(R.menu.library_selection, menu)
|
||||
mode.menuInflater.inflate(R.menu.generic_selection, menu)
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -425,7 +429,9 @@ class LibraryController(
|
||||
destroyActionModeIfNeeded()
|
||||
} else {
|
||||
mode.title = count.toString()
|
||||
menu.findItem(R.id.action_edit_cover)?.isVisible = count == 1
|
||||
|
||||
bottomActionMenu?.show(mode.menuInflater)
|
||||
bottomActionMenu?.findItem(R.id.action_edit_cover)?.isVisible = count == 1
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -445,12 +451,20 @@ class LibraryController(
|
||||
}
|
||||
|
||||
override fun onDestroyActionMode(mode: ActionMode?) {
|
||||
bottomActionMenu?.hide()
|
||||
// Clear all the manga selections and notify child views.
|
||||
selectedMangas.clear()
|
||||
selectionRelay.call(LibrarySelectionEvent.Cleared())
|
||||
actionMode = null
|
||||
}
|
||||
|
||||
override fun configureBottomActionMenu(bottomActionMenu: BottomActionMenu) {
|
||||
this.bottomActionMenu = bottomActionMenu
|
||||
bottomActionMenu.configure(
|
||||
R.menu.library_selection
|
||||
) { onActionItemClicked(actionMode!!, it!!) }
|
||||
}
|
||||
|
||||
fun openManga(manga: Manga) {
|
||||
// Notify the presenter a manga is being opened.
|
||||
presenter.onOpenManga()
|
||||
|
||||
Reference in New Issue
Block a user