using System; using System.Collections.Generic; using HDL_ON.DAL.Server; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { /// /// SelectServerDialog /// 服务器选择页面 /// public class SelectServerDialog : Dialog { /// /// /// FrameLayout bodyView; /// /// 选择事件 /// Action selectAction; Button btnConfrim; GlobalRegionListRes selectedRegion; /// /// /// public SelectServerDialog(Action selectAction) { bodyView = new FrameLayout(); this.selectAction = selectAction; } /// /// /// public void LoadPage() { bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; this.AddChidren(bodyView); //加载顶部菜单栏 new TopViewDiv(this, bodyView, Language.StringByID(StringId.PlsSelectServer)) { maginY = 10}.LoadTopView(); //加载服务器区域选择 AddRegionalSelectionView(); //Show this.Show(); } /// /// 加载区域选择View /// void AddRegionalSelectionView() { VerticalScrolViewLayout VerticalScrolViewMiddle = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(84), Height = bodyView.Height - Application.GetRealHeight(84), ScrollEnabled = false, }; bodyView.AddChidren(VerticalScrolViewMiddle); var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); System.Threading.Tasks.Task.Run(() => { try { var dataList = new List(); var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark }); var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost); if (revertObj.Code == StateCode.SUCCESS) { Application.RunOnMainThread(() => { var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.Data.ToString()); if (responseDataObj != null) { dataList = responseDataObj; if (dataList != null && dataList.Count > 0) { foreach (var data in dataList) { AddRowView(data, VerticalScrolViewMiddle); } //if (string.IsNullOrEmpty(OnAppConfig.Instance.RequestHttpsHost)) //{ // if (Language.CurrentLanguage != "Chinese") // { // OnAppConfig.Instance.RequestHttpsHost = dataList.Find((obj)=>obj.regionUrl.Contains) // } //} } } }); } else { //提示错误 IMessageCommon.Current.ShowErrorInfoAlter(revertObj.Code); } } catch { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }); } /// /// 加载区域选择RowView /// /// /// void AddRowView(GlobalRegionListRes mGlobalRegion, VerticalScrolViewLayout VerticalScrolViewMiddle) { var rowView = new FrameLayout() { Height = Application.GetRealHeight(60), }; VerticalScrolViewMiddle.AddChidren(rowView); rowView.AddChidren(new Button() { Y = Application.GetRealHeight(50 - 1), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor, }); var urlBtn = new Button() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(30), TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.CenterLeft, Text = mGlobalRegion.regionName, }; rowView.AddChidren(urlBtn); var btnTip = new Button() { Y = Application.GetRealHeight(20), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(20), TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterLeft, }; rowView.AddChidren(btnTip); if (mGlobalRegion.regionName.ToLower().Contains("china")) { btnTip.TextID = StringId.ChineseServerPrompt; //if(Language.CurrentLanguage == "Chinese") //{ // selectedRegion = mGlobalRegion; // urlBtn.TextColor = CSS_Color.MainColor; //} } else { btnTip.TextID = StringId.NonChineseServerPrompt; } EventHandler eHandler = (sender, e) => { //selectedRegion = mGlobalRegion; //urlBtn.TextColor = CSS_Color.MainColor; OnAppConfig.Instance.RequestHttpsHost = mGlobalRegion.regionUrl; OnAppConfig.Instance.GlobalRegion = mGlobalRegion; OnAppConfig.Instance.SaveConfig(); //关闭页面 this.Close(); selectAction?.Invoke(); }; rowView.MouseUpEventHandler += eHandler; urlBtn.MouseUpEventHandler += eHandler; //if (mGlobalRegion.regionUrl == OnAppConfig.Instance.RequestHttpsHost) //{ // urlBtn.TextColor = CSS_Color.MainColor; //} } } }