@@ -24,6 +24,7 @@ public class MainActivity extends SimpleActivity implements ItemsFragment.ItemIn
2424 @ BindView (R .id .breadcrumbs ) Breadcrumbs mBreadcrumbs ;
2525
2626 private static final int STORAGE_PERMISSION = 1 ;
27+ private static int mRootFoldersCnt ;
2728
2829 @ Override
2930 protected void onCreate (Bundle savedInstanceState ) {
@@ -52,6 +53,7 @@ private void initRootFileManager() {
5253 final String path = Environment .getExternalStorageDirectory ().toString ();
5354 openPath (path );
5455 mBreadcrumbs .setInitialBreadcrumb (path );
56+ mRootFoldersCnt = mBreadcrumbs .getChildCount ();
5557 }
5658
5759 private void openPath (String path ) {
@@ -87,10 +89,10 @@ public boolean onOptionsItemSelected(MenuItem item) {
8789
8890 @ Override
8991 public void onBackPressed () {
90- final int cnt = getSupportFragmentManager (). getBackStackEntryCount () ;
91- if (cnt == 1 )
92+ final int cnt = mBreadcrumbs . getChildCount () - mRootFoldersCnt ;
93+ if (cnt <= 0 ) {
9294 finish ();
93- else {
95+ } else {
9496 mBreadcrumbs .removeBreadcrumb ();
9597 super .onBackPressed ();
9698 }
@@ -118,11 +120,9 @@ public void itemClicked(FileDirItem item) {
118120
119121 @ Override
120122 public void breadcrumbClicked (int id ) {
121- final int children = mBreadcrumbs .getChildCount () - 1 ;
122- final int removeCnt = children - id ;
123- for (int i = 0 ; i < removeCnt ; i ++) {
124- getSupportFragmentManager ().popBackStack ();
125- mBreadcrumbs .removeBreadcrumb ();
126- }
123+ final FileDirItem item = (FileDirItem ) mBreadcrumbs .getChildAt (id ).getTag ();
124+ final String path = item .getPath ();
125+ openPath (path );
126+ mBreadcrumbs .setInitialBreadcrumb (path );
127127 }
128128}
0 commit comments