import { PlayerAccount } from "./PlayerAccount";

// import { Account } from "../Account/Account";


export class ttshare
{
    static share()
    {
        Laya.Browser.window.tt.shareAppMessage({
            channel: "article",
            templateId: "ocgf9b46464b9anlff", // 替换成通过审核的分享ID
            title: "冲啊冲",
            imageUrl: "jiazai/123.png",
            query: "res.query",
            success: () =>{},
            fail: () =>{},
          });
    }
}

export class ttad
{
    private static instance:ttad;
    constructor()
    {
        ttad.instance = this;
    }
    public static get Instance():ttad
    {
        if(ttad.instance)
        {
            return ttad.instance;
        }
        else
        {
            return new ttad();
        }
    }

    private static videlAdUnitId = "15gfgp58pocp80hbkb";
    private static bannerAdUnitId = "dsk7cohbl2f4jpjtq5";

    private static videoAd;
    
    static closecallback:Function;
    public static InitAD()
    {
        if(!PlayerAccount.CurrentAccount.CurAccountData.video || !Laya.Browser.onMobile)return;

        ttad.bannerAdUnitId = PlayerAccount.CurrentAccount.CurAccountData.bannerAdUnitId?PlayerAccount.CurrentAccount.CurAccountData.bannerAdUnitId:ttad.bannerAdUnitId;
        console.log("bannerAdUnitId",ttad.bannerAdUnitId);
        ttad.videlAdUnitId = PlayerAccount.CurrentAccount.CurAccountData.videlAdUnitId?PlayerAccount.CurrentAccount.CurAccountData.videlAdUnitId:ttad.videlAdUnitId;
        console.log("videlAdUnitId",ttad.videlAdUnitId);

        ttad.videoAd = Laya.Browser.window.tt.createRewardedVideoAd({ adUnitId: this.videlAdUnitId });
        ttad.videoAd.onClose(res => 
            {
                if (res.isEnded) 
                {
                    if(ttad.closecallback)
                    {
                        ttad.closecallback(true);
                    }
                }
                else
                {
                    if(ttad.closecallback)
                    {
                        ttad.closecallback(false);
                    }
                }
          });

    }

    static ShowVideo(_cb:Function)
    {
        if(!PlayerAccount.CurrentAccount.CurAccountData.video || !Laya.Browser.onMobile)return;
        console.log("show video");
        ttad.closecallback = _cb;
        ttad.videoAd.show().then(() => 
        {
            console.log("广告显示成功");
        }).catch(err => 
            {
                // ttad.ShowTxt("视频正在加载中");
                console.log("广告组件出现问题", err);
                // 可以手动加载一次
                Laya.timer.once(200,this,()=>{
                    ttad.videoAd.load().then(() => 
                    {
                        console.log("手动加载成功");
                        // 加载成功后需要再显示广告
                        return ttad.videoAd.show();
                    });
                })
            });
    }

    static canshow = true;
    private static bannerAd;
    static Showbanner()
    {
        if(!Laya.Browser.onMobile)return;
        console.log("show banner");
        ttad.canshow = true;
        var infor = Laya.Browser.window.tt.getSystemInfoSync();
        var targetBannerAdWidth = 200;
        if(ttad.bannerAd)ttad.bannerAd.destroy();
        Laya.timer.once(200,this,()=>{
            ttad.bannerAd = Laya.Browser.window.tt.createBannerAd({
                adUnitId: ttad.bannerAdUnitId,
                style: {
                    width: targetBannerAdWidth,
                    top: infor.windowHeight - (targetBannerAdWidth / 16) * 9 // 根据系统约定尺寸计算出广告高度
                  }
            });
    
            ttad.bannerAd.onLoad(()=>
            {
                if(ttad.canshow)
                {
                    ttad.bannerAd.show().then(() =>
                    {
                        console.log("广告显示成功");
                    }).catch(err => 
                        {
                            console.log("广告组件出现问题", err);
                        });
                }
            });
    
            ttad.bannerAd.onResize(size => 
                {
                    console.log(size.width, size.height);
                    ttad.bannerAd.style.top = infor.windowHeight - size.height;
                    ttad.bannerAd.style.left = (infor.windowWidth - size.width) / 2;
                });
        })
        
    }

    static Clear()
    {
        ttad.canshow = false;
        ttad.closecallback = null;
        if(ttad.bannerAd)ttad.bannerAd.hide();
    }

    /**抖音更多游戏方法*/
    static CreateMoreGameBtn(fun:Function=null)
    {
        if(!Laya.Browser.onMobile)return;
        if(Laya.Browser.onIOS)
        {
            ttad.ShowTxt("暂未开放");
            return;
        }
        Laya.Browser.window.tt.showMoreGamesModal({
            appLaunchOptions: [
              {
                appId: "tt66d0106df9eaa083",
                query: "foo=bar&baz=qux",
                extraData: {}
              }

            ],
            success(res) {
              console.log("success", res.errMsg);
              if(fun)
              {
                fun();
              }
            },
            fail(res) {
              console.log("fail", res.errMsg);
            }
          });
          // 监听弹窗关闭
        //   this.onMoreGamesModalClose();
    }


    /*监听弹窗关闭*/
    // static onMoreGamesModalClose()
    // {
    //     if(!Laya.Browser.onMobile)return;
    //     if( Laya.Browser.onIOS)
    //     {
    //         ttad.ShowTxt("暂未开放");
    //         return;
    //     }
    //     Laya.Browser.window.tt.onMoreGamesModalClose(function() {
    //         console.log("modal closed");
    //         if(Scene3DManager.getInstance().IsGamePasue)
    //         {
    //             EventUtils.dispatchEvent( GameEvent.continueGame );
    //         }
    //       });
        
    // }


    public static ShowTxt(text: string) 
    {
        if (Laya.Browser.window.tt) 
        {
            Laya.Browser.window.tt.showToast({ title: text });
        }
        else 
        {
            console.log(text);
        }
    }
}