@@ -5,11 +5,13 @@ import android.content.Intent
55import android.content.pm.PackageManager
66import android.os.Bundle
77import android.os.Handler
8+ import android.os.Parcelable
89import android.support.v4.app.ActivityCompat
910import android.view.Menu
1011import android.view.MenuItem
1112import com.simplemobiletools.filemanager.PATH
1213import com.simplemobiletools.filemanager.R
14+ import com.simplemobiletools.filemanager.SCROLL_STATE
1315import com.simplemobiletools.filemanager.fragments.ItemsFragment
1416import com.simplemobiletools.filepicker.dialogs.StoragePickerDialog
1517import com.simplemobiletools.filepicker.extensions.getInternalStoragePath
@@ -19,9 +21,12 @@ import com.simplemobiletools.filepicker.models.FileDirItem
1921import com.simplemobiletools.filepicker.views.Breadcrumbs
2022import kotlinx.android.synthetic.main.activity_main.*
2123import java.io.File
24+ import java.util.*
2225
2326class MainActivity : SimpleActivity (), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
2427 var mBasePath = getInternalStoragePath()
28+ var latestFragment: ItemsFragment ? = null
29+ var mScrollStates = HashMap <String , Parcelable >()
2530
2631 companion object {
2732 private val STORAGE_PERMISSION = 1
@@ -59,10 +64,18 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
5964 val bundle = Bundle ()
6065 bundle.putString(PATH , path)
6166
62- val fragment = ItemsFragment ()
63- fragment.arguments = bundle
64- fragment.setListener(this )
65- supportFragmentManager.beginTransaction().replace(R .id.fragment_holder, fragment).addToBackStack(path).commitAllowingStateLoss()
67+ if (mScrollStates.containsKey(path.trimEnd(' /' ))) {
68+ bundle.putParcelable(SCROLL_STATE , mScrollStates[path.trimEnd(' /' )])
69+ }
70+
71+ if (latestFragment != null ) {
72+ mScrollStates.put(latestFragment!! .mPath.trimEnd(' /' ), latestFragment!! .getScrollState())
73+ }
74+
75+ latestFragment = ItemsFragment ()
76+ latestFragment!! .arguments = bundle
77+ latestFragment!! .setListener(this )
78+ supportFragmentManager.beginTransaction().replace(R .id.fragment_holder, latestFragment).addToBackStack(path).commitAllowingStateLoss()
6679 }
6780
6881 override fun onCreateOptionsMenu (menu : Menu ): Boolean {
0 commit comments