Skip to content

Commit c222703

Browse files
committed
fix: save timestamp when compressing items
See: #189
1 parent 8d2a67d commit c222703

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

app/src/main/kotlin/org/fossify/filemanager/adapters/ItemsAdapter.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -717,8 +717,9 @@ class ItemsAdapter(
717717
val zout = password?.let { ZipOutputStream(fos, password.toCharArray()) } ?: ZipOutputStream(fos)
718718
var res: Closeable = fos
719719

720-
fun zipEntry(name: String) = ZipParameters().also {
720+
fun zipEntry(name: String, lastModified: Long) = ZipParameters().also {
721721
it.fileNameInZip = name
722+
it.lastModifiedFileTime = lastModified
722723
if (password != null) {
723724
it.isEncryptFiles = true
724725
it.encryptionMethod = EncryptionMethod.AES
@@ -734,9 +735,11 @@ class ItemsAdapter(
734735
queue.push(mainFilePath)
735736
if (activity.getIsPathDirectory(mainFilePath)) {
736737
name = "${mainFilePath.getFilenameFromPath()}/"
738+
val dirModified = File(mainFilePath).lastModified()
737739
zout.putNextEntry(
738740
ZipParameters().also {
739741
it.fileNameInZip = name
742+
it.lastModifiedFileTime = dirModified
740743
}
741744
)
742745
}
@@ -751,9 +754,9 @@ class ItemsAdapter(
751754
if (activity.getIsPathDirectory(file.path)) {
752755
queue.push(file.path)
753756
name = "${name.trimEnd('/')}/"
754-
zout.putNextEntry(zipEntry(name))
757+
zout.putNextEntry(zipEntry(name, file.modified))
755758
} else {
756-
zout.putNextEntry(zipEntry(name))
759+
zout.putNextEntry(zipEntry(name, file.modified))
757760
activity.getFileInputStreamSync(file.path)!!.copyTo(zout)
758761
zout.closeEntry()
759762
}
@@ -766,9 +769,9 @@ class ItemsAdapter(
766769
if (activity.getIsPathDirectory(file.absolutePath)) {
767770
queue.push(file.absolutePath)
768771
name = "${name.trimEnd('/')}/"
769-
zout.putNextEntry(zipEntry(name))
772+
zout.putNextEntry(zipEntry(name, file.lastModified()))
770773
} else {
771-
zout.putNextEntry(zipEntry(name))
774+
zout.putNextEntry(zipEntry(name, file.lastModified()))
772775
activity.getFileInputStreamSync(file.path)!!.copyTo(zout)
773776
zout.closeEntry()
774777
}
@@ -777,7 +780,8 @@ class ItemsAdapter(
777780

778781
} else {
779782
name = if (base == currentPath) currentPath.getFilenameFromPath() else mainFilePath.relativizeWith(base)
780-
zout.putNextEntry(zipEntry(name))
783+
val fileModified = File(mainFilePath).lastModified()
784+
zout.putNextEntry(zipEntry(name, fileModified))
781785
activity.getFileInputStreamSync(mainFilePath)!!.copyTo(zout)
782786
zout.closeEntry()
783787
}

0 commit comments

Comments
 (0)