mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
Add back press animation to search controllers
This commit is contained in:
parent
59e11ff486
commit
75a750d779
4 changed files with 13 additions and 12 deletions
|
@ -260,19 +260,22 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
|
|||
|
||||
override fun handleOnBackStarted(backEvent: BackEventCompat) {
|
||||
controllerHandlesBackPress = false
|
||||
val controller by lazy { router.backstack.lastOrNull()?.controller }
|
||||
if (!(
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
|
||||
ViewCompat.getRootWindowInsets(window.decorView)
|
||||
?.isVisible(WindowInsetsCompat.Type.ime()) == true
|
||||
) &&
|
||||
actionMode == null &&
|
||||
!(binding.searchToolbar.hasExpandedActionView() && binding.cardFrame.isVisible)
|
||||
!(
|
||||
binding.searchToolbar.hasExpandedActionView() && binding.cardFrame.isVisible &&
|
||||
controller !is SearchControllerInterface
|
||||
)
|
||||
) {
|
||||
controllerHandlesBackPress = true
|
||||
}
|
||||
if (controllerHandlesBackPress) {
|
||||
val controller = router.backstack.lastOrNull()?.controller as? BackHandlerControllerInterface
|
||||
controller?.handleOnBackStarted(backEvent)
|
||||
(controller as? BackHandlerControllerInterface)?.handleOnBackStarted(backEvent)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1514,6 +1517,8 @@ interface HingeSupportedController {
|
|||
fun updateForHinge()
|
||||
}
|
||||
|
||||
interface SearchControllerInterface : FloatingSearchInterface, SmallToolbarInterface
|
||||
|
||||
interface FloatingSearchInterface {
|
||||
fun searchTitle(title: String?): String? {
|
||||
if (this is Controller) {
|
||||
|
|
|
@ -10,9 +10,8 @@ import androidx.appcompat.widget.SearchView
|
|||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.databinding.SettingsSearchControllerBinding
|
||||
import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
||||
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
|
||||
import eu.kanade.tachiyomi.ui.main.SearchControllerInterface
|
||||
import eu.kanade.tachiyomi.ui.setting.SettingsController
|
||||
import eu.kanade.tachiyomi.util.view.activityBinding
|
||||
import eu.kanade.tachiyomi.util.view.liftAppbarWith
|
||||
|
@ -25,8 +24,7 @@ import uy.kohesive.injekt.api.get
|
|||
*/
|
||||
class SettingsSearchController :
|
||||
BaseController<SettingsSearchControllerBinding>(),
|
||||
FloatingSearchInterface,
|
||||
SmallToolbarInterface,
|
||||
SearchControllerInterface,
|
||||
SettingsSearchAdapter.OnTitleClickListener {
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,11 +16,10 @@ import eu.kanade.tachiyomi.data.database.models.Manga
|
|||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.databinding.SourceGlobalSearchControllerBinding
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BaseCoroutineController
|
||||
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.main.SearchActivity
|
||||
import eu.kanade.tachiyomi.ui.main.SearchControllerInterface
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaDetailsController
|
||||
import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
|
||||
import eu.kanade.tachiyomi.util.addOrRemoveToFavorites
|
||||
|
@ -44,8 +43,7 @@ open class GlobalSearchController(
|
|||
val extensionFilter: String? = null,
|
||||
bundle: Bundle? = null,
|
||||
) : BaseCoroutineController<SourceGlobalSearchControllerBinding, GlobalSearchPresenter>(bundle),
|
||||
FloatingSearchInterface,
|
||||
SmallToolbarInterface,
|
||||
SearchControllerInterface,
|
||||
GlobalSearchAdapter.OnTitleClickListener,
|
||||
GlobalSearchCardAdapter.OnMangaClickListener {
|
||||
|
||||
|
|
|
@ -56,8 +56,8 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|||
import eu.kanade.tachiyomi.databinding.MainActivityBinding
|
||||
import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.CrossFadeChangeHandler
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.OneWayFadeChangeHandler
|
||||
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue