#!/bin/bash
# Setup Android SDK and required files for Kotlin apps
set -e

ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
ANDROID_HOME="${ANDROID_HOME:-$ROOT_DIR/android-sdk}"

# Ensure tools installed
apt-get update
apt-get install -y wget unzip openjdk-11-jdk

mkdir -p "$ANDROID_HOME"
CMDLINE_URL="https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip"
TMP_ZIP="$(mktemp)"
wget -O "$TMP_ZIP" "$CMDLINE_URL"
mkdir -p "$ANDROID_HOME/cmdline-tools"
unzip -q "$TMP_ZIP" -d "$ANDROID_HOME/cmdline-tools"
rm "$TMP_ZIP"
# Move to expected directory name
mv "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/latest"

# Accept licenses and install packages
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "platform-tools" "platforms;android-34" "build-tools;34.0.0"

# Projects that need the Android SDK configured
ANDROID_PROJECTS=(kotlin kotlinMultiUser kotlinOHS kotlinFleet)

# Write local.properties for each project
for project in "${ANDROID_PROJECTS[@]}"; do
    if [ -d "$ROOT_DIR/$project" ]; then
        echo "sdk.dir=$ANDROID_HOME" > "$ROOT_DIR/$project/local.properties"
    fi
done

# Projects that bundle additional assets from the base kotlin project
ANDROID_ASSET_PROJECTS=(kotlinMultiUser kotlinOHS kotlinFleet)

for project in "${ANDROID_ASSET_PROJECTS[@]}"; do
    if [ -f "$ROOT_DIR/$project/setup.sh" ]; then
        (cd "$ROOT_DIR/$project" && bash setup.sh)
    fi
done

echo "Android SDK installed at $ANDROID_HOME"
echo "You can now run ./gradlew assembleDebug inside kotlinMultiUser to build the app."
