mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-29 22:04:25 +02:00
implement progress for archive2
This commit is contained in:
parent
f1f6300e64
commit
ee03ff9eaa
@ -18,6 +18,7 @@ package com.reandroid.archive2.writer;
|
||||
import com.reandroid.apk.APKLogger;
|
||||
import com.reandroid.apk.RenamedInputSource;
|
||||
import com.reandroid.archive.InputSource;
|
||||
import com.reandroid.archive.WriteProgress;
|
||||
import com.reandroid.archive2.ZipSignature;
|
||||
import com.reandroid.archive2.block.ApkSignatureBlock;
|
||||
import com.reandroid.archive2.block.EndRecord;
|
||||
@ -37,6 +38,7 @@ public class ApkWriter extends ZipFileOutput {
|
||||
private ZipAligner zipAligner;
|
||||
private ApkSignatureBlock apkSignatureBlock;
|
||||
private APKLogger apkLogger;
|
||||
private WriteProgress writeProgress;
|
||||
|
||||
public ApkWriter(File file, Collection<? extends InputSource> sourceList) throws IOException {
|
||||
super(file);
|
||||
@ -113,6 +115,10 @@ public class ApkWriter extends ZipFileOutput {
|
||||
BufferFileOutput output = new BufferFileOutput(bufferFile);
|
||||
BufferFileInput input = new BufferFileInput(bufferFile);
|
||||
for(OutputSource outputSource:outputList){
|
||||
InputSource inputSource = outputSource.getInputSource();
|
||||
onCompressFileProgress(inputSource.getAlias(),
|
||||
inputSource.getMethod(),
|
||||
output.position());
|
||||
outputSource.makeBuffer(input, output);
|
||||
}
|
||||
output.close();
|
||||
@ -163,6 +169,15 @@ public class ApkWriter extends ZipFileOutput {
|
||||
return new OutputSource(inputSource);
|
||||
}
|
||||
|
||||
public void setWriteProgress(WriteProgress writeProgress){
|
||||
this.writeProgress = writeProgress;
|
||||
}
|
||||
private void onCompressFileProgress(String path, int mode, long writtenBytes) {
|
||||
if(writeProgress!=null){
|
||||
writeProgress.onCompressFile(path, mode, writtenBytes);
|
||||
}
|
||||
}
|
||||
|
||||
APKLogger getApkLogger(){
|
||||
return apkLogger;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user