From 003abaf86b766eb40ef62300ab0c707774c36ba9 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 30 三月 2021 20:10:16 +0800
Subject: [PATCH] 2021-3-30-2

---
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs |  483 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 253 insertions(+), 230 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index 8f38cfb..981952e 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Text;
 using HDL_ON.Entity;
 using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
 using Shared;
@@ -7,28 +8,39 @@
 {
     public class PirMain : FrameLayout
     {
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
         public PirMain()
         {
+            /// 鏍囪鐣岄潰
             Tag = "PirMain";
         }
         /// <summary>
         /// 鍥炶皟
         /// </summary>
-        public Action BackAction;
+        public static Action BackAction;
+        /// <summary>
+        /// 娣诲姞鍥炬爣Btn
+        /// </summary>
+        Button addDevice;
         /// <summary>
         /// 涓存椂鍌ㄥ瓨璁惧绫诲瀷鍒楄〃
         /// </summary>
         List<DeviceType> DeviceTypeList = new List<DeviceType>();
         public void Show()
         {
+            #region 鐣岄潰甯冨眬
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
             PirDevice.View.TopView topView = new View.TopView();
             topView.topNameBtn.TextID = StringId.hongwaiyaokong;
             topView.topIconBtn.Visible = true;
             this.AddChidren(topView.FLayoutView());
-            topView.clickBackBtn.MouseUpEventHandler += (sender, e) => {
-                BackAction();
-                this.RemoveFromParent(); };
+            topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
+            {
+               
+                RemoveFromParent();
+            };
 
             FrameLayout middFLayout = new FrameLayout();
             middFLayout.Y = Application.GetRealHeight(64);
@@ -38,21 +50,27 @@
             VerticalRefreshLayout vv = new VerticalRefreshLayout();
             middFLayout.AddChidren(vv);
             //鍔犲彿鍥炬爣
-            Button addDevice = new Button
+            addDevice = new Button
             {
                 Y = Application.GetRealHeight(480),
                 X = Application.GetRealWidth(293),
                 Width = Application.GetRealWidth(82),
                 Height = Application.GetRealWidth(84),
                 UnSelectedImagePath = "PirIcon/add.png",
-            };
+                Visible=false,
 
+            };
+            middFLayout.AddChidren(addDevice);
             if (Pir.currPir.FunctioList.Count < 10)
             {
                 //10涓仴鎺у櫒灏变細闅愯棌娣诲姞鍥炬爣
-                middFLayout.AddChidren(addDevice);
+                // middFLayout.AddChidren(addDevice);
+                addDevice.Visible = true;
             }
+            #endregion
 
+            #region 鐣岄潰鐐瑰嚮浜嬩欢
+            ///涓嬫媺鍒锋柊鐣岄潰浜嬩欢
             vv.BeginHeaderRefreshingAction += () =>
                 {
                     ////鍏抽棴鍒锋柊View锛�
@@ -68,136 +86,238 @@
                     }, Pir.currPir);
 
                 };
-            UIView(vv);
-
+            ///璁剧疆鍥炬爣鐐瑰嚮浜嬩欢
             topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
             {
 
                 SetPir setPir = new SetPir();
                 MainPage.BasePageView.AddChidren(setPir);
-                setPir.Show(() =>
-                {
-                    BackAction();
-                    ////鍒锋柊鐣岄潰
-                    UIView(vv);
-                });
+                setPir.Show();
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
+            ///娣诲姞閬ユ帶鍣ㄥ浘鏍囩偣鍑讳簨浠�
             addDevice.MouseUpEventHandler += (sender, e) =>
             {
-                FrameLayout frame = new FrameLayout
+                //杩涙潵涓嶅厑璁稿乏婊�
+                MainPage.BasePageView.ScrollEnabled = false;
+                View.Buttons buttons = new View.Buttons();
+                buttons.AddFrameLayout(this, (if_value, view) => 
                 {
-                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
-                };
-                this.AddChidren(frame);
-                FrameLayout controlFl = new FrameLayout();
-                controlFl.Y = Application.GetRealHeight(319);
-                controlFl.X = Application.GetRealWidth(16);
-                controlFl.Width = Application.GetRealWidth(343);
-                controlFl.Height = Application.GetRealHeight(328);
-                controlFl.BackgroundColor = CSS.CSS_Color.view;
-                controlFl.Radius = (uint)Application.GetRealHeight(12);
-                frame.AddChidren(controlFl);
-                ///娣诲姞閬ユ帶鍣�
-                Button text3Btn = new Button
-                {
-                    Y = Application.GetRealHeight(12),
-                    X = Application.GetRealWidth(16),
-                    Width = Application.GetRealWidth(343 - 16 * 2),
-                    Height = Application.GetRealHeight(20),
-                    TextSize = TextSize.text14,
-                    TextColor = CSS.CSS_Color.textConfirmColor,
-                    TextAlignment = TextAlignment.Center,
-                    TextID = StringId.tianjiayaokongqi,
-                    IsBold = true,
-                };
-                controlFl.AddChidren(text3Btn);
-                frame.MouseUpEventHandler += (sender1, e1) =>
-                {
-
-                    frame.RemoveFromParent();
-                };
-                int line = 0;
-                for (int i = 1, j = 0; i <= 7; i++, j++)
-                {
-                    var currpirdeviceFLayout = new FrameLayout
+                    //鍏抽棴鍏佽宸︽粦
+                    MainPage.BasePageView.ScrollEnabled = true;
+                    //1=绌鸿皟;2=鐢佃;3=椋庢墖;4=鏈洪《鐩�;5=DVD/EVD/VCD;6=鎶曞奖浠�;7=鑷畾涔�;
+                    if (if_value == 7)
                     {
-                        Width = Application.GetRealWidth(80),
-                        Height = Application.GetRealWidth(80),
-                        X = Application.GetRealWidth(26 + (80 + 25) * j),
-                        Y = Application.GetRealHeight(52 + (80 + 12) * line),
-
-                    };
-                    controlFl.AddChidren(currpirdeviceFLayout);
-                    var deviceIconBtn = new Button
-                    {
-                        Y = Application.GetRealHeight(8),
-                        X = Application.GetRealWidth(20),
-                        Width = Application.GetRealWidth(40),
-                        Height = Application.GetRealWidth(40),
-                        UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
-                    };
-                    currpirdeviceFLayout.AddChidren(deviceIconBtn);
-                    var iconNameBtn = new Button
-                    {
-                        Y = deviceIconBtn.Bottom + Application.GetRealHeight(8),
-                        Width = Application.GetRealWidth(80),
-                        Height = Application.GetRealHeight(17),
-                        TextSize = TextSize.text12,
-                        TextColor = CSS.CSS_Color.TextualColor,
-                        TextAlignment = TextAlignment.Center,
-                    };
-                    currpirdeviceFLayout.AddChidren(iconNameBtn);
-                    var clickBtn = new Button { Tag = i };
-                    currpirdeviceFLayout.AddChidren(clickBtn);
-                    if (i % 3 == 0)
-                    {
-                        //婊′竴琛岄噸缃甹=0鍊�;
-                        j = -1;
-                        line += 1;
-                    }
-                    GetIconAndText(i, deviceIconBtn, iconNameBtn);
-                    clickBtn.MouseUpEventHandler += (sender2, e2) =>
-                    {
-                       
-                        //1=绌鸿皟;2=鐢佃;3=椋庢墖;4=鏈洪《鐩�;5=DVD/EVD/VCD;6=鎶曞奖浠�;7=鑷畾涔�;
-                        int if_value = int.Parse(clickBtn.Tag.ToString());
-                        if (if_value == 7)
+                        Method method = new Method();
+                        method.AddControl(this, (control) =>
                         {
-                            Method method = new Method();
-                            method.AddControl(this, (control) =>
+                           //鎴愬姛鍚庣Щ闄�;
+                           view.RemoveFromParent();
+                            AddButton addButton = new AddButton();
+                            MainPage.BasePageView.AddChidren(addButton);
+                            addButton.Show(control);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        });
+                    }
+                    else
+                    {
+                        if (if_value == 3 || if_value == 4 || if_value == 5 || if_value == 6)
+                        {
+                            new TipPopView().FlashingBox(Language.StringByID(StringId.zanshibuzhichigaigongneng));
+                            return;
+                        }
+                        if (DeviceTypeList.Count == 0)
+                        {
+                            GetDeviceTypeList(true, () =>
                             {
-                                //鎴愬姛鍚庣Щ闄�;
-                                frame.RemoveFromParent();
-                                AddButton addButton = new AddButton();
-                                MainPage.BasePageView.AddChidren(addButton);
-                                addButton.Show(control);
-                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                                DeviceTypeViewClick(if_value);
+                               //鑾峰彇鎴愬姛涔嬪悗绉婚櫎
+                               view.RemoveFromParent();
+
                             });
                         }
                         else
                         {
-                            //杩涙潵閮借绉婚櫎;
-                            frame.RemoveFromParent();
-                            if (DeviceTypeList.Count == 0)
-                            {
-                                GetDeviceTypeList(true, () =>
-                                 {
-                                     DeviceTypeViewClick(if_value);
-
-                                 });
-                            }
-                            else
-                            {
-                                DeviceTypeViewClick(if_value);
-                            }
+                            DeviceTypeViewClick(if_value);
+                            view.RemoveFromParent();
                         }
-                    };
-                }
 
+                    }
+                }, 7);
             };
+            #endregion
+            ///鍒濆鍖栫晫闈�
+            UIView(vv);
 
         }
+
+        void GoToShowSortSelection(List<string> dataList)
+        {
+            Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
+
+            foreach (var data in dataList)
+            {
+                //鎻愬彇瀛楃涓茬涓�浣�
+                //string s = data.Substring(0, 1);
+                var key = GetCharSpellCode(data);
+              
+                if (dict.ContainsKey(key))
+                {
+                    var value = dict[key];
+                    if (value == null)
+                    {
+                        value = new List<string>();
+                    }
+                    value.Add(data);
+
+                 
+                }
+                else
+                {
+                    var value = new List<string>();
+                    value.Add(data);
+                    dict.Add(key, value);
+                }
+
+              
+            }
+
+
+            Application.RunOnMainThread(() =>
+            {
+                JLCountrycode.CountryCodeView.Current.ShowSortSelection("閫夋嫨绾㈠鍝佺墝", dict, (countryName) =>
+                {
+                    //Console.WriteLine("countryName: " + countryName);
+                    Utlis.ShowTip("閫変腑浜�:" + countryName);
+
+
+                });
+            });
+        }
+
+        /// <summary>
+        /// 鑾峰彇姹夊瓧棣栧瓧姣�
+        /// </summary>
+        /// <param name="textValue"></param>
+        /// <returns></returns>
+        private string GetCharSpellCode(string textValue)
+        {
+            long iCnChar;
+
+            byte[] ZW = Encoding.GetEncoding("gb2312").GetBytes(textValue);
+
+            //濡傛灉鏄瓧姣嶏紝鍒欑洿鎺ヨ繑鍥� 
+            if (ZW.Length == 1)
+            {
+                return textValue.ToUpper();
+            }
+            else
+            {
+                // get the array of byte from the single char 
+                int i1 = (short)(ZW[0]);
+                int i2 = (short)(ZW[1]);
+                iCnChar = i1 * 256 + i2;
+            }
+
+
+
+            // iCnChar match the constant 
+            if ((iCnChar >= 45217) && (iCnChar <= 45252))
+            {
+                return "A";
+            }
+            else if ((iCnChar >= 45253) && (iCnChar <= 45760))
+            {
+                return "B";
+            }
+            else if ((iCnChar >= 45761) && (iCnChar <= 46317))
+            {
+                return "C";
+            }
+            else if ((iCnChar >= 46318) && (iCnChar <= 46825))
+            {
+                return "D";
+            }
+            else if ((iCnChar >= 46826) && (iCnChar <= 47009))
+            {
+                return "E";
+            }
+            else if ((iCnChar >= 47010) && (iCnChar <= 47296))
+            {
+                return "F";
+            }
+            else if ((iCnChar >= 47297) && (iCnChar <= 47613))
+            {
+                return "G";
+            }
+            else if ((iCnChar >= 47614) && (iCnChar <= 48118))
+            {
+                return "H";
+            }
+            else if ((iCnChar >= 48119) && (iCnChar <= 49061))
+            {
+                return "J";
+            }
+            else if ((iCnChar >= 49062) && (iCnChar <= 49323))
+            {
+                return "K";
+            }
+            else if ((iCnChar >= 49324) && (iCnChar <= 49895))
+            {
+                return "L";
+            }
+            else if ((iCnChar >= 49896) && (iCnChar <= 50370))
+            {
+                return "M";
+            }
+
+            else if ((iCnChar >= 50371) && (iCnChar <= 50613))
+            {
+                return "N";
+            }
+            else if ((iCnChar >= 50614) && (iCnChar <= 50621))
+            {
+                return "O";
+            }
+            else if ((iCnChar >= 50622) && (iCnChar <= 50905))
+            {
+                return "P";
+            }
+            else if ((iCnChar >= 50906) && (iCnChar <= 51386))
+            {
+                return "Q";
+            }
+            else if ((iCnChar >= 51387) && (iCnChar <= 51445))
+            {
+                return "R";
+            }
+            else if ((iCnChar >= 51446) && (iCnChar <= 52217))
+            {
+                return "S";
+            }
+            else if ((iCnChar >= 52218) && (iCnChar <= 52697))
+            {
+                return "T";
+            }
+            else if ((iCnChar >= 52698) && (iCnChar <= 52979))
+            {
+                return "W";
+            }
+            else if ((iCnChar >= 52980) && (iCnChar <= 53640))
+            {
+                return "X";
+            }
+            else if ((iCnChar >= 53689) && (iCnChar <= 54480))
+            {
+                return "Y";
+            }
+            else if ((iCnChar >= 54481) && (iCnChar <= 55289))
+            {
+                return "Z";
+            }
+            else return ("");
+        }
+
         /// <summary>
         /// 鍔犺浇UI鐣岄潰
         /// </summary>
@@ -241,7 +361,6 @@
             for (int j = 0; j < Pir.currPir.FunctioList.Count; j++)
             {
                 var control = Pir.currPir.FunctioList[j];
-
                 View.ControlView controlView = new View.ControlView();
                 controlView.Show(pirView.devfLayout, j);
                 //閬ユ帶鍣ㄥ悕绉�
@@ -267,7 +386,12 @@
                                 Pir.currPir.FunctioList.Remove(Function);
                             }
                             UIView(vv);
-
+                            if (Pir.currPir.FunctioList.Count < 10)
+                            {
+                                //10涓仴鎺у櫒灏变細闅愯棌娣诲姞鍥炬爣
+                                // middFLayout.AddChidren(addDevice);
+                                addDevice.Visible = true;
+                            }
                         }, "鍒犻櫎", "dialog", null, dialog);
 
                     }, () => { }, false);
@@ -299,10 +423,11 @@
         /// <summary>
         /// 璁惧杩涘叆涓嬩竴绾ф柟娉�
         /// </summary>
-        /// <param name="if_value"></param>
+        /// <param name="if_value">鎺т欢绱㈠紩鍊�</param>
         private void DeviceTypeViewClick(int if_value)
         {
-            var strings = GetTypeString(if_value).Split('-');
+          
+            var strings = View.Buttons.GetTypeString(if_value).Split('-');
             var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]);
             if (jobDeviceType == null)
             {
@@ -320,118 +445,9 @@
 
         }
         /// <summary>
-        /// 鑾峰彇璁惧绫诲瀷str
-        /// </summary>
-        /// <param name="index">绱㈠紩鍊�</param>
-        private string GetTypeString(int index)
-        {
-            string type = "";
-            switch (index)
-            {
-                case 1:
-                    {
-                        //绌鸿皟
-                        type = "ac-" + SPK.AcIr;
-                    }
-                    break;
-                case 2:
-                    {
-                        //鐢佃
-                        type = "tv-" + SPK.TvIr;
-                    }
-                    break;
-                case 3:
-                    {
-                        //椋庢墖
-                        // type = "fan-" + SPK.ElectricFan;
-                    }
-                    break;
-                case 4:
-                    {
-                        //鏈洪《鐩�
-                        //  type = "set_top_box-" + SPK.ElectricTV;
-                    }
-                    break;
-                case 5:
-                    {
-                        //褰辩鏈�
-                        // type = "dvd-" + SPK.ElectricTV;
-                    }
-                    break;
-                case 6:
-                    {
-                        //鎶曞奖浠�
-                        //  type = "projector-" + SPK.ElectricTV;
-                    }
-                    break;
-
-
-            }
-            return type;
-        }
-        /// <summary>
-        /// 璁剧疆鍥剧墖鍜屽娉�
-        /// </summary>
-        /// <param name="index">绱㈠紩鍊�</param>
-        /// <param name="deviceIconBtn">鍥炬爣Btn</param>
-        /// <param name="deviceNameBtn">璁惧澶囨敞Btn</param>
-        private void GetIconAndText(int index, Button deviceIconBtn, Button deviceNameBtn)
-        {
-            string iconPath = "";
-            int deviceNameIndex = 0;
-            switch (index)
-            {
-                case 1:
-                    {
-                        iconPath = "PirIcon/air.png";
-                        deviceNameIndex = StringId.kongtiao;
-                    }
-                    break;
-                case 2:
-                    {
-                        iconPath = "PirIcon/tv.png";
-                        deviceNameIndex = StringId.dianshi;
-                    }
-                    break;
-                case 3:
-                    {
-                        iconPath = "PirIcon/fan.png";
-                        deviceNameIndex = StringId.fengshan;
-                    }
-                    break;
-                case 4:
-                    {
-                        iconPath = "PirIcon/stb.png";
-                        deviceNameIndex = StringId.jidinghe;
-                    }
-                    break;
-                case 5:
-                    {
-                        iconPath = "PirIcon/dvd.png";
-                        deviceNameIndex = StringId.dvd;
-                    }
-                    break;
-                case 6:
-                    {
-                        iconPath = "PirIcon/projector.png";
-                        deviceNameIndex = StringId.touyingyi;
-                    }
-                    break;
-                case 7:
-                    {
-                        iconPath = "PirIcon/custom.png";
-                        deviceNameIndex = StringId.zidingyi;
-                    }
-                    break;
-
-            }
-            deviceIconBtn.UnSelectedImagePath = iconPath;
-            deviceNameBtn.TextID = deviceNameIndex;
-        }
-        /// <summary>
         /// 璇诲彇绾㈠璁惧绫诲瀷鍒楄〃
         /// </summary>
-        /// <param name="tag">鏍囪瘑瑕佷笉瑕佹彁绀猴紙true=鎻愮ず锛�</param>
+        /// <param name="tag">琛ㄧず瑕佷笉瑕佹彁绀洪敊璇俊鎭紙true=鎻愮ず锛�</param>
         /// <param name="action">鍥炶皟鍑芥暟</param>
         public void GetDeviceTypeList(bool tag, Action action)
         {
@@ -504,7 +520,14 @@
                 }
             }, id, "鍝佺墝鍒楄〃");
         }
-
+        /// <summary>
+        /// 绉婚櫎鐣岄潰
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            BackAction();
+            base.RemoveFromParent();
+        }
 
     }
 

--
Gitblit v1.8.0