diff --git a/scripts/generate-android-icons.sh b/scripts/generate-android-icons.sh index b2279a98..aa2775ca 100755 --- a/scripts/generate-android-icons.sh +++ b/scripts/generate-android-icons.sh @@ -20,9 +20,16 @@ if [ ! -f "$ASSETS_DIR/icon.png" ]; then exit 1 fi -# Check if ImageMagick is available -if ! command -v convert &> /dev/null; then - echo "[ERROR] ImageMagick (convert) not found. Please install ImageMagick." +# Check if ImageMagick is available and determine the correct command +IMAGEMAGICK_CMD="" +if command -v magick &> /dev/null; then + IMAGEMAGICK_CMD="magick" + echo "[INFO] Using ImageMagick v7+ (magick command)" +elif command -v convert &> /dev/null; then + IMAGEMAGICK_CMD="convert" + echo "[INFO] Using ImageMagick v6 (convert command)" +else + echo "[ERROR] ImageMagick not found. Please install ImageMagick." echo " Arch: sudo pacman -S imagemagick" echo " Ubuntu: sudo apt-get install imagemagick" echo " macOS: brew install imagemagick" @@ -39,20 +46,35 @@ mkdir -p "$ANDROID_RES_DIR/mipmap-anydpi-v26" echo "[INFO] Generating launcher icons..." +# Function to resize image using the appropriate ImageMagick command +resize_image() { + local input="$1" + local output="$2" + local size="$3" + + if [ "$IMAGEMAGICK_CMD" = "magick" ]; then + # ImageMagick v7+ syntax + magick "$input" -resize "${size}x${size}" "$output" + else + # ImageMagick v6 syntax + convert "$input" -resize "${size}x${size}" "$output" + fi +} + # Generate launcher icons for different densities # Android launcher icon sizes: mdpi=48, hdpi=72, xhdpi=96, xxhdpi=144, xxxhdpi=192 -convert "$ASSETS_DIR/icon.png" -resize 48x48 "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" -convert "$ASSETS_DIR/icon.png" -resize 72x72 "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" -convert "$ASSETS_DIR/icon.png" -resize 96x96 "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" -convert "$ASSETS_DIR/icon.png" -resize 144x144 "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" -convert "$ASSETS_DIR/icon.png" -resize 192x192 "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" 48 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" 72 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" 96 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" 144 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" 192 # Generate round launcher icons -convert "$ASSETS_DIR/icon.png" -resize 48x48 "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher_round.png" -convert "$ASSETS_DIR/icon.png" -resize 72x72 "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher_round.png" -convert "$ASSETS_DIR/icon.png" -resize 96x96 "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher_round.png" -convert "$ASSETS_DIR/icon.png" -resize 144x144 "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher_round.png" -convert "$ASSETS_DIR/icon.png" -resize 192x192 "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher_round.png" +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher_round.png" 48 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher_round.png" 72 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher_round.png" 96 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher_round.png" 144 +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher_round.png" 192 # Create simple launcher XML files (no adaptive icons for now) cat > "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher.xml" << 'EOF' @@ -72,7 +94,7 @@ cat > "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher_round.xml" << 'EOF' EOF # Create foreground mipmap files for adaptive icons -convert "$ASSETS_DIR/icon.png" -resize 108x108 "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher_foreground.png" +resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher_foreground.png" 108 echo "[SUCCESS] Generated Android launcher icons:" echo " - mipmap-mdpi/ic_launcher.png (48x48)" diff --git a/scripts/generate-icons.sh b/scripts/generate-icons.sh index bed6fd14..3f0062ed 100755 --- a/scripts/generate-icons.sh +++ b/scripts/generate-icons.sh @@ -1,22 +1,79 @@ #!/bin/bash +# TimeSafari Android Icon Generation Script (Placeholder Icons) +# Generates placeholder Android launcher icons with "TS" text +# Author: Matthew Raymer + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" +ANDROID_RES_DIR="$PROJECT_ROOT/android/app/src/main/res" + +echo "=== TimeSafari Android Placeholder Icon Generation ===" +echo "[$(date '+%Y-%m-%d %H:%M:%S')] [INFO] Starting Android placeholder icon generation" + +# Check if ImageMagick is available and determine the correct command +IMAGEMAGICK_CMD="" +if command -v magick &> /dev/null; then + IMAGEMAGICK_CMD="magick" + echo "[INFO] Using ImageMagick v7+ (magick command)" +elif command -v convert &> /dev/null; then + IMAGEMAGICK_CMD="convert" + echo "[INFO] Using ImageMagick v6 (convert command)" +else + echo "[ERROR] ImageMagick not found. Please install ImageMagick." + echo " Arch: sudo pacman -S imagemagick" + echo " Ubuntu: sudo apt-get install imagemagick" + echo " macOS: brew install imagemagick" + exit 1 +fi + # Create directories if they don't exist -mkdir -p android/app/src/main/res/mipmap-mdpi -mkdir -p android/app/src/main/res/mipmap-hdpi -mkdir -p android/app/src/main/res/mipmap-xhdpi -mkdir -p android/app/src/main/res/mipmap-xxhdpi -mkdir -p android/app/src/main/res/mipmap-xxxhdpi +mkdir -p "$ANDROID_RES_DIR/mipmap-mdpi" +mkdir -p "$ANDROID_RES_DIR/mipmap-hdpi" +mkdir -p "$ANDROID_RES_DIR/mipmap-xhdpi" +mkdir -p "$ANDROID_RES_DIR/mipmap-xxhdpi" +mkdir -p "$ANDROID_RES_DIR/mipmap-xxxhdpi" + +# Function to generate placeholder icon using the appropriate ImageMagick command +generate_placeholder_icon() { + local size="$1" + local output="$2" + local pointsize="$3" + + if [ "$IMAGEMAGICK_CMD" = "magick" ]; then + # ImageMagick v7+ syntax + magick -size "${size}x${size}" xc:blue -gravity center -pointsize "$pointsize" -fill white -annotate 0 "TS" "$output" + else + # ImageMagick v6 syntax + convert -size "${size}x${size}" xc:blue -gravity center -pointsize "$pointsize" -fill white -annotate 0 "TS" "$output" + fi +} + +echo "[INFO] Generating placeholder launcher icons..." # Generate placeholder icons using ImageMagick -convert -size 48x48 xc:blue -gravity center -pointsize 20 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-mdpi/ic_launcher.png -convert -size 72x72 xc:blue -gravity center -pointsize 30 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-hdpi/ic_launcher.png -convert -size 96x96 xc:blue -gravity center -pointsize 40 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -convert -size 144x144 xc:blue -gravity center -pointsize 60 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -convert -size 192x192 xc:blue -gravity center -pointsize 80 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +generate_placeholder_icon 48 "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" 20 +generate_placeholder_icon 72 "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" 30 +generate_placeholder_icon 96 "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" 40 +generate_placeholder_icon 144 "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" 60 +generate_placeholder_icon 192 "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" 80 + +echo "[INFO] Copying to round versions..." # Copy to round versions -cp android/app/src/main/res/mipmap-mdpi/ic_launcher.png android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -cp android/app/src/main/res/mipmap-hdpi/ic_launcher.png android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -cp android/app/src/main/res/mipmap-xhdpi/ic_launcher.png android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -cp android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -cp android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png \ No newline at end of file +cp "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher_round.png" +cp "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher_round.png" +cp "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher_round.png" +cp "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher_round.png" +cp "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher_round.png" + +echo "[SUCCESS] Generated Android placeholder launcher icons:" +echo " - mipmap-mdpi/ic_launcher.png (48x48)" +echo " - mipmap-hdpi/ic_launcher.png (72x72)" +echo " - mipmap-xhdpi/ic_launcher.png (96x96)" +echo " - mipmap-xxhdpi/ic_launcher.png (144x144)" +echo " - mipmap-xxxhdpi/ic_launcher.png (192x192)" +echo " - All round versions created" +echo "[SUCCESS] Android placeholder icon generation completed successfully!" \ No newline at end of file