@echo off
setlocal
set "APP_NAME=todo-local"
set "APK_URL=https://cube.op-foundry.io/downloads/todo-local/dev/todo-local-android.apk"
set "APK_FILE=%TEMP%\todo-local-android.apk"
set "PACKAGE_ID=io.op_foundry.apps.a1661f7bf558dc64b"
set "MAIN_ACTIVITY=io.op_foundry.apps.runtimebaseapp000.MainActivity"

set "ADB="
for %%A in (adb.exe) do set "ADB=%%~$PATH:A"
if not defined ADB if exist "%LOCALAPPDATA%\Android\Sdk\platform-tools\adb.exe" set "ADB=%LOCALAPPDATA%\Android\Sdk\platform-tools\adb.exe"
if not defined ADB if defined ANDROID_HOME if exist "%ANDROID_HOME%\platform-tools\adb.exe" set "ADB=%ANDROID_HOME%\platform-tools\adb.exe"
if not defined ADB if defined ANDROID_SDK_ROOT if exist "%ANDROID_SDK_ROOT%\platform-tools\adb.exe" set "ADB=%ANDROID_SDK_ROOT%\platform-tools\adb.exe"

if not defined ADB (
  echo adb wurde nicht gefunden.
  echo Gesucht wurde in PATH, %LOCALAPPDATA%\Android\Sdk\platform-tools, %ANDROID_HOME% und %ANDROID_SDK_ROOT%.
  echo Bitte Android Platform Tools installieren oder ANDROID_HOME setzen.
  pause
  exit /b 1
)

echo Lade %APK_URL%
powershell -NoProfile -ExecutionPolicy Bypass -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -UseBasicParsing -Uri '%APK_URL%' -OutFile '%APK_FILE%'"
if errorlevel 1 (
  echo Download fehlgeschlagen.
  pause
  exit /b 1
)

"%ADB%" devices
echo Entferne vorhandene Installation von %PACKAGE_ID% ...
"%ADB%" uninstall %PACKAGE_ID% >nul 2>nul
echo Installiere %APP_NAME% auf Android ...
"%ADB%" install "%APK_FILE%"
if errorlevel 1 (
  echo Installation fehlgeschlagen. Falls eine andere Signatur installiert ist, bitte erst das Uninstall-Skript ausfuehren.
  pause
  exit /b 1
)

echo Starte %APP_NAME% auf Android ...
"%ADB%" shell am start -W -n %PACKAGE_ID%/%MAIN_ACTIVITY%
if errorlevel 1 (
  echo Start fehlgeschlagen. Android-Log:
  "%ADB%" logcat -d -t 80 ActivityTaskManager:I AndroidRuntime:E chromium:E '*:S'
  pause
  exit /b 1
)

echo Pruefe laufenden Prozess ...
"%ADB%" shell pidof %PACKAGE_ID%
if errorlevel 1 (
  echo Kein laufender Prozess gefunden. Crash-/Start-Log:
  "%ADB%" logcat -d -t 120 ActivityTaskManager:I AndroidRuntime:E chromium:E '*:S'
)
pause
endlocal
