Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa131d53 authored by Pierre Lecesne's avatar Pierre Lecesne
Browse files

Only compress files that were already compressed in the original APK.

Also fix a log message.

Test: Manually. Unit tests pass.

Change-Id: Iea236bbcfbe1a0a0894ce1bfce09c19208c5a0bc
parent 2a123242
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -86,8 +86,7 @@ bool LoadedApk::WriteToArchive(IAaptContext* context, IArchiveWriter* writer) {
    if (path.find("res/") == 0 && referenced_resources.find(path) == referenced_resources.end()) {
      if (context->IsVerbose()) {
        context->GetDiagnostics()->Note(DiagMessage()
                                        << "Resource '" << path << "' not referenced in "
                                        << "resource table; removing from APK.");
                                        << "Removing resource '" << path << "' from APK.");
      }
      continue;
    }
@@ -110,8 +109,8 @@ bool LoadedApk::WriteToArchive(IAaptContext* context, IArchiveWriter* writer) {
    }

    std::unique_ptr<io::IData> data = file->OpenAsData();
    // TODO(lecesne): Only compress the files that were compressed in the original APK.
    if (!writer->StartEntry(path, ArchiveEntry::kCompress) ||
    uint32_t compression_flags = file->WasCompressed() ? ArchiveEntry::kCompress : 0u;
    if (!writer->StartEntry(path, compression_flags) ||
        !writer->WriteEntry(data->data(), data->size()) || !writer->FinishEntry()) {
      context->GetDiagnostics()->Error(DiagMessage()
                                       << "Error when writing file '" << path << "' in APK.");