mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Minor settings search code cleanup
This commit is contained in:
		| @@ -253,9 +253,7 @@ class PreferencesHelper(val context: Context) { | ||||
|  | ||||
|     fun enableDoh() = prefs.getBoolean(Keys.enableDoh, false) | ||||
|  | ||||
|     fun lastSearchQuerySearchSettings() = prefs.getString("last_search_query", "") | ||||
|      | ||||
|     fun lastSearchQuerySearchSettings(query: String) = prefs.edit { putString("last_search_query", query) } | ||||
|     fun lastSearchQuerySearchSettings() = flowPrefs.getString("last_search_query", "") | ||||
|  | ||||
|     fun filterChapterByRead() = prefs.getInt(Keys.defaultChapterFilterByRead, Manga.SHOW_ALL) | ||||
|  | ||||
|   | ||||
| @@ -100,16 +100,18 @@ class SettingsMainController : SettingsController() { | ||||
|         // Change hint to show global search. | ||||
|         searchView.queryHint = applicationContext?.getString(R.string.action_search_settings) | ||||
|  | ||||
|         searchItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { | ||||
|             override fun onMenuItemActionExpand(item: MenuItem?): Boolean { | ||||
|                 preferences.lastSearchQuerySearchSettings("") // reset saved search query | ||||
|                 router.pushController(SettingsSearchController().withFadeTransaction()) | ||||
|                 return true | ||||
|             } | ||||
|         searchItem.setOnActionExpandListener( | ||||
|             object : MenuItem.OnActionExpandListener { | ||||
|                 override fun onMenuItemActionExpand(item: MenuItem?): Boolean { | ||||
|                     preferences.lastSearchQuerySearchSettings().set("") // reset saved search query | ||||
|                     router.pushController(SettingsSearchController().withFadeTransaction()) | ||||
|                     return true | ||||
|                 } | ||||
|  | ||||
|             override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { | ||||
|                 return true | ||||
|                 override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { | ||||
|                     return true | ||||
|                 } | ||||
|             } | ||||
|         }) | ||||
|         ) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -22,7 +22,11 @@ class SettingsSearchAdapter(val controller: SettingsSearchController) : | ||||
|      */ | ||||
|     private var bundle = Bundle() | ||||
|  | ||||
|     override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int, payloads: List<Any?>) { | ||||
|     override fun onBindViewHolder( | ||||
|         holder: RecyclerView.ViewHolder, | ||||
|         position: Int, | ||||
|         payloads: List<Any?> | ||||
|     ) { | ||||
|         super.onBindViewHolder(holder, position, payloads) | ||||
|         restoreHolderState(holder) | ||||
|     } | ||||
|   | ||||
| @@ -27,7 +27,7 @@ class SettingsSearchController : | ||||
|      * Adapter containing search results grouped by lang. | ||||
|      */ | ||||
|     protected var adapter: SettingsSearchAdapter? = null | ||||
|     lateinit var searchView: SearchView | ||||
|     private lateinit var searchView: SearchView | ||||
|  | ||||
|     init { | ||||
|         setHasOptionsMenu(true) | ||||
| @@ -79,30 +79,34 @@ class SettingsSearchController : | ||||
|         searchItem.expandActionView() | ||||
|         setItems(getResultSet()) | ||||
|  | ||||
|         searchItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { | ||||
|             override fun onMenuItemActionExpand(item: MenuItem?): Boolean { | ||||
|                 return true | ||||
|             } | ||||
|         searchItem.setOnActionExpandListener( | ||||
|             object : MenuItem.OnActionExpandListener { | ||||
|                 override fun onMenuItemActionExpand(item: MenuItem?): Boolean { | ||||
|                     return true | ||||
|                 } | ||||
|  | ||||
|             override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { | ||||
|                 router.popCurrentController() | ||||
|                 return false | ||||
|                 override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { | ||||
|                     router.popCurrentController() | ||||
|                     return false | ||||
|                 } | ||||
|             } | ||||
|         }) | ||||
|         ) | ||||
|  | ||||
|         searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { | ||||
|             override fun onQueryTextSubmit(query: String?): Boolean { | ||||
|                 setItems(getResultSet(query)) | ||||
|                 return false | ||||
|         searchView.setOnQueryTextListener( | ||||
|             object : SearchView.OnQueryTextListener { | ||||
|                 override fun onQueryTextSubmit(query: String?): Boolean { | ||||
|                     setItems(getResultSet(query)) | ||||
|                     return false | ||||
|                 } | ||||
|  | ||||
|                 override fun onQueryTextChange(newText: String?): Boolean { | ||||
|                     setItems(getResultSet(newText)) | ||||
|                     return false | ||||
|                 } | ||||
|             } | ||||
|         ) | ||||
|  | ||||
|             override fun onQueryTextChange(newText: String?): Boolean { | ||||
|                 setItems(getResultSet(newText)) | ||||
|                 return false | ||||
|             } | ||||
|         }) | ||||
|  | ||||
|         searchView.setQuery(presenter.preferences.lastSearchQuerySearchSettings(), true) | ||||
|         searchView.setQuery(presenter.preferences.lastSearchQuerySearchSettings().get(), true) | ||||
|     } | ||||
|  | ||||
|     override fun onViewCreated(view: View) { | ||||
| @@ -160,7 +164,7 @@ class SettingsSearchController : | ||||
|      */ | ||||
|     override fun onTitleClick(ctrl: SettingsController) { | ||||
|         searchView.query.let { | ||||
|             presenter.preferences.lastSearchQuerySearchSettings(it.toString()) | ||||
|             presenter.preferences.lastSearchQuerySearchSettings().set(it.toString()) | ||||
|         } | ||||
|  | ||||
|         router.pushController(ctrl.withFadeTransaction()) | ||||
|   | ||||
| @@ -24,8 +24,7 @@ import kotlin.reflect.KClass | ||||
| import kotlin.reflect.full.createInstance | ||||
|  | ||||
| object SettingsSearchHelper { | ||||
|     var prefSearchResultList: MutableList<SettingsSearchResult> = mutableListOf() | ||||
|         private set | ||||
|     private var prefSearchResultList: MutableList<SettingsSearchResult> = mutableListOf() | ||||
|  | ||||
|     /** | ||||
|      * All subclasses of `SettingsController` should be listed here, in order to have their preferences searchable. | ||||
| @@ -79,7 +78,11 @@ object SettingsSearchHelper { | ||||
|      * Extracts the data needed from a `Preference` to create a `SettingsSearchResult`, and then adds it to `prefSearchResultList` | ||||
|      * Future enhancement: make bold the text matched by the search query. | ||||
|      */ | ||||
|     private fun getSettingSearchResult(ctrl: SettingsController, pref: Preference, breadcrumbs: String = "") { | ||||
|     private fun getSettingSearchResult( | ||||
|         ctrl: SettingsController, | ||||
|         pref: Preference, | ||||
|         breadcrumbs: String = "" | ||||
|     ) { | ||||
|         when (pref) { | ||||
|             is PreferenceGroup -> { | ||||
|                 val breadcrumbsStr = addLocalizedBreadcrumb(breadcrumbs, "${pref.title}") | ||||
|   | ||||
| @@ -2,11 +2,11 @@ package eu.kanade.tachiyomi.ui.setting.settingssearch | ||||
|  | ||||
| import android.view.View | ||||
| import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder | ||||
| import kotlin.reflect.full.createInstance | ||||
| import kotlinx.android.synthetic.main.settings_search_controller_card.search_result_pref_breadcrumb | ||||
| import kotlinx.android.synthetic.main.settings_search_controller_card.search_result_pref_summary | ||||
| import kotlinx.android.synthetic.main.settings_search_controller_card.search_result_pref_title | ||||
| import kotlinx.android.synthetic.main.settings_search_controller_card.title_wrapper | ||||
| import kotlin.reflect.full.createInstance | ||||
|  | ||||
| /** | ||||
|  * Holder that binds the [SettingsSearchItem] containing catalogue cards. | ||||
|   | ||||
| @@ -13,7 +13,10 @@ import eu.kanade.tachiyomi.R | ||||
|  * @param pref the source for the search results. | ||||
|  * @param results the search results. | ||||
|  */ | ||||
| class SettingsSearchItem(val settingsSearchResult: SettingsSearchHelper.SettingsSearchResult, val results: List<SettingsSearchItem>?) : | ||||
| class SettingsSearchItem( | ||||
|     val settingsSearchResult: SettingsSearchHelper.SettingsSearchResult, | ||||
|     val results: List<SettingsSearchItem>? | ||||
| ) : | ||||
|     AbstractFlexibleItem<SettingsSearchHolder>() { | ||||
|  | ||||
|     override fun getLayoutRes(): Int { | ||||
| @@ -25,7 +28,10 @@ class SettingsSearchItem(val settingsSearchResult: SettingsSearchHelper.Settings | ||||
|      * | ||||
|      * @return holder of view. | ||||
|      */ | ||||
|     override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): SettingsSearchHolder { | ||||
|     override fun createViewHolder( | ||||
|         view: View, | ||||
|         adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>> | ||||
|     ): SettingsSearchHolder { | ||||
|         return SettingsSearchHolder(view, adapter as SettingsSearchAdapter) | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user