Skip to content

Commit

Permalink
Fixes Overlapping Conversation Banner Position for Hidden Toolbar
Browse files Browse the repository at this point in the history
  • Loading branch information
Sagar0-0 committed Feb 2, 2025
1 parent 553d783 commit 29ffbb3
Showing 1 changed file with 19 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,15 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.appcompat.widget.SearchView
import androidx.appcompat.widget.Toolbar
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.app.ActivityCompat
import androidx.core.app.ActivityOptionsCompat
import androidx.core.content.ContextCompat
import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.view.ViewCompat
import androidx.core.view.doOnPreDraw
import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentResultListener
import androidx.fragment.app.activityViewModels
Expand Down Expand Up @@ -522,6 +524,7 @@ class ConversationFragment :
private var dataObserver: DataObserver? = null
private var menuProvider: ConversationOptionsMenu.Provider? = null
private var scrollListener: ScrollListener? = null
private var toolBarHeight: Int = 0

private val jumpAndPulseScrollStrategy = object : ScrollToPositionDelegate.ScrollStrategy {
override fun performScroll(recyclerView: RecyclerView, layoutManager: LinearLayoutManager, position: Int, smooth: Boolean) {
Expand All @@ -532,7 +535,9 @@ class ConversationFragment :

private val motionEventRelay: MotionEventRelay by viewModels(ownerProducer = { requireActivity() })

private val actionModeCallback = ActionModeCallback()
private val actionModeCallback by lazy {
ActionModeCallback()
}

private val container: InputAwareConstraintLayout
get() = requireView() as InputAwareConstraintLayout
Expand Down Expand Up @@ -2424,6 +2429,17 @@ class ConversationFragment :
parts.forEach { adapter.toggleSelection(it) }
binding.conversationItemRecycler.invalidateItemDecorations()
actionMode = (requireActivity() as AppCompatActivity).startSupportActionMode(actionModeCallback)
updateConversationBannerMargin()
}

private fun updateConversationBannerMargin() {
binding.conversationBannerFrame.updateLayoutParams<ConstraintLayout.LayoutParams> {
topMargin = if(actionMode==null) {
0
} else {
toolBarHeight
}
}
}

private fun handleViewPaymentDetails(conversationMessage: ConversationMessage) {
Expand Down Expand Up @@ -3669,6 +3685,7 @@ class ConversationFragment :

binding.conversationItemRecycler.invalidateItemDecorations()
actionMode = null
updateConversationBannerMargin()
}
}
// endregion Conversation Callbacks
Expand Down Expand Up @@ -4396,6 +4413,7 @@ class ConversationFragment :
val rect = Rect()
toolbar.getGlobalVisibleRect(rect)
threadHeaderMarginDecoration.toolbarMargin = rect.bottom + 16.dp
toolBarHeight = rect.height()
binding.conversationItemRecycler.invalidateItemDecorations()
toolbar.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
Expand Down

0 comments on commit 29ffbb3

Please sign in to comment.