mirror of https://github.com/M66B/FairEmail.git
Prevent scrolling on moving items
This commit is contained in:
parent
1b90cbf792
commit
db1f494d5b
|
@ -51,6 +51,7 @@ import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.LocaleList;
|
import android.os.LocaleList;
|
||||||
|
import android.os.Parcelable;
|
||||||
import android.provider.CalendarContract;
|
import android.provider.CalendarContract;
|
||||||
import android.provider.ContactsContract;
|
import android.provider.ContactsContract;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
@ -283,6 +284,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
private Map<Integer, Long> positionKey = new HashMap<>();
|
private Map<Integer, Long> positionKey = new HashMap<>();
|
||||||
private SelectionTracker<Long> selectionTracker = null;
|
private SelectionTracker<Long> selectionTracker = null;
|
||||||
|
|
||||||
|
private RecyclerView rv = null;
|
||||||
|
private Parcelable savedState = null;
|
||||||
|
|
||||||
enum ViewType {UNIFIED, FOLDER, THREAD, SEARCH}
|
enum ViewType {UNIFIED, FOLDER, THREAD, SEARCH}
|
||||||
|
|
||||||
private NumberFormat NF = NumberFormat.getNumberInstance();
|
private NumberFormat NF = NumberFormat.getNumberInstance();
|
||||||
|
@ -5946,6 +5950,11 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
this.differ.addPagedListListener(new AsyncPagedListDiffer.PagedListListener<TupleMessageEx>() {
|
this.differ.addPagedListListener(new AsyncPagedListDiffer.PagedListListener<TupleMessageEx>() {
|
||||||
@Override
|
@Override
|
||||||
public void onCurrentListChanged(@Nullable PagedList<TupleMessageEx> previousList, @Nullable PagedList<TupleMessageEx> currentList) {
|
public void onCurrentListChanged(@Nullable PagedList<TupleMessageEx> previousList, @Nullable PagedList<TupleMessageEx> currentList) {
|
||||||
|
// https://issuetracker.google.com/issues/70149059
|
||||||
|
if (rv != null && savedState != null)
|
||||||
|
rv.getLayoutManager().onRestoreInstanceState(savedState);
|
||||||
|
savedState = null;
|
||||||
|
|
||||||
if (gotoTop && previousList != null) {
|
if (gotoTop && previousList != null) {
|
||||||
if (ascending) {
|
if (ascending) {
|
||||||
if (currentList != null && currentList.size() > 0) {
|
if (currentList != null && currentList.size() > 0) {
|
||||||
|
@ -6069,6 +6078,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rv != null)
|
||||||
|
savedState = rv.getLayoutManager().onSaveInstanceState();
|
||||||
|
|
||||||
differ.submitList(list);
|
differ.submitList(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6250,6 +6262,18 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
((WebView) holder.wvBody).loadDataWithBaseURL(null, "", "text/html", StandardCharsets.UTF_8.name(), null);
|
((WebView) holder.wvBody).loadDataWithBaseURL(null, "", "text/html", StandardCharsets.UTF_8.name(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
|
||||||
|
super.onAttachedToRecyclerView(recyclerView);
|
||||||
|
rv = recyclerView;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
|
||||||
|
super.onDetachedFromRecyclerView(recyclerView);
|
||||||
|
rv = null;
|
||||||
|
}
|
||||||
|
|
||||||
void setSelectionTracker(SelectionTracker<Long> selectionTracker) {
|
void setSelectionTracker(SelectionTracker<Long> selectionTracker) {
|
||||||
this.selectionTracker = selectionTracker;
|
this.selectionTracker = selectionTracker;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue