Skip to content

Commit 9699a4e

Browse files
committed
update zst compression level
1 parent 552086b commit 9699a4e

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

app/src/main/java/com/wirelessalien/zipxtract/service/ArchiveTarService.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import android.os.IBinder
2828
import androidx.core.app.NotificationCompat
2929
import androidx.localbroadcastmanager.content.LocalBroadcastManager
3030
import androidx.preference.PreferenceManager
31+
import com.github.luben.zstd.ZstdOutputStream
3132
import com.wirelessalien.zipxtract.R
3233
import com.wirelessalien.zipxtract.constant.BroadcastConstants.ACTION_ARCHIVE_COMPLETE
3334
import com.wirelessalien.zipxtract.constant.BroadcastConstants.ACTION_ARCHIVE_ERROR
@@ -54,7 +55,6 @@ import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream
5455
import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream
5556
import org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream
5657
import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream
57-
import org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream
5858
import java.io.BufferedOutputStream
5959
import java.io.File
6060
import java.io.IOException
@@ -132,9 +132,15 @@ class ArchiveTarService : Service() {
132132
stopForegroundService()
133133
return
134134
}
135+
136+
// Get ZSTD compression level from SharedPreferences
137+
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
138+
val compressionLevelString = sharedPreferences.getString("zstd_compression_level", "3")
139+
val compressionLevel = compressionLevelString?.toIntOrNull() ?: 3
140+
val safeLevel = compressionLevel.coerceIn(0, 22)
141+
135142
try {
136143
val baseDirectory = File(filesToArchive.first()).parentFile?.absolutePath ?: ""
137-
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
138144
val archivePath = sharedPreferences.getString(PREFERENCE_ARCHIVE_DIR_PATH, null)
139145
val parentDir: File
140146

@@ -192,7 +198,7 @@ class ArchiveTarService : Service() {
192198
CompressorStreamFactory.LZMA -> LZMACompressorOutputStream(bos)
193199
CompressorStreamFactory.BZIP2 -> BZip2CompressorOutputStream(bos)
194200
CompressorStreamFactory.XZ -> XZCompressorOutputStream(bos)
195-
CompressorStreamFactory.ZSTANDARD -> ZstdCompressorOutputStream(bos)
201+
CompressorStreamFactory.ZSTANDARD -> ZstdOutputStream(bos).apply { setLevel(safeLevel) }
196202
CompressorStreamFactory.GZIP -> GzipCompressorOutputStream(bos)
197203
else -> bos
198204
}

0 commit comments

Comments
 (0)