diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt index a813919a66..4c2c452796 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt @@ -203,11 +203,20 @@ open class StickerKeyboardPageFragment : } override fun onLayoutChange(v: View?, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int, oldRight: Int, oldBottom: Int) { - onScreenWidthChanged(view?.width ?: 0) + onScreenWidthChanged(right - left) } private fun onScreenWidthChanged(@Px newWidth: Int) { - layoutManager.spanCount = calculateColumnCount(newWidth) + if (newWidth <= 0) { + return + } + + val newSpanCount = calculateColumnCount(newWidth) + if (layoutManager.spanCount != newSpanCount) { + stickerList.post { + layoutManager.spanCount = newSpanCount + } + } } private fun calculateColumnCount(@Px screenWidth: Int): Int { diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt index 1707108423..208b22bdde 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt @@ -79,7 +79,17 @@ class StickerSearchDialogFragment : DialogFragment(), KeyboardStickerListAdapter } override fun onLayoutChange(v: View?, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int, oldRight: Int, oldBottom: Int) { - layoutManager.spanCount = calculateColumnCount(view?.width ?: 0) + val width = right - left + if (width <= 0) { + return + } + + val newSpanCount = calculateColumnCount(width) + if (layoutManager.spanCount != newSpanCount) { + list.post { + layoutManager.spanCount = newSpanCount + } + } } private fun calculateColumnCount(@Px screenWidth: Int): Int {