Skip to content

Commit dd6a183

Browse files
committed
Preserve modified date when unzip files via actions menu
- Additionally handle the case with 0 last modified time.
1 parent a4f8460 commit dd6a183

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

app/src/main/kotlin/org/fossify/filemanager/activities/DecompressActivity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.fossify.filemanager.R
2626
import org.fossify.filemanager.adapters.DecompressItemsAdapter
2727
import org.fossify.filemanager.databinding.ActivityDecompressBinding
2828
import org.fossify.filemanager.extensions.config
29+
import org.fossify.filemanager.extensions.setLastModified
2930
import org.fossify.filemanager.models.ListItem
3031
import java.io.BufferedInputStream
3132
import java.io.File
@@ -189,7 +190,7 @@ class DecompressActivity : SimpleActivity() {
189190
fos!!.write(buffer, 0, count)
190191
}
191192
fos!!.close()
192-
outputFile.setLastModified(entry.lastModifiedTimeEpoch)
193+
outputFile.setLastModified(entry)
193194
}
194195

195196
toast(R.string.decompression_successful)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ import org.fossify.filemanager.extensions.config
101101
import org.fossify.filemanager.extensions.isPathOnRoot
102102
import org.fossify.filemanager.extensions.isZipFile
103103
import org.fossify.filemanager.extensions.setAs
104+
import org.fossify.filemanager.extensions.setLastModified
104105
import org.fossify.filemanager.extensions.sharePaths
105106
import org.fossify.filemanager.extensions.toggleItemVisibility
106107
import org.fossify.filemanager.extensions.tryOpenPathIntent
@@ -693,6 +694,7 @@ class ItemsAdapter(
693694
val fos = activity.getFileOutputStreamSync(newPath, newPath.getMimeType())
694695
if (fos != null) {
695696
zipInputStream.copyTo(fos)
697+
File(newPath).setLastModified(entry)
696698
}
697699
}
698700
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.fossify.filemanager.extensions
2+
3+
import net.lingala.zip4j.model.LocalFileHeader
4+
import java.io.File
5+
6+
fun File.setLastModified(localFileHeader: LocalFileHeader) {
7+
setLastModified(localFileHeader.lastModifiedOrCurrentTimeMillis)
8+
}
9+
10+
private val LocalFileHeader.lastModifiedOrCurrentTimeMillis
11+
get() = if (lastModifiedTimeEpoch == 0L) {
12+
System.currentTimeMillis()
13+
} else {
14+
lastModifiedTimeEpoch
15+
}

0 commit comments

Comments
 (0)