#!/system/bin/sh
# Mosaico paginado: 4 camaras 2x2 por pagina, rota cada PAGE_SEC segundos.
# 16 cam = 4 paginas. Max fluido en H313 (352-704p sub-stream NVR).
PKG=it.danieleverducci.ojo
WALL_CONF=/data/local/tmp/cctv-wall.conf
[ -f "$WALL_CONF" ] && . "$WALL_CONF"
PAGE_SEC="${CCTV_PAGE_SEC:-20}"
SETTINGS=/data/data/$PKG/files/settings.bin
PAGES_DIR=/data/local/tmp/ojo-pages

pm path "$PKG" >/dev/null 2>&1 || exit 1
[ -d "$PAGES_DIR" ] || { log -t cctv_ojo "Falta $PAGES_DIR — ejecuta Deploy-CctvRotate16.ps1"; exit 1; }

PAGE_COUNT=$(ls "$PAGES_DIR"/page-*.bin 2>/dev/null | wc -l)
log -t cctv_ojo "Paginacion: $PAGE_COUNT paginas, ${PAGE_SEC}s/pagina"

sh /data/local/tmp/free-ram-cctv.sh
cmd package compile -m speed "$PKG" 2>/dev/null

while true; do
  for page in "$PAGES_DIR"/page-*.bin; do
    [ -f "$page" ] || continue
    PNAME=$(basename "$page" .bin)
    log -t cctv_ojo "Mostrando $PNAME"
    cp "$page" "$SETTINGS"
    UID=$(dumpsys package "$PKG" 2>/dev/null | grep userId= | head -1 | sed 's/.*userId=//;s/ .*//')
    [ -z "$UID" ] && UID=$(dumpsys package "$PKG" 2>/dev/null | grep appId= | head -1 | sed 's/.*appId=//;s/ .*//')
    if [ -n "$UID" ]; then
      chown "$UID:$UID" "$SETTINGS" 2>/dev/null
      chmod 600 "$SETTINGS" 2>/dev/null
    fi
    am force-stop "$PKG" 2>/dev/null
    sleep 1
    am start -n $PKG/.ui.MainActivity -f 0x14000000 2>/dev/null
    sleep "$PAGE_SEC"
  done
done
