diff --git a/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java b/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java index 9cfe88053c..e981fee5b6 100644 --- a/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java +++ b/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java @@ -234,22 +234,23 @@ public void updatePaths(int pos) { @Override public void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); if (sharedPrefs != null) { sharedPrefs.edit().putInt(PREFERENCE_CURRENT_TAB, MainActivity.currentTab).apply(); } - if (fragments.size() != 0) { - if (fragmentManager == null) { - return; - } + if (fragmentManager != null + && !fragments.isEmpty() + && fragments.get(0).isAdded() + && fragments.get(1).isAdded()) { fragmentManager.executePendingTransactions(); fragmentManager.putFragment(outState, KEY_FRAGMENT_0, fragments.get(0)); fragmentManager.putFragment(outState, KEY_FRAGMENT_1, fragments.get(1)); + outState.putInt(KEY_POSITION, viewPager.getCurrentItem()); } + super.onSaveInstanceState(outState); } public void setPagingEnabled(boolean isPaging) { diff --git a/app/src/main/java/com/amaze/filemanager/ui/views/FastScroller.java b/app/src/main/java/com/amaze/filemanager/ui/views/FastScroller.java index c3bd60b368..7e173d15d4 100644 --- a/app/src/main/java/com/amaze/filemanager/ui/views/FastScroller.java +++ b/app/src/main/java/com/amaze/filemanager/ui/views/FastScroller.java @@ -70,11 +70,12 @@ public FastScroller(@NonNull Context context, AttributeSet attributeSet, int i) } private float computeHandlePosition() { + if (recyclerView == null) return -1; View firstVisibleView = recyclerView.getChildAt(0); + if (firstVisibleView == null) return -1; handle.setVisibility(VISIBLE); float recyclerViewOversize; // how much is recyclerView bigger than fastScroller int recyclerViewAbsoluteScroll; - if (firstVisibleView == null || recyclerView == null) return -1; recyclerViewOversize = firstVisibleView.getHeight() / columns * recyclerView.getAdapter().getItemCount() - getHeightMinusPadding();