From 08a8afe782cd499550f94f3da0ba5788e1e12971 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 02 三月 2021 17:45:45 +0800
Subject: [PATCH] 2021-3-2-1

---
 HDL-ON_Android/Assets/Language.ini                             |    6 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/TipView.cs       |  155 +++++++++++
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs                |   65 ++++
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs           |  248 +++++++++++++++++
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs             |   97 ++----
 HDL_ON/DAL/Server/NewAPI.cs                                    |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs         |    2 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs |   36 +
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs            |   70 +---
 HDL_ON/Common/R.cs                                             |    8 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs          |   35 --
 .vs/HDL_APP_Project/xs/UserPrefs.xml                           |   38 --
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs            |   69 ++++
 14 files changed, 620 insertions(+), 217 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index a8dc786..e04f6a4 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,49 +1,17 @@
 锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
   <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-001674E61438002E" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs">
-    <Files>
-      <File FileName="HDL-ON_Android/Assets/Language.ini" Line="1227" Column="1" />
-      <File FileName="HDL_ON/Common/R.cs" Line="729" Column="47" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs" Line="114" Column="47" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs" Line="167" Column="67" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs" Line="101" Column="27" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs" Line="545" Column="6" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs" Line="148" Column="49" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" Line="14" Column="21" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs" Line="226" Column="1" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs" Line="146" Column="1" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/Buttons.cs" Line="38" Column="62" />
-    </Files>
+  <MonoDevelop.Ide.Workbench>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="HDL_APP_Project" expanded="True">
             <Node name="HDL_ON" expanded="True">
-              <Node name="Common" expanded="True" />
-              <Node name="DAL" expanded="True">
-                <Node name="DriverLayer" expanded="True" />
-                <Node name="Mqtt" expanded="True" />
-              </Node>
-              <Node name="Entity" expanded="True">
-                <Node name="Function" expanded="True" />
-                <Node name="ResponseEntity" expanded="True" />
-              </Node>
               <Node name="UI" expanded="True">
-                <Node name="UI0-Public" expanded="True" />
                 <Node name="UI2" expanded="True">
-                  <Node name="3-Intelligence" expanded="True">
-                    <Node name="Automation" expanded="True" />
-                  </Node>
                   <Node name="4-PersonalCenter" expanded="True">
                     <Node name="PirDevice" expanded="True">
-                      <Node name="View" expanded="True" />
-                      <Node name="BrandList.cs" selected="True" />
+                      <Node name="AddControlComplete.cs" selected="True" />
                     </Node>
-                  </Node>
-                  <Node name="FuntionControlView" expanded="True">
-                    <Node name="AC" expanded="True" />
-                    <Node name="Light" expanded="True" />
                   </Node>
                 </Node>
               </Node>
@@ -68,7 +36,7 @@
     <String>Shared.IOS/Shared.IOS.csproj</String>
   </DisabledProjects>
   <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
-  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.4b65c4650918" />
+  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.Android_Accelerated_Oreo" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
     <BreakpointStore />
   </MonoDevelop.Ide.DebuggingService.Breakpoints>
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 6eff531..d1edc30 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -1229,8 +1229,10 @@
 6063=纭璁惧鏄惁鏈夊搷搴�
 6064=鎺у埗澶辫触
 6065=鎺у埗鎴愬姛
-
-
+6066=鐢垫簮寮�
+6067=妯″紡鍒跺喎
+6068=椋庨�熶腑椋�
+6069=娓╁害26鈩�
 
 
 7000=鏂板缓鑷姩鍖�
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 7fcd492..a5faaa6 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -733,9 +733,11 @@
         public const int shifouyouxiangying = 6063;
         public const int kongzhishibai = 6064;
         public const int kongzhichenggong = 6065;
-
-
-
+        public const int kaiguankai = 6066; 
+        public const int moshizhileng = 6067;   
+        public const int fengsuzhongfeng = 6068; 
+        public const int wendu26 = 6069;  
+        
 
 
 
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 61bb77c..fbc9263 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -494,6 +494,10 @@
         /// 閬ユ帶鍣ㄨ嚜瀛︽寜閿垹闄�
         /// </summary>
         public const string API_POST_Ir_CodeRemove = "/home-wisdom/app/device/ir/codeRemove";
+        /// <summary>
+        /// 閬ユ帶鍣ㄥ垹闄�
+        /// </summary>
+        public const string API_POST_Ir_DeviceRemove = "/home-wisdom/program/device/delete";
 
         #endregion
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 190ce80..214e0fc 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -244,7 +244,7 @@
                                         {
 
                                             string value = dic["value"];
-                                            if (value == "true")
+                                            if (value == "open")
                                             {
                                                 inputView.btnState.Text = Language.StringByID(StringId.kaiqi);
 
@@ -1278,7 +1278,7 @@
                         foreach (var dic in dicList)
                         {
                             string value = dic["value"];
-                            if (value == "true")
+                            if (value == "open")
                             {
                                 button1.Text = Language.StringByID(StringId.kaiqi);
                             }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs
index 97af281..0d28f9d 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs
@@ -154,7 +154,7 @@
                 //MainPage.BasePageView.RemoveViewByTag("Pir");
                 AddControlComplete addControlComplete = new AddControlComplete();
                 MainPage.BasePageView.AddChidren(addControlComplete);
-                addControlComplete.Show(control);
+                addControlComplete.Show(control,false);
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
             #endregion
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
index 5a50897..3ed637c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
@@ -4,13 +4,14 @@
 using Shared;
 namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
 {
-    public class AddControlComplete:FrameLayout
+    public class AddControlComplete : FrameLayout
     {
         public AddControlComplete()
         {
             Tag = "Pir";
         }
-        public void Show(Control control) {
+        public void Show(Control control, bool bool_library)
+        {
             #region 鐣岄潰甯冨眬
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
             PirDevice.View.TopView topView = new View.TopView();
@@ -18,16 +19,16 @@
             this.AddChidren(topView.FLayoutView());
             topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); };
 
-            FrameLayout fLayout = new FrameLayout 
+            FrameLayout fLayout = new FrameLayout
             {
-                Y =Application.GetRealHeight(64),
+                Y = Application.GetRealHeight(64),
                 BackgroundColor = CSS.CSS_Color.textWhiteColor,
                 Height = Application.GetRealHeight(224),
                 Width = Application.GetRealWidth(375),
             };
             this.AddChidren(fLayout);
             //
-            Button iconBtn = new Button 
+            Button iconBtn = new Button
             {
                 Y = Application.GetRealHeight(28),
                 X = Application.GetRealWidth(137),
@@ -40,7 +41,7 @@
             //娣诲姞鎴愬姛
             Button text1Btn = new Button
             {
-                Width = Application.GetRealWidth(375-32),
+                Width = Application.GetRealWidth(375 - 32),
                 Height = Application.GetRealHeight(22),
                 Y = Application.GetRealHeight(158),
                 X = Application.GetRealWidth(16),
@@ -65,7 +66,7 @@
             fLayout.AddChidren(text2Btn);
             //鎵�灞炲垎绫�
             View.PatchView fenlei = new View.PatchView();
-            fenlei.frameLayout.Y = fLayout.Bottom+ Application.GetRealHeight(8);
+            fenlei.frameLayout.Y = fLayout.Bottom + Application.GetRealHeight(8);
             this.AddChidren(fenlei.FLayoutView(false));
             fenlei.btnText1.TextID = StringId.suoshufenlei;
             fenlei.btnText2.TextID = StringId.dianqi;
@@ -87,7 +88,7 @@
             {
                 Y = quyuPatchView.frameLayout.Bottom + Application.GetRealHeight(125),
                 X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(375-32),
+                Width = Application.GetRealWidth(375 - 32),
                 Height = Application.GetRealHeight(20),
                 TextID = StringId.jixutianjia,
                 TextSize = TextSize.text14,
@@ -102,16 +103,25 @@
             #endregion
             #region  鐣岄潰鐐瑰嚮浜嬩欢
             //閬ユ帶鍣ㄥ悕绉扮偣鍑讳簨浠�
-            namePatchView.btnClick.MouseUpEventHandler += (sender,e) => { };
+            namePatchView.btnClick.MouseUpEventHandler += (sender, e) => { };
             //鎵�灞炲尯鍩熺偣鍑讳簨浠�
             quyuPatchView.btnClick.MouseUpEventHandler += (sender, e) => { };
             //缁х画娣诲姞鐐瑰嚮浜嬩欢
-            addBtn.MouseUpEventHandler += (sender, e) => {
-                Method method = new Method();
-                method.AddControl();
+            addBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                if (bool_library)
+                {
+                    this.RemoveFromParent();
+                }
+                else
+                {
+                    Method method = new Method();
+                    method.AddControl(this);
+                }
             };
             //瀹屾垚鐐瑰嚮浜嬩欢
-            saveView.btnClick.MouseUpEventHandler += (sender, e) => {
+            saveView.btnClick.MouseUpEventHandler += (sender, e) =>
+            {
                 MainPage.BasePageView.RemoveViewByTag("AddControl");
                 MainPage.BasePageView.RemoveViewByTag("Pir");
             };
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs
index d2c643c..0f62f69 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs
@@ -16,8 +16,7 @@
         /// 
         /// </summary>
         /// <param name="list">琛ㄧず璇ュ垪琛ㄥ厓绱燗-Z瀛楁瘝绛涢�夋樉绀哄嚭鏉�</param>
-        /// <param name="list6">琛ㄧず璇ュ垪琛ㄥ厓绱犳樉绀哄湪list鍓嶉潰(璇ュ垪琛ㄥ厓绱犱笉鍋欰-Z瀛楁瘝绛涢��),娌℃湁鍙互涓簂ist6=null</param>
-        public void Show(List<Brand>brandList,List<string> list, List<string> list6)
+        public void Show(List<Brand>brandList,List<string> list,string spk)
         {
 
             var frameLayout = new FrameLayout
@@ -89,12 +88,7 @@
             {
                 list = new List<string>();
             }
-            if (list6 == null)
-            {
-                list6 = new List<string>();
-            }
             var list1 = GetDateList(list);
-            list1.InsertRange(0, list6);
 
             var vv = new VerticalScrolViewLayout();
             fram.AddChidren(vv);
@@ -111,7 +105,7 @@
                         listStr.Add(s);
                     }
                 }
-                RefreshLayout(vv, brandList, listStr);
+                RefreshLayout(vv, brandList, listStr,spk);
 
             };
             #region A-Z
@@ -168,7 +162,7 @@
             }
             #endregion
 
-            RefreshLayout(vv, brandList, list1);
+            RefreshLayout(vv, brandList, list1,spk);
 
         }
         /// <summary>
@@ -176,7 +170,7 @@
         /// </summary>
         /// <param name="vv">鐖舵帶浠�</param>
         /// <param name="list">鏄剧ず鍒楄〃</param>
-        private void RefreshLayout(VerticalScrolViewLayout vv, List<Brand> brandList, List<string> list)
+        private void RefreshLayout(VerticalScrolViewLayout vv, List<Brand> brandList, List<string> list,string spk)
         {
             vv.RemoveAll();
             foreach (var str in list)
@@ -225,7 +219,7 @@
                      {
                          Matching matching = new Matching();
                          MainPage.BasePageView.AddChidren(matching);
-                         matching.Show();
+                         matching.Show(libraryList, spk);
                          MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                      });
                  
@@ -256,7 +250,7 @@
                         var library = Newtonsoft.Json.JsonConvert.DeserializeObject<Library>(str); 
                         if (library != null)
                         {
-                            if (null == libraryList.Find((c) => c.brandId == library.brandId))
+                            if (libraryList.Count<20)
                             {
                                 libraryList.Add(library);
                             }
@@ -470,21 +464,6 @@
         }
     }
 
-    public class Library
-    {
-        /// <summary>
-        /// 绾㈠鐮�
-        /// </summary>
-        public string irCode = string.Empty;
-        /// <summary>
-        /// 鍝佺墝涓婚敭Id
-        /// </summary>
-        public string brandId = string.Empty;
-        /// <summary>
-        /// 绾㈠鐮佺储寮曞簭鍙�
-        /// </summary>
-        public string irIndex = string.Empty;
-
-    }
+   
 }
 
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
index a50b719..b6bdd3b 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
@@ -1,4 +1,6 @@
 锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
 using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
 using Shared;
 namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
@@ -7,8 +9,9 @@
     {
         public Matching()
         {
+            Tag = "PirView";
         }
-        public void Show()
+        public void Show(List<Library> libraryList,string spk)
         {
             #region 鐣岄潰甯冨眬
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
@@ -79,7 +82,7 @@
                 X = Application.GetRealWidth(136),
                 Width = Application.GetRealWidth(104),
                 Height = Application.GetRealHeight(44),
-                Text = "鐢垫簮",
+                TextID=StringId.dianyuan,
                 TextSize = TextSize.text16,
                 TextColor = CSS.CSS_Color.textColor,
                 TextAlignment = TextAlignment.Center,
@@ -96,7 +99,7 @@
                 X = Application.GetRealWidth(170),
                 Width = Application.GetRealWidth(36),
                 Height = Application.GetRealHeight(17),
-                Text = "(" + "1" + "/20)",
+                Text = "(1/20)",
                 TextSize = TextSize.text12,
                 TextColor = CSS.CSS_Color.textCancelColor,
             };
@@ -137,15 +140,252 @@
             fLayout.AddChidren(succeedBtn);
             #endregion
             #region 鐐瑰嚮浜嬩欢
-            int value = 1;
+            //琛ㄧず搴撳垪琛ㄧ储寮曞��
+            int index= 1; 
+            //琛ㄧず娴嬭瘯鐮佺储寮曞��
+            int code = 1;
+            //宸�
             leftIconBtn.MouseUpEventHandler += (sender, e) =>
             {
+                if (index>1) {
+                    index--;
+                    sumBtn.Text = "(" + index.ToString() + "/20)";
+                }
+                code = 1;
+                GetBtnText(testBtn, code, spk);
             };
+            //鍙�
             rightIconBtn.MouseUpEventHandler += (sender, e) =>
             {
+                if (index < 20)
+                {
+                    index++;
+                    sumBtn.Text = "(" + index.ToString() + "/20)";
+                }
+                code = 1;
+                GetBtnText(testBtn, code, spk);
+            };
+            //娴嬭瘯Text
+            testBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                var library = libraryList[index];
+                var control = GetControl(spk, testBtn.TextID, library);
+                CodeTest(control);
+            };
+            //鎺у埗澶辫触
+            failedBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                if (index < 20)
+                {
+                    index++;
+                    sumBtn.Text = "(" + index.ToString() + "/20)";
+                }
+                code = 1;
+                GetBtnText(testBtn, code, spk);
+            };
+            //鎺у埗鎴愬姛
+            succeedBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                if (code < 3)
+                {
+                    code++;
+                }
+                GetBtnText(testBtn, code, spk);
+                if (code == 3)
+                {
+                    var library = libraryList[index];
+                    var control = GetControl(spk, testBtn.TextID, library);
+                    Method method = new Method();
+                    method.ThreadAddControl(control, this, true);
 
+                }
             };
             #endregion
         }
+
+        /// <summary>
+        /// 鑾峰彇Control瀵硅薄锛堝瓨鍌ㄥ彂閫佹暟鎹殑瀵硅薄锛�
+        /// </summary>
+        /// <param name="spk"></param>
+        /// <param name="textInt"></param>
+        /// <param name="library"></param>
+        /// <returns></returns>
+        private Control GetControl(string spk, int textInt, Library library) {
+
+            string key = "";
+            string value = "";
+            switch (spk)
+            {
+                case SPK.AcStandard:
+                    {
+                        switch (textInt)
+                        {
+                            case StringId.dianshi:
+                                {
+                                    key = "on_off";
+                                    value = "on";
+                                }
+                                break;
+                            case StringId.moshizhileng:
+                                {
+                                    key = "mode";
+                                    value = "cool";
+                                }
+                                break;
+                            case StringId.fengsuzhongfeng:
+                                {
+                                    key = "fan";
+                                    value = "medium";
+                                }
+                                break;
+                        }
+                    }
+                    break;
+                case SPK.ElectricTV:
+                    {
+                        switch (textInt)
+                        {
+                            case StringId.dianshi:
+                                {
+                                    key = "on_off";
+                                    value = "on";
+                                }
+                                break;
+                            case StringId.yinliangjia:
+                                {
+                                    key = "on_off";
+                                    value = "on";
+                                }
+                                break;
+                            case StringId.jingyin:
+                                {
+                                    key = "mute";
+                                    value = "0";
+                                }
+                                break;
+                        }
+                    }
+                    break;
+            }
+            ButtonObj buttonObj = new ButtonObj();
+            buttonObj.Key = key;
+            buttonObj.value = value;
+
+            Control control = new Control();
+            control.spk = spk;
+            control.name = spk;
+            control.group_id = library.irIndex;
+            control.type = "library";
+            control.status.Add(buttonObj);
+            string[] strings = library.irCode.Split(',');
+            for (int array = 0; array < strings.Length; array++)
+            {
+                //var intValue = Convert.ToInt32(strings[array],16);
+                control.library.Add(strings[array]);
+            }
+
+            return control;
+        }
+
+        /// <summary>
+        /// 鍙戦�佸簱鐮佹祴璇曞懡浠�
+        /// </summary>
+        /// <param name="control"></param>
+        private void CodeTest(Control control)
+        {
+
+            //鍔犺浇log
+            Loading loading = new Loading();
+            this.AddChidren(loading);
+            HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
+            loading.Start();
+            new System.Threading.Thread(() =>
+            {
+                try
+                {
+                    //鍙戦�佹寜閿垹闄わ紱
+                    responsePackNew = PirSend.CodeTest(control);
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+                        {
+
+                        }
+                        else
+                        {
+                            Method method = new Method();
+                            method.ErrorShow(responsePackNew);
+                        }
+
+                    });
+                }
+
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鏄剧ず娴嬭瘯鏂囨湰
+        /// </summary>
+        /// <param name="testBtn">鏄剧ず鎺т欢</param>
+        /// <param name="code">娴嬭瘯鐮佹枃鏈储寮曞��</param>
+        /// <param name="spk">浜戦泙涓婂畾涔塻pk</param>
+        private  void GetBtnText(Button testBtn,int code,string spk) {
+
+            int textValue = 0;
+            switch (spk)
+            {
+                case SPK.AcStandard:
+                    {
+                        switch (code)
+                        {
+                            case 1:
+                                {
+                                    textValue = StringId.dianyuan;
+                                }
+                                break;
+                            case 2:
+                                {
+                                    textValue = StringId.moshizhileng;
+                                }
+                                break;
+                            case 3:
+                                {
+                                    textValue = StringId.fengsuzhongfeng;
+                                }
+                                break;
+                        }
+                    }
+                    break;
+                case SPK.ElectricTV:
+                    {
+                        switch (code)
+                        {
+                            case 1:
+                                {
+                                    textValue = StringId.dianyuan;
+                                }
+                                break;
+                            case 2:
+                                {
+                                    textValue = StringId.yinliangjia;
+                                }
+                                break;
+                            case 3:
+                                {
+                                    textValue = StringId.jingyin;
+                                }
+                                break;
+                        }
+                    }
+                    break;
+            }
+            testBtn.TextID = textValue;
+        }
     }
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
index ce82452..f462d97 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -11,20 +11,20 @@
         /// <summary>
         /// 娣诲姞閬ユ帶鍣ㄧ殑鏂规硶
         /// </summary>
-        public void AddControl()
+        public void AddControl(FrameLayout frameLayout)
         {
             View.TipView tipView = new View.TipView();
-            tipView.InputBox("", (s, dialog) =>
+            tipView.InputBox(frameLayout,"", (name, frame) => 
             {
                 ///娓呴櫎涔嬪墠鍒楄〃鏁版嵁
                 Pir.BuottonList.Clear();
-                if (!string.IsNullOrEmpty(s))
+                if (!string.IsNullOrEmpty(name))
                 {
                     Control control = new Control();
-                    control.name = s;
+                    control.name = name;
                     control.type = "learn";
 
-                    ThreadAddControl(control, dialog);
+                    ThreadAddControl(control, frame,false);
 
 
 
@@ -36,18 +36,18 @@
         /// 鍙戦�侀仴鎺у櫒鍛戒护鏂规硶
         /// </summary>
         /// <param name="control"></param>
-        /// <param name="dialog"></param>
-        public void ThreadAddControl(Control control, Dialog dialog) {
+        /// <param name="frame"></param>
+        public void ThreadAddControl(Control control, FrameLayout frame,bool bool_library) {  
 
             DAL.Server.ResponsePackNew responsePackNew = null;
             Loading loading = new Loading();
-            dialog.AddChidren(loading);
+            frame.AddChidren(loading);
             loading.Start();
             new System.Threading.Thread(() =>
             {
                 try
                 {
-                    responsePackNew = PirSend.Add(control);
+                    responsePackNew = PirSend.Add(control, bool_library);
                 }
                 catch { }
                 finally
@@ -59,11 +59,23 @@
                         //{
                         if (!string.IsNullOrEmpty(Sid("sid"))) { }
                         ///杩欓噷锛氱洃鍚琈TTP鎺ㄩ�佷笅鏉ヤ富棰橈紝鎵嶇煡閬撴槸鍚︽坊鍔犳垚鍔�
-                        dialog.Close();//娣诲姞鎴愬姛鍏抽棴寮圭獥
-                        AddButton addButton = new AddButton();
-                        MainPage.BasePageView.AddChidren(addButton);
-                        addButton.Show(control);
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        frame.RemoveFromParent();//娣诲姞鎴愬姛鍏抽棴寮圭獥
+                        if (bool_library) {
+                            MainPage.BasePageView.RemoveViewByTag("PirView");
+                            AddControlComplete addControlComplete = new AddControlComplete();
+                            MainPage.BasePageView.AddChidren(addControlComplete);
+                            addControlComplete.Show(control, bool_library);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        }
+                        else
+                        {
+
+                           
+                            AddButton addButton = new AddButton();
+                            MainPage.BasePageView.AddChidren(addButton);
+                            addButton.Show(control);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        }
 
                         //鐩戝惉Mqtt鎺ㄩ�佷笅鏉ョ姸鎬佺爜鍋氭彁绀�
                         //View.FailView failView = new View.FailView();
@@ -82,32 +94,7 @@
             { IsBackground = true }.Start();
 
         }
-
-        public  List<DD> GetLsit(FrameLayout frameLayout, Action<ResponsePackNew> action, string id, string if_str)
-        {
-            List<DD> list = new List<DD>();
-            ResponsePackNew responsePackNew = null;
-           PirSend.GetDeviceTypesList(frameLayout, action, id, if_str);
-
-            if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
-            {
-                var jArray = JArray.Parse(responsePackNew.Data.ToString());
-                for (int a = 0; a < jArray.Count; a++)
-                {
-                    var jay = jArray[a];
-                    var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
-                    list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DD>>(str);
-                   
-
-                }
-            }
-            else
-            {
-                Method method = new Method();
-                method.ErrorShow(responsePackNew);
-            }
-            return list;
-        }
+      
         /// <summary>
         /// MQTT涓婚鎺ㄩ�佷笅鏉ョ殑鏁版嵁(閬ユ帶鍣ㄦ坊鍔�)
         /// </summary>
@@ -148,33 +135,7 @@
 
             }
         }
-        [Serializable]
-        public class DD
-        {
-            /// <summary>
-            /// 璁惧绫诲瀷涓婚敭Id
-            /// </summary>
-            public string id=string.Empty;
-            /// <summary>
-            /// 璁惧绫诲瀷(鎶曞奖浠�,椋庢墖,鏈洪《鐩�...)
-            /// </summary>
-            public string deviceType = string.Empty;
-            /// <summary>
-            ///鍝佺墝鍚嶇О
-            /// </summary>
-            public string brandName = string.Empty;
-            /// <summary>
-            /// 绾㈠鐮�
-            /// </summary>
-            public string irCode = string.Empty;
-            /// <summary>
-            /// 鍝佺墝涓婚敭Id
-            /// </summary>
-            public string brandId = string.Empty;
-            /// <summary>
-            /// 绾㈠鐮佺储寮曞簭鍙�
-            /// </summary>
-            public string irIndex = string.Empty;
-        }
+       
     }
+  
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
index 23d3c91..078249c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
@@ -10,14 +10,6 @@
         public static List<ButtonObj> BuottonList = new List<ButtonObj>();
 
     }
-    public class ButtonObj
-    {
-        public string Key = string.Empty;
-        /// <summary>
-        /// #app 鏄剧ず鐨勬枃瀛�
-        /// </summary>
-        public string value = string.Empty;
-    }
     public class Control
     {
         /// <summary>
@@ -44,5 +36,62 @@
         /// 绾㈠鐮�
         /// </summary>
         public List<string> library = new List<string>();
+        /// <summary>
+        /// 绾㈠鐮�
+        /// </summary>
+        public List<ButtonObj> status = new List<ButtonObj>();
     }
+    public class ButtonObj
+    {
+        public string Key = string.Empty;
+        /// <summary>
+        /// #app 鏄剧ず鐨勬枃瀛�
+        /// </summary>
+        public string value = string.Empty;
+    }
+    public class DeviceType
+    {
+        /// <summary>
+        /// 璁惧绫诲瀷涓婚敭Id
+        /// </summary>
+        public string id = string.Empty;
+        /// <summary>
+        /// 璁惧绫诲瀷(鎶曞奖浠�,椋庢墖,鏈洪《鐩�...)
+        /// </summary>
+        public string deviceType = string.Empty;
+    }
+    public class Brand
+    {
+        /// <summary>
+        /// 鍝佺墝涓婚敭Id
+        /// </summary>
+        public string id = string.Empty;
+        /// <summary>
+        /// 璁惧绫诲瀷涓婚敭Id
+        /// </summary>
+        public string deviceTypeId = string.Empty;
+        /// <summary>
+        /// 鍝佺墝鍚嶇О
+        /// </summary>
+        public string brandName = string.Empty;
+
+    }
+
+    public class Library
+    {
+        /// <summary>
+        /// 绾㈠鐮�
+        /// </summary>
+        public string irCode = string.Empty;
+        /// <summary>
+        /// 鍝佺墝涓婚敭Id
+        /// </summary>
+        public string brandId = string.Empty;
+        /// <summary>
+        /// 绾㈠鐮佺储寮曞簭鍙�
+        /// </summary>
+        public string irIndex = string.Empty;
+
+    }
+   
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index 501c526..8f427de 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 HDL_ON.Entity;
 using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
 using Shared;
 namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
@@ -8,7 +9,7 @@
     {
         public PirMain()
         {
-            Tag = "PirView";
+            Tag = "PirMain";
         }
         /// <summary>
         /// 涓存椂鍌ㄥ瓨璁惧绫诲瀷鍒楄〃
@@ -240,18 +241,19 @@
                 {
                     //1=绌鸿皟;2=鐢佃;3=椋庢墖;4=鏈洪《鐩�;5=DVD/EVD/VCD;6=鎶曞奖浠�;7=鑷畾涔�;
                     int if_value = int.Parse(clickBtn.Tag.ToString());
-                    var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == GetTypeString(if_value));
-                    if (jobDeviceType == null)
-                    {
-                        return;
-                    }
                     if (if_value == 7)
                     {
                         Method method = new Method();
-                        method.AddControl();
+                        method.AddControl(this);
                     }
                     else
                     {
+                        var strings = GetTypeString(if_value).Split('-');
+                        var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]);
+                        if (jobDeviceType == null)
+                        {
+                            return;
+                        }
                         GetBrandList(jobDeviceType.id, (brandList) =>
                         {
                           var brandSupportStrList= GetBrandSupport(if_value);
@@ -269,7 +271,7 @@
                             Application.RunOnMainThread(()=> {
                                 BrandList brandObj = new BrandList();
                                 MainPage.BasePageView.AddChidren(brandObj);
-                                brandObj.Show(brandList, strList, null);
+                                brandObj.Show(brandList, strList, strings[1]);
                                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                             });
                          
@@ -347,39 +349,41 @@
             {
                 case 1:
                     {
-                        type = "ac";
+                        //绌鸿皟
+                        type = "ac-"+SPK.AcStandard;
                     }
                     break;
                 case 2:
                     {
-                        type = "tv";
+                        //鐢佃
+                        type = "tv-"+SPK.ElectricTV;
                     }
                     break;
                 case 3:
                     {
-                        type = "fan";
+                        //椋庢墖
+                        type = "fan-" + SPK.ElectricFan;
                     }
                     break;
                 case 4:
                     {
-                        type = "set_top_box";
+                        //鏈洪《鐩�
+                      //  type = "set_top_box-" + SPK.ElectricTV;
                     }
                     break;
                 case 5:
                     {
-                        type = "dvd";
+                      //褰辩鏈�
+                      // type = "dvd-" + SPK.ElectricTV;
                     }
                     break;
                 case 6:
                     {
-                        type = "projector";
+                        //鎶曞奖浠�
+                      //  type = "projector-" + SPK.ElectricTV;
                     }
                     break;
-                case 7:
-                    {
-                        type = "PirIcon/custom.png";
-                    }
-                    break;
+            
 
             }
             return type;
@@ -516,31 +520,5 @@
         }
 
     }
-    class DeviceType
-    {
-        /// <summary>
-        /// 璁惧绫诲瀷涓婚敭Id
-        /// </summary>
-        public string id = string.Empty;
-        /// <summary>
-        /// 璁惧绫诲瀷(鎶曞奖浠�,椋庢墖,鏈洪《鐩�...)
-        /// </summary>
-        public string deviceType = string.Empty;
-    }
-    public class Brand
-    {
-        /// <summary>
-        /// 鍝佺墝涓婚敭Id
-        /// </summary>
-        public string id = string.Empty;
-        /// <summary>
-        /// 璁惧绫诲瀷涓婚敭Id
-        /// </summary>
-        public string deviceTypeId = string.Empty;
-        /// <summary>
-        /// 鍝佺墝鍚嶇О
-        /// </summary>
-        public string brandName = string.Empty;
-
-    }
+  
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
index 8d2b7d3..a325237 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -32,10 +32,22 @@
             }
         }
         /// <summary>
+        /// 鑾峰彇閬ユ帶鍣ㄥ垪琛�
+        /// </summary>
+        public static ResponsePackNew GetList()
+        {
+            var jObject = new JObject { { "homeId", HomeId }, { "deviceId", "0" }};
+            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_List);
+            return responsePackNew;
+        }
+        /// <summary>
         /// 閬ユ帶鍣ㄦ坊鍔�
         /// </summary>
         /// <returns></returns>
-        public static ResponsePackNew Add(Control control)
+        /// <param name="control"></param>
+        /// <param name="bool_library">(true=鐮佸簱锛宖alse=鑷鐨�)</param>
+        /// <returns></returns>
+        public static ResponsePackNew Add(Control control,bool bool_library)
         {
             var jObject = new JObject { }; 
             jObject.Add("homeId", HomeId);
@@ -43,9 +55,9 @@
             jObject.Add("name", control.name);
             jObject.Add("spk", "ir.module");
             jObject.Add("type", control.type);
-            if (control.type == "library")
+            if (bool_library)
             {
-                //jObject.Add("group_id", "123");
+                jObject.Add("group_id", "123");
                 var libraryjay = new JArray { };
                 for (int i = 0; i < control.library.Count; i++)
                 {
@@ -53,9 +65,43 @@
                 }
                 jObject.Add("library", libraryjay);
             }
+          
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_Add);
             return responsePackNew;
         }
+        /// <summary>
+        ///绾㈠鐮佸簱璇曠爜
+        /// </summary>
+        /// <returns></returns>
+        public static ResponsePackNew CodeTest(Control control)
+        {
+            var jObject = new JObject { }; 
+            jObject.Add("homeId", HomeId);
+            jObject.Add("deviceId", HomeId);
+            jObject.Add("spk", control.spk);
+            if (control.spk== Entity.SPK.AcStandard) {
+                jObject.Add("group_id", control.group_id);
+            }
+            var libraryJay = new JArray { }; 
+            for (int i = 0; i < control.library.Count; i++)
+            {
+                libraryJay.Add(control.library[i]);
+            }
+            var statusJay = new JArray { };
+            for (int i = 0; i < control.status.Count; i++)
+            {
+                var statusJob = new JObject { };
+                var job = control.status[i];
+                statusJob.Add("key", job.Key);
+                statusJob.Add("value", job.value);
+                statusJay.Add(statusJob);
+            }
+            jObject.Add("library", libraryJay);
+            jObject.Add("status", statusJay);
+            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeTest);
+            return responsePackNew;
+        }
+        /// <summary>
         /// <summary>
         /// 绾㈠鐮佸涔�
         /// </summary>
@@ -117,7 +163,20 @@
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeRemove);
             return responsePackNew;
         }
-
+        /// <summary>
+        /// 閬ユ帶鍣ㄥ垹闄�
+        /// </summary>
+        /// <returns></returns>
+        public static ResponsePackNew DeleteRemove(string deviceId)
+        {
+            var job = new JObject { };
+            job.Add("deviceId", deviceId);
+            var jArray = new JArray { };
+            jArray.Add(job);
+            var jObject = new JObject { { "homeId", HomeId }, { "deviceId", "0" }, { "devices", jArray } };
+            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_DeviceRemove);
+            return responsePackNew;
+        }
         /// <summary>
         /// 鏌ヨ绾㈠璁惧绫诲瀷鍒楄〃/鍝佺墝鍒楄〃/鍝佺墝绾㈠鐮佸簱鍒楄〃
         /// </summary>
@@ -165,8 +224,6 @@
             { IsBackground = true }.Start();
 
         }
-
-
 
         /// <summary>
         ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/TipView.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/TipView.cs
index 5d70028..b86395d 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/TipView.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/TipView.cs
@@ -171,8 +171,161 @@
 
         }
 
+        /// <summary>
+        /// 杈撳叆妗�
+        /// </summary>
+        /// <param name="confirmAction">鍥炶皟鍑芥暟</param>
+        public void InputBox(FrameLayout frameLayout,string tnputEditTxet, Action<string, FrameLayout> confirmAction, bool if_bool = true)
+        {
+            FrameLayout frame = new FrameLayout() 
+            {
+                BackgroundColor = MusicColor.PopupBackgroundColor,
+            };
+            frameLayout.AddChidren(frame);
+            FrameLayout whiteView = new FrameLayout()
+            {
+                //Gravity = Gravity.Center,
+                X = Application.GetRealWidth(53),
+                Y = Application.GetRealHeight(264),
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(201),
+                BackgroundColor = MusicColor.WhiteColor,
+                BorderColor = 0x00000000,
+                BorderWidth = 0,
+                Radius = (uint)Application.GetRealHeight(RradiusFrameLayout),
+            };
+            frame.AddChidren(whiteView);
 
-       
+            Button btnTitle = new Button()
+            {
+                Y = Application.GetRealHeight(20),
+                X = Application.GetRealWidth(35),
+                Height = Application.GetRealHeight(22),
+                Width = Application.GetRealWidth(200),
+                TextColor = MusicColor.SelectedColor,
+                TextSize = TextSize.Text16,
+                TextAlignment = TextAlignment.Center,
+                TextID = StringId.shuruyaokongqimingcheng,
+
+            };
+            whiteView.AddChidren(btnTitle);
+
+            FrameLayout editBjView = new FrameLayout()
+            {
+                // Gravity = Gravity.CenterHorizontal,
+                Y = btnTitle.Bottom + Application.GetRealHeight(16),
+                X = Application.GetRealWidth(24),
+                Width = Application.GetRealWidth(222),
+                Height = Application.GetRealHeight(40),
+                BackgroundColor = MusicColor.ViewColor,
+                BorderColor = 0x00000000,
+                BorderWidth = 0,
+                Radius = (uint)Application.GetMinRealAverage(radiusEditFrameLayout),
+            };
+            whiteView.AddChidren(editBjView);
+
+            EditText editText = new EditText()
+            {
+                X = Application.GetRealWidth(12),
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(160),
+                Height = Application.GetRealHeight(20),
+                Text = tnputEditTxet,
+                TextColor = MusicColor.TextColor,
+                TextSize = TextSize.Text14,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            editBjView.AddChidren(editText);
+
+            Button clearIconBtn = new Button
+            {
+                X = Application.GetRealWidth(194),
+                Y = Application.GetRealHeight(8),
+                Width = Application.GetRealWidth(24),
+                Height = Application.GetRealWidth(24),
+                UnSelectedImagePath = "MusicIcon/clear.png",
+            };
+            editBjView.AddChidren(clearIconBtn);
+            clearIconBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                editText.Text = "";
+            };
+
+
+            Button btnTipText = new Button
+            {
+                X = Application.GetRealWidth(24),
+                Y = editBjView.Bottom + Application.GetRealHeight(12),
+                Width = Application.GetRealWidth(211),
+                Height = Application.GetRealHeight(35),
+                Text = Language.StringByID(StringId.fengleichazhao).Replace("{\\r\\n}", "\r\n"),
+                IsMoreLines = true,
+                TextColor = MusicColor.MusicNoTxetColor,
+                TextSize = TextSize.Text12,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            whiteView.AddChidren(btnTipText);
+
+            Button btnLine = new Button()
+            {
+                Y = whiteView.Height - Application.GetRealHeight(44 + 1),
+                Height = Application.GetRealHeight(1),
+                BackgroundColor = MusicColor.LineColor,
+            };
+            whiteView.AddChidren(btnLine);
+
+            Button btnCancel = new Button()
+            {
+                Y = btnLine.Bottom,
+                Width = Application.GetRealWidth(135),
+                Height = Application.GetRealHeight(44),
+                TextAlignment = TextAlignment.Center,
+                TextColor = MusicColor.TextCancelColor,
+                TextSize = TextSize.Text16,
+                TextID = StringId.cancelMusic,
+                Gravity = Gravity.BottomLeft,
+            };
+            whiteView.AddChidren(btnCancel);
+            btnCancel.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomLeft);
+
+            Button btnConfirm = new Button()
+            {
+                X = btnCancel.Right,
+                Y = btnLine.Bottom,
+                Width = Application.GetRealWidth(135),
+                Height = Application.GetRealHeight(44),
+                TextAlignment = TextAlignment.Center,
+                TextColor = MusicColor.WhiteColor,
+                IsBold = true,
+                TextSize = TextSize.Text16,
+                TextID = StringId.confirmMusic,
+                BackgroundColor = MusicColor.SelectedColor,
+                Gravity = Gravity.BottomRight,
+            };
+            whiteView.AddChidren(btnConfirm);
+            btnConfirm.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomRight);
+            btnCancel.MouseUpEventHandler += (sender, e) =>
+            {
+                frame.RemoveFromParent();
+            };
+
+
+
+            btnConfirm.MouseUpEventHandler += (sender, e) =>
+            {
+                if (string.IsNullOrEmpty(editText.Text.Trim()))
+                {
+                    return;
+                }
+                confirmAction(editText.Text.Trim(), frame);
+                if (if_bool)
+                {
+                    frame.RemoveFromParent();
+                }
+            };
+
+        }
+
 
 
     }

--
Gitblit v1.8.0