#!/bin/bash

# Auto-rebuild on file changes
# Requires: fswatch (install via: brew install fswatch)

echo "👀 Watching for changes..."
echo "📝 Редактируйте файлы - приложение будет пересобираться автоматически"
echo ""

# Check if fswatch is installed
if ! command -v fswatch &> /dev/null; then
    echo "⚠️  fswatch не установлен!"
    echo "📦 Установите через: brew install fswatch"
    echo ""
    echo "Или используйте ./dev.sh для ручной пересборки"
    exit 1
fi

# Ensure emulator is running
if ! adb devices | grep -q "emulator"; then
    echo "🚀 Запускаю эмулятор..."
    $ANDROID_HOME/emulator/emulator -avd Pixel_9_Pro_API_35 &
    adb wait-for-device
    
    while [ "$(adb shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')" != "1" ]; do
        sleep 2
    done
fi

echo "✅ Эмулятор готов!"
echo ""

# Initial build
./gradlew installDebug
adb shell am start -n com.rosetta.messenger/.MainActivity

echo ""
echo "👂 Слежу за изменениями в app/src/main/java..."
echo ""

# Watch for changes in Kotlin files
fswatch -o app/src/main/java | while read f; do
    echo "🔄 Изменение обнаружено! Пересобираю..."
    ./gradlew installDebug --no-daemon
    
    if [ $? -eq 0 ]; then
        echo "✅ Обновлено! Перезапускаю приложение..."
        adb shell am force-stop com.rosetta.messenger
        sleep 1
        adb shell am start -n com.rosetta.messenger/.MainActivity
        echo "🎉 Готово!"
    else
        echo "❌ Ошибка сборки"
    fi
    
    echo ""
    echo "👂 Жду следующих изменений..."
done
