#!/bin/bash

version=5.4.53391.1108

if command -v box86 >/dev/null;then
  echo "Updating box86..."
else
  echo "Installing box86..."
fi
"${DIRECTORY}/manage" install-if-not-installed 'Box86' || error "Box86 installation failed!"
if ! command -v box86 >/dev/null;then
  error "Box86 failed to install somehow!\n/usr/local/bin/box86 does not exist"
fi

# Get dependencies
install_packages libxcb-xtest0 libxcb-xfixes0 libturbojpeg0 '|' libturbojpeg pulseaudio-utils pulseaudio || exit 1

#refresh list of libraries
sudo ldconfig
#For testing, set to false if zoom folder is already there
if true;then
  echo "Downloading Zoom..."
  rm -rf "${HOME}/zoom" ~/zoom_i686.tar.xz || sudo rm -rf "${HOME}/zoom" ~/zoom_i686.tar.xz
  wget "https://zoom.us/client/${version}/zoom_i686.tar.xz" || wget "https://zoom.com/client/${version}/zoom_i686.tar.xz" || wget "https://d11yldzmag5yn.cloudfront.net/prod/${version}/zoom_i686.tar.xz" || error 'Failed to download Zoom i686!'
  
  #get outdated Zoom client from Botspot's mirror because it's more stable
  #wget 'https://github.com/Botspot/zoom_686_mirror/raw/main/zoom_i686.tar.xz' || error 'Failed to download Zoom i686!'
  
  echo "Extracting..."
  tar -xf ~/zoom_i686.tar.xz || error 'Failed to extract Zoom i686!'
  rm -f ~/zoom_i686.tar.xz #who cares if this fails
fi

echo 'Creating launcher script'
echo '#!/bin/bash
trap "echo '\''Zoom exited. Close this terminal to exit'\'' ; sleep infinity" EXIT
if [ -z "$(ps aux | grep pulseaudio | grep -v grep)" ];then
  echo -e "\e[102m\e[30mLaunching pulseaudio.\e[0m"
  pulseaudio &
  pulsepid=$!
  trap "kill $pulsepid" EXIT
  echo "Pulseaudio PID: $pulsepid"
  sleep 2
fi
cd ${HOME}/zoom/
echo -e "\e[102m\e[30mLaunching Zoom.\e[0m"
box86 zoom "$1"' > "${HOME}/zoom/runzoom.sh"
chmod +x "${HOME}/zoom/runzoom.sh"

echo "Creating a Zoom button in the Main Menu..."
echo "[Desktop Entry]
Version=${version}
Name=Zoom
Exec=${DIRECTORY}/etc/terminal-run "\""$HOME/zoom/runzoom.sh %u"\"" 'Close this window to exit Zoom'
Icon=$(dirname "$0")/icon-64.png
Path=${HOME}/zoom/
Type=Application
Comment=i386 version of software platform used for teleconferencing using Box86
Categories=Network;
StartupNotify=true" > ~/.local/share/applications/zoom.desktop
#Associate with mimeapp
if [ -z "$(cat ~/.config/mimeapps.list | grep 'zoom.desktop')" ];then
  echo "Associating Zoom mimetypes..."
  echo "[Added Associations]
x-scheme-handler/zoomus=zoom.desktop;
x-scheme-handler/zoommtg=zoom.desktop;" >> ~/.config/mimeapps.list
fi

systemctl --user unmask pulseaudio.service pulseaudio.socket
systemctl --user enable pulseaudio.service pulseaudio.socket
echo "Installation complete!"