Fix strange scrolling behaviour for new messages.

This commit is contained in:
Alex Hart 2021-10-29 10:47:46 -03:00 committed by Greyson Parrelli
parent 6673da0b04
commit b92a41ab70
2 changed files with 1 additions and 14 deletions

View file

@ -217,7 +217,6 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
private int lastSeenScrollOffset; private int lastSeenScrollOffset;
private View toolbarShadow; private View toolbarShadow;
private Stopwatch startupStopwatch; private Stopwatch startupStopwatch;
private View reactionsShade;
private LayoutTransition layoutTransition; private LayoutTransition layoutTransition;
private TransitionListener transitionListener; private TransitionListener transitionListener;
@ -260,7 +259,6 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
scrollToMentionButton = view.findViewById(R.id.scroll_to_mention); scrollToMentionButton = view.findViewById(R.id.scroll_to_mention);
scrollDateHeader = view.findViewById(R.id.scroll_date_header); scrollDateHeader = view.findViewById(R.id.scroll_date_header);
toolbarShadow = requireActivity().findViewById(R.id.conversation_toolbar_shadow); toolbarShadow = requireActivity().findViewById(R.id.conversation_toolbar_shadow);
reactionsShade = view.findViewById(R.id.reactions_shade);
final LinearLayoutManager layoutManager = new SmoothScrollingLinearLayoutManager(getActivity(), true); final LinearLayoutManager layoutManager = new SmoothScrollingLinearLayoutManager(getActivity(), true);
final ConversationItemAnimator conversationItemAnimator = new ConversationItemAnimator( final ConversationItemAnimator conversationItemAnimator = new ConversationItemAnimator(
@ -387,7 +385,6 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
public void clearFocusedItem() { public void clearFocusedItem() {
multiselectItemDecoration.setFocusedItem(null); multiselectItemDecoration.setFocusedItem(null);
list.invalidateItemDecorations(); list.invalidateItemDecorations();
reactionsShade.setVisibility(View.INVISIBLE);
} }
private void updateConversationItemTimestamps() { private void updateConversationItemTimestamps() {
@ -1038,7 +1035,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
.submit(); .submit();
} else if (conversation.getMessageRequestData().isMessageRequestAccepted()) { } else if (conversation.getMessageRequestData().isMessageRequestAccepted()) {
snapToTopDataObserver.buildScrollPosition(conversation.shouldScrollToLastSeen() ? lastSeenPosition : lastScrolledPosition) snapToTopDataObserver.buildScrollPosition(conversation.shouldScrollToLastSeen() ? lastSeenPosition : lastScrolledPosition)
.withOnPerformScroll((layoutManager, position) -> layoutManager.scrollToPositionWithOffset(position, (list.getHeight() + reactionsShade.getHeight()) - (conversation.shouldScrollToLastSeen() ? lastSeenScrollOffset : 0))) .withOnPerformScroll((layoutManager, position) -> layoutManager.scrollToPositionWithOffset(position, list.getHeight() - (conversation.shouldScrollToLastSeen() ? lastSeenScrollOffset : 0)))
.withOnScrollRequestComplete(afterScroll) .withOnScrollRequestComplete(afterScroll)
.submit(); .submit();
} else { } else {
@ -1333,7 +1330,6 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
((ConversationAdapter) list.getAdapter()).getSelectedItems().isEmpty()) ((ConversationAdapter) list.getAdapter()).getSelectedItems().isEmpty())
{ {
multiselectItemDecoration.setFocusedItem(new MultiselectPart.Message(item.getConversationMessage())); multiselectItemDecoration.setFocusedItem(new MultiselectPart.Message(item.getConversationMessage()));
reactionsShade.setVisibility(View.VISIBLE);
list.invalidateItemDecorations(); list.invalidateItemDecorations();
isReacting = true; isReacting = true;
@ -1490,7 +1486,6 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
if (getContext() == null) return; if (getContext() == null) return;
multiselectItemDecoration.setFocusedItem(multiselectPart); multiselectItemDecoration.setFocusedItem(multiselectPart);
reactionsShade.setVisibility(View.VISIBLE);
ReactionsBottomSheetDialogFragment.create(messageId, isMms).show(requireFragmentManager(), null); ReactionsBottomSheetDialogFragment.create(messageId, isMms).show(requireFragmentManager(), null);
} }

View file

@ -6,14 +6,6 @@
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<View
android:id="@+id/reactions_shade"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/reactions_screen_shade_color"
app:layout_constraintTop_toBottomOf="@android:id/list"
android:visibility="invisible" />
<FrameLayout <FrameLayout
android:id="@+id/video_container" android:id="@+id/video_container"
android:layout_width="0dp" android:layout_width="0dp"