diff --git a/CHANGELOG.md b/CHANGELOG.md index bf259062..55e85a6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ **Changed** - Replace `com.jakewharton.diffuse.io.Size` with `me.saket.bytesize.ByteSize` in the APIs. - Eliminate `data class` from public APIs. +- Show compressed columns when compressed entries present. **Fixed** - Significantly improve `.jar` diff performance. diff --git a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AabDiff.kt b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AabDiff.kt index c2a3e318..cdcb8aa0 100644 --- a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AabDiff.kt +++ b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AabDiff.kt @@ -6,7 +6,7 @@ import com.jakewharton.diffuse.report.text.AabDiffTextReport internal class AabDiff(val oldAab: Aab, val newAab: Aab) : BinaryDiff { inner class ModuleDiff(val oldModule: Aab.Module, val newModule: Aab.Module) { - val archive = ArchiveFilesDiff(oldModule.files, newModule.files, includeCompressed = false) + val archive = ArchiveFilesDiff(oldModule.files, newModule.files) val dex = DexDiff( oldModule.dexes.map { it.withMapping(oldAab.apiMapping) }, diff --git a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AarDiff.kt b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AarDiff.kt index 549c1e59..fb208c37 100644 --- a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AarDiff.kt +++ b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/AarDiff.kt @@ -11,7 +11,7 @@ internal class AarDiff( val newAar: Aar, val newMapping: ApiMapping, ) : BinaryDiff { - val archive = ArchiveFilesDiff(oldAar.files, newAar.files, includeCompressed = false) + val archive = ArchiveFilesDiff(oldAar.files, newAar.files) val jars = JarsDiff(oldAar.jars, oldMapping, newAar.jars, newMapping) val manifest = AndroidManifestDiff(oldAar.manifest, newAar.manifest) diff --git a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/ArchiveFilesDiff.kt b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/ArchiveFilesDiff.kt index aaf8d70b..ed250556 100644 --- a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/ArchiveFilesDiff.kt +++ b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/ArchiveFilesDiff.kt @@ -18,7 +18,7 @@ import me.saket.bytesize.binaryBytes internal class ArchiveFilesDiff( val oldFiles: ArchiveFiles, val newFiles: ArchiveFiles, - val includeCompressed: Boolean = true, + val includeCompressed: Boolean = oldFiles.isCompressed || newFiles.isCompressed, ) { data class Change( val path: String, @@ -235,3 +235,6 @@ internal fun ArchiveFilesDiff.toDetailReport() = buildString { .renderText() ) } + +private val ArchiveFiles.isCompressed: Boolean + get() = values.any { it.isCompressed } diff --git a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/JarDiff.kt b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/JarDiff.kt index e2e3e2d2..b6c190ba 100644 --- a/reports/src/main/kotlin/com/jakewharton/diffuse/diff/JarDiff.kt +++ b/reports/src/main/kotlin/com/jakewharton/diffuse/diff/JarDiff.kt @@ -11,7 +11,7 @@ internal class JarDiff( val newJar: Jar, val newMapping: ApiMapping, ) : BinaryDiff { - val archive = ArchiveFilesDiff(oldJar.files, newJar.files, includeCompressed = false) + val archive = ArchiveFilesDiff(oldJar.files, newJar.files) val jars = JarsDiff(listOf(oldJar), oldMapping, listOf(newJar), newMapping) val changed = jars.changed || archive.changed