Singletonize GalleryListScene OnBackPressedCallback

This commit is contained in:
tarsin committed 2023-01-06 18:11:41 +08:00
1 parent a8b83871a4
commit c7dc94b61b
1 file changed
+9 -11
@@ -116,7 +116,15 @@ import java.time.ZoneOffset
class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.Helper,
OnClickFabListener, OnExpandListener {
private val mCallback = SearchStateOnBackPressedCallback()
private val mCallback = object : OnBackPressedCallback(false) {
override fun handleOnBackPressed() {
when (mState) {
STATE_NORMAL -> throw IllegalStateException("SearchStateOnBackPressedCallback should not be enabled on STATE_NORMAL")
STATE_SIMPLE_SEARCH, STATE_SEARCH -> setState(STATE_NORMAL)
STATE_SEARCH_SHOW_LIST -> setState(STATE_SEARCH)
}
}
}
private lateinit var mUrlBuilder: ListUrlBuilder
private var _binding: SceneGalleryListBinding? = null
private val binding get() = _binding!!
@@ -1437,16 +1445,6 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
}
}
internal inner class SearchStateOnBackPressedCallback : OnBackPressedCallback(false) {
override fun handleOnBackPressed() {
when (mState) {
STATE_NORMAL -> throw IllegalStateException("SearchStateOnBackPressedCallback should not be enabled on STATE_NORMAL")
STATE_SIMPLE_SEARCH, STATE_SEARCH -> setState(STATE_NORMAL)
STATE_SEARCH_SHOW_LIST -> setState(STATE_SEARCH)
}
}
}
companion object {
const val KEY_ACTION = "action"
const val ACTION_HOMEPAGE = "action_homepage"