The monochrome adaptive-icon layer produced a poor themed-icon rendering. Remove the <monochrome> reference from mipmap-anydpi-v26/ic_launcher.xml and delete the ic_launcher_monochrome.png files so Android always uses the color adaptive icon (background + foreground). sync-android-sources.sh also drops any monochrome layer Tauri regenerates. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
76 lines
3.0 KiB
Bash
Executable File
76 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Sync Android source files from src-tauri/android to src-tauri/gen/android
|
|
# This ensures the generated build directory has the latest source files
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
SOURCE_DIR="$PROJECT_ROOT/src-tauri/android/src/main/java/com/dtourolle/jellytau"
|
|
TARGET_DIR="$PROJECT_ROOT/src-tauri/gen/android/app/src/main/java/com/dtourolle/jellytau"
|
|
|
|
echo "Syncing Android sources..."
|
|
echo " From: $SOURCE_DIR"
|
|
echo " To: $TARGET_DIR"
|
|
|
|
# Create target directory if it doesn't exist
|
|
mkdir -p "$TARGET_DIR"
|
|
|
|
# Remove old copies of player and security directories
|
|
rm -rf "$TARGET_DIR/player" "$TARGET_DIR/security"
|
|
|
|
# Copy the directories
|
|
cp -r "$SOURCE_DIR/player" "$TARGET_DIR/"
|
|
cp -r "$SOURCE_DIR/security" "$TARGET_DIR/"
|
|
|
|
# Copy individual Kotlin files (like VideoOverlayManager.kt)
|
|
for kt_file in "$SOURCE_DIR"/*.kt; do
|
|
if [ -f "$kt_file" ]; then
|
|
cp "$kt_file" "$TARGET_DIR/"
|
|
echo " Copied: $(basename "$kt_file")"
|
|
fi
|
|
done
|
|
|
|
# Restore the app module build.gradle.kts (media3 deps + release signing config).
|
|
# gen/android is regenerated by `tauri android init`, so this tracked template is
|
|
# the source of truth and must be copied back after any (re)generation.
|
|
APP_GRADLE_SRC="$PROJECT_ROOT/src-tauri/android/app/build.gradle.kts"
|
|
APP_GRADLE_DST="$PROJECT_ROOT/src-tauri/gen/android/app/build.gradle.kts"
|
|
if [ -f "$APP_GRADLE_SRC" ]; then
|
|
cp "$APP_GRADLE_SRC" "$APP_GRADLE_DST"
|
|
echo " Copied: app/build.gradle.kts"
|
|
fi
|
|
|
|
# Custom ProGuard/R8 keep rules. Required for minified release builds:
|
|
# the player/ and security/ Kotlin classes are loaded by name via JNI from
|
|
# Rust, so R8 can't see the references and would strip them without this.
|
|
# build.gradle.kts globs **/*.pro, so dropping it in app/ is enough.
|
|
PROGUARD_SRC="$PROJECT_ROOT/src-tauri/android/app/proguard-jellytau.pro"
|
|
PROGUARD_DST="$PROJECT_ROOT/src-tauri/gen/android/app/proguard-jellytau.pro"
|
|
if [ -f "$PROGUARD_SRC" ]; then
|
|
cp "$PROGUARD_SRC" "$PROGUARD_DST"
|
|
echo " Copied: app/proguard-jellytau.pro"
|
|
fi
|
|
|
|
# Launcher icons / adaptive-icon mipmaps. `tauri android init` generates
|
|
# low-quality launcher icons from tauri.conf.json (which has no high-res
|
|
# Android source), so overwrite them with the real committed mipmaps.
|
|
RES_SRC="$PROJECT_ROOT/src-tauri/android/src/main/res"
|
|
RES_DST="$PROJECT_ROOT/src-tauri/gen/android/app/src/main/res"
|
|
if [ -d "$RES_SRC" ]; then
|
|
for dir in "$RES_SRC"/mipmap-*; do
|
|
[ -d "$dir" ] || continue
|
|
name="$(basename "$dir")"
|
|
mkdir -p "$RES_DST/$name"
|
|
cp "$dir"/* "$RES_DST/$name/"
|
|
echo " Copied res: $name"
|
|
done
|
|
# We ship only the color adaptive icon (background + foreground). Drop any
|
|
# monochrome layer Tauri may generate: the themed-icon monochrome doesn't
|
|
# render well, and our adaptive-icon xml no longer references it, so a stray
|
|
# ic_launcher_monochrome.png would just be dead weight.
|
|
rm -f "$RES_DST"/mipmap-*/ic_launcher_monochrome.png
|
|
fi
|
|
|
|
echo "✓ Android sources synced successfully"
|