2026-04-22 11:13:16 +08:00
|
|
|
using SGModule.MarkdownKit;
|
|
|
|
|
|
2026-04-27 11:20:13 +08:00
|
|
|
namespace RedHotRoast
|
2026-04-22 09:52:55 +08:00
|
|
|
{
|
|
|
|
|
using System;
|
|
|
|
|
using FairyGUI;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
|
|
|
|
public class PrivacyUI : BaseUI
|
|
|
|
|
{
|
|
|
|
|
private PrivacyUICtrl ctrl;
|
|
|
|
|
private PrivacyModel model;
|
2026-04-22 11:13:16 +08:00
|
|
|
private FGUI.ZM_Privacy_24.com_privacy ui;
|
2026-04-22 09:52:55 +08:00
|
|
|
|
|
|
|
|
private string content;
|
|
|
|
|
|
2026-04-22 11:13:16 +08:00
|
|
|
private int isTerm;
|
2026-04-22 09:52:55 +08:00
|
|
|
|
|
|
|
|
public PrivacyUI(PrivacyUICtrl ctrl) : base(ctrl)
|
|
|
|
|
{
|
|
|
|
|
uiName = UIConst.PrivacyUI;
|
|
|
|
|
this.ctrl = ctrl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void SetUIInfo(UIInfo uiInfo)
|
|
|
|
|
{
|
2026-04-22 11:13:16 +08:00
|
|
|
uiInfo.packageName = "ZM_Privacy_24";
|
2026-04-22 09:52:55 +08:00
|
|
|
uiInfo.assetName = "com_privacy";
|
|
|
|
|
uiInfo.layerType = UILayerType.Popup;
|
|
|
|
|
uiInfo.isNeedOpenAnim = true;
|
|
|
|
|
uiInfo.isNeedCloseAnim = true;
|
|
|
|
|
uiInfo.isNeedUIMask = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 生命周期
|
|
|
|
|
|
|
|
|
|
protected override void OnInit()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnClose()
|
|
|
|
|
{
|
|
|
|
|
ui?.FadeOut();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnBind()
|
|
|
|
|
{
|
2026-04-22 11:13:16 +08:00
|
|
|
ui = baseUI as FGUI.ZM_Privacy_24.com_privacy;
|
2026-04-22 09:52:55 +08:00
|
|
|
}
|
2026-04-22 11:13:16 +08:00
|
|
|
|
2026-04-22 09:52:55 +08:00
|
|
|
protected override void OnOpenBefore(object args)
|
|
|
|
|
{
|
2026-04-22 11:13:16 +08:00
|
|
|
|
2026-04-22 09:52:55 +08:00
|
|
|
if (args != null)
|
|
|
|
|
{
|
2026-04-22 11:13:16 +08:00
|
|
|
isTerm = (int)args;
|
|
|
|
|
|
2026-04-22 09:52:55 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InitView();
|
2026-04-22 11:13:16 +08:00
|
|
|
|
|
|
|
|
ui.show.selectedIndex = isTerm != 2 ? 0 : 1;
|
2026-04-22 09:52:55 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnOpen(object args)
|
|
|
|
|
{
|
|
|
|
|
ui?.FadeIn();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
private void InitView()
|
|
|
|
|
{
|
2026-04-22 11:13:16 +08:00
|
|
|
bool BisTerm = isTerm < 2 && isTerm == 1 ;
|
|
|
|
|
string title = BisTerm ? Language.GetContent("terms_service") : Language.GetContent("privacy");
|
|
|
|
|
ui.title.text = isTerm == 2 ? "View Credits" : title;
|
|
|
|
|
|
2026-04-27 10:11:52 +08:00
|
|
|
var color = new Color(172 / 255f, 131 / 255f, 113 / 255f, 1f);
|
2026-04-28 18:42:00 +08:00
|
|
|
// MarkdownKit.Instance.ShowAsRichText(ui.text_list, BisTerm ? "user" : "privacy", color, (success, state) => {
|
|
|
|
|
// if (success) {
|
|
|
|
|
// Debug.Log("内容加载成功!当前状态:" + state);
|
|
|
|
|
// }
|
|
|
|
|
// else {
|
|
|
|
|
// Debug.LogError("内容加载失败!当前状态:" + state);
|
2026-04-22 11:13:16 +08:00
|
|
|
// }
|
2026-04-28 18:42:00 +08:00
|
|
|
// }, 44);
|
|
|
|
|
|
|
|
|
|
LoadKit.Instance.LoadAsset<TextAsset>("TextAsset", BisTerm ? "Term" : "Privacy", (txt) =>
|
|
|
|
|
{
|
|
|
|
|
content = txt.text;
|
|
|
|
|
|
|
|
|
|
var str = getstr(content, 16327);
|
|
|
|
|
|
|
|
|
|
foreach (var t in str)
|
|
|
|
|
{
|
|
|
|
|
var aRichTextField = new GRichTextField();
|
|
|
|
|
aRichTextField.SetSize(GRoot.inst.width, 100);
|
|
|
|
|
aRichTextField.color = new Color(172 / 255f, 131 / 255f, 113 / 255f, 1f);
|
|
|
|
|
// aRichTextField.strokeColor = Color.black;
|
|
|
|
|
// aRichTextField.stroke = 1;
|
|
|
|
|
aRichTextField.textFormat.size = 42;
|
|
|
|
|
aRichTextField.autoSize = AutoSizeType.Height;
|
|
|
|
|
aRichTextField.AddRelation(GRoot.inst, RelationType.Width);
|
|
|
|
|
aRichTextField.text = t;
|
|
|
|
|
ui.text_list.AddChild(aRichTextField);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ui.text_list.EnsureBoundsCorrect();
|
|
|
|
|
});
|
2026-04-22 09:52:55 +08:00
|
|
|
|
|
|
|
|
ui.btn_close.SetClick(CtrlCloseUI);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string[] getstr(string strs, int len)
|
|
|
|
|
{
|
|
|
|
|
double i = strs.Length;
|
|
|
|
|
var array = new string[int.Parse(Math.Ceiling(i / len).ToString(CultureInfo.InvariantCulture))];
|
|
|
|
|
for (var j = 0; j < array.Length; j++)
|
|
|
|
|
{
|
|
|
|
|
len = len <= strs.Length ? len : strs.Length;
|
|
|
|
|
array[j] = strs[..len];
|
|
|
|
|
strs = strs.Substring(len, strs.Length - len);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return array;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|