From c36672f2605059132b926d170935dbdfa16da76b Mon Sep 17 00:00:00 2001 From: VishalNehra Date: Sun, 13 Sep 2020 22:36:54 +0530 Subject: [PATCH] Fix recent files sort query --- .../asynctasks/LoadFilesListTask.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/LoadFilesListTask.java b/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/LoadFilesListTask.java index 45dc0f0ac1..1d5e7c3acb 100644 --- a/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/LoadFilesListTask.java +++ b/app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/LoadFilesListTask.java @@ -385,10 +385,6 @@ else if (cursor.getCount() > 0 && cursor.moveToFirst()) { } cursor.close(); Collections.sort(docs, (lhs, rhs) -> -1 * Long.valueOf(lhs.date).compareTo(rhs.date)); - if (docs.size() > 20) - for (int i = docs.size() - 1; i > 20; i--) { - docs.remove(i); - } return docs; } @@ -441,17 +437,20 @@ private ArrayList listRecent() { } private ArrayList listRecentFiles() { - ArrayList recentFiles = new ArrayList<>(); - final String[] projection = { - MediaStore.Files.FileColumns.DATA, MediaStore.Files.FileColumns.DATE_MODIFIED - }; + ArrayList recentFiles = new ArrayList<>(20); + final String[] projection = {MediaStore.Files.FileColumns.DATA}; Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) - 2); Date d = c.getTime(); Cursor cursor = this.context .getContentResolver() - .query(MediaStore.Files.getContentUri("external"), projection, null, null, null); + .query( + MediaStore.Files.getContentUri("external"), + projection, + null, + null, + MediaStore.Files.FileColumns.DATE_MODIFIED + " DESC LIMIT 20"); if (cursor == null) return recentFiles; if (cursor.getCount() > 0 && cursor.moveToFirst()) { do { @@ -468,7 +467,6 @@ private ArrayList listRecentFiles() { } while (cursor.moveToNext()); } cursor.close(); - Collections.sort(recentFiles, (lhs, rhs) -> -1 * Long.valueOf(lhs.date).compareTo(rhs.date)); return recentFiles; }