From 6efebc51b2e27cc5c2bd346ea5f17115ed28be99 Mon Sep 17 00:00:00 2001 From: Andrea Niccoli Date: Thu, 16 Jul 2026 12:02:27 +0200 Subject: [PATCH 1/2] fix(MediaQuality): don't skip HEIC/HEIF transcode The image-quality overrides added in 72624dff enable ab-prop 26291, which turns on WhatsApp's Jarvis ML image-transcode config (UitTranscodeConfig / JarvisImageConfig) in ProcessImageTaskConnector. That path's native passthrough decision mishandles HEIC/HEIF: the source is uploaded without being transcoded to JPEG, so recipients get "something wrong with the image file". On-device bisection confirmed 26291 as the sole culprit (26289 is the same gate for a different image mode and is unaffected), so drop only that flag and keep the maxKb/quality/maxEdge quality knobs and the other props. Co-Authored-By: Claude Opus 4.8 --- .../wmods/wppenhacer/xposed/features/media/MediaQuality.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt b/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt index 290bde367..08a1e93ff 100644 --- a/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt +++ b/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt @@ -132,7 +132,12 @@ class MediaQuality(loader: ClassLoader, preferences: SharedPreferences) : Others.propsBoolean[6033] = true Others.propsBoolean[9569] = false Others.propsBoolean[26289] = true - Others.propsBoolean[26291] = true + // 26291 enables WhatsApp's Jarvis ML image-transcode config + // (UitTranscodeConfig/JarvisImageConfig) for this image mode. Its native + // passthrough decision mishandles HEIC/HEIF, uploading the source + // untranscoded so recipients get a corrupt image ("something wrong with + // the image file"). Left disabled; the maxKb/quality/maxEdge knobs above + // still deliver the quality boost. Others.propsBoolean[22375] = true listOf(1576, 2654, 6032, 15748, 3068).forEach { Others.propsInteger[it] = 3840 } From 7bb7ebc0977b63be878629bc7932cab31e7b8095 Mon Sep 17 00:00:00 2001 From: Dev4Mod Date: Thu, 16 Jul 2026 20:49:40 -0300 Subject: [PATCH 2/2] Remove comments about Jarvis ML image-transcode config Removed comments explaining the Jarvis ML image-transcode config and its issues with HEIC/HEIF images. --- .../wppenhacer/xposed/features/media/MediaQuality.kt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt b/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt index 08a1e93ff..728ee7ef7 100644 --- a/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt +++ b/app/src/main/java/com/wmods/wppenhacer/xposed/features/media/MediaQuality.kt @@ -132,12 +132,6 @@ class MediaQuality(loader: ClassLoader, preferences: SharedPreferences) : Others.propsBoolean[6033] = true Others.propsBoolean[9569] = false Others.propsBoolean[26289] = true - // 26291 enables WhatsApp's Jarvis ML image-transcode config - // (UitTranscodeConfig/JarvisImageConfig) for this image mode. Its native - // passthrough decision mishandles HEIC/HEIF, uploading the source - // untranscoded so recipients get a corrupt image ("something wrong with - // the image file"). Left disabled; the maxKb/quality/maxEdge knobs above - // still deliver the quality boost. Others.propsBoolean[22375] = true listOf(1576, 2654, 6032, 15748, 3068).forEach { Others.propsInteger[it] = 3840 } @@ -190,4 +184,4 @@ class MediaQuality(loader: ClassLoader, preferences: SharedPreferences) : override fun getPluginName(): String { return "Media Quality" } -} \ No newline at end of file +}