#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
ANDROID_DIR="$ROOT_DIR/android"

detect_java_home() {
  if [[ -n "${JAVA_HOME:-}" && -x "${JAVA_HOME}/bin/java" ]]; then
    printf '%s\n' "$JAVA_HOME"
    return 0
  fi

  local candidate
  for candidate in \
    "/Applications/SmartBox.app/Contents/runtime/Contents/Home" \
    "/Applications/Adobe Animate 2024/Adobe Animate 2024.app/Contents/jre/jdk-17.0.15.jdk/Contents/Home"
  do
    if [[ -x "$candidate/bin/java" ]]; then
      printf '%s\n' "$candidate"
      return 0
    fi
  done

  if /usr/libexec/java_home -v 21 >/dev/null 2>&1; then
    /usr/libexec/java_home -v 21
    return 0
  fi

  return 1
}

JAVA_HOME_DETECTED="$(detect_java_home || true)"
if [[ -z "$JAVA_HOME_DETECTED" ]]; then
  echo "Nije pronađen Java runtime. Potreban je JDK 21 za Android build." >&2
  exit 1
fi

export JAVA_HOME="$JAVA_HOME_DETECTED"
export PATH="$JAVA_HOME/bin:$PATH"

ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-/opt/homebrew/share/android-commandlinetools}}"
export ANDROID_SDK_ROOT
export ANDROID_HOME="$ANDROID_SDK_ROOT"

if [[ ! -d "$ANDROID_SDK_ROOT/platforms/android-36" || ! -d "$ANDROID_SDK_ROOT/build-tools/36.0.0" ]]; then
  echo "Android SDK nije kompletan za compileSdk 36. Instaliraj platformu i build tools pre build-a." >&2
  exit 1
fi

cat > "$ANDROID_DIR/local.properties" <<EOF
sdk.dir=$ANDROID_SDK_ROOT
EOF

cd "$ANDROID_DIR"
./gradlew assembleDebug

echo
echo "Android debug APK:"
echo "$ANDROID_DIR/app/build/outputs/apk/debug/app-debug.apk"
