Skip to content

Commit 4b29f6b

Browse files
committed
mbrc-91 (#91) Library search mode doesn't close automatically
1 parent 1a57c22 commit 4b29f6b

File tree

2 files changed

+33
-10
lines changed

2 files changed

+33
-10
lines changed

app/src/main/kotlin/com/kelsos/mbrc/ui/navigation/library/LibraryActivity.kt

+32-9
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ class LibraryActivity : BaseActivity(),
3232
@BindView(R.id.search_pager) lateinit var pager: ViewPager
3333
@BindView(R.id.pager_tab_strip) lateinit var tabs: TabLayout
3434

35-
private var mSearchView: SearchView? = null
36-
private var searchView: MenuItem? = null
35+
private var searchView: SearchView? = null
36+
private var searchMenuItem: MenuItem? = null
3737
private var albumArtistOnly: MenuItem? = null
3838
private var pagerAdapter: LibraryPagerAdapter? = null
3939
private var scope: Scope? = null
@@ -43,15 +43,31 @@ class LibraryActivity : BaseActivity(),
4343

4444
override fun onQueryTextSubmit(query: String): Boolean {
4545
if (!TextUtils.isEmpty(query) && query.trim { it <= ' ' }.isNotEmpty()) {
46+
closeSearch()
47+
4648
val searchIntent = Intent(this, SearchResultsActivity::class.java)
4749
searchIntent.putExtra(SearchResultsActivity.QUERY, query.trim { it <= ' ' })
4850
startActivity(searchIntent)
4951
}
50-
mSearchView!!.isIconified = true
51-
MenuItemCompat.collapseActionView(searchView)
52+
5253
return true
5354
}
5455

56+
private fun closeSearch(): Boolean {
57+
searchView?.let {
58+
if (it.isShown) {
59+
it.isIconified = true
60+
it.isFocusable = false
61+
it.clearFocus()
62+
it.setQuery("", false)
63+
searchMenuItem?.collapseActionView()
64+
MenuItemCompat.collapseActionView(searchMenuItem)
65+
return true
66+
}
67+
}
68+
return false
69+
}
70+
5571
override fun onQueryTextChange(newText: String): Boolean {
5672
return false
5773
}
@@ -72,12 +88,12 @@ class LibraryActivity : BaseActivity(),
7288

7389
override fun onCreateOptionsMenu(menu: Menu): Boolean {
7490
menuInflater.inflate(R.menu.library_search, menu)
75-
searchView = menu.findItem(R.id.library_search_item)
91+
searchMenuItem = menu.findItem(R.id.library_search_item)
7692
albumArtistOnly = menu.findItem(R.id.library_album_artist)
77-
mSearchView = MenuItemCompat.getActionView(searchView) as SearchView
78-
mSearchView!!.queryHint = getString(R.string.library_search_hint)
79-
mSearchView!!.setIconifiedByDefault(true)
80-
mSearchView!!.setOnQueryTextListener(this)
93+
searchView = MenuItemCompat.getActionView(searchMenuItem) as SearchView
94+
searchView!!.queryHint = getString(R.string.library_search_hint)
95+
searchView!!.setIconifiedByDefault(true)
96+
searchView!!.setOnQueryTextListener(this)
8197
presenter.loadArtistPreference()
8298
return super.onCreateOptionsMenu(menu)
8399
}
@@ -113,6 +129,13 @@ class LibraryActivity : BaseActivity(),
113129
presenter.detach()
114130
}
115131

132+
override fun onBackPressed() {
133+
if (closeSearch()) {
134+
return
135+
}
136+
super.onBackPressed()
137+
}
138+
116139
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
117140

118141
}

app/src/main/res/menu/library_search.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
android:icon="@drawable/ic_search_black_24dp"
99
android:title="@string/now_playing_search"
1010
mbrc:actionViewClass="android.support.v7.widget.SearchView"
11-
mbrc:showAsAction="always"/>
11+
mbrc:showAsAction="always|collapseActionView"/>
1212
<item
1313
android:id="@+id/library_refresh_item"
1414
android:icon="@drawable/ic_refresh_black_24dp"

0 commit comments

Comments
 (0)