#!/bin/sh
# Paths are always quoted; no provider credentials are used by this launcher.
cd "$(dirname "$0")" || exit 1
platform=$(uname -s)
if [ "$platform" = Darwin ]; then
 cd ../Resources || exit 1
 arch=$(uname -m); [ "$arch" = arm64 ] && arch=aarch64 || arch=x64
 java_url="https://adoptium.net/temurin/releases/?version=21&os=mac&arch=$arch&package=jdk"
else
 java_url='https://adoptium.net/temurin/releases/?version=21&os=linux&arch=x64&package=jre'
fi
open_url() { if [ "$platform" = Darwin ]; then /usr/bin/open "$1"; else xdg-open "$1" >/dev/null 2>&1; fi; }
help_dialog() {
 while :; do
  if [ "$platform" = Darwin ]; then
   answer=$(/usr/bin/osascript -e 'button returned of (display dialog "Lumyplay nécessite Java 17 ou supérieur et VLC 3, de même architecture. Installez Java 21 LTS puis relancez Lumyplay." with title "Lumyplay" buttons {"Fermer", "Télécharger VLC", "Télécharger Java"} default button "Télécharger Java")') || return
  elif command -v zenity >/dev/null 2>&1; then
   answer=$(zenity --question --title=Lumyplay --text='Installez Java 21 LTS (minimum 17), puis relancez Lumyplay. VLC 3 est aussi nécessaire.' --ok-label='Télécharger Java' --cancel-label=Fermer --extra-button='Télécharger VLC' 2>/dev/null); code=$?; [ "$code" = 0 ] && answer='Télécharger Java'
  elif command -v kdialog >/dev/null 2>&1; then
   kdialog --title Lumyplay --yesnocancel 'Installez Java 21 LTS (minimum 17) et VLC 3, puis relancez Lumyplay.' --yes-label 'Télécharger Java' --no-label 'Télécharger VLC' --cancel-label Fermer; code=$?;case "$code" in 0) answer='Télécharger Java';;1) answer='Télécharger VLC';;*) return;;esac
  else open_url 'https://ipflix.info-af.fr/#desktop';return
  fi
  case "$answer" in 'Télécharger Java') open_url "$java_url";;'Télécharger VLC') open_url 'https://www.videolan.org/vlc/';;*) return;;esac
 done
}
java_bin=''
probe() {
 [ -x "$1" ] || return 1
 info=$("$1" -XshowSettings:properties -version 2>&1)
 major=$(printf '%s\n' "$info" | sed -n 's/^[[:space:]]*java.specification.version = //p')
 case "$major" in ''|*[!0-9]*) return 1;;esac
 [ "$major" -ge 17 ] || return 1
 printf '%s\n' "$info" | grep -q 'sun.arch.data.model = 64' || return 1
 if [ "$platform" = Darwin ]; then
  actual=$(printf '%s\n' "$info" | sed -n 's/^[[:space:]]*os.arch = //p')
  case "$arch:$actual" in aarch64:aarch64|x64:x86_64|x64:amd64) :;;*) return 1;;esac
 fi
 java_bin=$1
}
if [ -d "$PWD/runtime" ]; then
 if ! probe "$PWD/runtime/bin/java"; then
  if [ "$platform" = Darwin ]; then /usr/bin/osascript -e 'display alert "Lumyplay" message "Le Java inclus ne démarre pas. Téléchargez le ZIP correspondant à votre Mac et extrayez-le entièrement."'; else command -v zenity >/dev/null && zenity --error --text="Le Java inclus ne démarre pas. Extrayez le ZIP complet dans un dossier personnel."; fi
  exit 1
 fi
 export VLC_PLUGIN_PATH="$PWD/media/plugins"
fi
if [ -z "$java_bin" ] && ! probe "${JAVA_HOME:-/nonexistent}/bin/java" && ! probe "$(command -v java)"; then
 if [ "$platform" = Darwin ]; then
  probe "$(/usr/libexec/java_home -v '17+' 2>/dev/null)/bin/java" || :
  for j in /Library/Java/JavaVirtualMachines/*/Contents/Home/bin/java; do [ -n "$java_bin" ] || probe "$j"; done
 else
  for j in /usr/lib/jvm/*/bin/java; do [ -n "$java_bin" ] || probe "$j"; done
 fi
fi
if [ -z "$java_bin" ]; then help_dialog;exit 1;fi
exec "$java_bin" --enable-native-access=ALL-UNNAMED -jar "$PWD/Lumyplay.jar" </dev/null >/dev/null 2>&1
