mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-23 11:15:44 +00:00
Fix inline search display on landscape orientations.
This commit is contained in:
committed by
Cody Henthorne
parent
7d1abf0f7c
commit
33f9369883
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user