#!/usr/bin/env bash

function show_usage() {
  echo "Usage:
    $(basename "$") [options]"
  echo ""
  echo "Options:
    -l        List emulators / avds
    -c [name] Create emulator / avd
    -d        Delete emulator / avd
    -r        Run emulator / avd
    -e        Exit emulator / avd
    -v [api]  Anroid API
    -h        Display this message"
}

if [[ $# -eq 0 ]]; then
  show_usage
  exit 1
fi

ACTION=0
ANDROID_API=36
EMULATOR_NAME=""

while getopts ":hldrec:v:" arg; do
  case "${arg}" in
    l)
      avdmanager list avd
      exit 0
      ;;
    d)
      avdmanager delete avd --name "$(avdmanager list avd -c | fzf)"
      exit 0
      ;;
    r)
      echo "Starting emulator ..."
      flutter emulators --launch "$(avdmanager list avd -c | fzf)"
      exit 0
      ;;
    e)
      echo "Exiting emulator ..."
      adb emu kill
      exit 0
      ;;
    c)
      ACTION="create"
      EMULATOR_NAME="${OPTARG}"
      ;;
    v)
      ANDROID_API="${OPTARG}"
      ;;
    h | *)
      show_usage
      exit 0
      ;;
  esac
done

if [[ ${ACTION} == "create" ]]; then
  avdmanager create avd --name "${EMULATOR_NAME}-${ANDROID_API}" --package "system-images;android-${ANDROID_API};google_apis;x86_64"
fi

exit 0
