private fun Toolbar.showLanguageSpinner() {
if (findViewWithTag<Spinner>(spinnerTag) != null) return
val spinner = AppCompatSpinner(context)
spinner.tag = spinnerTag
val adapter = ArrayAdapter.createFromResource(context,
R.array.languages_entries,
android.R.layout.simple_spinner_item)
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice)
spinner.setPopupBackgroundResource(R.color.colorWhite)
val postiton = context.getPreferences().getCategoriesLangPosition()
Log.d("CategoriesFragment", "position: $postiton")
// Apply the adapter to the spinner
spinner.adapter = adapter
spinner.setSelection(postiton)
spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
if (isFirstTimeSpinner) {
isFirstTimeSpinner = false
return
}
context.getPreferences().saveCategoriesLangPosition(position)
val query = getQuery()
mAdapter.stopListening()
createAdapter(query)
Log.d("CategoriesFragment", "onItemSelected, position: $position, query: ${query.ref}, adapter: $mAdapter")
recycler.adapter = mAdapter
mAdapter.startListening()
}
}
addView(spinner)
}