The launcher icon is the product's mark

The adaptive icon's foreground was a vector — a speech bubble with a flame
knocked out of it — drawn before there was a logo. There is one now, so the
launcher shows it.

🔴 **A bitmap replaces the vector, and that is a real trade.** The artwork is a
painted globe with gradients and a flame arc; no path describes it. Five
density buckets are generated instead, mdpi through xxxhdpi, by the relay
repo's `Scripts/make-brand-assets.py`. Do not edit the PNGs — the script
overwrites them, and one hand-edited density is an icon that looks different on
one class of phone and nowhere else.

⚠️ Content sits inside the adaptive-icon safe zone at 72% of the canvas, so a
circular mask cannot cut the flame arc. Checked against both a circle and a
squircle mask before this landed, not assumed.

⚠️ `<monochrome>` still points at the old vector silhouette, deliberately. A
themed icon is tinted flat by the launcher, so the colour artwork cannot serve
as one, and the alpha silhouette of a filled globe is a disc. The existing
speech-bubble shape is the right kind of thing for that slot and is still on
brand; a silhouette drawn from the new mark is separate work.

`minSdk` is 33, so there are no legacy square mipmaps to keep in step.
Verified with `:app:processReleaseResources`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Paul Hitt
2026-09-07 09:28:44 -04:00
co-authored by Claude Opus 5
parent dd275939e3
commit 845254a58c
8 changed files with 14 additions and 29 deletions
@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
The messenger's mark: a speech bubble with a flame knocked out of it.
⚠️ Deliberately NOT the bare flame that Flamenet Files uses. Two apps from
the same shop with the same icon is a support problem the first time a tester
has both installed.
The content sits inside the adaptive-icon safe zone: a 100-unit drawing
scaled to 66 and centred in the 108 viewport, so nothing important is lost
to a circular or squircle mask.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group android:scaleX="0.66" android:scaleY="0.66"
android:translateX="21" android:translateY="21">
<path
android:fillColor="#FF5A1F"
android:pathData="M22,20 H78 A14,14 0 0 1 92,34 V62 A14,14 0 0 1 78,76 H46 L30,91 V76 H22 A14,14 0 0 1 8,62 V34 A14,14 0 0 1 22,20 Z" />
<path
android:fillColor="#121A2E"
android:pathData="M50,30 C56,40 62,45 62,54 C62,63.5 57,69.5 50,69.5 C43,69.5 38,63.5 38,54 C38,47 43,43 46,36 C47,43 50,44 50,30 Z" />
</group>
</vector>
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<!-- 🔴 A bitmap now, not the old vector: the mark is the FlameNet Messenger
logo artwork, which is a painted globe rather than something a path can
describe. Sized so the content sits inside the adaptive-icon safe zone
(72 of 108) — a circular mask must not clip the flame arc.
Generated by the relay repo's Scripts/make-brand-assets.py; do not
hand-edit the PNGs. -->
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<!-- 🔴 A bitmap now, not the old vector: the mark is the FlameNet Messenger
logo artwork, which is a painted globe rather than something a path can
describe. Sized so the content sits inside the adaptive-icon safe zone
(72 of 108) — a circular mask must not clip the flame arc.
Generated by the relay repo's Scripts/make-brand-assets.py; do not
hand-edit the PNGs. -->
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB