Fix inline search display on landscape orientations.

This commit is contained in:
Alex Hart
2025-10-15 10:03:53 -03:00
committed by Cody Henthorne
parent 7d1abf0f7c
commit 33f9369883
2 changed files with 8 additions and 7 deletions

View File

@@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.components.ComposeText
import org.thoughtcrime.securesms.conversation.ui.mentions.MentionsPickerFragmentV2
import org.thoughtcrime.securesms.util.adapter.mapping.AnyMappingModel
import org.thoughtcrime.securesms.util.doOnEachLayout
import org.thoughtcrime.securesms.window.WindowSizeClass
/**
* Controller for inline search results.
@@ -36,7 +37,7 @@ class InlineQueryResultsControllerV2(
private var mentionFragment: MentionsPickerFragmentV2? = null
private var previousResults: InlineQueryViewModelV2.Results? = null
private var canShow: Boolean = false
private var isLandscape: Boolean = false
private var shouldHideForWindowSizeClass: Boolean = false
init {
lifecycleDisposable.bindTo(parentFragment.viewLifecycleOwner)
@@ -69,10 +70,10 @@ class InlineQueryResultsControllerV2(
emojiPopup = null
}
fun onOrientationChange(isLandscape: Boolean) {
this.isLandscape = isLandscape
fun onWindowSizeClassChanged(windowSizeClass: WindowSizeClass) {
this.shouldHideForWindowSizeClass = windowSizeClass == WindowSizeClass.COMPACT_LANDSCAPE
if (isLandscape) {
if (shouldHideForWindowSizeClass) {
dismiss()
} else {
updateList(previousResults ?: InlineQueryViewModelV2.None)
@@ -81,7 +82,7 @@ class InlineQueryResultsControllerV2(
private fun updateList(results: InlineQueryViewModelV2.Results) {
previousResults = results
if (results is InlineQueryViewModelV2.None || !canShow || isLandscape) {
if (results is InlineQueryViewModelV2.None || !canShow || shouldHideForWindowSizeClass) {
dismiss()
} else if (results is InlineQueryViewModelV2.EmojiResults) {
showEmojiPopup(results)

View File

@@ -747,7 +747,7 @@ class ConversationFragment :
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
ToolbarDependentMarginListener(binding.toolbar)
inlineQueryController.onOrientationChange(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
inlineQueryController.onWindowSizeClassChanged(resources.getWindowSizeClass())
}
override fun onDestroyView() {
@@ -1218,7 +1218,7 @@ class ConversationFragment :
}
private fun initializeInlineSearch() {
inlineQueryController.onOrientationChange(resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE)
inlineQueryController.onWindowSizeClassChanged(resources.getWindowSizeClass())
composeText.apply {
setInlineQueryChangedListener(object : InlineQueryChangedListener {