From 3cd5d5a7c53cf74a8d91f084080d05f833da0c3d Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 22 Jul 2026 22:52:57 -0700 Subject: [PATCH 1/2] fix(mobile): use a proper Android adaptive icon --- apps/mobile/app.config.ts | 9 ++++--- .../mobile/assets/android-icon-foreground.png | Bin 0 -> 20131 bytes .../mobile/assets/android-icon-foreground.svg | 22 ++++++++++++++++++ assets/README.md | 14 +++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 apps/mobile/assets/android-icon-foreground.png create mode 100644 apps/mobile/assets/android-icon-foreground.svg diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index 4a0c761f2c6..1cf432db4e9 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -15,6 +15,9 @@ const personalTeamBundleIdentifier = repoEnv.T3CODE_IOS_PERSONAL_TEAM_BUNDLE_ID? const IOS_BUNDLE_IDENTIFIER_PATTERN = /^[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+$/; const fromRepoRoot = (relativePath: string) => `../../${relativePath}`; +// Universal exports already contain their own rounded-square silhouette. Using one as an adaptive +// foreground makes Android draw an icon shape inside the launcher's mask. +const androidAdaptiveForeground = "./assets/android-icon-foreground.png"; if ( isIosPersonalTeamBuild && @@ -30,7 +33,7 @@ const DEVELOPMENT_ASSETS = { appIcon: fromRepoRoot(BRAND_ASSET_PATHS.developmentIosIconPng), iosIcon: fromRepoRoot(BRAND_ASSET_PATHS.developmentIconComposerProject), splashIcon: fromRepoRoot(BRAND_ASSET_PATHS.developmentIosIconPng), - androidAdaptiveForeground: fromRepoRoot(BRAND_ASSET_PATHS.developmentUniversalIconPng), + androidAdaptiveForeground, androidAdaptiveBackgroundColor: "#00639B", androidMonochromeIcon: "./assets/android-icon-mark.png", androidNotificationIcon: "./assets/android-notification-icon.png", @@ -41,7 +44,7 @@ const PREVIEW_ASSETS = { appIcon: fromRepoRoot(BRAND_ASSET_PATHS.nightlyIosIconPng), iosIcon: fromRepoRoot(BRAND_ASSET_PATHS.nightlyIconComposerProject), splashIcon: fromRepoRoot(BRAND_ASSET_PATHS.nightlyIosIconPng), - androidAdaptiveForeground: fromRepoRoot(BRAND_ASSET_PATHS.nightlyLinuxIconPng), + androidAdaptiveForeground, androidAdaptiveBackgroundColor: "#111533", androidMonochromeIcon: "./assets/android-icon-mark.png", androidNotificationIcon: "./assets/android-notification-icon.png", @@ -52,7 +55,7 @@ const RELEASE_ASSETS = { appIcon: fromRepoRoot(BRAND_ASSET_PATHS.productionIosIconPng), iosIcon: fromRepoRoot(BRAND_ASSET_PATHS.productionIconComposerProject), splashIcon: fromRepoRoot(BRAND_ASSET_PATHS.productionIosIconPng), - androidAdaptiveForeground: "./assets/android-icon-mark.png", + androidAdaptiveForeground, androidAdaptiveBackgroundColor: "#000000", androidMonochromeIcon: "./assets/android-icon-mark.png", androidNotificationIcon: "./assets/android-notification-icon.png", diff --git a/apps/mobile/assets/android-icon-foreground.png b/apps/mobile/assets/android-icon-foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..7db692eab1f80db762a1572aa6f3751827216dbb GIT binary patch literal 20131 zcmeFZhdb4O{621#kWCbl5jtdVvPHHi>zLVlX0P7Hu``b?Gb1DW7>DdFdy{#L5aMM2 zo<5)N@2~iNb(QOK;q@Gkao_jjeifmira*}Q1RnzfgYb=_+*=F`%&NP;5AK7n^r>+} zz^D6W$_jEAw|9TOw0=#*z<7r7MowDWD|0`~JBfD6|1j{~)T?~G!nF9G_sOD3GDyU$ zhL0(vIPk)#-Y<;y{Gh%vSK;nL#ec|<`s3Q3YLyt|kWKaMGYY4-hsda%+J4B4My5)Y zB3h5}5ngRf!Q+_M`Fc&wrOWiYVom;+p77nBw336HfRPfd2FG_gIyy^DE0@#Qult}A0fy1 zGA}jDf(NmDB`kyyw1Z{#9<#V$uw+`~2jbo*+jnYgT04dMGt@FE7>gu@+O86%E<`SL zw*TpuLp6|)4=nN}?+52=KYhx&qHT1Hb0aWkF<{6QFQkXtW!BP4^*!XjP}O|NGhVJB zTzyt-8Orl6SzTaIHXmMY3uT&+fEeoZeCu6bqt|Gak)hT6^ya1XetfOPzCP)5k5e`StvFRLGufx;^8&)Buv9swNB@`| z6cUqLN)AK) z>*#&mCp-F+kmTB-#IR_{zSY#rh2!9C=9y_`ZQE?M4HX;s2Rq>>g&I0*E$*CA!+s=FO<7o7=7OWg$an_@4GV5z}FD)j9S*C9sLQmWcy z2nHCS$YdaxpH7^iT&S>#Vb8UiOD7<(o~8P&jccM zF%7ECBj|B{yqWMZF@eB7J)4a?Gjf{pz|$UM`~(vj>%+3#T}hZI!VBsOG2Nb!!2B@R z>g&m^8jf9*!X3#twoSQ4$+Lh*N^V2-#Ax=(yLNl*m%`tV1;k;O>jL=Phqme;r2{#rp{wS6}vZ=J}x(i#u9 zh@2 zXe&YL;AgWX63;1zbCvY9M$ zDwEAYY22s(xj3p&a!JOno2}zxcpjhoN%`K3R^-DcCHm(0r{I1R2_z0CGtX+|`rK^q z@>A*?{^}soWY2HA7p((bQ5^o%7~7vA{ERU{ny5LWSey3)c#pUOs-f#{JV8 z%kqg!F{hiq@i9evaIg~Cuqb}~PpMLxr2A1yDn6_%K?D;TqgW~0dhXaF!e~ko2(<|k(62LBZMfvra1fk zT@3m5uFfHe~*ZFCxuzw7S(S!dDh00)Jy_bZE%0A*0DgUS^ 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 + + + + + + + + + + + + + + + diff --git a/assets/README.md b/assets/README.md index 8c53266bfe7..c1a16dde24b 100644 --- a/assets/README.md +++ b/assets/README.md @@ -48,3 +48,17 @@ Verify every result is 1024×1024 and has the classic macOS safe area: an 824×8 ``` Do not edit the generated PNG or ICO files directly. + +## Android adaptive foreground + +`apps/mobile/assets/android-icon-foreground.svg` is the source of truth for the foreground used by +the normal Android adaptive launcher icon. Export its paired PNG after changing it: + +```sh +rsvg-convert -w 432 -h 432 \ + -o apps/mobile/assets/android-icon-foreground.png \ + apps/mobile/assets/android-icon-foreground.svg +``` + +The foreground must remain transparent and keep the T3 mark inside Android's adaptive-icon safe +zone. `android-icon-mark.png` remains a flat silhouette for Android's monochrome themed icon. From b5839def6b09c80f1e6f4e603194ced50576a0bb Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 22 Jul 2026 23:01:32 -0700 Subject: [PATCH 2/2] refine(mobile): simplify Android icon mark --- .../mobile/assets/android-icon-foreground.png | Bin 20131 -> 3457 bytes .../mobile/assets/android-icon-foreground.svg | 18 ++---------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/apps/mobile/assets/android-icon-foreground.png b/apps/mobile/assets/android-icon-foreground.png index 7db692eab1f80db762a1572aa6f3751827216dbb..4f4374c7ebcf18bae99e5c8b58ce499fbf488615 100644 GIT binary patch literal 3457 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 Z538u!>jmzGqp>S}>VXjd3SY*h{{hBawy*#I literal 20131 zcmeFZhdb4O{621#kWCbl5jtdVvPHHi>zLVlX0P7Hu``b?Gb1DW7>DdFdy{#L5aMM2 zo<5)N@2~iNb(QOK;q@Gkao_jjeifmira*}Q1RnzfgYb=_+*=F`%&NP;5AK7n^r>+} zz^D6W$_jEAw|9TOw0=#*z<7r7MowDWD|0`~JBfD6|1j{~)T?~G!nF9G_sOD3GDyU$ zhL0(vIPk)#-Y<;y{Gh%vSK;nL#ec|<`s3Q3YLyt|kWKaMGYY4-hsda%+J4B4My5)Y zB3h5}5ngRf!Q+_M`Fc&wrOWiYVom;+p77nBw336HfRPfd2FG_gIyy^DE0@#Qult}A0fy1 zGA}jDf(NmDB`kyyw1Z{#9<#V$uw+`~2jbo*+jnYgT04dMGt@FE7>gu@+O86%E<`SL zw*TpuLp6|)4=nN}?+52=KYhx&qHT1Hb0aWkF<{6QFQkXtW!BP4^*!XjP}O|NGhVJB zTzyt-8Orl6SzTaIHXmMY3uT&+fEeoZeCu6bqt|Gak)hT6^ya1XetfOPzCP)5k5e`StvFRLGufx;^8&)Buv9swNB@`| z6cUqLN)AK) z>*#&mCp-F+kmTB-#IR_{zSY#rh2!9C=9y_`ZQE?M4HX;s2Rq>>g&I0*E$*CA!+s=FO<7o7=7OWg$an_@4GV5z}FD)j9S*C9sLQmWcy z2nHCS$YdaxpH7^iT&S>#Vb8UiOD7<(o~8P&jccM zF%7ECBj|B{yqWMZF@eB7J)4a?Gjf{pz|$UM`~(vj>%+3#T}hZI!VBsOG2Nb!!2B@R z>g&m^8jf9*!X3#twoSQ4$+Lh*N^V2-#Ax=(yLNl*m%`tV1;k;O>jL=Phqme;r2{#rp{wS6}vZ=J}x(i#u9 zh@2 zXe&YL;AgWX63;1zbCvY9M$ zDwEAYY22s(xj3p&a!JOno2}zxcpjhoN%`K3R^-DcCHm(0r{I1R2_z0CGtX+|`rK^q z@>A*?{^}soWY2HA7p((bQ5^o%7~7vA{ERU{ny5LWSey3)c#pUOs-f#{JV8 z%kqg!F{hiq@i9evaIg~Cuqb}~PpMLxr2A1yDn6_%K?D;TqgW~0dhXaF!e~ko2(<|k(62LBZMfvra1fk zT@3m5uFfHe~*ZFCxuzw7S(S!dDh00)Jy_bZE%0A*0DgUS^ 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 - - - - - - - - - - - - +