#!/bin/bash

ICON="/usr/share/icons/hicolor/48x48/apps/easyflatpak.png"
FLATPAK_URL="https://dl.flathub.org/repo/appstream/org.dupot.easyflatpak.flatpakref"
DOWNLOAD_DIR="$HOME/Downloads"
FLATPAK_FILE="$DOWNLOAD_DIR/org.dupot.easyflatpak.flatpakref"

#add the flatpak software repo if it is not present
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo

# Check if Easy Flatpak is already installed
if flatpak info org.dupot.easyflatpak &>/dev/null; then
   exec flatpak run org.dupot.easyflatpak "$@" 2>/dev/null
        exit 0
    fi

# Download the .flatpakref if it doesn't already exist
if [ ! -f "$FLATPAK_FILE" ]; then
    mkdir -p "$DOWNLOAD_DIR"
    yad --center --fixed --width=400 --height=100 \
        --title="Easy Flatpak Installer" \
        --window-icon="$ICON" \
        --image="$ICON" \
        --text="\nDownloading Easy Flatpak installer file..." \
        --button="gtk-cancel":1 --button="gtk-ok":0
if [ $? = 1 ]; then
        exit 0
else
wget -q --show-progress -O "$FLATPAK_FILE" "$FLATPAK_URL"
fi
 fi

# Show chooser dialog
SELECTED_FILE=$(yad --file --title="Select Flatpak Bundle to Install" \
    --fixed --width=700 --height=500 --window-icon="$ICON" --center \
    --filename="$FLATPAK_FILE" \
    --file-filter="*.flatpakref" \
    --button="gtk-cancel":1 --button="gtk-ok":0)

if [ -z "$SELECTED_FILE" ]; then
    exit 0
fi

# Create FIFO for output
YAD_FIFO=$(mktemp -u)
mkfifo "$YAD_FIFO"

# Show progress window
yad --progress --pulsate --auto-close --title="Easy Flatpak Installer" \
    --window-icon="$ICON" \
    --text="Installing..." \
    --width=450 --height=100 --fixed --center \
    < "$YAD_FIFO" &

(
    chmod a+x "$SELECTED_FILE"
    echo "# Installing Flatpak bundle: $SELECTED_FILE"
    flatpak install -y --user "$SELECTED_FILE"
) > "$YAD_FIFO" 2>&1

wait
rm -f "$YAD_FIFO"
 yad --center --fixed --width=400 --height=100 \
        --title="Easy Flatpak Installer" \
        --window-icon="$ICON" \
        --image="$ICON" \
        --text="\nEasy Flatpak Installer is installed and ready to use!" \
        --button="gtk-ok"
        exit 0
