@@ -15,6 +15,10 @@ import com.raival.compose.file.explorer.screen.main.tab.files.holder.ContentHold
1515import com.raival.compose.file.explorer.screen.main.tab.files.holder.LocalFileHolder
1616import com.raival.compose.file.explorer.screen.main.tab.files.holder.RootFileHolder
1717import com.raival.compose.file.explorer.screen.main.tab.files.holder.StorageDevice
18+ import com.raival.compose.file.explorer.screen.main.tab.files.misc.FileSortingPrefs
19+ import com.raival.compose.file.explorer.screen.main.tab.files.misc.SortingMethod.SORT_BY_DATE
20+ import com.raival.compose.file.explorer.screen.main.tab.files.misc.SortingMethod.SORT_BY_NAME
21+ import com.raival.compose.file.explorer.screen.main.tab.files.misc.SortingMethod.SORT_BY_SIZE
1822import com.raival.compose.file.explorer.screen.main.tab.files.misc.StorageDeviceType.EXTERNAL_STORAGE
1923import com.raival.compose.file.explorer.screen.main.tab.files.misc.StorageDeviceType.INTERNAL_STORAGE
2024import com.raival.compose.file.explorer.screen.main.tab.files.misc.StorageDeviceType.ROOT
@@ -182,7 +186,9 @@ object StorageProvider {
182186 return storageList
183187 }
184188
185- fun getDocumentFiles (): ArrayList <LocalFileHolder > {
189+ fun getDocumentFiles (
190+ sortingPrefs : FileSortingPrefs ?
191+ ): ArrayList <LocalFileHolder > {
186192 val documentFiles = ArrayList <LocalFileHolder >()
187193 val contentResolver: ContentResolver = globalClass.contentResolver
188194
@@ -211,7 +217,12 @@ object StorageProvider {
211217 projection,
212218 selection,
213219 selectionArgs,
214- null
220+ when (sortingPrefs?.sortMethod) {
221+ SORT_BY_NAME -> " ${MediaStore .Files .FileColumns .DISPLAY_NAME } ASC"
222+ SORT_BY_DATE -> " ${MediaStore .Files .FileColumns .DATE_MODIFIED } DESC"
223+ SORT_BY_SIZE -> " ${MediaStore .Files .FileColumns .SIZE } DESC"
224+ else -> null
225+ }
215226 )
216227
217228 cursor?.use {
@@ -223,10 +234,12 @@ object StorageProvider {
223234 }
224235 }
225236
226- return documentFiles
237+ return documentFiles. also { if (sortingPrefs?.reverseSorting == true ) it.reverse() }
227238 }
228239
229- fun getArchiveFiles (): ArrayList <LocalFileHolder > {
240+ fun getArchiveFiles (
241+ sortingPrefs : FileSortingPrefs ?
242+ ): ArrayList <LocalFileHolder > {
230243 val archiveFiles = ArrayList <LocalFileHolder >()
231244 val contentResolver: ContentResolver = globalClass.contentResolver
232245
@@ -253,7 +266,12 @@ object StorageProvider {
253266 projection,
254267 selection,
255268 selectionArgs,
256- null
269+ when (sortingPrefs?.sortMethod) {
270+ SORT_BY_NAME -> " ${MediaStore .Files .FileColumns .DISPLAY_NAME } ASC"
271+ SORT_BY_DATE -> " ${MediaStore .Files .FileColumns .DATE_MODIFIED } DESC"
272+ SORT_BY_SIZE -> " ${MediaStore .Files .FileColumns .SIZE } DESC"
273+ else -> null
274+ }
257275 )
258276
259277 cursor?.use {
@@ -265,10 +283,12 @@ object StorageProvider {
265283 }
266284 }
267285
268- return archiveFiles
286+ return archiveFiles. also { if (sortingPrefs?.reverseSorting == true ) it.reverse() }
269287 }
270288
271- fun getImageFiles (): ArrayList <LocalFileHolder > {
289+ fun getImageFiles (
290+ sortingPrefs : FileSortingPrefs ?
291+ ): ArrayList <LocalFileHolder > {
272292 val imageFiles = ArrayList <LocalFileHolder >()
273293 val contentResolver: ContentResolver = globalClass.contentResolver
274294
@@ -283,22 +303,29 @@ object StorageProvider {
283303 projection,
284304 null ,
285305 null ,
286- null
306+ when (sortingPrefs?.sortMethod) {
307+ SORT_BY_NAME -> " ${MediaStore .Files .FileColumns .DISPLAY_NAME } ASC"
308+ SORT_BY_DATE -> " ${MediaStore .Files .FileColumns .DATE_MODIFIED } DESC"
309+ SORT_BY_SIZE -> " ${MediaStore .Files .FileColumns .SIZE } DESC"
310+ else -> null
311+ }
287312 )
288313
289314 cursor?.use {
290- val pathColumn = it.getColumnIndexOrThrow(MediaStore .Audio .Media .DATA )
315+ val pathColumn = it.getColumnIndexOrThrow(MediaStore .Images .Media .DATA )
291316
292317 while (it.moveToNext()) {
293318 val path = it.getString(pathColumn)
294319 imageFiles.add(LocalFileHolder (File (path)))
295320 }
296321 }
297322
298- return imageFiles
323+ return imageFiles. also { if (sortingPrefs?.reverseSorting == true ) it.reverse() }
299324 }
300325
301- fun getVideoFiles (): ArrayList <LocalFileHolder > {
326+ fun getVideoFiles (
327+ sortingPrefs : FileSortingPrefs ?
328+ ): ArrayList <LocalFileHolder > {
302329 val videoFiles = ArrayList <LocalFileHolder >()
303330 val contentResolver: ContentResolver = globalClass.contentResolver
304331
@@ -313,7 +340,12 @@ object StorageProvider {
313340 projection,
314341 null ,
315342 null ,
316- null
343+ when (sortingPrefs?.sortMethod) {
344+ SORT_BY_NAME -> " ${MediaStore .Files .FileColumns .DISPLAY_NAME } ASC"
345+ SORT_BY_DATE -> " ${MediaStore .Files .FileColumns .DATE_MODIFIED } DESC"
346+ SORT_BY_SIZE -> " ${MediaStore .Files .FileColumns .SIZE } DESC"
347+ else -> null
348+ }
317349 )
318350
319351 cursor?.use {
@@ -325,13 +357,12 @@ object StorageProvider {
325357 }
326358 }
327359
328- return videoFiles
360+ return videoFiles. also { if (sortingPrefs?.reverseSorting == true ) it.reverse() }
329361 }
330362
331- fun getBookmarks () = globalClass.preferencesManager.bookmarks
332- .map { LocalFileHolder (File (it)) } as ArrayList <LocalFileHolder >
333-
334- fun getAudioFiles (): ArrayList <LocalFileHolder > {
363+ fun getAudioFiles (
364+ sortingPrefs : FileSortingPrefs ?
365+ ): ArrayList <LocalFileHolder > {
335366 val audioFiles = ArrayList <LocalFileHolder >()
336367 val contentResolver: ContentResolver = globalClass.contentResolver
337368
@@ -346,7 +377,12 @@ object StorageProvider {
346377 projection,
347378 null ,
348379 null ,
349- null
380+ when (sortingPrefs?.sortMethod) {
381+ SORT_BY_NAME -> " ${MediaStore .Files .FileColumns .DISPLAY_NAME } ASC"
382+ SORT_BY_DATE -> " ${MediaStore .Files .FileColumns .DATE_MODIFIED } DESC"
383+ SORT_BY_SIZE -> " ${MediaStore .Files .FileColumns .SIZE } DESC"
384+ else -> null
385+ }
350386 )
351387
352388 cursor?.use {
@@ -358,9 +394,12 @@ object StorageProvider {
358394 }
359395 }
360396
361- return audioFiles
397+ return audioFiles. also { if (sortingPrefs?.reverseSorting == true ) it.reverse() }
362398 }
363399
400+ fun getBookmarks () = globalClass.preferencesManager.bookmarks
401+ .map { LocalFileHolder (File (it)) } as ArrayList <LocalFileHolder >
402+
364403 fun getRawRecentFiles (
365404 recentHours : Int = 24 * 5,
366405 limit : Int = 100
0 commit comments