@@ -543,6 +543,9 @@ else if (cursor.getCount() > 0 && cursor.moveToFirst()) {
543
543
return null ;
544
544
}
545
545
546
+ final MainFragment mainFragment = mainFragmentReference .get ();
547
+ MainFragmentViewModel viewModel = mainFragment .getMainFragmentViewModel ();
548
+
546
549
List <LayoutElementParcelable > recentFiles = new ArrayList <>(40 );
547
550
548
551
Cursor cursor = getRecentFilesCursor (c );
@@ -552,10 +555,10 @@ else if (cursor.getCount() > 0 && cursor.moveToFirst()) {
552
555
String filePath = cursor .getString (cursor .getColumnIndex (MediaStore .MediaColumns .DATA ));
553
556
File f = new File (filePath );
554
557
if (f .isDirectory ()) {
555
- List <File > files = getFilesFromDirectory (f );
558
+ List <File > files = getFilesFromDirectory (mainFragment , filePath );
556
559
for (File file : files )
557
- compareFileAndAddToList (recentFiles , file );
558
- } else compareFileAndAddToList (recentFiles , f );
560
+ compareFileAndAddToList (viewModel , recentFiles , file );
561
+ } else compareFileAndAddToList (viewModel , recentFiles , f );
559
562
} while (cursor .moveToNext ());
560
563
}
561
564
cursor .close ();
@@ -597,7 +600,7 @@ private Cursor getRecentFilesCursor(Context c) {
597
600
return cursor ;
598
601
}
599
602
600
- private void compareFileAndAddToList (List <LayoutElementParcelable > recentFiles , File file ) {
603
+ private void compareFileAndAddToList (MainFragmentViewModel viewModel , List <LayoutElementParcelable > recentFiles , File file ) {
601
604
Calendar c = Calendar .getInstance ();
602
605
c .set (Calendar .DAY_OF_YEAR , c .get (Calendar .DAY_OF_YEAR ) - 2 );
603
606
Date d = c .getTime ();
@@ -608,6 +611,7 @@ private void compareFileAndAddToList(List<LayoutElementParcelable> recentFiles,
608
611
LayoutElementParcelable parcelable = createListParcelables (strings );
609
612
if (parcelable != null ) {
610
613
recentFiles .add (parcelable );
614
+ viewModel .incrementFileCount ();
611
615
}
612
616
}
613
617
}
@@ -616,24 +620,25 @@ private void compareFileAndAddToList(List<LayoutElementParcelable> recentFiles,
616
620
/**
617
621
* Recursively fetches the files from directory tree and adds all the files in a list
618
622
*
619
- * @param f: File
623
+ * @param mainFragment: the main fragment reference
624
+ * @param path: the file path
620
625
* @return List of files in directory tree.
621
626
*/
622
- private List <File > getFilesFromDirectory (File f ) {
623
- List < File > allFilesInDir = new ArrayList <>();
624
- try {
625
- File [] files = f . listFiles ();
626
- for ( File file : files ) {
627
- if ( file . isDirectory ()) {
628
- getFilesFromDirectory ( file );
629
- } else {
630
- allFilesInDir . add ( file );
631
- }
632
- }
633
- } catch ( Exception exception ) {
634
- LOG . error ( exception . getLocalizedMessage () );
635
- }
636
- return allFilesInDir ;
627
+ private List <File > getFilesFromDirectory (MainFragment mainFragment , String path ) {
628
+
629
+ List < File > files = new ArrayList <>();
630
+
631
+ ListFilesCommand . INSTANCE . listFiles (
632
+ path ,
633
+ mainFragment . requireMainActivity (). isRootExplorer (),
634
+ showHiddenFiles ,
635
+ mode -> { return null ; },
636
+ hybridFileParcelable -> {
637
+ files . add ( hybridFileParcelable . getFile ());
638
+ return null ;
639
+ } );
640
+
641
+ return files ;
637
642
}
638
643
639
644
private @ Nullable List <LayoutElementParcelable > listTrashBinFiles () {
0 commit comments