From 829b32520e96ae398ef53820fbe936cb87fdca7c Mon Sep 17 00:00:00 2001 From: REAndroid Date: Fri, 5 May 2023 21:47:32 +0200 Subject: [PATCH] buffer TableBlock at end --- .../java/com/reandroid/archive2/writer/ApkWriter.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/reandroid/archive2/writer/ApkWriter.java b/src/main/java/com/reandroid/archive2/writer/ApkWriter.java index ae6d461..79adfd3 100644 --- a/src/main/java/com/reandroid/archive2/writer/ApkWriter.java +++ b/src/main/java/com/reandroid/archive2/writer/ApkWriter.java @@ -24,6 +24,7 @@ import com.reandroid.archive2.block.ApkSignatureBlock; import com.reandroid.archive2.block.EndRecord; import com.reandroid.archive2.io.ArchiveEntrySource; import com.reandroid.archive2.io.ZipFileOutput; +import com.reandroid.arsc.chunk.TableBlock; import java.io.File; import java.io.IOException; @@ -114,13 +115,21 @@ public class ApkWriter extends ZipFileOutput { File bufferFile = getBufferFile(); BufferFileOutput output = new BufferFileOutput(bufferFile); BufferFileInput input = new BufferFileInput(bufferFile); + OutputSource tableSource = null; for(OutputSource outputSource:outputList){ InputSource inputSource = outputSource.getInputSource(); + if(tableSource == null && TableBlock.FILE_NAME.equals(inputSource.getAlias())){ + tableSource = outputSource; + continue; + } onCompressFileProgress(inputSource.getAlias(), inputSource.getMethod(), output.position()); outputSource.makeBuffer(input, output); } + if(tableSource != null){ + tableSource.makeBuffer(input, output); + } output.close(); return input; }