Skip to content
This repository was archived by the owner on Nov 2, 2026. It is now read-only.

Commit 4e93b9c

Browse files
Fix Android adaptive launcher icon (pingdotgg#4332)
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
1 parent f4f3b32 commit 4e93b9c

4 files changed

Lines changed: 28 additions & 3 deletions

File tree

‎apps/mobile/app.config.ts‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ const personalTeamBundleIdentifier = repoEnv.T3CODE_IOS_PERSONAL_TEAM_BUNDLE_ID?
1515
const IOS_BUNDLE_IDENTIFIER_PATTERN = /^[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+$/;
1616

1717
const fromRepoRoot = (relativePath: string) => `../../${relativePath}`;
18+
// Universal exports already contain their own rounded-square silhouette. Using one as an adaptive
19+
// foreground makes Android draw an icon shape inside the launcher's mask.
20+
const androidAdaptiveForeground = "./assets/android-icon-foreground.png";
1821

1922
if (
2023
isIosPersonalTeamBuild &&
@@ -30,7 +33,7 @@ const DEVELOPMENT_ASSETS = {
3033
appIcon: fromRepoRoot(BRAND_ASSET_PATHS.developmentIosIconPng),
3134
iosIcon: fromRepoRoot(BRAND_ASSET_PATHS.developmentIconComposerProject),
3235
splashIcon: fromRepoRoot(BRAND_ASSET_PATHS.developmentIosIconPng),
33-
androidAdaptiveForeground: fromRepoRoot(BRAND_ASSET_PATHS.developmentUniversalIconPng),
36+
androidAdaptiveForeground,
3437
androidAdaptiveBackgroundColor: "#00639B",
3538
androidMonochromeIcon: "./assets/android-icon-mark.png",
3639
androidNotificationIcon: "./assets/android-notification-icon.png",
@@ -41,7 +44,7 @@ const PREVIEW_ASSETS = {
4144
appIcon: fromRepoRoot(BRAND_ASSET_PATHS.nightlyIosIconPng),
4245
iosIcon: fromRepoRoot(BRAND_ASSET_PATHS.nightlyIconComposerProject),
4346
splashIcon: fromRepoRoot(BRAND_ASSET_PATHS.nightlyIosIconPng),
44-
androidAdaptiveForeground: fromRepoRoot(BRAND_ASSET_PATHS.nightlyLinuxIconPng),
47+
androidAdaptiveForeground,
4548
androidAdaptiveBackgroundColor: "#111533",
4649
androidMonochromeIcon: "./assets/android-icon-mark.png",
4750
androidNotificationIcon: "./assets/android-notification-icon.png",
@@ -52,7 +55,7 @@ const RELEASE_ASSETS = {
5255
appIcon: fromRepoRoot(BRAND_ASSET_PATHS.productionIosIconPng),
5356
iosIcon: fromRepoRoot(BRAND_ASSET_PATHS.productionIconComposerProject),
5457
splashIcon: fromRepoRoot(BRAND_ASSET_PATHS.productionIosIconPng),
55-
androidAdaptiveForeground: "./assets/android-icon-mark.png",
58+
androidAdaptiveForeground,
5659
androidAdaptiveBackgroundColor: "#000000",
5760
androidMonochromeIcon: "./assets/android-icon-mark.png",
5861
androidNotificationIcon: "./assets/android-notification-icon.png",
3.38 KB
Loading
Lines changed: 8 additions & 0 deletions
Loading

‎assets/README.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,17 @@ Verify every result is 1024×1024 and has the classic macOS safe area: an 824×8
4848
```
4949

5050
Do not edit the generated PNG or ICO files directly.
51+
52+
## Android adaptive foreground
53+
54+
`apps/mobile/assets/android-icon-foreground.svg` is the source of truth for the foreground used by
55+
the normal Android adaptive launcher icon. Export its paired PNG after changing it:
56+
57+
```sh
58+
rsvg-convert -w 432 -h 432 \
59+
-o apps/mobile/assets/android-icon-foreground.png \
60+
apps/mobile/assets/android-icon-foreground.svg
61+
```
62+
63+
The foreground must remain transparent and keep the T3 mark inside Android's adaptive-icon safe
64+
zone. `android-icon-mark.png` remains a flat silhouette for Android's monochrome themed icon.

0 commit comments

Comments
 (0)