Skip to content

fix(android): use the Omnigent creature mark for the notification icon - #4623

Open
btli wants to merge 1 commit into
omnigent-ai:mainfrom
btli:fix/android-notification-icon
Open

fix(android): use the Omnigent creature mark for the notification icon#4623
btli wants to merge 1 commit into
omnigent-ai:mainfrom
btli:fix/android-notification-icon

Conversation

@btli

@btli btli commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Related issue

Fixes #4622

Summary

Android status-bar small icons are system-tinted monochrome alpha masks: color and fine interior detail are discarded. The previously shipped icon was a generic isometric cube, while reusing the full launcher creature mark was also rejected because its pupils and nested sub-creature disappear entirely at 24dp.

This ships a purpose-built five-lobed creature silhouette with bold eye cutouts that survive at status-bar size. The drawable is now one 586-character path instead of the reused 4,332-character path, which also clears Android lint's VectorPath “very long vector path” warning.

ELI5: Android treats the small icon like a stencil, so this uses one simple creature-shaped stencil with two large eye holes instead of shrinking detailed artwork until it disappears.

detailed launcher art -> simplify for alpha mask -> silhouette + bold eye holes -> Android tint

Test Plan

  • PATH="$PWD/.venv/bin:$PATH" pre-commit run --files web/android/app/src/main/res/drawable/ic_notification.xml — passed all applicable hooks.
  • From web/android: JAVA_HOME=/opt/homebrew/opt/openjdk@21 ANDROID_HOME="$HOME/Library/Android/sdk" ./gradlew :app:lintDebugBUILD SUCCESSFUL in 14 seconds; 29 tasks completed or were up to date.
  • Converted the final VectorDrawable to SVG while preserving evenOdd, rasterized it at 96px, 48px, 24px, and 16px, and compared each render against approved candidate B with ImageMagick. magick compare -metric AE returned 0 at every size.
  • Inspected alpha-only white-on-dark composites at 24px and 16px; the five-lobed silhouette remains distinct and both eye cutouts remain separate.

Demo

24px system-tinted alpha-mask view (shown enlarged):

Approved Omnigent notification glyph rendered white on a dark status-bar background at 24 pixels

96px detail view:

Approved simplified Omnigent notification glyph at 96 pixels

Previous cube vs. purpose-built creature glyph:

Side-by-side comparison of the previous cube and new Omnigent creature notification glyph

Type of change

  • Bug fix
  • Feature
  • UI / frontend change
  • Refactor / chore
  • Docs
  • Test / CI
  • Breaking change

Test coverage

  • Unit tests added / updated
  • Integration tests added / updated
  • E2E tests added / updated
  • Manual verification completed
  • Existing tests cover this change
  • Not applicable

Coverage notes

This is a static VectorDrawable asset, so automated unit, integration, and E2E coverage is not applicable. Manual verification covered Android resource linting, exact raster comparison against the approved design at four sizes, alpha-mask behavior, viewport containment, and visual legibility of the silhouette and eye cutouts at 24px and 16px.

Changelog

Android notifications now use a legible Omnigent creature icon in the status bar.

@github-actions github-actions Bot added P3-low Priority: minor issue, cosmetic, nice-to-have size/S Pull request size: S waiting-for-review labels Aug 11, 2026
@github-actions
github-actions Bot requested a review from fanzeyi August 11, 2026 22:14
@github-actions

Copy link
Copy Markdown
Contributor

@btli This PR is a Bug fix, Feature, or UI / frontend change but the Demo section is missing or only contains a placeholder.

These change types require a screenshot or screen recording so reviewers can see the new behaviour without checking out the branch. Please update the Demo section with:

  • A screenshot or screen recording of the change, or
  • A link to a hosted video or GIF showing the new behaviour.

Use N/A only when the change has no user-visible effect whatsoever (e.g. a pure refactor or test-only change). If that's the case, uncheck the relevant type box and check Refactor / chore or Test / CI instead.

@github-actions github-actions Bot added the needs-demo PR needs a demo screenshot or recording label Aug 11, 2026
github-actions Bot pushed a commit to btli/omnigent that referenced this pull request Aug 11, 2026
github-actions Bot pushed a commit to btli/omnigent that referenced this pull request Aug 12, 2026
github-actions Bot pushed a commit to btli/omnigent that referenced this pull request Aug 12, 2026
Android status-bar small icons are system-tinted alpha masks, so the
launcher artwork's pupils and nested sub-creature disappear at notification
size. Replace the reused launcher paths with a purpose-built five-lobed
silhouette and bold eye cutouts that remain legible when downsampled.

Signed-off-by: Bryan Li <bryan.li@gmail.com>
@btli
btli force-pushed the fix/android-notification-icon branch from fa4c79d to 08f3493 Compare August 12, 2026 03:50
@github-actions github-actions Bot added size/XS Pull request size: XS and removed size/S Pull request size: S labels Aug 12, 2026
github-actions Bot pushed a commit to btli/omnigent that referenced this pull request Aug 12, 2026
github-actions Bot pushed a commit to btli/omnigent that referenced this pull request Aug 12, 2026
github-actions Bot pushed a commit to btli/omnigent that referenced this pull request Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-demo PR needs a demo screenshot or recording P3-low Priority: minor issue, cosmetic, nice-to-have size/XS Pull request size: XS waiting-for-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(android): notification small icon renders as a generic cube

2 participants