package com.remax.bill.ui

import android.content.Context
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import com.google.android.gms.ads.AdView
import com.remax.bill.R
import com.remax.bill.ads.log.AdLogger

/**
 * Banner广告UI视图组件
 * 封装Banner广告的布局创建和显示逻辑
 */
class BannerAdView {
    
    companion object {
        private const val TAG = "BannerAdView"
    }
    
    /**
     * 创建并绑定Banner广告视图到容器中
     * @param context 上下文
     * @param container 目标容器
     * @param adView AdMob的AdView
     * @param onExpandCallback 展开状态变化回调（已弃用，传null即可）
     * @return 是否绑定成功
     */
    fun bindBannerAdToContainer(
        context: Context,
        container: ViewGroup,
        adView: AdView,
        onExpandCallback: ((Boolean) -> Unit)? = null
    ): Boolean {
        return try {
            // 清空容器
            container.removeAllViews()
            
            // 创建Banner广告容器布局
            val bannerContainer = createBannerContainerLayout(context)
            
            // 将AdView添加到容器中
            val adContainer = bannerContainer.findViewById<FrameLayout>(com.remax.bill.R.id.fl_ad_container)
            adContainer.removeAllViews()
            adContainer.addView(adView)
            
            // 添加到目标容器
            container.addView(bannerContainer)

            AdLogger.d("Banner广告视图绑定成功")
            true
        } catch (e: Exception) {
            AdLogger.e("Banner广告视图绑定失败", e)
            false
        }
    }
    
    /**
     * 创建Banner加载中视图
     */
    fun createBannerLoadingView(context: Context): View {
        return LayoutInflater.from(context).inflate(R.layout.layout_banner_loading, null).apply {
            layoutParams = ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT
            )
        }
    }
    

    
    /**
     * 创建Banner容器布局
     */
    private fun createBannerContainerLayout(context: Context): View {
        return LayoutInflater.from(context).inflate(R.layout.layout_banner_container, null).apply {
            layoutParams = ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT
            )
        }
    }
    
    /**
     * 重置状态
     */
    fun reset() {
        // Banner广告重置，目前无需特殊处理
    }
} 