#!/usr/bin/env bash
# Sync stable Android integration tests into Tauri gen/android (regenerated by tauri android init).
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
INTEGRATION="$ROOT/examples/serialport-test/android-integration"
DEST="$ROOT/examples/serialport-test/src-tauri/gen/android/app/src/androidTest"

if [[ ! -d "$INTEGRATION/src/androidTest" ]]; then
  echo "error: missing $INTEGRATION/src/androidTest" >&2
  exit 1
fi

if [[ ! -d "$(dirname "$DEST")" ]]; then
  echo "error: run 'pnpm tauri android build' first to generate gen/android" >&2
  exit 1
fi

echo "Syncing androidTest sources → $DEST (no Kotlin USB fakes; Rust FakeTransport harness only)"
rm -rf "$DEST"
mkdir -p "$DEST/kotlin"
cp -R "$INTEGRATION/src/androidTest/"* "$DEST/"

APP_GRADLE="$ROOT/examples/serialport-test/src-tauri/gen/android/app/build.gradle.kts"
GRADLE_MARKER='testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"'
if [[ -f "$APP_GRADLE" ]] && ! grep -q "$GRADLE_MARKER" "$APP_GRADLE"; then
  echo "Patching testInstrumentationRunner in app/build.gradle.kts"
  if [[ "$(uname)" == "Darwin" ]]; then
    sed -i '' '/versionName = tauriProperties/a\
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
' "$APP_GRADLE"
  else
    sed -i '/versionName = tauriProperties/a\        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"' "$APP_GRADLE"
  fi
fi

echo "Done."
