fix(widget): the seven widgets keep their names through R8 #275
No reviewers
Labels
No labels
adr
android
area/calendar
area/design-system
area/i18n
area/jobs
area/offline
area/server
area/testing
bug
ci
duplicate
enhancement
help wanted
invalid
notifications
question
reliability
security
severity/low
severity/medium
tracking
web
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app!275
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/widget-r8-class-merge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Release v2.1.1 on a Pixel: after the first 15-minute beat, the quick add, points and jobs widgets all repaint as the today widget.
Cause. R8 horizontal class merging collapsed five of the seven
GlanceAppWidgetsubclasses into CalendarWidget's obfuscated class (confirmed in the releasemapping.txt). Glance maps a receiver's glance ids by the widget class's canonical name (GlanceAppWidgetManager), so one shared name makesgetGlanceIdsreturn every placed widget. EachupdateAllinWidgetUpdater.updateAllWidgetsthen painted all of them, and the last writer won. Debug builds do not minify, which is why the drift never showed on the debug install.Fix. A ProGuard keep on
GlanceAppWidgetsubclasses blocks both the merge and the rename. A fresh release build's mapping shows all seven classes distinct and unrenamed.Needs a patch release to reach the phone — the placed widgets recover on the first beat after update.
Test report
Coverage: 27.0%
Updated by the check workflow · commit
2bbf6b8487Android test report
Coverage: 11.7% of lines
Updated by the android workflow · commit
2bbf6b8487cab4468d342bbf6b8487