-- layout/home6.lua
-- 关于软件页面

return function(ctx)
    local activity = ctx.activity
    local dp = ctx.dp
    local C = ctx.getColors()
    local contentLayout = ctx.contentLayout

    if not ctx.isActivityAlive() then return end

    -- ★ FIX-5: 终极兜底 —— 先回收，再手动倒序移除（不依赖 tag 比较）
    ctx.recycleAllCards()
    if contentLayout then
        pcall(function()
            local n = contentLayout.getChildCount()
            for i = n - 1, 0, -1 do
                contentLayout.removeViewAt(i)
            end
        end)
    end

    -- ★ FIX-3: 加大底部留白，避免被底部悬浮导航遮挡
    contentLayout.setPadding(dp(18), dp(8), dp(18), dp(200))

    -- ★ 显示返回按钮，标题改为"关于"
    ctx.backBtn.setVisibility(View.VISIBLE)
    ctx.setTitleVisible(true)
    ctx.titleText.setText("关于")

    -- ============ 顶部 Logo + 名称 + 版本 ============
    local logoCard = LinearLayout(activity)
    logoCard.setOrientation(LinearLayout.VERTICAL)
    logoCard.setGravity(Gravity.CENTER)
    logoCard.setBackground(ctx.cachedRoundedBgStroke(C.CARD, C.CARD_STROKE, 16, 1))
    logoCard.setPadding(dp(20), dp(28), dp(20), dp(28))
    local lcLp = LinearLayout.LayoutParams(-1, -2)
    lcLp.setMargins(0, 0, 0, dp(14))
    logoCard.setLayoutParams(lcLp)

    local logoFrame = FrameLayout(activity)
    local logoSize = dp(84)
    local lfLp = LinearLayout.LayoutParams(logoSize, logoSize)
    lfLp.gravity = Gravity.CENTER_HORIZONTAL
    logoFrame.setLayoutParams(lfLp)
    local logoBg = ctx.cachedRoundedBg(C.ACCENT_SOFT_BG, 20)
    if logoBg then logoFrame.setBackground(logoBg) end

    local fallbackTv = TextView(activity)
    fallbackTv.setText("📦")
    fallbackTv.setTextSize(36)
    fallbackTv.setGravity(Gravity.CENTER)
    fallbackTv.setLayoutParams(FrameLayout.LayoutParams(-1, -1))
    logoFrame.addView(fallbackTv)

    local logoIv = ImageView(activity)
    logoIv.setLayoutParams(FrameLayout.LayoutParams(-1, -1))
    logoIv.setScaleType(ImageView.ScaleType.CENTER_INSIDE)
    logoIv.setPadding(dp(12), dp(12), dp(12), dp(12))
    logoIv.setVisibility(View.GONE)
    logoFrame.addView(logoIv)

    logoCard.addView(logoFrame)

    do
        local iv = logoIv
        local fb = fallbackTv
        ctx.runImgAsync(function()
            local bmp = nil
            for _, name in ipairs({ "logo.png", "icon.png", "app.png", "logo.jpg" }) do
                bmp = ctx.loadLocalBitmap(name, 160)
                if bmp then break end
            end
            if bmp then
                ctx.runOnUiSafely(function()
                    pcall(function()
                        if not bmp.isRecycled() then
                            iv.setImageBitmap(bmp)
                            iv.setVisibility(View.VISIBLE)
                            fb.setVisibility(View.GONE)
                        end
                    end)
                end)
            end
        end)
    end

    local nameTv = TextView(activity)
    nameTv.setText("辉少工具箱")
    nameTv.setTextColor(C.TEXT)
    nameTv.setTextSize(20)
    ctx.setTextBold(nameTv, true)
    nameTv.setGravity(Gravity.CENTER)
    local nLp = LinearLayout.LayoutParams(-1, -2)
    nLp.setMargins(0, dp(14), 0, 0)
    nameTv.setLayoutParams(nLp)
    logoCard.addView(nameTv)

    local verStr = "1.2.0"
    if ctx.getAppVersionName then
        local ok, v = pcall(ctx.getAppVersionName)
        if ok and v and v ~= "" then verStr = v end
    end
    local verTv = TextView(activity)
    verTv.setText("v" .. verStr)
    verTv.setTextColor(C.TEXT_SUB)
    verTv.setTextSize(12)
    verTv.setGravity(Gravity.CENTER)
    local vLp = LinearLayout.LayoutParams(-1, -2)
    vLp.setMargins(0, dp(6), 0, 0)
    verTv.setLayoutParams(vLp)
    logoCard.addView(verTv)

    contentLayout.addView(logoCard)
    ctx.slideUpFadeIn(logoCard, 260, 0)

    -- ============ 简介 ============
    local descSec = ctx.makeSectionTitle("简介")
    contentLayout.addView(descSec)
    ctx.fadeInView(descSec, 220, 80)

    local descTv = TextView(activity)
    descTv.setText("辉少工具箱是一款集实用工具、美化资源、配置分享为一体的综合型应用。\n\n" ..
        "感谢您的支持与使用，愿它能为您带来便利与快乐。")
    descTv.setTextColor(C.TEXT_SUB)
    descTv.setTextSize(13)
    descTv.setLineSpacing(dp(4), 1.3)
    descTv.setPadding(dp(14), dp(14), dp(14), dp(14))
    descTv.setBackground(ctx.cachedRoundedBgStroke(C.CARD, C.CARD_STROKE, 12, 1))
    local dtLp = LinearLayout.LayoutParams(-1, -2)
    dtLp.setMargins(0, 0, 0, dp(14))
    descTv.setLayoutParams(dtLp)
    contentLayout.addView(descTv)
    ctx.slideUpFadeIn(descTv, 240, 120)

    -- ============ 链接 ============
    local linkSec = ctx.makeSectionTitle("链接")
    contentLayout.addView(linkSec)
    ctx.fadeInView(linkSec, 220, 160)

    local card1 = ctx.makeCard("官方网站", "点击访问",
        function()
            ctx.openExternalUrl(ctx.OFFICIAL_WEBSITE_URL)
        end)
    contentLayout.addView(card1)

    local card2 = ctx.makeCard("官方Q群", "点击加入",
        function()
            ctx.toast("暂未开放")
        end)
    contentLayout.addView(card2)

    -- ============ 卡片淡入动画（★ FIX: tag 兼容 Java String）============
    local idx = 0
    for i = 0, contentLayout.getChildCount() - 1 do
        local v = contentLayout.getChildAt(i)
        if v then
            local tag = nil
            pcall(function() tag = tostring(v.getTag()) end)
            if tag == "card" then
                ctx.slideUpFadeIn(v, 220, 180 + idx * 40)
                idx = idx + 1
            end
        end
    end
end