Files
calendula/app
Jean-Luc Makiola 6a2f490b1a fix(widget): keep the two widgets apart in release builds (#89)
Glance identifies a widget by its GlanceAppWidget subclass's canonical name:
GlanceAppWidgetManager stores a providerName -> receivers map under that string,
and updateAll resolves a widget's app-widget ids through it. R8 full mode
horizontally merged MonthWidget into AgendaWidget — same supertype, same
overrides, nothing to tell them apart — so both receivers registered under one
provider name and AgendaWidget().updateAll() also matched the month widget's id,
redrawing it as the agenda widget on the next PROVIDER_CHANGED.

2.16.0 is where it started because that release gave AgendaWidget the
SizeMode.Exact override MonthWidget already had, which is what made the two
classes mergeable. Verified in the releaseTest mapping: before, only AgendaWidget
survived, carrying an $r8$classId field and MonthWidget's constructor frames;
after, both classes are there under their own names.

Keeping the real names also survives app updates, which would otherwise renumber
the obfuscated name and orphan the stored mapping.
2026-07-30 15:23:11 +02:00
..