@@ -11,11 +11,13 @@ import androidx.core.view.MenuItemCompat
1111import com.simplemobiletools.commons.extensions.*
1212import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
1313import com.simplemobiletools.commons.helpers.ensureBackgroundThread
14+ import com.simplemobiletools.commons.models.FileDirItem
1415import com.simplemobiletools.filemanager.pro.R
1516import com.simplemobiletools.filemanager.pro.dialogs.ChangeSortingDialog
1617import com.simplemobiletools.filemanager.pro.dialogs.ChangeViewTypeDialog
1718import com.simplemobiletools.filemanager.pro.extensions.config
1819import com.simplemobiletools.filemanager.pro.helpers.*
20+ import com.simplemobiletools.filemanager.pro.models.ListItem
1921import java.util.*
2022
2123class MimeTypesActivity : SimpleActivity () {
@@ -44,7 +46,11 @@ class MimeTypesActivity : SimpleActivity() {
4446 )
4547
4648 ensureBackgroundThread {
47- getProperFilePaths { paths ->
49+ getProperFileDirItems { fileDirItems ->
50+ FileDirItem .sorting = config.getFolderSorting(currentMimeType)
51+ fileDirItems.sort()
52+ val listItems = getListItemsFromFileDirItems(fileDirItems)
53+
4854 runOnUiThread {
4955
5056 }
@@ -97,45 +103,51 @@ class MimeTypesActivity : SimpleActivity() {
97103 return true
98104 }
99105
100- private fun getProperFilePaths (callback : (ArrayList <String >) -> Unit ) {
101- val filePaths = ArrayList <String >()
106+ private fun getProperFileDirItems (callback : (ArrayList <FileDirItem >) -> Unit ) {
107+ val fileDirItems = ArrayList <FileDirItem >()
102108 val uri = MediaStore .Files .getContentUri(" external" )
103109 val projection = arrayOf(
104110 MediaStore .Files .FileColumns .MIME_TYPE ,
105- MediaStore .Files .FileColumns .DATA
111+ MediaStore .Files .FileColumns .DATA ,
112+ MediaStore .Files .FileColumns .DISPLAY_NAME ,
113+ MediaStore .Files .FileColumns .SIZE ,
114+ MediaStore .Files .FileColumns .DATE_MODIFIED
106115 )
107116
108117 try {
109118 queryCursor(uri, projection) { cursor ->
110119 try {
111120 val fullMimetype = cursor.getStringValue(MediaStore .Files .FileColumns .MIME_TYPE )?.lowercase(Locale .getDefault()) ? : return @queryCursor
112121 val path = cursor.getStringValue(MediaStore .Files .FileColumns .DATA )
122+ val name = cursor.getStringValue(MediaStore .Files .FileColumns .DISPLAY_NAME )
123+ val size = cursor.getLongValue(MediaStore .Files .FileColumns .SIZE )
124+ val lastModified = cursor.getLongValue(MediaStore .Files .FileColumns .DATE_MODIFIED ) * 1000
113125
114126 val mimetype = fullMimetype.substringBefore(" /" )
115127 when (currentMimeType) {
116128 IMAGES -> {
117129 if (mimetype == " image" ) {
118- filePaths .add(path)
130+ fileDirItems .add(FileDirItem ( path, name, false , 0 , size, lastModified) )
119131 }
120132 }
121133 VIDEOS -> {
122134 if (mimetype == " video" ) {
123- filePaths .add(path)
135+ fileDirItems .add(FileDirItem ( path, name, false , 0 , size, lastModified) )
124136 }
125137 }
126138 AUDIO -> {
127139 if (mimetype == " audio" || extraAudioMimeTypes.contains(fullMimetype)) {
128- filePaths .add(path)
140+ fileDirItems .add(FileDirItem ( path, name, false , 0 , size, lastModified) )
129141 }
130142 }
131143 DOCUMENTS -> {
132144 if (mimetype == " text" || extraDocumentMimeTypes.contains(fullMimetype)) {
133- filePaths .add(path)
145+ fileDirItems .add(FileDirItem ( path, name, false , 0 , size, lastModified) )
134146 }
135147 }
136148 ARCHIVES -> {
137149 if (archiveMimeTypes.contains(fullMimetype)) {
138- filePaths .add(path)
150+ fileDirItems .add(FileDirItem ( path, name, false , 0 , size, lastModified) )
139151 }
140152 }
141153 }
@@ -146,7 +158,16 @@ class MimeTypesActivity : SimpleActivity() {
146158 showErrorToast(e)
147159 }
148160
149- callback(filePaths)
161+ callback(fileDirItems)
162+ }
163+
164+ private fun getListItemsFromFileDirItems (fileDirItems : ArrayList <FileDirItem >): ArrayList <ListItem > {
165+ val listItems = ArrayList <ListItem >()
166+ fileDirItems.forEach {
167+ val listItem = ListItem (it.path, it.name, false , 0 , it.size, it.modified, false )
168+ listItems.add(listItem)
169+ }
170+ return listItems
150171 }
151172
152173 private fun setupSearch (menu : Menu ) {
0 commit comments