Remove BaseMenu

This commit is contained in:
2020-12-23 12:23:23 -06:00
parent c15c14ffcd
commit 3523b2c1a3
6 changed files with 21 additions and 120 deletions

View File

@@ -20,6 +20,7 @@
package org.isoron.uhabits.activities.habits.list
import android.os.*
import android.view.*
import kotlinx.coroutines.*
import org.isoron.uhabits.*
import org.isoron.uhabits.activities.*
@@ -43,6 +44,8 @@ class ListHabitsActivity : HabitsActivity() {
lateinit var syncManager: SyncManager
private val scope = CoroutineScope(Dispatchers.Main)
private lateinit var menu: ListHabitsMenu
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
prefs = appComponent.preferences
@@ -53,6 +56,7 @@ class ListHabitsActivity : HabitsActivity() {
screen = component.listHabitsScreen
adapter = component.habitCardListAdapter
taskRunner = appComponent.taskRunner
menu = component.listHabitsMenu
setScreen(screen)
component.listHabitsBehavior.onStartup()
@@ -85,4 +89,13 @@ class ListHabitsActivity : HabitsActivity() {
}
super.onResume()
}
override fun onCreateOptionsMenu(m: Menu): Boolean {
menu.onCreate(menuInflater, m)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return menu.onItemSelected(item)
}
}

View File

@@ -29,23 +29,24 @@ import javax.inject.*
@ActivityScope
class ListHabitsMenu @Inject constructor(
activity: BaseActivity,
private val activity: BaseActivity,
private val preferences: Preferences,
private val themeSwitcher: ThemeSwitcher,
private val behavior: ListHabitsMenuBehavior
) : BaseMenu(activity){
) {
override fun onCreate(menu: Menu) {
fun onCreate(inflater: MenuInflater, menu: Menu) {
menu.clear()
inflater.inflate(R.menu.list_habits, menu)
val nightModeItem = menu.findItem(R.id.actionToggleNightMode)
val hideArchivedItem = menu.findItem(R.id.actionHideArchived)
val hideCompletedItem = menu.findItem(R.id.actionHideCompleted)
nightModeItem.isChecked = themeSwitcher.isNightMode
hideArchivedItem.isChecked = !preferences.showArchived
hideCompletedItem.isChecked = !preferences.showCompleted
}
override fun onItemSelected(item: MenuItem): Boolean {
fun onItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.actionToggleNightMode -> {
behavior.onToggleNightMode()
@@ -74,13 +75,13 @@ class ListHabitsMenu @Inject constructor(
R.id.actionHideArchived -> {
behavior.onToggleShowArchived()
invalidate()
activity.invalidateOptionsMenu()
return true
}
R.id.actionHideCompleted -> {
behavior.onToggleShowCompleted()
invalidate()
activity.invalidateOptionsMenu()
return true
}
@@ -112,6 +113,4 @@ class ListHabitsMenu @Inject constructor(
else -> return false
}
}
override fun getMenuResourceId() = R.menu.list_habits
}

View File

@@ -67,7 +67,6 @@ class ListHabitsScreen
private val colorPickerFactory: ColorPickerDialogFactory,
private val numberPickerFactory: NumberPickerFactory,
private val behavior: Lazy<ListHabitsBehavior>,
private val menu: Lazy<ListHabitsMenu>,
private val selectionMenu: Lazy<ListHabitsSelectionMenu>
) : BaseScreen(activity),
CommandRunner.Listener,
@@ -80,7 +79,6 @@ class ListHabitsScreen
}
fun onAttached() {
setMenu(menu.get())
setSelectionMenu(selectionMenu.get())
commandRunner.addListener(this)
if(activity.intent.action == "android.intent.action.VIEW") {