# 一键：重建内联 H5 → 拷入安卓工程 assets → Gradle 打签名 APK → 拷到 out/
# 用法：改完 mobile-src.html 后直接运行本脚本产出新 APK。版本号自动跟随 package.json。
# 路径基于本脚本所在目录（项目根），可移植；JDK / Gradle 优先取环境变量与 PATH。
$root = $PSScriptRoot
& "$root\build-mobile-html.ps1"
Copy-Item "$root\mobile-test.html" "$root\android\app\src\main\assets\mobile.html" -Force

# 与 package.json 版本对齐：versionCode = major*10000 + minor*100 + patch（单调递增）
$ver = (Get-Content "$root\package.json" -Raw | ConvertFrom-Json).version
$p = $ver.Split('.')
$code = [int]$p[0] * 10000 + [int]$p[1] * 100 + [int]$p[2]
Write-Output "内置最新 H5，版本 $ver (versionCode $code)，开始 Gradle 构建…"

# JDK 17：优先用已设的 JAVA_HOME；未设则回退到本机默认路径（新机请设置自己的 JAVA_HOME）
if (-not $env:JAVA_HOME) { $env:JAVA_HOME = 'C:\Program Files\Java\jdk-17.0.3.1' }

# Android SDK：优先 ANDROID_HOME；未设则回退本机默认路径（工具链约定在 F:\Android）
if (-not $env:ANDROID_HOME -and (Test-Path 'F:\Android\Sdk')) { $env:ANDROID_HOME = 'F:\Android\Sdk' }

# Gradle 8.x：优先 PATH 中的 gradle，其次 GRADLE_HOME，最后回退本机默认路径
$gradle = (Get-Command gradle -ErrorAction SilentlyContinue).Source
if (-not $gradle) {
    if ($env:GRADLE_HOME -and (Test-Path (Join-Path $env:GRADLE_HOME 'bin\gradle.bat'))) {
        $gradle = Join-Path $env:GRADLE_HOME 'bin\gradle.bat'
    } elseif (Test-Path 'F:\Android\gradle-8.7\bin\gradle.bat') {
        $gradle = 'F:\Android\gradle-8.7\bin\gradle.bat'
    } else {
        Write-Error '找不到 gradle：请把 gradle 加入 PATH，或设置 GRADLE_HOME 指向 Gradle 8.x 安装目录。'
        exit 1
    }
}
& $gradle -p "$root\android" assembleRelease --no-daemon --console=plain "-PappVersionName=$ver" "-PappVersionCode=$code"
if ($LASTEXITCODE -ne 0) { Write-Error "Gradle 构建失败（exit $LASTEXITCODE）"; exit $LASTEXITCODE }

$out = "$root\out\CCGUI-mobile-$ver.apk"
New-Item "$root\out" -ItemType Directory -Force | Out-Null
Copy-Item "$root\android\app\build\outputs\apk\release\app-release.apk" $out -Force
Write-Output ("APK: $out (" + [math]::Round((Get-Item $out).Length / 1MB, 2) + " MB)")
