package com.gh.gamecenter.core.provider

import android.app.Activity
import android.content.Context
import android.os.*


interface IQGameProvider {

    /**
     * 初始化开放互联信息SDK
     * @param context 上下文
     * @param wxAppId 微信AppId
     * @param qqAppId QQAppId
     */
    fun initOpenSdkLogin(context: Context, wxAppId: String, qqAppId: String)

    /**
     * 设置登录信息，与用户相关
     */
    fun setLoginInfo(context: Context, userId: String, userName: String, token: String)

    /**
     * 启动游戏
     * @param activity 当前Activity
     * @param qqGameId QQ游戏ID
     * @param resultCallback 启动结果回调
     */
    fun launchGame(
        activity: Activity,
        qqGameId: String,
        resultCallback: (resultCode: Int, resultData: Bundle?) -> Unit
    )

    /**
     * 通过链接启动游戏
     * @param activity 当前Activity
     * @param qqGameLink QQ游戏链接
     * @param resultCallback 启动结果回调
     */
    fun launchGameByLink(
        activity: Activity,
        qqGameLink: String,
        resultCallback: (resultCode: Int, resultData: Bundle?) -> Unit
    )

    /**
     * 微信登录回调
     */
    fun onWechatLogin(context: Context, content: String, isCanceled: Boolean, message: String)

    /**
     * 微信分享结果回调
     * @param resultType 结果 0 代表失败， -1 代表取消， 1 代表成功
     */
    fun onWechatShare(context: Context, resultType: Int)

    /**
     * 关闭所有QQ小游戏
     * @param force 是否清除任务栈
     */
    fun stopAllMiniApp(force: Boolean)

}