@@ -19,6 +19,7 @@ import java.util.zip.ZipEntry
1919import java.util.zip.ZipInputStream
2020
2121class DecompressActivity : SimpleActivity () {
22+ private val allFiles = ArrayList <ListItem >()
2223
2324 override fun onCreate (savedInstanceState : Bundle ? ) {
2425 super .onCreate(savedInstanceState)
@@ -33,9 +34,13 @@ class DecompressActivity : SimpleActivity() {
3334 title = realPath?.getFilenameFromPath() ? : uri.toString().getFilenameFromPath()
3435
3536 try {
36- val listItems = getListItems(uri)
37- val adapter = DecompressItemsAdapter (this , listItems, decompress_list) { }
38- decompress_list.adapter = adapter
37+ fillAllListItems(uri)
38+ val listItems = getFolderItems(" " )
39+ DecompressItemsAdapter (this , listItems, decompress_list) {
40+
41+ }.apply {
42+ decompress_list.adapter = this
43+ }
3944 } catch (e: Exception ) {
4045 showErrorToast(e)
4146 }
@@ -100,9 +105,20 @@ class DecompressActivity : SimpleActivity() {
100105 }
101106 }
102107
108+ private fun getFolderItems (parent : String ): ArrayList <ListItem > {
109+ return allFiles.filter {
110+ val fileParent = if (it.path.contains(" /" )) {
111+ it.path.getParentPath()
112+ } else {
113+ " "
114+ }
115+
116+ fileParent == parent
117+ }.toMutableList() as ArrayList <ListItem >
118+ }
119+
103120 @SuppressLint(" NewApi" )
104- private fun getListItems (uri : Uri ): ArrayList <ListItem > {
105- val listItems = ArrayList <ListItem >()
121+ private fun fillAllListItems (uri : Uri ) {
106122 val inputStream = contentResolver.openInputStream(uri)
107123 val zipInputStream = ZipInputStream (BufferedInputStream (inputStream))
108124 var zipEntry: ZipEntry ?
@@ -113,14 +129,9 @@ class DecompressActivity : SimpleActivity() {
113129 break
114130 }
115131
116- if (! zipEntry.isDirectory && zipEntry.name.contains(" /" )) {
117- continue
118- }
119-
120132 val lastModified = if (isOreoPlus()) zipEntry.lastModifiedTime.toMillis() else 0
121- val listItem = ListItem (zipEntry.name.removeSuffix(" /" ), zipEntry.name.removeSuffix(" /" ), zipEntry.isDirectory, 0 , 0L , lastModified, false )
122- listItems .add(listItem)
133+ val listItem = ListItem (zipEntry.name.removeSuffix(" /" ), zipEntry.name.removeSuffix(" /" ).getFilenameFromPath() , zipEntry.isDirectory, 0 , 0L , lastModified, false )
134+ allFiles .add(listItem)
123135 }
124- return listItems
125136 }
126137}
0 commit comments