From c59006e06e7edfef0947d19bbf5ca640c3bf08b1 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 3 Jun 2021 14:21:38 -0300 Subject: [PATCH] Go back to emoji selection on keyboard close in search. --- .../components/emoji/MediaKeyboard.java | 4 +- .../emoji/search/EmojiSearchFragment.kt | 10 ++- app/src/main/res/layout/emoji_grid_layout.xml | 4 +- .../main/res/layout/emoji_search_fragment.xml | 79 ++++++++++--------- 4 files changed, 56 insertions(+), 41 deletions(-) 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 7127b9488b..c7827f3c84 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 @@ -167,7 +167,7 @@ public class MediaKeyboard extends FrameLayout implements InputView, transaction.runOnCommit(() -> show(latestKeyboardHeight, false)); } - transaction.commit(); + transaction.commitAllowingStateLoss(); } public void onOpenEmojiSearch() { @@ -182,7 +182,7 @@ public class MediaKeyboard extends FrameLayout implements InputView, .add(R.id.media_keyboard_fragment_container, new EmojiSearchFragment(), EMOJI_SEARCH) .runOnCommit(() -> show(latestKeyboardHeight, true)) .setCustomAnimations(R.anim.fade_in, R.anim.fade_out) - .commit(); + .commitAllowingStateLoss(); } private void initView() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt index 62ee3e9ea7..04f5396b3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/search/EmojiSearchFragment.kt @@ -1,6 +1,7 @@ package org.thoughtcrime.securesms.keyboard.emoji.search import android.content.Context +import android.graphics.Rect import android.os.Bundle import android.view.View import android.widget.FrameLayout @@ -10,6 +11,7 @@ import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import org.thoughtcrime.securesms.R +import org.thoughtcrime.securesms.components.KeyboardAwareLinearLayout import org.thoughtcrime.securesms.components.emoji.EmojiKeyboardProvider import org.thoughtcrime.securesms.components.emoji.EmojiPageView import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter @@ -34,6 +36,7 @@ class EmojiSearchFragment : Fragment(R.layout.emoji_search_fragment), EmojiPageV viewModel = ViewModelProviders.of(this, factory)[EmojiSearchViewModel::class.java] + val keyboardAwareLinearLayout: KeyboardAwareLinearLayout = view.findViewById(R.id.kb_aware_layout) val eventListener: EmojiKeyboardProvider.EmojiEventListener = requireNotNull(findListener()) val searchBar: KeyboardPageSearchView = view.findViewById(R.id.emoji_search_view) val resultsContainer: FrameLayout = view.findViewById(R.id.emoji_search_results_container) @@ -56,12 +59,17 @@ class EmojiSearchFragment : Fragment(R.layout.emoji_search_fragment), EmojiPageV noResults.visibility = View.VISIBLE } } + + view.post { + keyboardAwareLinearLayout.addOnKeyboardHiddenListener { + callback.closeEmojiSearch() + } + } } private inner class SearchCallbacks : KeyboardPageSearchView.Callbacks { override fun onNavigationClicked() { ViewUtil.hideKeyboard(requireContext(), requireView()) - callback.closeEmojiSearch() } override fun onQueryChanged(query: String) { diff --git a/app/src/main/res/layout/emoji_grid_layout.xml b/app/src/main/res/layout/emoji_grid_layout.xml index 0eebf2f0c9..9e3c55af99 100644 --- a/app/src/main/res/layout/emoji_grid_layout.xml +++ b/app/src/main/res/layout/emoji_grid_layout.xml @@ -4,13 +4,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/signal_background_secondary"> + android:background="@color/signal_background_tertiary"> diff --git a/app/src/main/res/layout/emoji_search_fragment.xml b/app/src/main/res/layout/emoji_search_fragment.xml index f9ba667816..0c64e7227c 100644 --- a/app/src/main/res/layout/emoji_search_fragment.xml +++ b/app/src/main/res/layout/emoji_search_fragment.xml @@ -1,46 +1,53 @@ - + android:orientation="vertical"> - + android:layout_height="match_parent" + android:background="@color/signal_background_tertiary"> - + - + - \ No newline at end of file + + + + \ No newline at end of file