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) {
|
override fun handleOnBackStarted(backEvent: BackEventCompat) {
|
||||||
controllerHandlesBackPress = false
|
controllerHandlesBackPress = false
|
||||||
|
val controller by lazy { router.backstack.lastOrNull()?.controller }
|
||||||
if (!(
|
if (!(
|
||||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
|
||||||
ViewCompat.getRootWindowInsets(window.decorView)
|
ViewCompat.getRootWindowInsets(window.decorView)
|
||||||
?.isVisible(WindowInsetsCompat.Type.ime()) == true
|
?.isVisible(WindowInsetsCompat.Type.ime()) == true
|
||||||
) &&
|
) &&
|
||||||
actionMode == null &&
|
actionMode == null &&
|
||||||
!(binding.searchToolbar.hasExpandedActionView() && binding.cardFrame.isVisible)
|
!(
|
||||||
|
binding.searchToolbar.hasExpandedActionView() && binding.cardFrame.isVisible &&
|
||||||
|
controller !is SearchControllerInterface
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
controllerHandlesBackPress = true
|
controllerHandlesBackPress = true
|
||||||
}
|
}
|
||||||
if (controllerHandlesBackPress) {
|
if (controllerHandlesBackPress) {
|
||||||
val controller = router.backstack.lastOrNull()?.controller as? BackHandlerControllerInterface
|
(controller as? BackHandlerControllerInterface)?.handleOnBackStarted(backEvent)
|
||||||
controller?.handleOnBackStarted(backEvent)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1514,6 +1517,8 @@ interface HingeSupportedController {
|
||||||
fun updateForHinge()
|
fun updateForHinge()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface SearchControllerInterface : FloatingSearchInterface, SmallToolbarInterface
|
||||||
|
|
||||||
interface FloatingSearchInterface {
|
interface FloatingSearchInterface {
|
||||||
fun searchTitle(title: String?): String? {
|
fun searchTitle(title: String?): String? {
|
||||||
if (this is Controller) {
|
if (this is Controller) {
|
||||||
|
|
|
@ -10,9 +10,8 @@ import androidx.appcompat.widget.SearchView
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.databinding.SettingsSearchControllerBinding
|
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.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.ui.setting.SettingsController
|
||||||
import eu.kanade.tachiyomi.util.view.activityBinding
|
import eu.kanade.tachiyomi.util.view.activityBinding
|
||||||
import eu.kanade.tachiyomi.util.view.liftAppbarWith
|
import eu.kanade.tachiyomi.util.view.liftAppbarWith
|
||||||
|
@ -25,8 +24,7 @@ import uy.kohesive.injekt.api.get
|
||||||
*/
|
*/
|
||||||
class SettingsSearchController :
|
class SettingsSearchController :
|
||||||
BaseController<SettingsSearchControllerBinding>(),
|
BaseController<SettingsSearchControllerBinding>(),
|
||||||
FloatingSearchInterface,
|
SearchControllerInterface,
|
||||||
SmallToolbarInterface,
|
|
||||||
SettingsSearchAdapter.OnTitleClickListener {
|
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.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.databinding.SourceGlobalSearchControllerBinding
|
import eu.kanade.tachiyomi.databinding.SourceGlobalSearchControllerBinding
|
||||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
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.base.controller.BaseCoroutineController
|
||||||
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
|
|
||||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||||
import eu.kanade.tachiyomi.ui.main.SearchActivity
|
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.manga.MangaDetailsController
|
||||||
import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
|
import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
|
||||||
import eu.kanade.tachiyomi.util.addOrRemoveToFavorites
|
import eu.kanade.tachiyomi.util.addOrRemoveToFavorites
|
||||||
|
@ -44,8 +43,7 @@ open class GlobalSearchController(
|
||||||
val extensionFilter: String? = null,
|
val extensionFilter: String? = null,
|
||||||
bundle: Bundle? = null,
|
bundle: Bundle? = null,
|
||||||
) : BaseCoroutineController<SourceGlobalSearchControllerBinding, GlobalSearchPresenter>(bundle),
|
) : BaseCoroutineController<SourceGlobalSearchControllerBinding, GlobalSearchPresenter>(bundle),
|
||||||
FloatingSearchInterface,
|
SearchControllerInterface,
|
||||||
SmallToolbarInterface,
|
|
||||||
GlobalSearchAdapter.OnTitleClickListener,
|
GlobalSearchAdapter.OnTitleClickListener,
|
||||||
GlobalSearchCardAdapter.OnMangaClickListener {
|
GlobalSearchCardAdapter.OnMangaClickListener {
|
||||||
|
|
||||||
|
|
|
@ -56,8 +56,8 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.databinding.MainActivityBinding
|
import eu.kanade.tachiyomi.databinding.MainActivityBinding
|
||||||
import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface
|
import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
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.CrossFadeChangeHandler
|
||||||
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.OneWayFadeChangeHandler
|
import eu.kanade.tachiyomi.ui.base.controller.OneWayFadeChangeHandler
|
||||||
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
|
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
|
||||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue