mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-04-15 18:57:23 +02:00
show the proper files at Decompress Activity
This commit is contained in:
parent
edecbc6e37
commit
a89aa0aa0c
@ -19,6 +19,7 @@ import java.util.zip.ZipEntry
|
|||||||
import java.util.zip.ZipInputStream
|
import java.util.zip.ZipInputStream
|
||||||
|
|
||||||
class DecompressActivity : SimpleActivity() {
|
class DecompressActivity : SimpleActivity() {
|
||||||
|
private val allFiles = ArrayList<ListItem>()
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@ -33,9 +34,13 @@ class DecompressActivity : SimpleActivity() {
|
|||||||
title = realPath?.getFilenameFromPath() ?: uri.toString().getFilenameFromPath()
|
title = realPath?.getFilenameFromPath() ?: uri.toString().getFilenameFromPath()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val listItems = getListItems(uri)
|
fillAllListItems(uri)
|
||||||
val adapter = DecompressItemsAdapter(this, listItems, decompress_list) { }
|
val listItems = getFolderItems("")
|
||||||
decompress_list.adapter = adapter
|
DecompressItemsAdapter(this, listItems, decompress_list) {
|
||||||
|
|
||||||
|
}.apply {
|
||||||
|
decompress_list.adapter = this
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
showErrorToast(e)
|
showErrorToast(e)
|
||||||
}
|
}
|
||||||
@ -100,9 +105,20 @@ class DecompressActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getFolderItems(parent: String): ArrayList<ListItem> {
|
||||||
|
return allFiles.filter {
|
||||||
|
val fileParent = if (it.path.contains("/")) {
|
||||||
|
it.path.getParentPath()
|
||||||
|
} else {
|
||||||
|
""
|
||||||
|
}
|
||||||
|
|
||||||
|
fileParent == parent
|
||||||
|
}.toMutableList() as ArrayList<ListItem>
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
private fun getListItems(uri: Uri): ArrayList<ListItem> {
|
private fun fillAllListItems(uri: Uri) {
|
||||||
val listItems = ArrayList<ListItem>()
|
|
||||||
val inputStream = contentResolver.openInputStream(uri)
|
val inputStream = contentResolver.openInputStream(uri)
|
||||||
val zipInputStream = ZipInputStream(BufferedInputStream(inputStream))
|
val zipInputStream = ZipInputStream(BufferedInputStream(inputStream))
|
||||||
var zipEntry: ZipEntry?
|
var zipEntry: ZipEntry?
|
||||||
@ -113,14 +129,9 @@ class DecompressActivity : SimpleActivity() {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!zipEntry.isDirectory && zipEntry.name.contains("/")) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
val lastModified = if (isOreoPlus()) zipEntry.lastModifiedTime.toMillis() else 0
|
val lastModified = if (isOreoPlus()) zipEntry.lastModifiedTime.toMillis() else 0
|
||||||
val listItem = ListItem(zipEntry.name.removeSuffix("/"), zipEntry.name.removeSuffix("/"), zipEntry.isDirectory, 0, 0L, lastModified, false)
|
val listItem = ListItem(zipEntry.name.removeSuffix("/"), zipEntry.name.removeSuffix("/").getFilenameFromPath(), zipEntry.isDirectory, 0, 0L, lastModified, false)
|
||||||
listItems.add(listItem)
|
allFiles.add(listItem)
|
||||||
}
|
}
|
||||||
return listItems
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user