Commit 6dbccfca by Paktalin

Enables/disables popup menu according to the tag selection

parent 1473c257
...@@ -9,6 +9,7 @@ import android.view.WindowManager ...@@ -9,6 +9,7 @@ import android.view.WindowManager
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.recyclerview.selection.Selection
import com.paktalin.vocabularynotebook.R import com.paktalin.vocabularynotebook.R
import com.paktalin.vocabularynotebook.ui.recycler_view.VocabularyAdapter import com.paktalin.vocabularynotebook.ui.recycler_view.VocabularyAdapter
import com.paktalin.vocabularynotebook.ui.recycler_view.selection_tracker.MySelectionTracker import com.paktalin.vocabularynotebook.ui.recycler_view.selection_tracker.MySelectionTracker
...@@ -120,17 +121,18 @@ class MainActivity : AppCompatActivity() { ...@@ -120,17 +121,18 @@ class MainActivity : AppCompatActivity() {
private fun setUpSelectionTracker() { private fun setUpSelectionTracker() {
vocabularyAdapter.selectionTracker = MySelectionTracker().apply { vocabularyAdapter.selectionTracker = MySelectionTracker().apply {
init(recyclerView) init(recyclerView)
addObserver { selection -> addObserver { selection -> whenSelectionChanges(selection) }
run { }
if (!selection.isEmpty) { }
// TODO disable popup menu
Log.d(TAG, "selection ${selection.toList()}") private fun whenSelectionChanges(selection: Selection<Long>) {
visible(tagLayout) if (!selection.isEmpty) {
} else { vocabularyAdapter.showPopupMenu = false
gone(tagLayout) Log.d(TAG, "selection ${selection.toList()}")
} visible(tagLayout)
} } else {
} vocabularyAdapter.showPopupMenu = true
gone(tagLayout)
} }
} }
......
...@@ -24,6 +24,7 @@ class VocabularyAdapter(private val vocabulary: VocabSet, private val mainActivi ...@@ -24,6 +24,7 @@ class VocabularyAdapter(private val vocabulary: VocabSet, private val mainActivi
private lateinit var recyclerView: RecyclerView private lateinit var recyclerView: RecyclerView
private lateinit var viewHolder: ViewHolder private lateinit var viewHolder: ViewHolder
lateinit var selectionTracker: MySelectionTracker lateinit var selectionTracker: MySelectionTracker
var showPopupMenu = true
init { init {
setHasStableIds(true) setHasStableIds(true)
...@@ -62,20 +63,22 @@ class VocabularyAdapter(private val vocabulary: VocabSet, private val mainActivi ...@@ -62,20 +63,22 @@ class VocabularyAdapter(private val vocabulary: VocabSet, private val mainActivi
} }
private fun showPopupMenu(v: View, position: Int) { private fun showPopupMenu(v: View, position: Int) {
val popup = PopupMenu(mainActivity, v) if (showPopupMenu) {
popup.menuInflater.inflate(R.menu.word_item_menu, popup.menu) val popup = PopupMenu(mainActivity, v)
popup.setOnMenuItemClickListener { popup.menuInflater.inflate(R.menu.word_item_menu, popup.menu)
if (it.itemId == R.id.option_delete) { popup.setOnMenuItemClickListener {
deleteWord(vocabulary.displayedAt(position), position) if (it.itemId == R.id.option_delete) {
deleteWord(vocabulary.displayedAt(position), position)
}
if (it.itemId == R.id.option_edit) {
startEditFragment(v, vocabulary.displayedAt(position))
}
true
} }
if (it.itemId == R.id.option_edit) { // if not edit mode, then start EditFragment
startEditFragment(v, vocabulary.displayedAt(position)) if (mainActivity.supportFragmentManager.findFragmentByTag("edit_fragment") == null)
} popup.show()
true
} }
// if not edit mode, then start EditFragment
if (mainActivity.supportFragmentManager.findFragmentByTag("edit_fragment") == null)
popup.show()
} }
fun refresh() {} fun refresh() {}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment