陈嘉乐
2021-03-10 1d1cad99a27c9f644c84eb3d376c70bd30a55879
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Threading;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
@@ -28,15 +29,22 @@
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                //btnConfirm.IsSelected = false;
                if (string.IsNullOrEmpty(editText.Text.Trim()) || list.Contains(editText.Text.Trim()))
                var text = editText.Text.Trim();
                Regex regtest = new Regex(@"\p{Cs}");
                Match match = regtest.Match(text);
                if (match.Success)
                {
                    if (titleId == StringId.ModifyMemberNickname)
                    {
                        return;
                    }
                    HDLCommon.Current.ShowAlert(Language.StringByID(StringId.CannotEnterSpecialCharacters));
                    return;
                }
                if (string.IsNullOrEmpty(text) || list.Contains(text))
                {
                    //if (titleId == StringId.ModifyMemberNickname)
                    //{
                    //    return;
                    //}
                    string tipMsgString = "";
                    if (string.IsNullOrEmpty(editText.Text.Trim()))
                    if (string.IsNullOrEmpty(text))
                    {
                        tipMsgString = Language.StringByID(errorId_IsNullOrEmpty);
                    }
@@ -58,7 +66,7 @@
                }
                callBackAction(editText.Text.Trim());
                callBackAction(text);
                dialog.Close();
            };
        }
@@ -120,16 +128,39 @@
                Text = editParater,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                SecureTextEntry = encryption,
                //SecureTextEntry = encryption,
                //TextAlignment = TextAlignment.CenterLeft ,
            };
            editView.AddChidren(etParater);
            if(encryption)
            {
                etParater.SecureTextEntry = encryption;
            }
            Button btnClear = new Button()
            {
                X = Application.GetRealWidth(218-25),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "Public/ClearIcon.png",
            };
            editView.AddChidren(btnClear);
            btnClear.MouseUpEventHandler = (sender, e) =>
            {
                etParater.Text = "";
            };
            etParater.TextChangeEventHandler = (sender, e) =>
            {
                if (etParater.Text.Length > 20)
                {
                    etParater.Text = etParater.Text.Remove(20);
#if __ANDROID__
                    etParater.SetSelectionEnd();
#endif
                }
            };
@@ -169,11 +200,11 @@
            {
                X = btnCancel.Right,
                Y = btnLine.Y,
                Width = Application.GetRealWidth(135),
                Width = Application.GetRealWidth(137),
                Height = Application.GetRealHeight(43 + 1),
                TextAlignment = TextAlignment.Center,
                //TextColor = CSS_Color.TextualColor,
                //TextSize = CSS_FontSize.SubheadingFontSize,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.MainBackgroundColor,
                BackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Confirm,
@@ -184,17 +215,10 @@
            dialog.Show();
            //btnCancel.MouseDownEventHandler += (sender, e) => {
            //    btnCancel.IsSelected = true;
            //};
            btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //btnCancel.IsSelected = false;
                dialog.Close();
            };
            //btnConfirm.MouseDownEventHandler += (sender, e) => {
            //    btnConfirm.IsSelected = true;
            //};
            EditParaterEvent(btnConfirm, errorId_IsNullOrEmpty, errorId_ContainsPar, baseList, etParater, callBackAction,
                contentView, btnLine, btnCancel, editView, dialog, titleId);
        }
@@ -205,7 +229,7 @@
        /// <param name="titleId"></param>
        /// <param name="msgId"></param>
        /// <param name="callBackAction"></param>
        public void TipMsg(int titleId, int msgId, Action callBackAction)
        public void TipOptionMsg(int titleId, int msgId, Action callBackAction)
        {
            Dialog dialog = new Dialog()
            {
@@ -246,6 +270,7 @@
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextID = msgId,
                IsMoreLines = true,
            };
            contentView.AddChidren(btnMsg);
@@ -272,22 +297,12 @@
            };
            contentView.AddChidren(btnCancel);
            //Button btnBottomLine = new Button()
            //{
            //    X = btnCancel.Right,
            //    Y = btnLine.Bottom,
            //    Height = Application.GetRealHeight(43),
            //    Width = Application.GetRealWidth(1),
            //    BackgroundColor = CSS_Color.DividingLineColor,
            //};
            //contentView.AddChidren(btnBottomLine);
            Button btnConfirm = new Button()
            {
                X = btnCancel.Right,
                Y = btnLine.Y,
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(43 + 1),
                Height = Application.GetRealHeight(45),
                TextAlignment = TextAlignment.Center,
                //TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
@@ -330,20 +345,31 @@
        /// <param name="isWhite"></param>
        public void TipMsgAutoClose(string msg, bool isWhite, int closeTime = 1500)
        {
            Dialog dialog = new Dialog()
            Dialog dialog = new Dialog();
            FrameLayout dialogBody = new FrameLayout();
            dialog.AddChidren(dialogBody);
            dialogBody.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                dialog = null;
            };
            FrameLayout frame = new FrameLayout()
            {
                X = Application.GetRealWidth(89),
                Y = Application.GetRealHeight(285),
                Width = Application.GetRealWidth(198),
                Height = Application.GetRealHeight(98),
            };
            FrameLayout frame = new FrameLayout()
            {
                BackgroundColor = isWhite ? 0xE6FFFFFF : CSS_Color.DialogTransparentColor1,
                Radius = (uint)Application.GetRealWidth(12),
            };
            dialog.AddChidren(frame);
            frame.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                dialog = null;
            };
            Button btnTipIcon = new Button()
            {
@@ -363,6 +389,7 @@
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = isWhite ? CSS_Color.FirstLevelTitleColor : CSS_Color.MainBackgroundColor,
                Text = msg,
                IsMoreLines = true,
            };
            frame.AddChidren(btnTipMsg);
@@ -373,7 +400,10 @@
                Thread.Sleep(closeTime);
                Application.RunOnMainThread(() =>
                {
                    dialog.Close();
                    if(dialog!=null)
                    {
                        dialog.Close();
                    }
                });
            })
            { IsBackground = true }.Start();
@@ -384,7 +414,7 @@
        /// </summary>
        /// <param name="titleId"></param>
        /// <param name="msgId"></param>
        public void TipMsg(int titleId, int msgId)
        public void TipMsg(int titleId, int msgId,Action action = null)
        {
            Dialog dialog = new Dialog()
            {
@@ -425,6 +455,7 @@
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextID = msgId,
                IsMoreLines = true,
            };
            contentView.AddChidren(btnMsg);
@@ -458,6 +489,7 @@
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                btnConfirm.IsSelected = false;
                action?.Invoke();
                dialog.Close();
            };
@@ -537,26 +569,28 @@
        /// 场景延时设置弹窗
        /// </summary>
        /// <param name="function"></param>
        public void SetSceneDelayDialog(Function function,Button btn)
        public void SetSceneDelayDialog(Dictionary<string,string>items, Action<string> action,string curItemKey)
        {
            Button lastButton = new Button();
            int changeDelay = 0;
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var itemCount = items.Count;
            var optionBaseViewHeight = ((itemCount > 3 ? itemCount : 3) + 1) * Application.GetRealHeight(50);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(439),
                //Y = Application.GetRealHeight(439),
                Y = Application.GetRealHeight(647) - optionBaseViewHeight,
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(208),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                //Height = Application.GetRealHeight(208),
                Height = optionBaseViewHeight,
                //AnimateSpeed = 0.3f,
                //Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
@@ -597,92 +631,169 @@
            var btnConfrim = new Button()
            {
                Width = Application.GetRealWidth(320),
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Complete,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            Button btn1 = new Button()
            var itemsView = new VerticalScrolViewLayout()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "30s",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(20),
                Y = Application.GetRealHeight(80),
                IsSelected = function.delayText == "30s"
                Y = topView.Bottom,
                Height = optionBaseViewHeight - Application.GetRealHeight(50),
                ScrollEnabled = itemCount > 4,
            };
            optionBaseView.AddChidren(btn1);
            optionBaseView.AddChidren(itemsView);
            bool isFrist = true;
            Button btnLastSelectedTip = null;
            Button btn2 = new Button()
            foreach (var item in items)
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "1min",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(195),
                Y = Application.GetRealHeight(80),
                IsSelected = function.delayText == "1min"
            };
            optionBaseView.AddChidren(btn2);
                if (isFrist)
                {
                    isFrist = false;
                }
                else
                {
                    itemsView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
                }
                var row = new FrameLayout()
                {
                    Height = Application.GetRealHeight(50),
                };
                itemsView.AddChidren(row);
                var btnTipSelected = new Button()
                {
                    X = Application.GetRealWidth(303),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(28),
                    Height= Application.GetRealWidth(28),
                    UnSelectedImagePath = "Public/ChooseIcon.png",
                    SelectedImagePath = "Public/ChooseOnIcon.png",
                };
                row.AddChidren(btnTipSelected);
                if( item.Key == curItemKey)
                {
                    btnTipSelected.IsSelected = true;
                    btnLastSelectedTip = btnTipSelected;
                }
            Button btn3 = new Button()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "2min",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(20),
                Y = Application.GetRealHeight(140),
                IsSelected = function.delayText == "2min"
            };
            optionBaseView.AddChidren(btn3);
                var btnRowTitle = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Text = item.Value,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextAlignment = TextAlignment.CenterLeft,
                };
                row.AddChidren(btnRowTitle);
                btnRowTitle.MouseUpEventHandler = (sender, e) =>
                {
                    if (btnTipSelected.IsSelected)
                    {
                        curItemKey = "0";
                        btnTipSelected.IsSelected = false;
                        btnLastSelectedTip = null;
                    }
                    else
                    {
                        curItemKey = item.Key;
                        if (btnLastSelectedTip != null)
                        {
                            btnLastSelectedTip.IsSelected = false;
                        }
                        btnTipSelected.IsSelected = true;
                        btnLastSelectedTip = btnTipSelected;
                    }
                };
            }
            //Button btn1 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "30s",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(20),
            //    Y = Application.GetRealHeight(80),
            //    IsSelected = curItemKey == "30"
            //};
            //optionBaseView.AddChidren(btn1);
            Button btn4 = new Button()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "5min",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(195),
                Y = Application.GetRealHeight(140),
                IsSelected = function.delayText == "5min"
            };
            optionBaseView.AddChidren(btn4);
            //Button btn2 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "1min",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(195),
            //    Y = Application.GetRealHeight(80),
            //    IsSelected = curItemKey == "60"
            //};
            //optionBaseView.AddChidren(btn2);
            //Button btn3 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "2min",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(20),
            //    Y = Application.GetRealHeight(140),
            //    IsSelected = curItemKey == "120"
            //};
            //optionBaseView.AddChidren(btn3);
            //Button btn4 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "5min",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(195),
            //    Y = Application.GetRealHeight(140),
            //    IsSelected = curItemKey == "300"
            //};
            //optionBaseView.AddChidren(btn4);
@@ -700,66 +811,65 @@
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                action(curItemKey);
                dialog.Close();
                function.delay = changeDelay;
                btn.Text = function.delayText;
            };
            btn1.MouseUpEventHandler = (sender, e) => {
                btn1.IsSelected = !btn1.IsSelected;
                btn2.IsSelected = false;
                btn3.IsSelected = false;
                btn4.IsSelected = false;
                if(btn1.IsSelected)
                {
                    changeDelay = 30;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            btn2.MouseUpEventHandler = (sender, e) => {
                btn2.IsSelected = !btn2.IsSelected;
                btn1.IsSelected = false;
                btn3.IsSelected = false;
                btn4.IsSelected = false;
                if (btn2.IsSelected)
                {
                    changeDelay = 60;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            btn3.MouseUpEventHandler = (sender, e) => {
                btn3.IsSelected = !btn3.IsSelected;
                btn2.IsSelected = false;
                btn1.IsSelected = false;
                btn4.IsSelected = false;
                if (btn3.IsSelected)
                {
                    changeDelay = 120;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            btn4.MouseUpEventHandler = (sender, e) => {
                btn4.IsSelected = !btn4.IsSelected;
                btn2.IsSelected = false;
                btn3.IsSelected = false;
                btn1.IsSelected = false;
                if (btn4.IsSelected)
                {
                    changeDelay = 300;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            //btn1.MouseUpEventHandler = (sender, e) => {
            //    btn1.IsSelected = !btn1.IsSelected;
            //    btn2.IsSelected = false;
            //    btn3.IsSelected = false;
            //    btn4.IsSelected = false;
            //    if(btn1.IsSelected)
            //    {
            //        curItemKey = "30";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
            //btn2.MouseUpEventHandler = (sender, e) => {
            //    btn2.IsSelected = !btn2.IsSelected;
            //    btn1.IsSelected = false;
            //    btn3.IsSelected = false;
            //    btn4.IsSelected = false;
            //    if (btn2.IsSelected)
            //    {
            //        curItemKey = "60";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
            //btn3.MouseUpEventHandler = (sender, e) => {
            //    btn3.IsSelected = !btn3.IsSelected;
            //    btn2.IsSelected = false;
            //    btn1.IsSelected = false;
            //    btn4.IsSelected = false;
            //    if (btn3.IsSelected)
            //    {
            //        curItemKey = "120";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
            //btn4.MouseUpEventHandler = (sender, e) => {
            //    btn4.IsSelected = !btn4.IsSelected;
            //    btn2.IsSelected = false;
            //    btn3.IsSelected = false;
            //    btn1.IsSelected = false;
            //    if (btn4.IsSelected)
            //    {
            //        curItemKey = "300";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
        }