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
1 changed files with 17 additions and 13 deletions

View File

@ -66,18 +66,20 @@ class MainActivity : SimpleActivity(), OpenNoteDialog.OpenNoteListener {
override fun onCreateOptionsMenu(menu: Menu): Boolean {
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
}
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 {
return when (item.itemId) {
R.id.delete_note -> {
@ -151,6 +153,7 @@ class MainActivity : SimpleActivity(), OpenNoteDialog.OpenNoteListener {
val id = mDb.insertNote(newNote)
updateSelectedNote(id)
dismiss()
mNotes = mDb.getNotes()
invalidateOptionsMenu()
}
}
@ -231,9 +234,10 @@ class MainActivity : SimpleActivity(), OpenNoteDialog.OpenNoteListener {
val widgetManager = AppWidgetManager.getInstance(context)
val ids = widgetManager.getAppWidgetIds(ComponentName(context, MyWidgetProvider::class.java))
val intent = Intent(context, MyWidgetProvider::class.java)
intent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids)
context.sendBroadcast(intent)
Intent(context, MyWidgetProvider::class.java).apply {
action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids)
context.sendBroadcast(this)
}
}
}