#!/bin/bash
# YuSu 完整卸載腳本
# 使用方法: bash uninstall.sh
#
# 此腳本會刪除：
# - YuSu 應用程式
# - 用戶配置和詞庫
# - 系統緩存和殘留文件
# - 舊版本殘留（YuSu.localized、kk 等）

set -e

echo "=========================================="
echo "  YuSu 輸入法卸載工具"
echo "=========================================="
echo ""

# 定義路徑
APP_PATH="$HOME/Library/Input Methods/YuSu.app"
APP_PATH_LOCALIZED="$HOME/Library/Input Methods/YuSu.localized"
USER_DATA="$HOME/Library/YuSu"
CACHES="$HOME/Library/Caches/app.inputmethod.yusu"
CACHES_OLD="$HOME/Library/Caches/safex.inputmethod.yusu"
ICON_CACHE="$HOME/Library/Caches/com.apple.iconservices.store"
PREFS="$HOME/Library/Preferences/app.inputmethod.yusu.plist"
PREFS_OLD="$HOME/Library/Preferences/safex.inputmethod.yusu.plist"
# 舊版 KeyKey 相關
KK_APP="$HOME/Library/Input Methods/KeyKey.app"
KK_DATA="$HOME/Library/KeyKey"
# 系統級安裝（需要 sudo）
SYSTEM_YUSU_APP="/Library/Input Methods/YuSu.app"
SYSTEM_KK_APP="/Library/Input Methods/KeyKey.app"

# 顯示將要刪除的內容
echo "將要刪除以下內容："
echo ""

items_to_delete=()

[ -d "$APP_PATH" ] && items_to_delete+=("  ✓ 應用程式: $APP_PATH")
[ -d "$APP_PATH_LOCALIZED" ] && items_to_delete+=("  ✓ 舊版殘留: $APP_PATH_LOCALIZED")
[ -d "$USER_DATA" ] && items_to_delete+=("  ✓ 用戶配置: $USER_DATA")
[ -d "$CACHES" ] && items_to_delete+=("  ✓ 緩存: $CACHES")
[ -d "$CACHES_OLD" ] && items_to_delete+=("  ✓ 舊版緩存: $CACHES_OLD")
[ -f "$PREFS" ] && items_to_delete+=("  ✓ 偏好設置: $PREFS")
[ -f "$PREFS_OLD" ] && items_to_delete+=("  ✓ 舊版偏好設置: $PREFS_OLD")
[ -d "$KK_APP" ] && items_to_delete+=("  ✓ 舊版 KeyKey: $KK_APP")
[ -d "$KK_DATA" ] && items_to_delete+=("  ✓ 舊版 KeyKey 配置: $KK_DATA")
[ -d "$SYSTEM_YUSU_APP" ] && items_to_delete+=("  ✓ 系統級 YuSu: $SYSTEM_YUSU_APP (需要 sudo)")
[ -d "$SYSTEM_KK_APP" ] && items_to_delete+=("  ✓ 系統級 KeyKey: $SYSTEM_KK_APP (需要 sudo)")

if [ ${#items_to_delete[@]} -eq 0 ]; then
    echo "  未發現 YuSu 相關文件，無需卸載。"
    echo ""
    exit 0
fi

for item in "${items_to_delete[@]}"; do
    echo "$item"
done

echo ""
echo "⚠️  警告：此操作不可逆！"
echo "⚠️  您的自定義詞庫和設置將被刪除！"
echo ""
read -p "確認卸載 YuSu？(y/N) " -n 1 -r
echo ""

if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    echo "已取消卸載。"
    exit 0
fi

echo ""
echo "開始卸載..."
echo ""

# 停止進程
echo "1. 停止進程..."
killall YuSu 2>/dev/null && echo "   ✓ 已停止 YuSu" || echo "   ○ YuSu 未在運行"
killall KeyKey 2>/dev/null && echo "   ✓ 已停止 KeyKey" || true
sleep 1

# 從 LaunchServices 註銷
echo "2. 註銷輸入法..."
LSREGISTER="/System/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister"
[ -d "$APP_PATH" ] && "$LSREGISTER" -u "$APP_PATH" 2>/dev/null && echo "   ✓ 已註銷 YuSu" || true
[ -d "$APP_PATH_LOCALIZED/YuSu.app" ] && "$LSREGISTER" -u "$APP_PATH_LOCALIZED/YuSu.app" 2>/dev/null || true
[ -d "$KK_APP" ] && "$LSREGISTER" -u "$KK_APP" 2>/dev/null && echo "   ✓ 已註銷 KeyKey" || true
[ -d "$SYSTEM_YUSU_APP" ] && "$LSREGISTER" -u "$SYSTEM_YUSU_APP" 2>/dev/null && echo "   ✓ 已註銷系統級 YuSu" || true
[ -d "$SYSTEM_KK_APP" ] && "$LSREGISTER" -u "$SYSTEM_KK_APP" 2>/dev/null && echo "   ✓ 已註銷系統級 KeyKey" || true

# 刪除應用程式
echo "3. 刪除應用程式..."
[ -d "$APP_PATH" ] && rm -rf "$APP_PATH" && echo "   ✓ 已刪除 $APP_PATH"
[ -d "$APP_PATH_LOCALIZED" ] && rm -rf "$APP_PATH_LOCALIZED" && echo "   ✓ 已刪除 $APP_PATH_LOCALIZED"
[ -d "$KK_APP" ] && rm -rf "$KK_APP" && echo "   ✓ 已刪除 $KK_APP"
[ -d "$SYSTEM_YUSU_APP" ] && sudo rm -rf "$SYSTEM_YUSU_APP" && echo "   ✓ 已刪除 $SYSTEM_YUSU_APP"
[ -d "$SYSTEM_KK_APP" ] && sudo rm -rf "$SYSTEM_KK_APP" && echo "   ✓ 已刪除 $SYSTEM_KK_APP"

# 刪除用戶數據
echo "4. 刪除用戶數據..."
[ -d "$USER_DATA" ] && rm -rf "$USER_DATA" && echo "   ✓ 已刪除 $USER_DATA"
[ -d "$KK_DATA" ] && rm -rf "$KK_DATA" && echo "   ✓ 已刪除 $KK_DATA"

# 刪除緩存
echo "5. 刪除緩存..."
[ -d "$CACHES" ] && rm -rf "$CACHES" && echo "   ✓ 已刪除 $CACHES"
[ -d "$CACHES_OLD" ] && rm -rf "$CACHES_OLD" && echo "   ✓ 已刪除 $CACHES_OLD"

# 刪除偏好設置
echo "6. 刪除偏好設置..."
[ -f "$PREFS" ] && rm -f "$PREFS" && echo "   ✓ 已刪除 $PREFS"
[ -f "$PREFS_OLD" ] && rm -f "$PREFS_OLD" && echo "   ✓ 已刪除 $PREFS_OLD"

# 清理圖標緩存
echo "7. 清理圖標緩存..."
rm -rf "$ICON_CACHE" 2>/dev/null && echo "   ✓ 已清理圖標緩存" || echo "   ○ 圖標緩存無需清理"

# 重啟 Dock 以刷新圖標
echo "8. 刷新系統..."
killall Dock 2>/dev/null || true

echo ""
echo "=========================================="
echo "  ✅ YuSu 卸載完成！"
echo "=========================================="
echo ""
echo "請手動從「系統設置 → 鍵盤 → 輸入法」中移除 YuSu（如果還顯示的話）"
echo ""
echo "如需重新安裝，請訪問: https://yusu.app"
echo ""
