#!/bin/bash

set -x
set -u
set -e

# Args

TARGET="$1"   # E.g. "android-10"
PACKAGE="$2"  # E.g. "system-images;android-10;default;x86"
DEVICE="$3"   # E.g. "3.2in QVGA (ADP2)"

# Setup

ADB="${HOME}/Android/Sdk/platform-tools/adb"
EMULATOR="${HOME}/Android/Sdk/tools/emulator"
AVDMANAGER="${HOME}/Android/Sdk/tools/bin/avdmanager"
SDKMANAGER="${HOME}/Android/Sdk/tools/bin/sdkmanager"
NAME="rabbitescape-${TARGET}"
TMP="/data/local/tmp"


"${SDKMANAGER}" "${PACKAGE}"

"${AVDMANAGER}" create avd \
    --force \
    --name "${NAME}" \
    --package "${PACKAGE}" \
    --device "${DEVICE}"

# Start the emulator
${EMULATOR} -avd "${NAME}" &

# Wait for the device to boot and unlock it
${ADB} wait-for-device shell <<ENDSCRIPT
echo -n "Waiting for device to boot "
echo "" > ${TMP}/zero
getprop dev.bootcomplete > ${TMP}/bootcomplete
while cmp ${TMP}/zero ${TMP}/bootcomplete; do
{
    echo -n "."
    sleep 1
    getprop dev.bootcomplete > ${TMP}/bootcomplete
}; done
echo "Booted."
exit
ENDSCRIPT

echo "Waiting 30 secs for us to be really booted"
sleep 30

echo "Unlocking screen"
${ADB} shell "input keyevent 82"
