Skip to content

fix: add themed launcher icon support#40

Open
SpencerJung wants to merge 2 commits into
samyak2403:mainfrom
SpencerJung:fix/2-themed-icon
Open

fix: add themed launcher icon support#40
SpencerJung wants to merge 2 commits into
samyak2403:mainfrom
SpencerJung:fix/2-themed-icon

Conversation

@SpencerJung
Copy link
Copy Markdown

@SpencerJung SpencerJung commented May 27, 2026

Closes #2

Summary

  • Add a dedicated monochrome launcher vector asset for Android themed icons.
  • Wire that monochrome asset into both adaptive launcher icon definitions.
  • Keep the existing colored foreground/background assets unchanged.

Issue Evidence

  • Issue Add themed icon. #2 requests a monochrome icon layer so modern Android versions can theme the launcher icon.
  • The current adaptive icon XMLs only declare background and foreground, so Android 13+ has no monochrome layer to tint.
  • This PR adds the missing layer without redesigning the rest of the launcher asset pipeline.

Verification

  • git diff --check — passed.
  • XML LSP — unavailable in this environment.
  • gradlew.bat :app:processDebugResources — blocked because JAVA_HOME / java are unavailable in this shell.

Community Rules Review

  • Focused PR for a single issue/concern.
  • Split into two atomic commits: new monochrome asset, then adaptive-icon wiring.
  • No unauthorized version bump.
  • No workflow/tracker/profile files included in the target repo diff.

Summary by CodeRabbit

  • New Features
    • Added monochrome launcher icon support for enhanced system-level icon theming integration on compatible Android devices.

Review Change Stack

SpencerJung and others added 2 commits May 27, 2026 17:16
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ff886ee3-9e2a-4864-978f-7262426c4fd0

📥 Commits

Reviewing files that changed from the base of the PR and between dfe2434 and 29203f1.

📒 Files selected for processing (3)
  • app/src/main/res/drawable/ic_launcher_monochrome.xml
  • app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  • app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

📝 Walkthrough

Walkthrough

This PR adds monochrome launcher icon support to enable Android's themed icon system. A new white vector drawable is created and then referenced by both the standard and round launcher icon adaptive-icon configurations.

Changes

Monochrome launcher icon support

Layer / File(s) Summary
Monochrome icon drawable definition
app/src/main/res/drawable/ic_launcher_monochrome.xml
New 108dp vector drawable with white-filled path defines the monochrome representation of the app launcher icon.
Adaptive icon monochrome references
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml, app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
Both adaptive icon configurations now include <monochrome> layer referencing the new drawable for Android themable icon support.

🎯 2 (Simple) | ⏱️ ~8 minutes

🐰 A monochrome layer, drawn with care,
Makes your icon theme-aware!
White paths on Android's modern stage,
Let system colors set the page.
Icons dressed in nature's way! 🎨✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'fix: add themed launcher icon support' directly and clearly summarizes the main change: adding themed launcher icon support via a monochrome layer for Android theming compatibility.
Linked Issues check ✅ Passed The pull request fully implements issue #2 requirements: adds a monochrome vector asset, wires it into adaptive icon XMLs, and maintains existing colored assets unchanged.
Out of Scope Changes check ✅ Passed All changes are directly related to issue #2; the PR adds only the monochrome icon asset and updates adaptive icon XMLs without unrelated modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a monochrome adaptive launcher icon by adding a new vector asset and referencing it in both the standard and round launcher configuration files. The reviewer recommends moving the monochrome icon asset from the drawable directory to a mipmap directory (and updating the corresponding references) to ensure the launcher icon is not stripped or downscaled during the Android App Bundle (AAB) generation process.

<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon> No newline at end of file
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Launcher icon assets (including monochrome adaptive icon layers) should be placed in the mipmap resource directories rather than drawable directories.

When building Android App Bundles (AABs), resources in drawable folders can be stripped or downscaled based on the target device's screen density. However, launchers often require higher-density icons than the device's default density (e.g., for zoom effects or larger grid layouts). Placing launcher assets in mipmap ensures they are preserved across all densities and avoids potential resource-not-found crashes or pixelation.

Please move ic_launcher_monochrome.xml to app/src/main/res/mipmap/ (or mipmap-anydpi-v26/) and update this reference to @mipmap/ic_launcher_monochrome.

Suggested change
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>

<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon> No newline at end of file
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Launcher icon assets (including monochrome adaptive icon layers) should be placed in the mipmap resource directories rather than drawable directories.

When building Android App Bundles (AABs), resources in drawable folders can be stripped or downscaled based on the target device's screen density. However, launchers often require higher-density icons than the device's default density (e.g., for zoom effects or larger grid layouts). Placing launcher assets in mipmap ensures they are preserved across all densities and avoids potential resource-not-found crashes or pixelation.

Please move ic_launcher_monochrome.xml to app/src/main/res/mipmap/ (or mipmap-anydpi-v26/) and update this reference to @mipmap/ic_launcher_monochrome.

Suggested change
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This monochrome launcher icon asset should be placed in a mipmap directory (e.g., app/src/main/res/mipmap/ or app/src/main/res/mipmap-anydpi-v26/) instead of drawable/.

Using mipmap folders for launcher icons ensures that they are not stripped or downscaled during the Android App Bundle (AAB) generation process, which is critical for maintaining high-quality launcher icons across different device densities.

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.

Add themed icon.

1 participant