Skip to content

Commit a89aa0a

Browse files
committed
show the proper files at Decompress Activity
1 parent edecbc6 commit a89aa0a

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/DecompressActivity.kt

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import java.util.zip.ZipEntry
1919
import java.util.zip.ZipInputStream
2020

2121
class 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

Comments
 (0)