From 91c2194fce3958afed333119c3aeed3c49ef6bcf Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 03 三月 2021 15:20:44 +0800
Subject: [PATCH] 2021-3-3-2

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs |  730 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 391 insertions(+), 339 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
index 9bbfeea..6c0c602 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
@@ -222,7 +222,7 @@
                 };
                 bottomView.AddChidren (btnSaveTime);
                 btnSaveTime.MouseUpEventHandler += (sender3, e3) => {
-                   // var chooseHour = chooseTime.Hour - timerTemp.TimeZone;
+                    // var chooseHour = chooseTime.Hour - timerTemp.TimeZone;
                     var chooseTimeString = chooseTime.Hour.ToString ().PadLeft (2, '0') + ":" + chooseTime.Minute.ToString ().PadLeft (2, '0');
                     //if (chooseTime.Hour > 12) {
                     //    chooseTimeString = (chooseTime.Hour -12) + ":" + chooseTime.Minute + " PM";
@@ -451,7 +451,7 @@
             roomContenView.AddChidren (btnRoomChoose);
 
 
-           
+
             #endregion
 
             #region Devices
@@ -517,7 +517,7 @@
                 };
                 chooseRoomView.AddChidren (roomListView);
                 //鑾峰彇鎴块棿鍒楄〃
-                var  roomList= mMthod.GetRoomList ();
+                var roomList = mMthod.GetRoomList ();
                 for (int i = 0; i < roomList.Count; i++) {
                     var room = roomList [i];
                     var btnRoomNameChoose = new Button () {
@@ -636,7 +636,7 @@
                     }
                 }
                 if (btnSaturday.IsSelected) {
-                     if (!timerTemp.whichDay.Contains (6)) {
+                    if (!timerTemp.whichDay.Contains (6)) {
                         timerTemp.whichDay.Add (6);
                     }
                 }
@@ -649,7 +649,7 @@
                     if (!timerTemp.whichDay.Contains (2)) {
                         timerTemp.whichDay.Add (2);
                     }
-                   
+
                 }
                 if (btnWednesday.IsSelected) {
                     if (!timerTemp.whichDay.Contains (3)) {
@@ -667,12 +667,14 @@
                     }
                 }
                 if (string.IsNullOrEmpty (timerTemp.id)) {
-                    timerTemp.id =Guid.NewGuid().ToString ();
+                    timerTemp.id = Guid.NewGuid ().ToString ();
                 }
 
                 DeviceDate deviceDate = new DeviceDate ();
                 deviceDate.gatewayId = SmartHome.Send.GatewayId;
                 deviceDate.homeId = SmartHome.Send.HomeId;
+
+              
                 deviceDate.actions.AddRange (selectedDeviceList);
                 timerTemp.controlData = deviceDate;
 
@@ -687,6 +689,8 @@
                             revertObj = SmartHome.Send.UpdateTimer (timerTemp);
 
                         } else {
+
+
                             revertObj = SmartHome.Send.AddTimer (timerTemp);
                         }
 
@@ -699,7 +703,9 @@
                             } else {
                                 //鎻愮ず閿欒
                                 SmartHome.Method method = new SmartHome.Method ();
-                                method.ShowGetTimerListErrorInfo (revertObj.Data.ToString ());
+                                if (revertObj.Data != null) {
+                                    method.ShowGetTimerListErrorInfo (revertObj.Data.ToString ());
+                                }
                             }
                         });
                     } catch (Exception ex) {
@@ -717,115 +723,115 @@
         /// 鍔犺浇鎴块棿璁惧鍒楄〃鐣岄潰
         /// </summary>
         /// <param name="deviceList">鎴块棿璁惧鍒楄〃</param>
-        private  void InitDeviceListView (List<Function> deviceList) 
+        private void InitDeviceListView (List<Function> deviceList)
         {
             devicesListView.RemoveAll ();
             //鎴块棿璁惧鍒楄〃
-            devicesListView.Height = Application.GetRealHeight (130 * deviceList.Count); 
+            devicesListView.Height = Application.GetRealHeight (130 * deviceList.Count);
             System.Threading.Tasks.Task.Run (() => {
                 try {
-                        Application.RunOnMainThread (() => {
-                            try {
-                                string value = "";
-                                for (int i = 0; i < deviceList.Count; i++) {
-                                    var device = deviceList [i];
-                                    var deviceRowView = new RowLayout () {
-                                        Y = Application.GetRealHeight (130 * i),
-                                        Radius = 1,
-                                        BorderColor = SkinStyle.Current.Transparent,
-                                        BorderWidth = (uint)Application.GetMinRealAverage (5),
-                                        Height = Application.GetRealHeight (110),
-                                        Tag = device,
-                                    };
-                                    devicesListView.AddChidren (deviceRowView);
+                    Application.RunOnMainThread (() => {
+                        try {
+                            string value = "";
+                            for (int i = 0; i < deviceList.Count; i++) {
+                                var device = deviceList [i];
+                                var deviceRowView = new RowLayout () {
+                                    Y = Application.GetRealHeight (130 * i),
+                                    Radius = 1,
+                                    BorderColor = SkinStyle.Current.Transparent,
+                                    BorderWidth = (uint)Application.GetMinRealAverage (5),
+                                    Height = Application.GetRealHeight (110),
+                                    Tag = device,
+                                };
+                                devicesListView.AddChidren (deviceRowView);
 
-                                    var btnChoose = new Button () {
-                                        Width = Application.GetRealWidth (60),
-                                        Height = Application.GetRealWidth (60),
-                                        X = Application.GetRealWidth (40),
-                                        Gravity = Gravity.CenterVertical,
-                                        UnSelectedImagePath = "CrabtreeAdd/Choose.png",
-                                        SelectedImagePath = "CrabtreeAdd/ChooseOn.png",
-                                        Tag = device,
-                                    };
-                                    deviceRowView.AddChidren (btnChoose);
+                                var btnChoose = new Button () {
+                                    Width = Application.GetRealWidth (60),
+                                    Height = Application.GetRealWidth (60),
+                                    X = Application.GetRealWidth (40),
+                                    Gravity = Gravity.CenterVertical,
+                                    UnSelectedImagePath = "CrabtreeAdd/Choose.png",
+                                    SelectedImagePath = "CrabtreeAdd/ChooseOn.png",
+                                    Tag = device,
+                                };
+                                deviceRowView.AddChidren (btnChoose);
 
-                                    Button btnDeviceName = new Button () {
-                                        Width = Application.GetRealWidth (342),
-                                        Height = Application.GetRealHeight (70),
-                                        Text = device.name,
-                                        TextAlignment = TextAlignment.CenterLeft,
-                                        X = btnChoose.Right + Application.GetRealWidth (10),
-                                        Y = Application.GetRealHeight (20),
-                                        SelectedTextColor = SkinStyle.Current.TextColor1,
-                                        TextColor = SkinStyle.Current.TextColor1,
-                                    };
-                                    deviceRowView.AddChidren (btnDeviceName);
-                                    Button tempSwitch = new Button {
-                                        Width = Application.GetRealWidth (90),
-                                        Height = Application.GetRealWidth (53),
-                                        X = Application.GetRealWidth (640 - 90 - 20),
-                                        Gravity = Gravity.CenterVertical,
-                                        UnSelectedImagePath = "Item/SwitchClose.png",
-                                        SelectedImagePath = "Item/SwitchOpen.png",
-                                        Tag = device,
-                                    };
-                                    deviceRowView.AddChidren (tempSwitch);
+                                Button btnDeviceName = new Button () {
+                                    Width = Application.GetRealWidth (342),
+                                    Height = Application.GetRealHeight (70),
+                                    Text = device.name,
+                                    TextAlignment = TextAlignment.CenterLeft,
+                                    X = btnChoose.Right + Application.GetRealWidth (10),
+                                    Y = Application.GetRealHeight (20),
+                                    SelectedTextColor = SkinStyle.Current.TextColor1,
+                                    TextColor = SkinStyle.Current.TextColor1,
+                                };
+                                deviceRowView.AddChidren (btnDeviceName);
+                                Button tempSwitch = new Button {
+                                    Width = Application.GetRealWidth (90),
+                                    Height = Application.GetRealWidth (53),
+                                    X = Application.GetRealWidth (640 - 90 - 20),
+                                    Gravity = Gravity.CenterVertical,
+                                    UnSelectedImagePath = "Item/SwitchClose.png",
+                                    SelectedImagePath = "Item/SwitchOpen.png",
+                                    Tag = device,
+                                };
+                                deviceRowView.AddChidren (tempSwitch);
 
-                                    switch (device.spk) {
-                                    //DeviceType.LightDALI
-                                    case SPK.LightDimming: {
-                                            #region 璋冨厜鍣ˋ
-                                            tempSwitch.RemoveFromParent ();
+                                switch (device.spk) {
+                                //DeviceType.LightDALI
+                                case SPK.LightDimming: {
+                                        #region 璋冨厜鍣ˋ
+                                        tempSwitch.RemoveFromParent ();
 
-                                            deviceRowView.Height = Application.GetRealHeight (130);
-                                            btnChoose.Y = Application.GetRealHeight (20);
-                                            btnDeviceName.Y = Application.GetRealHeight (15);
+                                        deviceRowView.Height = Application.GetRealHeight (130);
+                                        btnChoose.Y = Application.GetRealHeight (20);
+                                        btnDeviceName.Y = Application.GetRealHeight (15);
 
-                                            var btnLevel = new Button () {
-                                                X = btnChoose.X + Application.GetRealWidth (10),
-                                                Y = btnChoose.Bottom,
-                                                Width = Application.GetRealWidth (75),
-                                                Height = Application.GetRealHeight (45),
-                                                TextColor = SkinStyle.Current.TextColor1,
-                                                SelectedTextColor = SkinStyle.Current.TextColor1,
-                                                Text = "OFF",
-                                                TextAlignment = TextAlignment.CenterLeft,
-                                            };
-                                            deviceRowView.AddChidren (btnLevel);
+                                        var btnLevel = new Button () {
+                                            X = btnChoose.X + Application.GetRealWidth (10),
+                                            Y = btnChoose.Bottom,
+                                            Width = Application.GetRealWidth (75),
+                                            Height = Application.GetRealHeight (45),
+                                            TextColor = SkinStyle.Current.TextColor1,
+                                            SelectedTextColor = SkinStyle.Current.TextColor1,
+                                            Text = "OFF",
+                                            TextAlignment = TextAlignment.CenterLeft,
+                                        };
+                                        deviceRowView.AddChidren (btnLevel);
 
-                                            var levelBar = new HorizontalSeekBar () {
-                                                X = btnLevel.Right,
-                                                Y = btnLevel.Y,
-                                                Width = Application.GetRealWidth (460),
-                                                Height = Application.GetRealHeight (45),
-                                                ThumbColor = SkinStyle.Current.ThumbColor,
-                                                ProgressColor = SkinStyle.Current.SelectedColor,
-                                                ThumbRadius = 6,
-                                                Max = 100,
-                                            };
-                                            deviceRowView.AddChidren (levelBar);
+                                        var levelBar = new HorizontalSeekBar () {
+                                            X = btnLevel.Right,
+                                            Y = btnLevel.Y,
+                                            Width = Application.GetRealWidth (460),
+                                            Height = Application.GetRealHeight (45),
+                                            ThumbColor = SkinStyle.Current.ThumbColor,
+                                            ProgressColor = SkinStyle.Current.SelectedColor,
+                                            ThumbRadius = 6,
+                                            Max = 100,
+                                        };
+                                        deviceRowView.AddChidren (levelBar);
 
-                                            levelBar.ProgressChanged += (sender, e) => {
-                                                if (!btnChoose.IsSelected) {
-                                                    btnChoose.IsSelected = true;
-                                                }
-                                                if (e == 0) {
-                                                    btnLevel.Text = "OFF";
-                                                } else {
-                                                    btnLevel.Text = e.ToString () + "%";
-                                                }
-                                                value = e.ToString ();
-                                                DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
-                                            };
+                                        levelBar.ProgressChanged += (sender, e) => {
+                                            if (!btnChoose.IsSelected) {
+                                                btnChoose.IsSelected = true;
+                                            }
+                                            if (e == 0) {
+                                                btnLevel.Text = "OFF";
+                                            } else {
+                                                btnLevel.Text = e.ToString () + "%";
+                                            }
+                                            value = e.ToString ();
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+                                        };
 
-                                            btnChoose.MouseUpEventHandler += (dds, ddss) => {
-                                                btnChoose.IsSelected = !btnChoose.IsSelected;
-                                                DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected);
-                                            };
+                                        btnChoose.MouseUpEventHandler += (dds, ddss) => {
+                                            btnChoose.IsSelected = !btnChoose.IsSelected;
+                                            DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected);
+                                        };
 
-                                            if (IsEdit) {
-                                                try { 
+                                        if (IsEdit) {
+                                            try {
                                                 var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
                                                 if (dev != null) {
                                                     if (!btnChoose.IsSelected) {
@@ -833,243 +839,248 @@
                                                     }
                                                     for (int a = 0; a < dev.attributes.Count; a++) {
                                                         var fundev = dev.attributes [a];
-                                                        if (fundev.value == "0") {
-                                                            btnLevel.Text = "OFF";
-                                                        } else {
-                                                            btnLevel.Text = fundev.value + "%";
-                                                        }
-                                                        levelBar.Progress = int.Parse (fundev.value);
-                                                    }
-                                                }
-                                                } catch { }
-                                            }
-                                            #endregion
-                                        }
-                                        break;
-                                    //DeviceType.LightEnergySwitch
-                                    //DeviceType.LightEnergySocket
-                                    //DeviceType.LightSwitchSocket
-                                    case SPK.LightSwitch: {
-                                            #region 缁х數鍣�
-                                            tempSwitch.MouseUpEventHandler += (sender3, e3) => {
-                                                tempSwitch.IsSelected = !tempSwitch.IsSelected;
-
-                                                if (tempSwitch.IsSelected) {
-                                                    value = "on";
-                                                } else {
-                                                    value = "off";
-                                                }
-                                                if (!btnChoose.IsSelected) {
-                                                    btnChoose.IsSelected = true;
-                                                }
-                                                DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
-
-                                            };
-                                        
-                                            btnChoose.MouseUpEventHandler += (dds, ddss) => {
-                                                btnChoose.IsSelected = !btnChoose.IsSelected;
-                                                if (btnChoose.IsSelected) {
-                                                    value = "on";
-                                                } else {
-                                                    value = "off";
-                                                }
-                                                DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
-
-                                            };
-
-                                            if (IsEdit) {
-                                                try {
-                                                    var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
-                                                    if (dev != null) {
-                                                        if (!btnChoose.IsSelected) {
-                                                            btnChoose.IsSelected = true;
-                                                        }
-                                                        for (int a = 0; a < dev.attributes.Count; a++) {
-                                                            var fundev = dev.attributes [a];
-                                                            if (fundev.value == "on") {
-                                                                tempSwitch.IsSelected = true;
-                                                            } else {
-                                                                tempSwitch.IsSelected = false;
-                                                            }
-                                                        }
-                                                    }
-                                                } catch { }
-                                            }
-                                            #endregion
-                                        }
-                                        break;
-                                    case SPK.CurtainRoller:
-                                    case SPK.CurtainTrietex:
-                                    case SPK.CurtainSwitch:
-                                    {
-                                            #region 绐楀笜
-                                            tempSwitch.RemoveFromParent ();
-                                            var tempSwitch1 = new Button () {
-                                                Width = Application.GetRealWidth (90),
-                                                Height = Application.GetRealWidth (53),
-                                                X = Application.GetRealWidth (640 - 90 - 20),
-                                                Radius = 5,
-                                                BorderColor = SkinStyle.Current.Transparent,
-                                                BorderWidth = 1,
-                                                Gravity = Gravity.CenterVertical,
-                                                TextAlignment = TextAlignment.Center,
-                                                BackgroundColor = SkinStyle.Current.ButtonColor,
-                                                SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
-                                                Text = "CLOSE",
-                                                Tag = device,
-                                            };
-                                            deviceRowView.AddChidren (tempSwitch1);
-
-                                            tempSwitch1.MouseUpEventHandler += (sender3, e3) => {
-                                                tempSwitch1.IsSelected = !tempSwitch1.IsSelected;
-                                                if (tempSwitch1.IsSelected) {
-                                                    value = "on";
-                                                    tempSwitch1.Text = "OPEN";
-                                                    tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor;
-                                                } else {
-                                                    value = "off";
-                                                    tempSwitch1.Text = "CLOSE";
-                                                    tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor;
-                                                }
-                                                if (!btnChoose.IsSelected) {
-                                                    btnChoose.IsSelected = true;
-                                                }
-                                                DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
-
-
-                                            };
-
-                                            btnChoose.MouseUpEventHandler += (dds, ddss) => {
-                                                btnChoose.IsSelected = !btnChoose.IsSelected;
-                                                if (tempSwitch1.IsSelected) {
-                                                    value = "on";
-                                                } else {
-                                                    value = "off";
-                                                }
-                                                DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
-                                            };
-
-                                            if (IsEdit) {
-                                                try {
-                                                    var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
-                                                    if (dev != null) {
-                                                        if (!btnChoose.IsSelected) {
-                                                            btnChoose.IsSelected = true;
-                                                        }
-                                                        for (int a = 0; a < dev.attributes.Count; a++) {
-                                                            var fundev = dev.attributes [a];
-                                                            if (fundev.value == "on") {
-                                                                tempSwitch1.IsSelected = true;
-                                                                tempSwitch1.Text = "OPEN";
-                                                            } else {
-                                                                tempSwitch1.IsSelected = false;
-                                                                tempSwitch1.Text = "CLOSE";
-                                                            }
-                                                        }
-                                                    }
-                                                } catch { }
-                                            }
-                                            #endregion
-                                        }
-                                        break;
-                                    case "electrical.socket": {
-
-                                        }
-                                        break;
-                                    case SPK.ElectricFan: {
-                                            #region 椋庢墖
-                                            tempSwitch.RemoveFromParent ();
-                                            deviceRowView.Height = Application.GetRealHeight (130);
-                                            btnChoose.Y = Application.GetRealHeight (5);
-                                            btnDeviceName.Y = Application.GetRealHeight (0);
-
-                                            var btnFanLevel = new Button () {
-                                                X = btnChoose.X + Application.GetRealWidth (10),
-                                                Y = btnChoose.Bottom,
-                                                Width = Application.GetRealWidth (75),
-                                                Height = Application.GetRealHeight (45),
-                                                TextColor = SkinStyle.Current.TextColor1,
-                                                SelectedTextColor = SkinStyle.Current.TextColor1,
-                                                Text = "OFF",
-                                                TextAlignment = TextAlignment.CenterLeft,
-                                            };
-                                            deviceRowView.AddChidren (btnFanLevel);
-
-                                            var wi = Application.GetRealWidth (480 / 8);
-                                            for (int a = 0; a < 9; a++) {
-                                                var btnFanLevelTip = new Button () {
-                                                    X = btnFanLevel.Right + wi * a - Application.GetRealWidth (0),
-                                                    Y = btnFanLevel.Y - Application.GetRealHeight (5),
-                                                    Width = wi,
-                                                    Height = Application.GetRealHeight (27),
-                                                    TextAlignment = TextAlignment.TopLeft,
-                                                    Text = a.ToString (),
-                                                    TextColor = SkinStyle.Current.TextColor1,
-                                                    TextSize = 12,
-                                                };
-                                                deviceRowView.AddChidren (btnFanLevelTip);
-                                                if (a == 0) {
-                                                    btnFanLevelTip.Text = "OFF";
-                                                    btnFanLevelTip.TextSize = 11;
-                                                }
-                                            }
-
-                                            var fanLevel = new HorizontalSeekBar () {
-                                                X = btnFanLevel.Right,
-                                                Y = btnFanLevel.Y + Application.GetRealHeight (10),
-                                                Width = Application.GetRealWidth (492),
-                                                Height = Application.GetRealHeight (45),
-                                                ThumbColor = SkinStyle.Current.ThumbColor,
-                                                ProgressColor = SkinStyle.Current.SelectedColor,
-                                                ThumbRadius = Application.GetRealWidth (3),
-                                                Max = 8,
-                                                Progress = 2,
-
-                                            };
-                                            deviceRowView.AddChidren (fanLevel);
-                                            fanLevel.ProgressChanged += (sender, e) => {
-                                                value = e.ToString ();
-                                                DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
-                                            };
-
-                                            btnChoose.MouseUpEventHandler += (dds, ddss) => {
-                                                btnChoose.IsSelected = !btnChoose.IsSelected;
-                                                DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected);
-                                            };
-                                            if (IsEdit) {
-                                                try {
-                                                    var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
-                                                    if (dev != null) {
-                                                        if (!btnChoose.IsSelected) {
-                                                            btnChoose.IsSelected = true;
-                                                        }
-                                                        for (int a = 0; a < dev.attributes.Count; a++) {
-                                                            var fundev = dev.attributes [a];
+                                                        if (fundev.key == "brightness") {
                                                             if (fundev.value == "0") {
-                                                                //btnLevel.Text = "OFF";
+                                                                btnLevel.Text = "OFF";
                                                             } else {
-                                                                fanLevel.Progress = int.Parse (fundev.value);
+                                                                btnLevel.Text = fundev.value + "%";
                                                             }
-                                                           
+                                                            levelBar.Progress = int.Parse (fundev.value);
                                                         }
                                                     }
-                                                } catch { }
-                                            }
-                                            #endregion
+                                                }
+                                            } catch { }
                                         }
-                                        break;
+                                        #endregion
                                     }
+                                    break;
+                                //DeviceType.LightEnergySwitch
+                                //DeviceType.LightEnergySocket
+                                //DeviceType.LightSwitchSocket
+                                case SPK.ElectricSocket:
+                                case SPK.LightSwitch: {
+                                        #region 缁х數鍣�
+                                        tempSwitch.MouseUpEventHandler += (sender3, e3) => {
+                                            tempSwitch.IsSelected = !tempSwitch.IsSelected;
 
-                                
-                                       
-                                    
+                                            if (tempSwitch.IsSelected) {
+                                                value = "on";
+                                            } else {
+                                                value = "off";
+                                            }
+                                            if (!btnChoose.IsSelected) {
+                                                btnChoose.IsSelected = true;
+                                            }
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+
+                                        };
+
+                                        btnChoose.MouseUpEventHandler += (dds, ddss) => {
+                                            btnChoose.IsSelected = !btnChoose.IsSelected;
+                                            if (tempSwitch.IsSelected) {
+                                                value = "on";
+                                            } else {
+                                                value = "off";
+                                            }
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+
+                                        };
+
+                                        if (IsEdit) {
+                                            try {
+                                                var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+                                                if (dev != null) {
+                                                    if (!btnChoose.IsSelected) {
+                                                        btnChoose.IsSelected = true;
+                                                    }
+                                                    for (int a = 0; a < dev.attributes.Count; a++) {
+                                                        var fundev = dev.attributes [a];
+                                                        if (fundev.value == "on") {
+                                                            tempSwitch.IsSelected = true;
+                                                        } else {
+                                                            tempSwitch.IsSelected = false;
+                                                        }
+                                                    }
+                                                }
+                                            } catch { }
+                                        }
+                                        #endregion
+                                    }
+                                    break;
+                                case SPK.CurtainRoller:
+                                case SPK.CurtainTrietex:
+                                case SPK.CurtainSwitch: {
+                                        #region 绐楀笜
+                                        tempSwitch.RemoveFromParent ();
+                                        var tempSwitch1 = new Button () {
+                                            Width = Application.GetRealWidth (90),
+                                            Height = Application.GetRealWidth (53),
+                                            X = Application.GetRealWidth (640 - 90 - 20),
+                                            Radius = 5,
+                                            BorderColor = SkinStyle.Current.Transparent,
+                                            BorderWidth = 1,
+                                            Gravity = Gravity.CenterVertical,
+                                            TextAlignment = TextAlignment.Center,
+                                            BackgroundColor = SkinStyle.Current.ButtonColor,
+                                            SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
+                                            Text = "CLOSE",
+                                            Tag = device,
+                                        };
+                                        deviceRowView.AddChidren (tempSwitch1);
+
+                                        tempSwitch1.MouseUpEventHandler += (sender3, e3) => {
+                                            tempSwitch1.IsSelected = !tempSwitch1.IsSelected;
+                                            if (tempSwitch1.IsSelected) {
+                                                value = "on";
+                                                tempSwitch1.Text = "OPEN";
+                                                tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor;
+                                            } else {
+                                                value = "off";
+                                                tempSwitch1.Text = "CLOSE";
+                                                tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor;
+                                            }
+                                            if (!btnChoose.IsSelected) {
+                                                btnChoose.IsSelected = true;
+                                            }
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+
+
+                                        };
+
+                                        btnChoose.MouseUpEventHandler += (dds, ddss) => {
+                                            btnChoose.IsSelected = !btnChoose.IsSelected;
+                                            if (tempSwitch1.IsSelected) {
+                                                value = "on";
+                                            } else {
+                                                value = "off";
+                                            }
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+                                        };
+
+                                        if (IsEdit) {
+                                            try {
+                                                var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+                                                if (dev != null) {
+                                                    if (!btnChoose.IsSelected) {
+                                                        btnChoose.IsSelected = true;
+                                                    }
+                                                    for (int a = 0; a < dev.attributes.Count; a++) {
+                                                        var fundev = dev.attributes [a];
+                                                        if (fundev.value == "on") {
+                                                            tempSwitch1.IsSelected = true;
+                                                            tempSwitch1.Text = "OPEN";
+                                                        } else {
+                                                            tempSwitch1.IsSelected = false;
+                                                            tempSwitch1.Text = "CLOSE";
+                                                        }
+                                                    }
+                                                }
+                                            } catch { }
+                                        }
+                                        #endregion
+                                    }
+                                    break;
+                                case SPK.ElectricFan: {
+                                        #region 椋庢墖
+                                        tempSwitch.RemoveFromParent ();
+                                        deviceRowView.Height = Application.GetRealHeight (130);
+                                        btnChoose.Y = Application.GetRealHeight (5);
+                                        btnDeviceName.Y = Application.GetRealHeight (0);
+
+                                        var btnFanLevel = new Button () {
+                                            X = btnChoose.X + Application.GetRealWidth (10),
+                                            Y = btnChoose.Bottom,
+                                            Width = Application.GetRealWidth (75),
+                                            Height = Application.GetRealHeight (45),
+                                            TextColor = SkinStyle.Current.TextColor1,
+                                            SelectedTextColor = SkinStyle.Current.TextColor1,
+                                            Text = "OFF",
+                                            TextAlignment = TextAlignment.CenterLeft,
+                                        };
+                                        deviceRowView.AddChidren (btnFanLevel);
+
+                                        var wi = Application.GetRealWidth (480 / 8);
+                                        for (int a = 0; a < 9; a++) {
+                                            var btnFanLevelTip = new Button () {
+                                                X = btnFanLevel.Right + wi * a - Application.GetRealWidth (0),
+                                                Y = btnFanLevel.Y - Application.GetRealHeight (5),
+                                                Width = wi,
+                                                Height = Application.GetRealHeight (27),
+                                                TextAlignment = TextAlignment.TopLeft,
+                                                Text = a.ToString (),
+                                                TextColor = SkinStyle.Current.TextColor1,
+                                                TextSize = 12,
+                                            };
+                                            deviceRowView.AddChidren (btnFanLevelTip);
+                                            if (a == 0) {
+                                                btnFanLevelTip.Text = "OFF";
+                                                btnFanLevelTip.TextSize = 11;
+                                            }
+                                        }
+                                        var fanLevel = new HorizontalSeekBar () {
+                                            X = btnFanLevel.Right,
+                                            Y = btnFanLevel.Y + Application.GetRealHeight (10),
+                                            Width = Application.GetRealWidth (492),
+                                            Height = Application.GetRealHeight (45),
+                                            ThumbColor = SkinStyle.Current.ThumbColor,
+                                            ProgressColor = SkinStyle.Current.SelectedColor,
+                                            ThumbRadius = Application.GetRealWidth (3),
+                                            Max = 8,
+                                            Progress = 2,
+
+                                        };
+                                        deviceRowView.AddChidren (fanLevel);
+                                        value = "2";
+                                        fanLevel.ProgressChanged += (sender, e) => {
+                                            if (!btnChoose.IsSelected) {
+                                                btnChoose.IsSelected = true;
+                                            }
+                                            value = e.ToString ();
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+                                        };
+
+                                        btnChoose.MouseUpEventHandler += (dds, ddss) => {
+                                            btnChoose.IsSelected = !btnChoose.IsSelected;
+                                            DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+                                        };
+                                        if (IsEdit) {
+                                            try {
+                                                var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+                                                if (dev != null) {
+                                                    if (!btnChoose.IsSelected) {
+                                                        btnChoose.IsSelected = true;
+                                                    }
+                                                    for (int a = 0; a < dev.attributes.Count; a++) {
+                                                        var fundev = dev.attributes [a];
+                                                        if (fundev.key == "fan_speed_percent") {
+                                                           // if (fundev.value == "0") {
+                                                              //  btnLevel.Text = "OFF";
+                                                          //  } else {
+                                                                fanLevel.Progress = int.Parse (fundev.value);
+                                                           // }
+                                                        }
+
+                                                       
+
+                                                    }
+                                                }
+                                            } catch { }
+                                        }
+                                        #endregion
+                                    }
+                                    break;
                                 }
-                            } catch (Exception ex) {
-                                Utlis.WriteLine ("AddSchedule error : " + ex.Message);
-                            }
-                        });
 
-                    
+
+
+
+                            }
+                        } catch (Exception ex) {
+                            Utlis.WriteLine ("AddSchedule error : " + ex.Message);
+                        }
+                    });
+
+
                 } catch (Exception ex) {
                     Utlis.WriteLine (ex.Message);
                 } finally {
@@ -1085,20 +1096,24 @@
         /// <param name="function"></param>
         /// <param name="value">寮�鍏崇姸鎬佸��</param>
         /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param>
-        public  void DeviceDateFun (Function function, string value, bool isSelected)
+        public void DeviceDateFun (Function function, string value, bool isSelected)
         {
             string keyValue = "";
             switch (function.spk) {
-            case "curtain.trietex":
-            case "curtain.roller":
-            case "light.switch":
-            case "curtain.switch":
-            case "electrical.socket": {
+            case SPK.CurtainTrietex:
+            case SPK.CurtainRoller:
+            case SPK.LightSwitch:
+            case SPK.CurtainSwitch:
+            case SPK.ElectricSocket: {
                     keyValue = "on_off";
                 }
                 break;
-            case "light.dimming": {
+            case SPK.LightDimming: {
                     keyValue = "brightness";
+                }
+                break;
+            case SPK.ElectricFan: {
+                    keyValue = "fan_speed_percent";
                 }
                 break;
 
@@ -1106,7 +1121,7 @@
             Fun fun = new Fun ();
             fun.deviceId = Int64.Parse (function.deviceId);
             fun.spk = function.spk;
-            fun.attributes.Add (new Attributes { key= keyValue, value = value });
+            fun.attributes.Add (new Attributes { key = keyValue, value = value });
             fun.bus.addresses = function.bus.addresses;
             fun.bus.loopId = function.bus.loopId;
             AddDeviceList (fun, isSelected);
@@ -1116,8 +1131,45 @@
         /// </summary>
         /// <param name="fun"></param>
         /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param>
-        public  void AddDeviceList (Fun fun, bool isSelected)
+        public void AddDeviceList (Fun fun, bool isSelected)
         {
+
+            switch (fun.spk) {
+            case SPK.LightDimming: {
+                    //璋冨厜鍋氫簡涓�涓壒娈婂鐞嗭紱
+                    if (fun.attributes.Count == 1) {
+                        var dic = fun.attributes [0];
+                        if (dic.key == "brightness") {
+                            Attributes attributes = new Attributes ();
+                            attributes.key = "on_off";
+                            if (dic.value == "0") {
+                                attributes.value = "off";
+                            } else {
+                                attributes.value = "on";
+                            }
+                            fun.attributes.Add (attributes);
+                        }
+
+                    }
+                    break;
+                }
+            case SPK.ElectricFan: {
+                    if (fun.attributes.Count == 1) {
+                        var dic = fun.attributes [0];
+                        if (dic.key == "fan_speed_percent") {
+                            Attributes attributes = new Attributes ();
+                            attributes.key = "on_off";
+                            if (dic.value == "0") {
+                                attributes.value = "off";
+                            } else {
+                                attributes.value = "on";
+                            }
+                            fun.attributes.Add (attributes);
+                        }
+                    }
+                }
+                break;
+            }
             var device = selectedDeviceList.Find ((dev) => dev.deviceId == fun.deviceId);
             if (device != null) {
                 selectedDeviceList.Remove (device);
@@ -1127,6 +1179,6 @@
             }
         }
 
-      
+
     }
 }

--
Gitblit v1.8.0