mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Fix catalogue search focus automatically being removed (#2396)
Fix catalogue search focus automatically being removed
This commit is contained in:
		| @@ -89,15 +89,16 @@ abstract class BaseController(bundle: Bundle? = null) : RestoreViewOnCreateContr | ||||
|      * This method should be removed when fixed upstream. | ||||
|      * Issue link: https://issuetracker.google.com/issues/37657375 | ||||
|      */ | ||||
|     fun MenuItem.fixExpand() { | ||||
|     fun MenuItem.fixExpand(onExpand: ((MenuItem) -> Boolean)? = null, onCollapse: ((MenuItem) -> Boolean)? = null) { | ||||
|         setOnActionExpandListener(object : MenuItem.OnActionExpandListener { | ||||
|             override fun onMenuItemActionExpand(item: MenuItem): Boolean { | ||||
|                 return true | ||||
|                 return onExpand?.invoke(item) ?: true | ||||
|             } | ||||
|  | ||||
|             override fun onMenuItemActionCollapse(item: MenuItem): Boolean { | ||||
|                 activity?.invalidateOptionsMenu() | ||||
|                 return true | ||||
|  | ||||
|                 return onCollapse?.invoke(item) ?: true | ||||
|             } | ||||
|         }) | ||||
|     } | ||||
|   | ||||
| @@ -36,7 +36,6 @@ import kotlinx.android.synthetic.main.main_activity.* | ||||
| import rx.Observable | ||||
| import rx.Subscription | ||||
| import rx.android.schedulers.AndroidSchedulers | ||||
| import rx.subscriptions.Subscriptions | ||||
| import timber.log.Timber | ||||
| import uy.kohesive.injekt.injectLazy | ||||
| import java.util.concurrent.TimeUnit | ||||
| @@ -228,6 +227,7 @@ open class BrowseCatalogueController(bundle: Bundle) : | ||||
|  | ||||
|             val searchEventsObservable = searchView.queryTextChangeEvents() | ||||
|                     .skip(1) | ||||
|                     .filter { router.backstack.lastOrNull()?.controller() == this@BrowseCatalogueController } | ||||
|                     .share() | ||||
|             val writingObservable = searchEventsObservable | ||||
|                     .filter { !it.isSubmitted } | ||||
| @@ -238,11 +238,12 @@ open class BrowseCatalogueController(bundle: Bundle) : | ||||
|             searchViewSubscription?.unsubscribe() | ||||
|             searchViewSubscription = Observable.merge(writingObservable, submitObservable) | ||||
|                     .map { it.queryText().toString() } | ||||
|                     .distinctUntilChanged() | ||||
|                     .subscribeUntilDestroy { searchWithQuery(it) } | ||||
|  | ||||
|             untilDestroySubscriptions.add( | ||||
|                     Subscriptions.create { if (isActionViewExpanded) collapseActionView() }) | ||||
|             fixExpand(onCollapse = { | ||||
|                 searchWithQuery("") | ||||
|                 true | ||||
|             }) | ||||
|         } | ||||
|  | ||||
|         // Setup filters button | ||||
| @@ -310,11 +311,6 @@ open class BrowseCatalogueController(bundle: Bundle) : | ||||
|         if (presenter.query == newQuery) | ||||
|             return | ||||
|  | ||||
|         // FIXME dirty fix to restore the toolbar buttons after closing search mode. | ||||
|         if (newQuery == "") { | ||||
|             activity?.invalidateOptionsMenu() | ||||
|         } | ||||
|  | ||||
|         showProgressBar() | ||||
|         adapter?.clear() | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user