#!/usr/bin/env bash
# 让 Docker 内的 workphone-sdk 能通过「网络 ADB」发现手机（解决 Hub 上 ADB=0）
#
# 前提：
# 1) 手机与 Mac 在同一 WiFi，且已获取 IP（wlan0 有 inet）
# 2) USB 仍插着，先在宿主机执行本脚本
# 3) 已 docker compose build && up，且 compose 已挂载 ~/.android 到容器 /root/.android
#
# 用法：bash sdk/docs/docker_adb_tcpip.sh [设备序列号]
set -euo pipefail
SERIAL="${1:-$(adb devices | awk '/\tdevice$/{print $1; exit}')}"
CTR="${DOCKER_CONTAINER:-workphone-sdk}"
if [[ -z "$SERIAL" ]]; then
  echo "未检测到 USB 已授权设备"
  exit 1
fi

IP="$(adb -s "$SERIAL" shell "ifconfig wlan0 2>/dev/null | awk '/inet addr/{print \$2}' | cut -d: -f2" | tr -d '\r')"
if [[ -z "$IP" ]]; then
  IP="$(adb -s "$SERIAL" shell "ip -f inet addr show wlan0 2>/dev/null | awk '/inet /{print \$2}' | cut -d/ -f1" | tr -d '\r')"
fi
if [[ -z "$IP" ]]; then
  echo "手机 wlan0 无 IP：请先连接 WiFi（与 Mac 同网段），再重试。"
  exit 1
fi

echo ">>> USB 序列号: $SERIAL  WiFi IP: $IP"
adb -s "$SERIAL" tcpip 5555
sleep 1

docker exec "$CTR" adb kill-server 2>/dev/null || true
docker exec "$CTR" adb connect "${IP}:5555"
docker exec "$CTR" adb devices -l

echo ""
echo ">>> 请刷新 Hub；若仍为空，执行: curl -s http://127.0.0.1:8899/api/v3/adb/scan"
