Fix crash when recreating conversation react with any emoji fragment.

fork-5.53.8
Alex Hart 2022-03-11 09:44:47 -04:00
rodzic b7afe4411e
commit aeb568bcf4
2 zmienionych plików z 34 dodań i 39 usunięć

Wyświetl plik

@ -41,9 +41,9 @@ import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappin
import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView;
import org.thoughtcrime.securesms.reactions.edit.EditReactionsActivity;
import org.thoughtcrime.securesms.util.LifecycleDisposable;
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel;
import java.util.Optional;
@ -196,50 +196,44 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee
emojiPageView.addOnScrollListener(categoryUpdateOnScroll);
search = view.findViewById(R.id.react_with_any_emoji_search);
search.setCallbacks(new SearchCallbacks());
initializeViewModel();
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
EmojiKeyboardPageCategoriesAdapter categoriesAdapter = new EmojiKeyboardPageCategoriesAdapter(key -> {
scrollTo(key);
viewModel.selectPage(key);
});
if (savedInstanceState == null) {
EmojiKeyboardPageCategoriesAdapter categoriesAdapter = new EmojiKeyboardPageCategoriesAdapter(key -> {
scrollTo(key);
viewModel.selectPage(key);
});
FrameLayout container = requireDialog().findViewById(R.id.container);
tabBar = LayoutInflater.from(requireContext())
.inflate(R.layout.react_with_any_emoji_tabs,
container,
false);
RecyclerView categoriesRecycler = tabBar.findViewById(R.id.emoji_categories_recycler);
categoriesRecycler.setAdapter(categoriesAdapter);
FrameLayout container = requireDialog().findViewById(R.id.container);
tabBar = LayoutInflater.from(requireContext())
.inflate(R.layout.react_with_any_emoji_tabs,
container,
false);
RecyclerView categoriesRecycler = tabBar.findViewById(R.id.emoji_categories_recycler);
categoriesRecycler.setAdapter(categoriesAdapter);
if (requireArguments().getBoolean(ARG_EDIT, false)) {
View customizeReactions = tabBar.findViewById(R.id.customize_reactions_frame);
customizeReactions.setVisibility(View.VISIBLE);
customizeReactions.setOnClickListener(v -> startActivity(new Intent(requireContext(), EditReactionsActivity.class)));
}
container.addView(tabBar);
emojiPageView.addOnScrollListener(new TopAndBottomShadowHelper(requireView().findViewById(R.id.react_with_any_emoji_top_shadow),
tabBar.findViewById(R.id.react_with_any_emoji_bottom_shadow)));
disposables.add(viewModel.getEmojiList().subscribe(pages -> emojiPageView.setList(pages, null)));
disposables.add(viewModel.getCategories().subscribe(categoriesAdapter::submitList));
disposables.add(viewModel.getSelectedKey().subscribe(key -> categoriesRecycler.post(() -> {
int index = categoriesAdapter.indexOfFirst(EmojiKeyboardPageCategoryMappingModel.class, m -> m.getKey().equals(key));
if (index != -1) {
categoriesRecycler.smoothScrollToPosition(index);
}
})));
if (requireArguments().getBoolean(ARG_EDIT, false)) {
View customizeReactions = tabBar.findViewById(R.id.customize_reactions_frame);
customizeReactions.setVisibility(View.VISIBLE);
customizeReactions.setOnClickListener(v -> startActivity(new Intent(requireContext(), EditReactionsActivity.class)));
}
container.addView(tabBar);
emojiPageView.addOnScrollListener(new TopAndBottomShadowHelper(requireView().findViewById(R.id.react_with_any_emoji_top_shadow),
tabBar.findViewById(R.id.react_with_any_emoji_bottom_shadow)));
disposables.add(viewModel.getEmojiList().subscribe(pages -> emojiPageView.setList(pages, null)));
disposables.add(viewModel.getCategories().subscribe(categoriesAdapter::submitList));
disposables.add(viewModel.getSelectedKey().subscribe(key -> categoriesRecycler.post(() -> {
int index = categoriesAdapter.indexOfFirst(EmojiKeyboardPageCategoryMappingModel.class, m -> m.getKey().equals(key));
if (index != -1) {
categoriesRecycler.smoothScrollToPosition(index);
}
})));
search.setCallbacks(new SearchCallbacks());
}
private void scrollTo(@NonNull String key) {

Wyświetl plik

@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tab_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"