package com.gh.gamecenter.core.provider

import android.app.Activity
import android.content.Context
import android.view.ViewGroup
import androidx.fragment.app.Fragment


interface ICsjAdProvider {

    fun initSDK(context: Context, id: String, oaid: String)

    fun requestSplashAd(
        activity: Activity,
        slotId: String,
        adViewWidthInPx: Int,
        adViewHeightInPx: Int,
        adViewWidthInDp: Float,
        adViewHeightInDp: Float,
        startAdContainer: ViewGroup,
        timeout: Int,
        onAdShowAction: () -> Unit,
        onAdClickAction: () -> Unit,
        callback: (isSuccess: Boolean) -> Unit
    )

    fun requestFlowAd(
        fragment: Fragment,
        containerView: ViewGroup,
        slotId: String,
        expressViewAcceptedSize: Float,
        onAdShowAction: () -> Unit,
        onAdClickAction: () -> Unit,
        callback: (isSuccess: Boolean) -> Unit
    )

    fun requestBannerAd(
        fragment: Fragment,
        containerView: ViewGroup,
        slotId: String,
        expressViewWidthInDp: Float,
        expressViewHeightInDp: Float,
        onAdShowAction: () -> Unit,
        onAdClickAction: () -> Unit,
        callback: (isSuccess: Boolean) -> Unit
    )

    fun requestFullScreenAd(
        fragment: Fragment,
        slotId: String,
        onAdShowAction: () -> Unit,
        onAdClickAction: () -> Unit,
        callback: (isSuccess: Boolean) -> Unit
    )

    fun updateThemeStatus(context: Context, isDarkMode: Boolean)

    fun cancelSplashAd(context: Context)

    fun shouldEnableSDK(channel: String): Boolean
}