User flagged the Windows .exe icon as having the hash sign visually
biased toward the top. Root cause: the previous icon source SVG used
<text> with dominant-baseline="central" — the rasterizer fell back to
whatever monospaced font it found, and that font's # glyph isn't
positioned at the geometric center of its em-box (most monospaced
fonts have the # mark biased upward in their em-square).
Replace the text-rendered # with 4 vector <line> elements forming a
mathematically symmetric # centered at (512, 512) of the 1024 canvas.
No font dependency, deterministic across rasterizers.
Re-rendered:
- assets/images/app_logo.png — master 1024x1024 PNG
- windows/runner/resources/app_icon.ico — 7-size .ico (16..256)
- assets/images/cakewallet_android_icon/mipmap-*/ic_launcher.png
(5 densities, the legacy launcher PNG; CI symlinks from here)
NOT regenerated in this commit (follow-up):
- assets/images/cakewallet_android_icon/mipmap-*/ic_launcher_{foreground,background,monochrome}.png
(adaptive icons used on Android 8+ — need separate foreground/
background composition logic)
- assets/images/ios_icons/cakewallet_ios_icons/* (70 files)
- assets/images/macos_icons/cakewallet_macos_icons/* (7 files)
Sideloaded APK was showing Cake Wallet's original icon (white envelope
with rainbow stripes) because scripts/android/app_icon.sh copies from
assets/images/cakewallet_android_icon/ — which still held Cake's PNGs.
Regenerated all five density variants (mdpi/hdpi/xhdpi/xxhdpi/xxxhdpi)
from assets/images/hash_wallet/02_app_icon.svg:
- ic_launcher.png (legacy non-adaptive, 48/72/96/144/192 px)
- ic_launcher_foreground.png (adaptive icon # mark layer, 108→432 px)
- ic_launcher_background.png (solid brand-green #1A5C38)
- ic_launcher_monochrome.png (themed icons API — # only on transparent)
Also overwrote assets/images/app_logo.png, cakewallet_logo.png, and
cakewallet_android_icon.png (500x500) so any consumer of those gets
the Hash Bags mark too.
File names with 'cakewallet' prefix kept on purpose — they're internal
to Cake's app_icon.sh script and renaming them would touch the script
without benefit. End users see only the rendered icon, not the path.
Next APK build from the workflow should sideload with the proper #
mark icon.