#!/bin/bash

menu() {
    dialog --clear --backtitle "Browser Selector" \
        --title "Select a browser" \
        --menu "Choose one of the following options:" 18 40 7 \
        1 "Chromium" \
        2 "Brave" \
        3 "Librewolf (AUR)" \
        4 "Librewolf (Flatpak)" \
        5 "Floccus (AUR)" \
        6 "Qutebrowser" \
        7 "Vivaldi" \
        8 "Exit" 2>&1 >/dev/tty
}

# Function to check if Flatpak is installed
check_flatpak() {
    if ! command -v flatpak &>/dev/null; then
        echo "Flatpak is not installed. Installing flatpak!"
	sudo pacman -S --needed flatpak
	flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
        exit 1
    fi
}

while true; do
    choice=$(menu)
    case $choice in
        1)
            echo "Downloading Chromium..."
            yay -S chromium --noconfirm
            echo -e "\n==> Downloaded and Installed Chromium."
            xdg-settings set default-web-browser chromium.desktop
            echo -e "\nSetting Default Browser to Chromium: OK"
            ;;
        2)
            echo "Downloading Brave..."
            yay -S brave-bin --noconfirm
            echo -e "\n==> Downloaded and Installed Brave."
            xdg-settings set default-web-browser brave-browser.desktop
            echo -e "\nSetting Default Browser to Brave: OK"
            ;;
        3)
            echo "Downloading Librewolf (AUR)..."
            yay -S librewolf-bin --noconfirm
            echo -e "\n==> Downloaded and Installed LibreWolf (AUR)."
            xdg-settings set default-web-browser librewolf.desktop
            echo -e "\nSetting Default Browser to LibreWolf: OK"
            ;;
        4)
            check_flatpak
            echo "Downloading Librewolf (Flatpak)..."
            flatpak install flathub io.gitlab.librewolf-community
            echo -e "\n==> Downloaded and Installed LibreWolf (Flatpak)."
            flatpak set default-web-browser io.gitlab.librewolf-community
            echo -e "\nSetting Default Browser to LibreWolf (Flatpak): OK"
            ;;
        5)
            echo "Downloading Floorp (AUR)..."
            yay -S floorp-bin --noconfirm
            echo -e "\n==> Downloaded and Installed Floorp (AUR)."
            xdg-settings set default-web-browser floorp.desktop
            echo -e "\nSetting Default Browser to Floorp: OK"
            ;;
        6)
            echo "Downloading Qutebrowser..."
            yay -S qutebrowser --noconfirm
            echo -e "\n==> Downloaded and Installed Qutebrowser."
            xdg-settings set default-web-browser qutebrowser.desktop
            echo -e "\nSetting Default Browser to Qutebrowser: OK"
            ;;
        7)
            echo "Downloading Vivaldi..."
            sudo pacman -S vivaldi --noconfirm
            echo -e "\n==> Downloaded and Installed Vivaldi."
            xdg-settings set default-web-browser vivaldi.desktop
            echo -e "\nSetting Default Browser to Vivaldi: OK"
            ;;
        8)
            echo "Exiting..."
            exit 0
            ;;
    esac
done
