Tweak how bottom action menu is configured

This commit is contained in:
arkon
2020-03-08 15:38:42 -04:00
parent 29a2d41331
commit 316211372c
4 changed files with 43 additions and 18 deletions

View File

@@ -0,0 +1,8 @@
package eu.kanade.tachiyomi.ui.base.controller
import eu.kanade.tachiyomi.widget.BottomActionMenu
interface BottomActionMenuController {
fun configureBottomActionMenu(bottomActionMenu: BottomActionMenu)
}

View File

@@ -14,6 +14,7 @@ import eu.kanade.tachiyomi.Migrations
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
import eu.kanade.tachiyomi.ui.base.controller.BottomActionMenuController
import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController
import eu.kanade.tachiyomi.ui.base.controller.RootController
@@ -76,7 +77,7 @@ class MainActivity : BaseActivity() {
if (currentRoot?.tag()?.toIntOrNull() != id) {
when (id) {
R.id.nav_library -> setRoot(LibraryController(), id)
R.id.nav_updates -> setRoot(UpdatesController(bottom_action_menu), id)
R.id.nav_updates -> setRoot(UpdatesController(), id)
R.id.nav_history -> setRoot(HistoryController(), id)
R.id.nav_catalogues -> setRoot(CatalogueController(), id)
R.id.nav_more -> setRoot(MoreController(), id)
@@ -258,6 +259,13 @@ class MainActivity : BaseActivity() {
} else {
appbar.enableElevation()
}
if (from is BottomActionMenuController) {
bottom_action_menu.cleanup()
}
if (to is BottomActionMenuController) {
to.configureBottomActionMenu(bottom_action_menu)
}
}
companion object {

View File

@@ -7,7 +7,6 @@ import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.appcompat.widget.ActionMenuView
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import com.jakewharton.rxbinding.support.v4.widget.refreshes
@@ -19,6 +18,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.ui.base.controller.BottomActionMenuController
import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
import eu.kanade.tachiyomi.ui.base.controller.RootController
@@ -39,9 +39,10 @@ import timber.log.Timber
* Uses [R.layout.updates_controller].
* UI related actions should be called from here.
*/
class UpdatesController() : NucleusController<UpdatesPresenter>(),
class UpdatesController : NucleusController<UpdatesPresenter>(),
RootController,
NoToolbarElevationController,
BottomActionMenuController,
ActionMode.Callback,
FlexibleAdapter.OnItemClickListener,
FlexibleAdapter.OnItemLongClickListener,
@@ -49,10 +50,6 @@ class UpdatesController() : NucleusController<UpdatesPresenter>(),
ConfirmDeleteChaptersDialog.Listener,
UpdatesAdapter.OnCoverClickListener {
constructor(bottomActionMenu: BottomActionMenu) : this() {
this.bottomActionMenu = bottomActionMenu
}
/**
* Action mode for multiple selection.
*/
@@ -299,11 +296,7 @@ class UpdatesController() : NucleusController<UpdatesPresenter>(),
} else {
mode.title = count.toString()
bottomActionMenu?.show(
mode.menuInflater,
R.menu.updates_chapter_selection,
ActionMenuView.OnMenuItemClickListener { onActionItemClicked(actionMode!!, it) }
)
bottomActionMenu?.show(mode.menuInflater)
}
return false
@@ -343,4 +336,11 @@ class UpdatesController() : NucleusController<UpdatesPresenter>(),
adapter.selectAll()
actionMode?.invalidate()
}
override fun configureBottomActionMenu(bottomActionMenu: BottomActionMenu) {
this.bottomActionMenu = bottomActionMenu
bottomActionMenu.configure(
R.menu.updates_chapter_selection
) { onActionItemClicked(actionMode!!, it!!) }
}
}