99import android .media .MediaScannerConnection ;
1010import android .net .Uri ;
1111import android .os .Bundle ;
12+ import android .os .Parcelable ;
1213import android .support .annotation .Nullable ;
1314import android .support .design .widget .CoordinatorLayout ;
1415import android .support .design .widget .Snackbar ;
4647import java .io .IOException ;
4748import java .util .ArrayList ;
4849import java .util .Collections ;
50+ import java .util .HashMap ;
4951import java .util .List ;
52+ import java .util .Map ;
5053
5154import butterknife .BindView ;
5255import 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