Browse Source

Reopen searchview on tab change for the audio screen

Fixes #1829
pipelines/135724
Nicolas Pomepuy 5 years ago
parent
commit
c1ec13a9b2
  1. 14
      application/vlc-android/src/org/videolan/vlc/gui/ContentActivity.kt
  2. 1
      application/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.kt
  3. 1
      application/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.kt
  4. 15
      application/vlc-android/src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt

14
application/vlc-android/src/org/videolan/vlc/gui/ContentActivity.kt

@ -201,6 +201,20 @@ open class ContentActivity : AudioPlayerContainerActivity(), SearchView.OnQueryT
toolbar.menu?.findItem(R.id.ml_menu_filter)?.collapseActionView()
}
fun openSearchView() {
toolbar.menu?.findItem(R.id.ml_menu_filter)?.expandActionView()
}
fun isSearchViewVisible() =
toolbar.menu?.findItem(R.id.ml_menu_filter)?.isActionViewExpanded ?: false
fun getCurrentQuery() = searchView.query.toString()
fun setCurrentQuery(query:String) {
searchView.setQuery(query, false)
}
private fun restoreCurrentList() {
(currentFragment as? Filterable)?.restoreList()
}

1
application/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.kt

@ -185,6 +185,7 @@ class AudioAlbumsSongsFragment : BaseAudioBrowser<AlbumSongsViewModel>(), SwipeR
menu.findItem(R.id.ml_menu_sortby_media_number).isVisible = canSortByMediaNumber()
}
sortMenuTitles()
reopenSearchIfNeeded()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {

1
application/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.kt

@ -242,6 +242,7 @@ class AudioBrowserFragment : BaseAudioBrowser<AudioBrowserViewModel>() {
showAllArtistsItem.isChecked = Settings.getInstance(context).getBoolean(KEY_ARTISTS_SHOW_ALL, false)
}
sortMenuTitles()
reopenSearchIfNeeded()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {

15
application/vlc-android/src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt

@ -88,6 +88,9 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
open fun getCurrentAdapter() = adapter
var needToReopenSearch = false
var lastQuery = ""
protected var currentTab
get() = if (::viewPager.isInitialized) viewPager.currentItem else 0
set(value) {
@ -214,7 +217,8 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
override fun onTabUnselected(tab: TabLayout.Tab) {
stopActionMode()
(activity as? ContentActivity)?.closeSearchView()
needToReopenSearch = (activity as? ContentActivity)?.isSearchViewVisible() ?: false
lastQuery = (activity as? ContentActivity)?.getCurrentQuery() as String
}
override fun onTabReselected(tab: TabLayout.Tab) {}
@ -268,6 +272,15 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
return true
}
fun reopenSearchIfNeeded() {
if (needToReopenSearch) {
(activity as? ContentActivity)?.openSearchView()
(activity as? ContentActivity)?.setCurrentQuery(lastQuery)
lastQuery = ""
needToReopenSearch = false
}
}
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
if (!isStarted()) return false
val list = getCurrentAdapter()?.multiSelectHelper?.getSelection()

Loading…
Cancel
Save