brand: phoenix in the remaining mobile/PWA assets; drop dead splash rasters
Deploy to GitHub Pages / deploy (push) Waiting to run
Test / test (push) Waiting to run

Rounds out the phoenix rebrand for assets the earlier logo.svg swap
missed:

- public/icon-192.png / icon-512.png (PWA install icons, referenced by
  manifest.webmanifest) still had the old bolt-on-circle mark.
- Android's push-notification status-bar icon (ic_stat_ditto, all
  densities) was carrying an even older mark — a ringed-planet icon
  from 'Ditto', the project two forks back. Regenerated as a white
  phoenix silhouette (status-bar icons must be flat white on
  transparent; the OS tints them).
- android/.../splash_icon_vector.xml, the actual live Android 12+
  splash icon (wired via styles.xml's windowSplashScreenAnimatedIcon),
  had the old double-bolt path hardcoded. Replaced with the phoenix
  path and recomputed the scale/center math for its 1446x1246 viewBox.
- ios/.../Splash.imageset (wired into LaunchScreen.storyboard) had an
  even older blue crossed-arrow mark predating Agora. Regenerated as
  the brand-orange phoenix on white, matching the existing small
  centered-mark proportions.

Also deleted the legacy per-density drawable*/splash.png and
drawable/splash_icon.png rasters: confirmed unreferenced by any theme,
manifest, or code (the app fully migrated to the Android 12
SplashScreen API / splash_icon_vector.xml), so they were dead weight
carrying outdated branding no user could ever see.

generate-icons.sh now produces all of the above so future logo changes
regenerate everything in one pass instead of missing assets again.

Note: unlike the web assets, the Android/iOS changes here only take
effect on the next native app build + store release — there's no web
deploy step for them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2ro
2026-07-03 13:41:57 -04:00
parent aa936b59f9
commit 565a2d1eca
44 changed files with 73 additions and 13 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 B

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 B

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 45 KiB

+62
View File
@@ -67,6 +67,19 @@ else
rsvg-convert -h 1024 "$LOGO_WHITE_SVG" -o "$LOGO_WHITE" rsvg-convert -h 1024 "$LOGO_WHITE_SVG" -o "$LOGO_WHITE"
fi fi
# Orange-fill render, for marks placed on a white/light background (iOS splash).
LOGO_ORANGE_SVG="$TMPDIR/logo_orange.svg"
LOGO_ORANGE="$TMPDIR/logo_orange.png"
sed -e 's/fill="black"/fill="'"$BG_COLOR"'"/g' \
-e 's/#000000/'"$BG_COLOR"'/g' \
-e 's/#7c52e0/'"$BG_COLOR"'/g' \
-e 's/#fcd414/'"$BG_COLOR"'/g' "$SOURCE_SVG" > "$LOGO_ORANGE_SVG"
if [ "$SVG_RENDERER" = "inkscape" ]; then
inkscape --export-type=png --export-filename="$LOGO_ORANGE" -h 1024 "$LOGO_ORANGE_SVG" 2>/dev/null
else
rsvg-convert -h 1024 "$LOGO_ORANGE_SVG" -o "$LOGO_ORANGE"
fi
# ── Adaptive icon foreground PNGs (transparent bg, white logo, safe-zone padding) ── # ── Adaptive icon foreground PNGs (transparent bg, white logo, safe-zone padding) ──
# Content at 47% of canvas to fit within Android's adaptive icon safe zone. # Content at 47% of canvas to fit within Android's adaptive icon safe zone.
@@ -137,12 +150,41 @@ make_legacy_square 192 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
# Web logo.png (AppDownloadNudge) uses the same round brand-mark style. # Web logo.png (AppDownloadNudge) uses the same round brand-mark style.
make_legacy_round 512 public/logo.png make_legacy_round 512 public/logo.png
# PWA install icons (manifest.webmanifest "any" + "maskable" purposes).
make_legacy_round 192 public/icon-192.png
make_legacy_round 512 public/icon-512.png
make_legacy_round 48 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png make_legacy_round 48 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
make_legacy_round 72 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png make_legacy_round 72 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
make_legacy_round 96 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png make_legacy_round 96 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
make_legacy_round 144 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png make_legacy_round 144 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
make_legacy_round 192 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png make_legacy_round 192 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
# ── Android push-notification status-bar icon (ic_stat_ditto) ──
# Must be a flat white silhouette on transparent — the OS tints it, any
# color/gradient gets ignored or looks wrong. Referenced directly by
# NostrPoller.java / NotificationRelayService.java via R.drawable.ic_stat_ditto.
echo "Generating notification status-bar icon (ic_stat_ditto)..."
make_notification_icon() {
local size=$1
local content_size=$(echo "$size * 80 / 100" | bc)
local dest=$2
$MAGICK -size "${size}x${size}" "xc:none" \
\( "$LOGO_WHITE" -resize "${content_size}x${content_size}" \) \
-gravity center -compose over -composite \
"$dest"
}
for dir in drawable mipmap; do
make_notification_icon 24 android/app/src/main/res/${dir}-mdpi/ic_stat_ditto.png
make_notification_icon 48 android/app/src/main/res/${dir}-xhdpi/ic_stat_ditto.png
make_notification_icon 72 android/app/src/main/res/${dir}-xxhdpi/ic_stat_ditto.png
make_notification_icon 96 android/app/src/main/res/${dir}-xxxhdpi/ic_stat_ditto.png
done
make_notification_icon 36 android/app/src/main/res/drawable-hdpi/ic_stat_ditto.png
# Update background color # Update background color
BACKGROUND_COLOR_FILE="android/app/src/main/res/values/ic_launcher_background.xml" BACKGROUND_COLOR_FILE="android/app/src/main/res/values/ic_launcher_background.xml"
mkdir -p android/app/src/main/res/values mkdir -p android/app/src/main/res/values
@@ -171,6 +213,26 @@ else
echo -e " ${YELLOW}Skipped: $IOS_ICON_DIR not found${NC}" echo -e " ${YELLOW}Skipped: $IOS_ICON_DIR not found${NC}"
fi fi
# ── iOS launch screen (Splash.imageset, 2732x2732, white bg + small mark) ──
# Referenced by LaunchScreen.storyboard. Ships one image for all 3 scale
# slots (1x/2x/3x), matching how the project already had it set up.
echo "Generating iOS launch screen..."
IOS_SPLASH_DIR="ios/App/App/Assets.xcassets/Splash.imageset"
if [ -d "$IOS_SPLASH_DIR" ]; then
$MAGICK -size "2732x2732" "xc:white" \
\( "$LOGO_ORANGE" -resize "160x160" \) \
-gravity center -compose over -composite \
"$IOS_SPLASH_DIR/splash-2732x2732.png"
cp "$IOS_SPLASH_DIR/splash-2732x2732.png" "$IOS_SPLASH_DIR/splash-2732x2732-1.png"
cp "$IOS_SPLASH_DIR/splash-2732x2732.png" "$IOS_SPLASH_DIR/splash-2732x2732-2.png"
echo -e " ${GREEN}${NC} $IOS_SPLASH_DIR (3 files)"
else
echo -e " ${YELLOW}Skipped: $IOS_SPLASH_DIR not found${NC}"
fi
# Cleanup temp files # Cleanup temp files
rm -rf "$TMPDIR" rm -rf "$TMPDIR"