Add back press animation to search controllers

This commit is contained in:
Jays2Kings 2023-10-16 21:51:20 -07:00
parent 59e11ff486
commit 75a750d779
4 changed files with 13 additions and 12 deletions

View file

@ -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) {

View file

@ -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 {
/**

View file

@ -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 {

View file

@ -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