#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")/.." MODE="${1:-debug}" if [[ "$MODE" != "debug" && "$MODE" != "release" ]]; then echo "Usage: $0 [debug|release]" >&2 exit 2 fi export JAVA_HOME="${JAVA_HOME:-/usr/lib/jvm/java-21-openjdk}" if [[ ! -x "$JAVA_HOME/bin/java" ]]; then echo "JDK 21 not found at $JAVA_HOME" >&2 exit 1 fi SDK="${ANDROID_HOME:-/opt/android-sdk}" ADB="$SDK/platform-tools/adb" PACKAGE="com.wasp.cardash_launcher" echo "==> Building $MODE APK" flutter build apk "--$MODE" APK="build/app/outputs/flutter-apk/app-$MODE.apk" if [[ ! -f "$APK" ]]; then echo "APK not found at $APK" >&2 exit 1 fi if ! "$ADB" devices | grep -q "device$"; then echo "No Android device/emulator connected. Start one with ./tool/emulator.sh 35" >&2 exit 1 fi echo "==> Installing $APK" "$ADB" install -r "$APK" echo "==> Ensuring CarDash is the HOME app" if ! "$ADB" shell cmd role add-role-holder android.app.role.HOME "$PACKAGE" >/dev/null 2>&1; then echo "Role manager command was unavailable; open Settings > General > Home app in CarDash." fi echo "==> Starting CarDash" "$ADB" shell am start -a android.intent.action.MAIN -c android.intent.category.HOME >/dev/null echo "Installed and started $PACKAGE"