mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-05-02 15:14:26 +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.APKLogger;
|
||||||
import com.reandroid.apk.RenamedInputSource;
|
import com.reandroid.apk.RenamedInputSource;
|
||||||
import com.reandroid.archive.InputSource;
|
import com.reandroid.archive.InputSource;
|
||||||
|
import com.reandroid.archive.WriteProgress;
|
||||||
import com.reandroid.archive2.ZipSignature;
|
import com.reandroid.archive2.ZipSignature;
|
||||||
import com.reandroid.archive2.block.ApkSignatureBlock;
|
import com.reandroid.archive2.block.ApkSignatureBlock;
|
||||||
import com.reandroid.archive2.block.EndRecord;
|
import com.reandroid.archive2.block.EndRecord;
|
||||||
@ -37,6 +38,7 @@ public class ApkWriter extends ZipFileOutput {
|
|||||||
private ZipAligner zipAligner;
|
private ZipAligner zipAligner;
|
||||||
private ApkSignatureBlock apkSignatureBlock;
|
private ApkSignatureBlock apkSignatureBlock;
|
||||||
private APKLogger apkLogger;
|
private APKLogger apkLogger;
|
||||||
|
private WriteProgress writeProgress;
|
||||||
|
|
||||||
public ApkWriter(File file, Collection<? extends InputSource> sourceList) throws IOException {
|
public ApkWriter(File file, Collection<? extends InputSource> sourceList) throws IOException {
|
||||||
super(file);
|
super(file);
|
||||||
@ -113,6 +115,10 @@ public class ApkWriter extends ZipFileOutput {
|
|||||||
BufferFileOutput output = new BufferFileOutput(bufferFile);
|
BufferFileOutput output = new BufferFileOutput(bufferFile);
|
||||||
BufferFileInput input = new BufferFileInput(bufferFile);
|
BufferFileInput input = new BufferFileInput(bufferFile);
|
||||||
for(OutputSource outputSource:outputList){
|
for(OutputSource outputSource:outputList){
|
||||||
|
InputSource inputSource = outputSource.getInputSource();
|
||||||
|
onCompressFileProgress(inputSource.getAlias(),
|
||||||
|
inputSource.getMethod(),
|
||||||
|
output.position());
|
||||||
outputSource.makeBuffer(input, output);
|
outputSource.makeBuffer(input, output);
|
||||||
}
|
}
|
||||||
output.close();
|
output.close();
|
||||||
@ -163,6 +169,15 @@ public class ApkWriter extends ZipFileOutput {
|
|||||||
return new OutputSource(inputSource);
|
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(){
|
APKLogger getApkLogger(){
|
||||||
return apkLogger;
|
return apkLogger;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user