From f5777d58fc46ec02069d9d0017a53337658f10d8 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 13 May 2022 11:47:57 -0400 Subject: [PATCH] Fix situation where two keyboards could be showing. --- .../securesms/components/KeyboardAwareLinearLayout.java | 3 ++- .../securesms/conversation/ConversationParentFragment.java | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 0066ba0a46..efab527209 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java @@ -108,7 +108,7 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { } private void updateKeyboardState() { - if (viewInset == 0 && Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) viewInset = getViewInset(); + if (viewInset == 0 && Build.VERSION.SDK_INT >= 21) viewInset = getViewInset(); getWindowVisibleDisplayFrame(rect); @@ -137,6 +137,7 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { if (Build.VERSION.SDK_INT >= 23 && getRootWindowInsets() != null) { int bottomInset; WindowInsets windowInsets = getRootWindowInsets(); + if (Build.VERSION.SDK_INT >= 30) { bottomInset = windowInsets.getInsets(WindowInsets.Type.navigationBars()).bottom; } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 373c557bc8..ecf25095c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -1169,6 +1169,9 @@ public class ConversationParentFragment extends Fragment @Override public void onKeyboardShown() { inputPanel.onKeyboardShown(); + if (emojiDrawerStub.resolved() && emojiDrawerStub.get().isShowing()) { + emojiDrawerStub.get().hide(true); + } } @Subscribe(threadMode = ThreadMode.MAIN)