Files
back_cantanBuilding/Assets/Scripts/UI/Setting/BindAccountPopupPanel.cs
2026-05-26 16:15:54 +08:00

193 lines
7.0 KiB
C#

using asap.core;
using cfg;
using game;
using GameCore;
using TMPro;
using tysdk;
using UnityEngine;
using UnityEngine.UI;
public class BindAccountPopupPanel : MonoBehaviour
{
IUserService userService;
Button btn_close;
Button btn_close1;
public Button btn_facebookbtn;
public GameObject btn_facebookrewardPanel;
public TMP_Text btn_facebookrewardText;
public Image btn_facebookp_icon;
public Button btn_googlebtn;
public GameObject btn_googlerewardPanel;
public TMP_Text btn_googlerewardText;
public Image btn_googlep_icon;
public Button btn_applebtn;
public GameObject btn_applerewardPanel;
public TMP_Text btn_applerewardText;
public Image btn_applep_icon;
public Button btn_delete;
int rewardID;
ItemData itemData;
private void Awake()
{
userService = GContext.container.Resolve<IUserService>();
btn_close1 = transform.Find("btn_close").GetComponent<Button>();
btn_close = transform.Find("mask").GetComponent<Button>();
btn_googlebtn = transform.Find("root/layout/btn_google/btn_green").GetComponent<Button>();
btn_googlerewardPanel = transform.Find("root/layout/btn_google/btn_green/Ani_Container/reward").gameObject;
btn_googlerewardText = transform.Find("root/layout/btn_google/btn_green/Ani_Container/reward/p_text_num").GetComponent<TMP_Text>();
btn_googlep_icon = transform.Find("root/layout/btn_google/btn_green/Ani_Container/reward/p_icon").GetComponent<Image>();
btn_facebookbtn = transform.Find("root/layout/btn_facebook/btn_green").GetComponent<Button>();
btn_facebookrewardPanel = transform.Find("root/layout/btn_facebook/btn_green/Ani_Container/reward").gameObject;
btn_facebookrewardText = transform.Find("root/layout/btn_facebook/btn_green/Ani_Container/reward/p_text_num").GetComponent<TMP_Text>();
btn_facebookp_icon = transform.Find("root/layout/btn_facebook/btn_green/Ani_Container/reward/p_icon").GetComponent<Image>();
btn_applebtn = transform.Find("root/layout/btn_apple/btn_green").GetComponent<Button>();
btn_applerewardPanel = transform.Find("root/layout/btn_apple/btn_green/Ani_Container/reward").gameObject;
btn_applerewardText = transform.Find("root/layout/btn_apple/btn_green/Ani_Container/reward/p_text_num").GetComponent<TMP_Text>();
btn_applep_icon = transform.Find("root/layout/btn_apple/btn_green/Ani_Container/reward/p_icon").GetComponent<Image>();
#if UNITY_IOS
var google_obj = transform.Find("root/layout/btn_google");
if(google_obj != null)
google_obj.gameObject.SetActive(false);
var apple_obj = transform.Find("root/layout/btn_apple");
if(apple_obj != null)
apple_obj.gameObject.SetActive(true);
#else
var google_obj = transform.Find("root/layout/btn_google");
if (google_obj != null)
google_obj.gameObject.SetActive(true);
var apple_obj = transform.Find("root/layout/btn_apple");
if (apple_obj != null)
apple_obj.gameObject.SetActive(false);
#endif
}
private void Start()
{
rewardID = GContext.container.Resolve<Tables>().TbGlobalConfig.AccountLinkReward;
itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(rewardID);
btn_close.onClick.AddListener(OnClose);
btn_close1.onClick.AddListener(OnClose);
btn_facebookbtn.interactable = false;
btn_facebookrewardPanel.SetActive(false);
btn_facebookbtn.onClick.AddListener(OnBtnFacebook);
btn_googlebtn.interactable = false;
btn_googlerewardPanel.SetActive(false);
btn_googlebtn.onClick.AddListener(OnBtnGoogle);
btn_applebtn.interactable = false;
btn_applerewardPanel.SetActive(false);
btn_applebtn.onClick.AddListener(OnBtnApple);
btn_delete.onClick.AddListener(OnBtnDelete);
SetMaterial();
}
void SetMaterial()
{
bool isLinkGoogle = false;
bool isLinkFacebook = false;
bool isLinkApple = false;
if (TYSdkFacade.TYAccountInfo != null)
{
isLinkGoogle = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.hwGoogle);
isLinkFacebook = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.hwFacebook);
isLinkApple = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.Apple);
}
Item item = GContext.container.Resolve<Tables>().TbItem.GetOrDefault(itemData.id);
IUIService uIService = GContext.container.Resolve<IUIService>();
if (!isLinkGoogle)
{
btn_googlerewardText.text = itemData.count.ToString();
uIService.SetImageSprite(btn_googlep_icon, item.Icon, BasePanel.PanelName);
}
if (!isLinkFacebook)
{
btn_facebookrewardText.text = itemData.count.ToString();
uIService.SetImageSprite(btn_facebookp_icon, item.Icon, BasePanel.PanelName);
}
if (!isLinkApple)
{
btn_applerewardText.text = itemData.count.ToString();
uIService.SetImageSprite(btn_applep_icon, item.Icon, BasePanel.PanelName);
}
btn_googlebtn.interactable = !isLinkGoogle;
btn_facebookbtn.interactable = !isLinkFacebook;
btn_applebtn.interactable = !isLinkApple;
btn_googlerewardPanel.SetActive(!isLinkGoogle);
btn_facebookrewardPanel.SetActive(!isLinkFacebook);
btn_applerewardPanel.SetActive(!isLinkApple);
}
async void OnBtnGoogle()
{
var result = await userService.LinkAccount(EAccoutType.hwGoogle);
if (result)
{
PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.hwGoogle.ToString(), "1");
btn_googlebtn.interactable = false;
btn_googlerewardPanel.SetActive(false);
GetReward();
}
}
async void OnBtnFacebook()
{
var result = await userService.LinkAccount(EAccoutType.hwFacebook);
if (result)
{
PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.hwFacebook.ToString(), "1");
btn_facebookbtn.interactable = false;
btn_facebookrewardPanel.SetActive(false);
GetReward();
}
}
async void OnBtnApple()
{
var result = await userService.LinkAccount(EAccoutType.Apple);
if (result)
{
PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.Apple.ToString(), "1");
btn_applebtn.interactable = false;
btn_applerewardPanel.SetActive(false);
GetReward();
}
}
private void OnBtnDelete()
{
tysdk.TYSdkFacade.Instance.Signout();
RootCtx.ExitGame();
}
void GetReward()
{
GContext.container.Resolve<PlayerItemData>().AddItem(itemData);
GContext.Publish(new ShowData(itemData));
GContext.Publish(new ShowData());
GContext.container.Resolve<PlayerShopData>().GetSKUs();
}
protected virtual void OnClose()
{
UIManager.Instance.DestroyUI(UITypes.BindAccountPopupPanel);
}
}