diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java index b34138ef7..ebb665665 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java @@ -107,6 +107,10 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { } private void updateKeyboardState() { + updateKeyboardState(Integer.MAX_VALUE); + } + + private void updateKeyboardState(int previousHeight) { if (viewInset == 0 && Build.VERSION.SDK_INT >= 21) viewInset = getViewInset(); getWindowVisibleDisplayFrame(rect); @@ -126,7 +130,11 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { onKeyboardOpen(keyboardHeight); } } else if (keyboardOpen) { - onKeyboardClose(); + if (previousHeight == keyboardHeight) { + onKeyboardClose(); + } else { + postDelayed(() -> updateKeyboardState(keyboardHeight), 100); + } } }