Compare commits

...

2 Commits

Author SHA1 Message Date
jeffrey-signal 955b8c382e Bump version to 8.11.5 2026-05-21 17:00:08 -04:00
Cody Henthorne 6f7dce47db Fix chat bubbles not rendering due to ConstraintLayout bug. 2026-05-21 13:27:33 -04:00
2 changed files with 19 additions and 9 deletions
+2 -2
View File
@@ -28,8 +28,8 @@ val staticIps = Properties().apply { file("static-ips.properties").reader().use
staticIps.stringPropertyNames().forEach { rootProject.extra[it] = staticIps.getProperty(it) }
val canonicalVersionCode = 1692
val canonicalVersionName = "8.11.4"
val currentHotfixVersion = 0
val canonicalVersionName = "8.11.5"
val currentHotfixVersion = 1
val maxHotfixVersions = 100
// We don't want versions to ever end in 0 so that they don't conflict with nightly versions
@@ -607,6 +607,8 @@ class ConversationFragment :
private var releaseNotesLayoutApplied: Boolean = false
private var releaseNotesWallpaperApplied: Boolean = false
private var applyToolbarPaddingRunnable: Runnable? = null
private val jumpAndPulseScrollStrategy = object : ScrollToPositionDelegate.ScrollStrategy {
override fun performScroll(recyclerView: RecyclerView, layoutManager: LinearLayoutManager, position: Int, smooth: Boolean) {
ScrollToPositionDelegate.JumpToPositionStrategy.performScroll(recyclerView, layoutManager, position, smooth)
@@ -766,17 +768,25 @@ class ConversationFragment :
}
binding.toolbar.addOnLayoutChangeListener { _, _, _, _, bottom, _, _, _, oldBottom ->
// Bug: ConstraintLayout's solver can transiently place the toolbar at a negative position during the very first layout, preventing future RV layouts
// Bug: ConstraintLayout can provide a negative value for the toolbar causing RV layout problems
if (bottom < 0) return@addOnLayoutChangeListener
binding.conversationItemRecycler.padding(top = bottom)
if (bottom != oldBottom && ::conversationHeaderPositionDecoration.isInitialized) {
val newMargin = bottom + 16.dp
if (conversationHeaderPositionDecoration.toolbarMargin != newMargin) {
conversationHeaderPositionDecoration.toolbarMargin = newMargin
binding.conversationItemRecycler.invalidateItemDecorations()
// Bug: LinearLayoutManger can get stuck and not layout children under Compose's AndroidFragment if updated too quickly.
val rv = binding.conversationItemRecycler
applyToolbarPaddingRunnable?.let { rv.removeCallbacks(it) }
val runnable = Runnable {
if (view == null) return@Runnable
rv.padding(top = bottom)
if (bottom != oldBottom && ::conversationHeaderPositionDecoration.isInitialized) {
val newMargin = bottom + 16.dp
if (conversationHeaderPositionDecoration.toolbarMargin != newMargin) {
conversationHeaderPositionDecoration.toolbarMargin = newMargin
rv.invalidateItemDecorations()
}
}
}
applyToolbarPaddingRunnable = runnable
rv.post(runnable)
}
binding.conversationItemRecycler.addItemDecoration(ChatColorsDrawable.ChatColorsItemDecoration)