#!/usr/bin/env bash
set -euo pipefail

ROOT="${1:-$PWD}"
PATCH_BASE="$ROOT/device/tecno/CK7n/patches/working-source-patches"
SERIES="$PATCH_BASE/series.txt"

echo "== apply CK7n final working patches =="
echo "Root: $ROOT"
echo

if [ ! -f "$SERIES" ]; then
  echo "BAD: missing $SERIES"
  exit 1
fi

cd "$ROOT"

while IFS="|" read -r KIND PROJECT FILE; do
  [ -z "${KIND:-}" ] && continue

  case "$KIND" in
    patch)
      echo
      echo "== patch: $PROJECT =="

      if [ ! -d "$PROJECT/.git" ]; then
        echo "BAD: project missing: $PROJECT"
        exit 1
      fi

      PATCH_FILE="$PATCH_BASE/$FILE"

      if git -C "$PROJECT" apply --check "$PATCH_FILE"; then
        git -C "$PROJECT" apply "$PATCH_FILE"
        echo "GOOD applied: $PROJECT"
      elif git -C "$PROJECT" apply --reverse --check "$PATCH_FILE"; then
        echo "GOOD already applied: $PROJECT"
      else
        echo "BAD patch failed: $PROJECT"
        echo "$PATCH_FILE"
        exit 1
      fi
      ;;

    untracked)
      echo
      echo "== restore untracked: $PROJECT =="
      mkdir -p "$PROJECT"
      tar -xzf "$PATCH_BASE/$FILE" -C "$PROJECT"
      echo "GOOD restored: $PROJECT"
      ;;

    *)
      echo "BAD unknown kind: $KIND"
      exit 1
      ;;
  esac
done < "$SERIES"

echo
echo "== gate checks =="

echo "-- storage mediaprovider --"
grep -n "com.android.providers.media.module" system/sepolicy/private/seapp_contexts || true
grep -n "com.google.android.providers.media.module" system/sepolicy/private/seapp_contexts || true
grep -n "mediaprovider_app" system/sepolicy/private/seapp_contexts | tail -20 || true

echo
echo "-- ADB eng-only cleanup --"
grep -RnsEi "TARGET_BUILD_VARIANT|ro.adb.secure|service.adb.root|persist.sys.usb.config|noauth only for eng" \
  device/tecno/CK7n packages/modules/adb/daemon/main.cpp 2>/dev/null || true

echo
echo "-- SystemUI desktop logger --"
grep -Rns "DesktopModeLoggerTransitionObserver\|debug.tracing.desktop_mode_visible_tasks\|debug_tracing_desktop_mode_visible_tasks" \
  frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode \
  system/sepolicy 2>/dev/null | head -80 || true

echo
echo "-- DTBO size --"
grep -Rns "BOARD_DTBOIMG_PARTITION_SIZE" device/tecno/CK7n 2>/dev/null || true

echo
echo "GOOD: patches applied."
