diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index f914d1edb9..2e3099c80d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -260,19 +260,22 @@ open class MainActivity : BaseActivity() { 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) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt index 35212cd50f..4ec83faef8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt @@ -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(), - FloatingSearchInterface, - SmallToolbarInterface, + SearchControllerInterface, SettingsSearchAdapter.OnTitleClickListener { /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt index 5f536c3979..26eb245175 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt @@ -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(bundle), - FloatingSearchInterface, - SmallToolbarInterface, + SearchControllerInterface, GlobalSearchAdapter.OnTitleClickListener, GlobalSearchCardAdapter.OnMangaClickListener { diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt index 26ae0945a9..9804b62f66 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt @@ -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