Skip to content

Commit 61dee85

Browse files
committed
save and restore the lists scroll state
1 parent b45e526 commit 61dee85

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.media.MediaScannerConnection;
1010
import android.net.Uri;
1111
import android.os.Bundle;
12+
import android.os.Parcelable;
1213
import android.support.annotation.Nullable;
1314
import android.support.design.widget.CoordinatorLayout;
1415
import android.support.design.widget.Snackbar;
@@ -46,7 +47,9 @@
4647
import java.io.IOException;
4748
import java.util.ArrayList;
4849
import java.util.Collections;
50+
import java.util.HashMap;
4951
import java.util.List;
52+
import java.util.Map;
5053

5154
import butterknife.BindView;
5255
import butterknife.ButterKnife;
@@ -60,6 +63,7 @@ public class ItemsFragment extends android.support.v4.app.Fragment
6063
@BindView(R.id.items_holder) CoordinatorLayout mCoordinatorLayout;
6164

6265
public static final int SELECT_FOLDER_REQUEST = 1;
66+
private static Map<String, Parcelable> mStates;
6367

6468
private List<FileDirItem> mItems;
6569
private ItemInteractionListener mListener;
@@ -84,6 +88,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
8488
@Override
8589
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
8690
super.onViewCreated(view, savedInstanceState);
91+
if (mStates == null)
92+
mStates = new HashMap<>();
8793
mShowHidden = Config.newInstance(getContext()).getShowHidden();
8894
mItems = new ArrayList<>();
8995
mToBeDeleted = new ArrayList<>();
@@ -104,6 +110,7 @@ public void onResume() {
104110
public void onPause() {
105111
super.onPause();
106112
deleteItems();
113+
mStates.put(mPath, mListView.onSaveInstanceState());
107114
}
108115

109116
private void fillItems() {
@@ -122,6 +129,10 @@ private void fillItems() {
122129
mListView.setOnItemClickListener(this);
123130
mListView.setMultiChoiceModeListener(this);
124131
mListView.setOnTouchListener(this);
132+
133+
if (mStates != null && mStates.get(mPath) != null) {
134+
mListView.onRestoreInstanceState(mStates.get(mPath));
135+
}
125136
}
126137

127138
public void setListener(ItemInteractionListener listener) {

0 commit comments

Comments
 (0)