diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/MediaKeyboard.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/MediaKeyboard.java index 3babe8658..49f4b2f70 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/MediaKeyboard.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/MediaKeyboard.java @@ -50,6 +50,26 @@ public class MediaKeyboard extends FrameLayout implements InputView { } } + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (isInitialised && fragmentManager != null && keyboardPagerFragment != null) { + fragmentManager.beginTransaction() + .replace(R.id.media_keyboard_fragment_container, keyboardPagerFragment, TAG) + .commitNowAllowingStateLoss(); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (fragmentManager != null && keyboardPagerFragment != null) { + fragmentManager.beginTransaction() + .remove(keyboardPagerFragment) + .commitNowAllowingStateLoss(); + } + } + public void setFragmentManager(@NonNull FragmentManager fragmentManager) { this.fragmentManager = fragmentManager; } @@ -152,6 +172,7 @@ public class MediaKeyboard extends FrameLayout implements InputView { private void initView() { if (!isInitialised) { + Log.d(TAG, "Initialising..."); LayoutInflater.from(getContext()).inflate(R.layout.media_keyboard, this, true); @@ -166,7 +187,7 @@ public class MediaKeyboard extends FrameLayout implements InputView { } fragmentManager.beginTransaction() - .replace(R.id.media_keyboard_fragment_container, keyboardPagerFragment) + .replace(R.id.media_keyboard_fragment_container, keyboardPagerFragment, TAG) .commitNowAllowingStateLoss(); keyboardState = State.NORMAL;