Skip to content

[UX] Theme the Sustainer launcher icon - #147

Draft
joashrajin wants to merge 1 commit into
trunkfrom
codex/theme-sustainer-launcher-icon
Draft

joashrajin wants to merge 1 commit into
trunkfrom
codex/theme-sustainer-launcher-icon

Conversation

@joashrajin

Copy link
Copy Markdown
Owner

Fix

The legacy Sustainer launcher alias uses its own green adaptive icon, but that icon did not include the monochrome layer already used by Simplenote's primary launcher icon. On Android 13 and later, supported launchers use that layer when the user enables themed icons; before Android 16 QPR2, an icon without it falls back to its regular adaptive appearance. Android 16 QPR2 can generate a fallback, but an explicit layer remains the app-controlled rendering path.

Add the shared ic_launcher_mono layer to the Sustainer icon. The primary and green foregrounds use the same path geometry and differ only by color, so the shared monochrome artwork preserves the intended silhouette. Unthemed rendering remains green; under themed icons, both launcher variants intentionally use the same dynamically tinted silhouette.

Android references: themed icons in Android 13, adaptive icon guidance, and Android 16 QPR2 behavior.

Test

  • Ran the same compiled Robolectric regression (class SHA-256 b43c4a25...) against exact fork trunk a1280c2e and the fix on API 35:
    • Base: 0/1; the green adaptive icon had no monochrome drawable.
    • Fixed: 1/1; the runtime monochrome layer resolves from R.drawable.ic_launcher_mono.
  • Ran the forced local matrix: 169/169 Gradle tasks executed successfully.
    • JVM tests: 305/305 across 35 suites.
    • Android-test sources compiled successfully (32 Kotlin and 17 Java class outputs); no device tests were run.
    • Roborazzi: 14/14 references unchanged.
    • Debug/release APKs, release AAB, and release mapping rebuilt; all archives passed integrity checks.
    • The debug APK verifies with v1/v2 under the Android Debug certificate; release APK/AAB are unsigned as expected locally.
    • Sentry mapping upload was excluded because SENTRY_AUTH_TOKEN was unset.
  • Ran :Simplenote:lintDebug: 0 errors, 263 warnings, 1 hint, with no finding on either changed path.

Review

Please focus on reusing the primary icon's monochrome artwork and on the intentional themed-mode tradeoff: the standard and Sustainer variants become the same launcher-supplied color, while the alternate icon remains green when themed icons are disabled.

The regression exercises compiled adaptive-icon inflation on Robolectric API 35 and pins the exact monochrome resource. It does not enable the launcher alias, exercise the preference toggle or launcher cache, render a themed icon, cover individual OEM launchers, or run on physical API 33/36 devices.

Before publication, neither changed path appeared in any of 116 open fork PRs or 9 open upstream PRs. Fork PR #139 changes the manifest, and upstream PR Automattic#1847 changes the Sustainer-related preference surface, but both are path-disjoint and preserve this launcher alias flow. This branch is based directly on fork trunk; no upstream branch or PR was written.

Release

The legacy Sustainer launcher icon now honors themed icons on supported Android launchers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant