Fix setting search re-animating on activity recreation (fixes #5882)

This commit is contained in:
arkon 2021-09-18 16:28:58 -04:00
parent 0ec7121b8f
commit 774f818bbb
2 changed files with 4 additions and 6 deletions

View file

@ -68,6 +68,9 @@ abstract class SettingsController : PreferenceController() {
animatePreferenceHighlight(it.itemView) animatePreferenceHighlight(it.itemView)
} }
} }
// Explicitly clear it to avoid re-scrolling/animating on activity recreations
preferenceKey = null
} }
} }
} }

View file

@ -25,7 +25,7 @@ class SettingsSearchController :
/** /**
* Adapter containing search results grouped by lang. * Adapter containing search results grouped by lang.
*/ */
protected var adapter: SettingsSearchAdapter? = null private var adapter: SettingsSearchAdapter? = null
private lateinit var searchView: SearchView private lateinit var searchView: SearchView
init { init {
@ -54,15 +54,12 @@ class SettingsSearchController :
* @param inflater used to load the menu xml. * @param inflater used to load the menu xml.
*/ */
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
// Inflate menu.
inflater.inflate(R.menu.settings_main, menu) inflater.inflate(R.menu.settings_main, menu)
// Initialize search menu // Initialize search menu
val searchItem = menu.findItem(R.id.action_search) val searchItem = menu.findItem(R.id.action_search)
searchView = searchItem.actionView as SearchView searchView = searchItem.actionView as SearchView
searchView.maxWidth = Int.MAX_VALUE searchView.maxWidth = Int.MAX_VALUE
// Change hint to show "search settings."
searchView.queryHint = applicationContext?.getString(R.string.action_search_settings) searchView.queryHint = applicationContext?.getString(R.string.action_search_settings)
searchItem.expandActionView() searchItem.expandActionView()
@ -102,8 +99,6 @@ class SettingsSearchController :
super.onViewCreated(view) super.onViewCreated(view)
adapter = SettingsSearchAdapter(this) adapter = SettingsSearchAdapter(this)
// Create recycler and set adapter.
binding.recycler.layoutManager = LinearLayoutManager(view.context) binding.recycler.layoutManager = LinearLayoutManager(view.context)
binding.recycler.adapter = adapter binding.recycler.adapter = adapter