Files
amethyst/gradle
Claude 1f4d2bf9b5 fix: clear the mechanical Android Lint warnings
Lint reports 874 warnings / 0 errors per amethyst variant. 512 of those are
in Crowdin-managed values-*/strings.xml (mostly MissingQuantity — a
translator's plural missing a quantity) and are not ours to hand-edit; this
takes the ones that are mechanical and behaviour-preserving:

- EmptySuperCall (24 in amethyst, plus 2 in commons the amethyst run cannot
  see): ViewModel.onCleared is documented empty, so drop the super calls.
- UseKtx (2): Canvas.withTranslation for the LaTeX drawable, and
  Bitmap.toDrawable for the map pin — the KTX form CLAUDE.md asks for, and
  both compile to the same calls.
- ConstantLocale (1): CalendarEventListCard held its "MMM" formatter in a
  file-level val, which captures Locale.getDefault() once — month
  abbreviations stayed in whatever language was active at class init. The
  formatter is now cached per locale, which keeps the property the original
  comment was protecting (a formatter per recompose was 500 allocations while
  scrolling), and the locale comes from LocalLocale.current.platformLocale so
  the read is observable: Locale.getDefault() inside a composable is not, and
  Compose's own NonObservableLocale check rates that an error.
- UnusedResources (6): the Android Studio new-project wizard's leftover
  colors (purple_200, teal_200, teal_700, black, white, transparent), each
  verified unreferenced from Kotlin and XML. purple_500/700 are in use and
  stay.
- UseTomlInstead (3): the debug-only Compose/Perfetto tracing dependencies
  move into the version catalog. Same coordinates and versions; the catalog
  already carries BOM-managed versionless entries.

playDebug goes from 874 warnings to 838, still 0 errors.

Deliberately left, because each is a decision rather than a cleanup:
AppLinkWarning (autoVerify only works if the domains serve a matching
assetlinks.json), the 126 unused source strings and 10 PluralsCandidate
(both churn the translation surface), GradleDependency /
NewerVersionAvailable (dependency bumps need the license check), VectorRaster
/ VectorPath / IconDensities / IconXmlAndPng (redrawing assets), BatteryLife
(the battery-optimization helper working as designed), and InlinedApi /
ClickableViewAccessibility / DiscouragedApi / InsecureBaseConfiguration (each
needs its surrounding intent read first).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0123kXtseu4X18hL3GMDcdER
2026-09-12 19:17:39 +00:00
..