#!/usr/bin/env bash
WALLPAPER_APP="quickshell"

# Colors for UI
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

# Ensure that cache folder exists
mkdir -p $HOME/.cache

# --- UI Functions (Redirected to stderr) ---
info() { echo -e "${GREEN}[INFO]${NC} $1" >&2; }
warn() { echo -e "${YELLOW}[WARN]${NC} $1" >&2; }
error() { echo -e "${RED}[ERROR]${NC} $1" >&2; }

# Wallpaper app
if [ -f $HOME/.config/ml4w/settings/wallpaper-app ]; then
    WALLPAPER_APP=$(cat $HOME/.config/ml4w/settings/wallpaper-app)
fi

# Wallpaper folder
if [ -f $HOME/.config/ml4w/settings/wallpaper-folder ]; then
    RAW_FOLDER=$(cat $HOME/.config/ml4w/settings/wallpaper-folder)
    WALLPAPER_FOLDER="${RAW_FOLDER//\$HOME/$HOME}"
    WALLPAPER_FOLDER="${WALLPAPER_FOLDER//\~/$HOME}"    
fi

# Check parameters
if [ "$1" == "--restore" ]; then
    if [ "$WALLPAPER_APP" == "waypaper" ]; then
        waypaper --restore
    else
        error "Wallpaper App $WALLPAPER_APP not supported."
    fi    
    exit
elif [ "$1" == "--random" ]; then
    if [ "$WALLPAPER_APP" == "quickshell" ]; then
        $HOME/.config/ml4w/scripts/ml4w-wallpaper --random
    elif [ "$WALLPAPER_APP" == "waypaper" ]; then
        waypaper --random --folder $WALLPAPER_FOLDER
    else
        error "Wallpaper App $WALLPAPER_APP not supported."
    fi    
    exit
fi

# Launch wallpaper app
if [ "$WALLPAPER_APP" == "quickshell" ]; then
    info "Toggle Quickshell Wallpaper App"
    qs ipc call wallpaper toggle
elif [ "$WALLPAPER_APP" == "waypaper" ]; then
    info "Launch Waypaper"
    waypaper --folder $WALLPAPER_FOLDER
else
    error "Wallpaper App $WALLPAPER_APP not supported."
fi