Fix strange scrolling behaviour for new messages.
This commit is contained in:
parent
6673da0b04
commit
b92a41ab70
2 changed files with 1 additions and 14 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Add table
Reference in a new issue