Attempt to keep scroll position on rotating

This commit is contained in:
M66B
2020-09-04 16:56:00 +02:00
parent 2c88095ea3
commit 4394843878
2 changed files with 17 additions and 0 deletions

View File

@@ -300,6 +300,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
private SelectionPredicateMessage selectionPredicate = null;
private SelectionTracker<Long> selectionTracker = null;
private Integer scroll = null;
private Long prev = null;
private Long next = null;
private Long closeId = null;
@@ -3373,6 +3374,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
if (rvMessage != null) {
Parcelable rv = rvMessage.getLayoutManager().onSaveInstanceState();
outState.putParcelable("fair:rv", rv);
LinearLayoutManager llm = (LinearLayoutManager) rvMessage.getLayoutManager();
outState.putInt("fair:scroll", llm.findFirstVisibleItemPosition());
}
if (selectionTracker != null)
@@ -3402,6 +3406,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
rvMessage.getLayoutManager().onRestoreInstanceState(rv);
}
adapter.gotoPos(savedInstanceState.getInt("fair:scroll"));
if (selectionTracker != null)
selectionTracker.onRestoreInstanceState(savedInstanceState);
}