#!/usr/bin/env bash
set -e

echo "🍓 Installing Barutu Screen on Raspberry Pi 3/4/5 (Raspberry Pi OS)"

# Detect Pi model for compatibility
PI_MODEL=$(cat /proc/device-tree/model 2>/dev/null || echo "Unknown")
echo "Detected: $PI_MODEL"

sudo apt-get update
sudo apt-get install -y unclutter xserver-xorg xinit openbox git curl

# Install Chromium with Pi model-specific handling
echo "🌐 Installing Chromium browser..."
if ! command -v chromium-browser >/dev/null 2>&1 && ! command -v chromium >/dev/null 2>&1; then
  # Try chromium-browser first (standard on Pi OS)
  if sudo apt-get install -y chromium-browser 2>/dev/null; then
    echo "✅ Installed chromium-browser"
  elif sudo apt-get install -y chromium 2>/dev/null; then
    echo "✅ Installed chromium"
  else
    echo "⚠️  Warning: Could not install Chromium. Please install manually."
    exit 1
  fi
fi

APP_URL="https://barutu.app/display"

# Create Openbox autostart script for kiosk mode
mkdir -p ~/.config/openbox
cat > ~/.config/openbox/autostart <<'EOF'
# Disable screen blanking & power saving
xset s off
xset -dpms
xset s noblank

# Hide mouse cursor after 1s idle
unclutter -idle 1 -root &

# Launch Chromium in kiosk mode
URL="https://barutu.app/display"

# Detect available Chromium binary
if command -v chromium-browser >/dev/null 2>&1; then
  BROWSER="chromium-browser"
elif command -v chromium >/dev/null 2>&1; then
  BROWSER="chromium"
else
  echo "Error: No Chromium browser found" >&2
  exit 1
fi

# Pi-optimized Chromium flags
$BROWSER   --noerrdialogs   --disable-session-crashed-bubble   --disable-infobars   --disable-translate   --check-for-update-interval=31536000   --kiosk "$URL"   --start-fullscreen   --incognito   --disable-features=Translate,AutofillServerCommunication,NetworkTimeServiceQuerying   --no-first-run   --overscroll-history-navigation=0   --disable-pinch   --simulate-outdated-no-au='Thu, 31 Dec 2099 23:59:59 GMT'   --use-gl=egl   --enable-features=OverlayScrollbar   --disable-dev-shm-usage   --no-sandbox &
EOF

# Install and enable systemd service to start kiosk on boot
sudo bash -lc 'cat > /etc/systemd/system/barutu-kiosk.service <<SERVICE
[Unit]
Description=Barutu Kiosk
After=graphical.target network-online.target
Wants=network-online.target

[Service]
User=pi
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/pi/.Xauthority
Type=simple
ExecStart=/bin/bash -lc '''startx /usr/bin/openbox-session -- :0 vt7'''
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
SERVICE'
sudo systemctl daemon-reload
sudo systemctl enable barutu-kiosk.service
sudo systemctl restart barutu-kiosk.service || true

echo ""
echo "✅ Barutu Pi installation complete!"
echo ""
echo "🔗 Next steps:"
echo "   1. Reboot your Pi: sudo reboot"
echo "   2. After reboot, you'll see the Barutu pairing screen"
echo "   3. Go to barutu.app/displays and click 'Add Display'"
echo "   4. Enter the pairing code shown on your Pi screen"
echo ""
echo "📱 Or scan the QR code with your phone to pair instantly!"
echo ""
echo "🛠️  Manual control:"
echo "   Start: sudo systemctl start barutu-kiosk"
echo "   Stop:  sudo systemctl stop barutu-kiosk"
echo "   Logs:  sudo journalctl -u barutu-kiosk -f"
