diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java
index 662c709f7..429bd0b49 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java
@@ -219,6 +219,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
private int lastSeenScrollOffset;
private View toolbarShadow;
private Stopwatch startupStopwatch;
+ private View reactionsShade;
private GiphyMp4ProjectionRecycler giphyMp4ProjectionRecycler;
private Colorizer colorizer;
@@ -256,6 +257,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
scrollToMentionButton = view.findViewById(R.id.scroll_to_mention);
scrollDateHeader = view.findViewById(R.id.scroll_date_header);
toolbarShadow = requireActivity().findViewById(R.id.conversation_toolbar_shadow);
+ reactionsShade = view.findViewById(R.id.reactions_shade);
ConversationIntents.Args args = ConversationIntents.Args.from(requireActivity().getIntent());
@@ -387,6 +389,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
public void clearFocusedItem() {
multiselectItemDecoration.setFocusedItem(null);
list.invalidateItemDecorations();
+ reactionsShade.setVisibility(View.GONE);
}
private void setupListLayoutListeners() {
@@ -408,10 +411,12 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
private void setListVerticalTranslation() {
if (list.canScrollVertically(1) || list.canScrollVertically(-1) || list.getChildCount() == 0) {
list.setTranslationY(0);
+ reactionsShade.setTranslationY(0);
list.setOverScrollMode(RecyclerView.OVER_SCROLL_IF_CONTENT_SCROLLS);
} else {
int chTop = list.getChildAt(list.getChildCount() - 1).getTop();
list.setTranslationY(Math.min(0, -chTop));
+ reactionsShade.setTranslationY(Math.min(0, -chTop));
list.setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);
}
}
@@ -1392,6 +1397,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
((ConversationAdapter) list.getAdapter()).getSelectedItems().isEmpty())
{
multiselectItemDecoration.setFocusedItem(new MultiselectPart.Message(item.getConversationMessage()));
+ reactionsShade.setVisibility(View.VISIBLE);
list.invalidateItemDecorations();
isReacting = true;
@@ -1548,6 +1554,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
if (getContext() == null) return;
multiselectItemDecoration.setFocusedItem(multiselectPart);
+ reactionsShade.setVisibility(View.VISIBLE);
ReactionsBottomSheetDialogFragment.create(messageId, isMms).show(requireFragmentManager(), null);
}
diff --git a/app/src/main/res/layout/conversation_fragment.xml b/app/src/main/res/layout/conversation_fragment.xml
index 173fa8a61..53b58c938 100644
--- a/app/src/main/res/layout/conversation_fragment.xml
+++ b/app/src/main/res/layout/conversation_fragment.xml
@@ -6,6 +6,14 @@
android:layout_width="fill_parent"
android:layout_height="match_parent">
+
+