properly update the menu buttons when appropriate

This commit is contained in:
tibbi 2016-11-21 20:06:48 +01:00
parent 7a9cabe2e8
commit d38c77c3b1

View File

@ -66,18 +66,20 @@ class MainActivity : SimpleActivity(), OpenNoteDialog.OpenNoteListener {
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu, menu) menuInflater.inflate(R.menu.menu, menu)
val openNote = menu.findItem(R.id.open_note)
openNote.isVisible = mNotes.size > 1
val deleteNote = menu.findItem(R.id.delete_note)
deleteNote.isVisible = mNotes.size > 1
val changeNote = menu.findItem(R.id.change_widget_note)
changeNote.isVisible = mNotes.size > 1
return true return true
} }
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
val shouldBeVisible = mNotes.size > 1
menu.apply {
findItem(R.id.open_note).isVisible = shouldBeVisible
findItem(R.id.delete_note).isVisible = shouldBeVisible
findItem(R.id.change_widget_note).isVisible = shouldBeVisible
}
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) { return when (item.itemId) {
R.id.delete_note -> { R.id.delete_note -> {
@ -151,6 +153,7 @@ class MainActivity : SimpleActivity(), OpenNoteDialog.OpenNoteListener {
val id = mDb.insertNote(newNote) val id = mDb.insertNote(newNote)
updateSelectedNote(id) updateSelectedNote(id)
dismiss() dismiss()
mNotes = mDb.getNotes()
invalidateOptionsMenu() invalidateOptionsMenu()
} }
} }
@ -231,9 +234,10 @@ class MainActivity : SimpleActivity(), OpenNoteDialog.OpenNoteListener {
val widgetManager = AppWidgetManager.getInstance(context) val widgetManager = AppWidgetManager.getInstance(context)
val ids = widgetManager.getAppWidgetIds(ComponentName(context, MyWidgetProvider::class.java)) val ids = widgetManager.getAppWidgetIds(ComponentName(context, MyWidgetProvider::class.java))
val intent = Intent(context, MyWidgetProvider::class.java) Intent(context, MyWidgetProvider::class.java).apply {
intent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids) putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids)
context.sendBroadcast(intent) context.sendBroadcast(this)
}
} }
} }