Skip to content

PoPMobile v1.0.9

Choose a tag to compare

@proofofprints proofofprints released this 18 Apr 19:55
· 58 commits to main since this release
3cc7185

v1.0.7 misdiagnosed the Download-button crash as an R8 issue. The NoSuchMethodError still reproduced with minification disabled on the emulator this session, ruling that theory out.

Root cause

compose-bom 2024.01.00 ships material3 1.1.2 and animation-core 1.6.0 together. Material3's LinearProgressIndicator internally calls KeyframesSpecConfig.at(Object, Int) (new 1.6 generic signature), but the bundled animation-core doesn't expose that overload — producing:

java.lang.NoSuchMethodError: No virtual method at(Ljava/lang/Object;I)
    Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;
  at androidx.compose.material3.ProgressIndicatorKt$LinearProgressIndicator
  at com.proofofprints.popmobile.update.UpdateDialogKt.DownloadingBody

…the first time DownloadingBody tried to render after the user tapped Download.

Fix

Replace LinearProgressIndicator with a plain Box we draw ourselves. No KeyframesSpec, no internal animation, nothing to version-drift against. Visually identical (6 dp tall, rounded 3 dp, cyan fill on dark track), ~15 lines of code.

Version

versionCode 8 → 10 (skipping 9 to keep the broken v1.0.8 interim artifact distinguishable), versionName 1.0.7 → 1.0.9.

Test plan

  • ./gradlew assembleRelease builds cleanly
  • Signed APK fingerprint matches 6c849abe…
  • Emulator on v1.0.7 → Settings → About → Check for updates → offers v1.0.9 → Download → progress bar fills (no crash) → install screen appears → install → app reopens as v1.0.9