From c96d62ac9c6bb1d880a9170f9dd477fcb5f76fc0 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 01 二月 2023 10:16:11 +0800
Subject: [PATCH] 备注同步功能
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs | 1191 +++++++++++++++++++---------------------------------------
1 files changed, 395 insertions(+), 796 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
index 3d5a60a..c7341bd 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
@@ -3,844 +3,219 @@
namespace Shared.SimpleControl.Phone
{
- public class AlexaDeviceListPage : FrameLayout
+ public class AlexaDeviceListPage : BasePage
{
- public AlexaDeviceListPage ()
+ ///// <summary>
+ ///// 鏆傛椂娴嬭瘯鍚庨潰鍘绘帀
+ ///// </summary>
+ //string AlexaTestURL = "https://developer.hdlcontrol.com";
+
+ /// <summary>
+ /// 褰撳墠闊崇銆佺敤鎴枫�佷綇瀹呯瓑鏁版嵁
+ /// </summary>
+ SpeakerInfo mAlexa = new SpeakerInfo ();
+ /// <summary>
+ /// 璁惧銆佸満鏅垪琛�
+ /// </summary>
+ List<TargetInfo> targetInfoList = new List<TargetInfo> ();
+
+ /////// <summary>
+ /////// 璇煶鎴块棿鏁版嵁
+ /////// </summary>
+ ////List<AlexaRoomsItem> alexaRoomsList = new List<AlexaRoomsItem> ();
+ ///// <summary>
+ ///// 璁惧鍒楄〃
+ ///// </summary>
+ //List<AlexaDeviceListItem> alexaDeviceList = new List<AlexaDeviceListItem> ();
+ ///// <summary>
+ ///// 鍦烘櫙鍒楄〃
+ ///// </summary>
+ //List<SceneListItem> alexaSceneList = new List<SceneListItem> ();
+ //AlexaRoomsItem mAlexaRoomsItem = new AlexaRoomsItem ();
+
+ VerticalScrolViewLayout bodyView;
+
+ bool IsDeviceList = true;
+
+ public AlexaDeviceListPage (SpeakerInfo speakerInfo)
{
BackgroundColor = SkinStyle.Current.MainColor;
+ mAlexa = speakerInfo;
}
- public void ShowPage ()
+ /// <summary>
+ /// 鏄剧ず椤甸潰
+ /// </summary>
+ public override void ShowPage ()
{
- #region 鏍囬
- var topView = new FrameLayout () {
- Y = Application.GetRealHeight (36),
- Height = Application.GetRealHeight (90),
- };
- AddChidren (topView);
+ #region ---TopView---
+ base.ShowPage ();
+ //this.topTitleBtn.Text = "Alexa";
- var title = new Button () {
- TextAlignment = TextAlignment.Center,
- Text = "Alexa",
- TextSize = 19,
+ //璁剧疆鏍囬涓洪煶绠卞娉�
+ if (mAlexa != null) {
+ if (string.IsNullOrEmpty (mAlexa.remark)) {
+ this.topTitleBtn.Text = mAlexa.platformName;
+ } else {
+ this.topTitleBtn.Text = mAlexa.remark;
+ }
+ }
+ //娣诲姞鎸夐挳鐐瑰嚮浜嬩欢
+ EventHandler<MouseEventArgs> addSubaccountHandler = (sender, e) => {
+ OpenAlexaSettingPage ();
+ };
+ this.topItemButton.MouseUpEventHandler += addSubaccountHandler;
+ #endregion
+
+ #region 璁惧-鍦烘櫙
+ var topView = new FrameLayout () {
+ Height = Application.GetRealWidth (110),
+ BackgroundColor = SkinStyle.Current.TitileView,
+ };
+ BaseContentView.AddChidren (topView);
+
+ var btnDevice = new Button () {
+ Width = Application.GetRealWidth (320),
+ TextSize = 16,
+ TextID = R.MyInternationalizationString.Device,
+ TextColor = SkinStyle.Current.SelectedColor
+ };
+ topView.AddChidren (btnDevice);
+ var btnScene = new Button () {
+ Width = Application.GetRealWidth (320),
+ X = btnDevice.Right,
+ TextSize = 16,
+ TextID = R.MyInternationalizationString.Scenes,
TextColor = SkinStyle.Current.TextColor1
};
- topView.AddChidren (title);
-
- Button ItemButton = new Button () {
- Width = Application.GetRealWidth (55),
- Height = Application.GetRealHeight (55),
- UnSelectedImagePath = "Item/+.png",
- SelectedImagePath = "Item/+.png",
- X = Application.GetRealWidth (640 - 80),
- Y = Application.GetRealHeight (17),
+ var btnLine = new Button () {
+ Width = 1,
+ BackgroundColor = SkinStyle.Current.White20Transparent,
+ X = btnDevice.Right,
};
- topView.AddChidren (ItemButton);
+ topView.AddChidren (btnLine);
+ btnDevice.MouseUpEventHandler += (sender, e) => {
+ btnDevice.TextColor = SkinStyle.Current.SelectedColor;
+ btnScene.TextColor = SkinStyle.Current.TextColor1;
+ if (!IsDeviceList) {
+ IsDeviceList = true;
+ InitDevcieRow (bodyView);
+ }
- var back = new Button () {
- Height = Application.GetRealHeight (90),
- Width = Application.GetRealWidth (85),
- UnSelectedImagePath = "Item/Back.png",
- SelectedImagePath = "Item/BackSelected.png",
+
};
- topView.AddChidren (back);
- back.MouseUpEventHandler += (sender, e) => {
- (Parent as PageLayout).PageIndex -= 1;
+ topView.AddChidren (btnScene);
+ btnScene.MouseUpEventHandler += (sender, e) => {
+ btnDevice.TextColor = SkinStyle.Current.TextColor1;
+ btnScene.TextColor = SkinStyle.Current.SelectedColor;
+
+ if (IsDeviceList) {
+ IsDeviceList = false;
+ InitSceneRow (bodyView);
+ }
};
#endregion
- var bodyView = new VerticalScrolViewLayout () {
+ bodyView = new VerticalScrolViewLayout () {
Y = topView.Bottom,
- Height = Application.GetRealHeight (1136 - 126),
+ Height = BaseContentView.Height - topView.Bottom,
BackgroundColor = SkinStyle.Current.ViewColor,
};
- AddChidren (bodyView);
- var alexaDeviceLista = new List<UpdateDeviceObj> ();
- var alexaSceneList = new List<SceneByRegion> ();
+ BaseContentView.AddChidren (bodyView);
- System.Threading.Tasks.Task.Factory.StartNew (() => {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Please wait...");
- });
+ ///璇锋眰鑾峰彇璁惧鍜屽満鏅垪琛�
+ GetDeviceAndSceneList ();
+ }
+
+ #region 鎺ュ彛璇锋眰鏂规硶
+ /// <summary>
+ /// 璇锋眰鑾峰彇璁惧鍜屽満鏅垪琛�
+ /// </summary>
+ void GetDeviceAndSceneList ()
+ {
+
+ System.Threading.Tasks.Task.Run (() => {
try {
- alexaDeviceLista = ReadDeviceList ();
- alexaSceneList = ReadSceneList ();
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
+ });
- if (alexaDeviceLista.Count > 0) {
+ var revertObj = HttpServerRequest.Current.GetSpeakerDeviceList (0, mAlexa.tokenId);
+
+ if (revertObj.Code == StateCode.SUCCESS) {
+ var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<TargetInfo>> (revertObj.Data.ToString ());
Application.RunOnMainThread (() => {
- InitDevcieRow (alexaDeviceLista, bodyView);
+ if (list != null && list.Count > 0) {
+ targetInfoList = list;
+ } else {
+ targetInfoList = new List<TargetInfo> ();
+ }
+ RefreshListView ();
});
- }
- if (alexaSceneList.Count > 0) {
- Application.RunOnMainThread (() => {
- InitSceneRow (alexaSceneList, bodyView);
- });
- }
- } catch (Exception ex) {
- Utlis.WriteLine (ex.Message);
+ } else {
+ //鎻愮ず閿欒
+ IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
+ }
+ } catch {
+
} finally {
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
});
}
});
-
- ItemButton.MouseUpEventHandler += (sender, e) => {
- Action action = () => {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Please wait...");
- });
- System.Threading.Tasks.Task.Run (() => {
- try {
- alexaDeviceLista = ReadDeviceList ();
- alexaSceneList = ReadSceneList ();
- Application.RunOnMainThread (() => {
- InitDevcieRow (alexaDeviceLista, bodyView);
- });
- } catch (Exception ex) {
- Utlis.WriteLine (ex.Message);
- } finally {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Hide ();
- });
- }
- });
- };
-
- Action<List<string>, List<string>> saveAction = (roomSceneFilePathList, roomDeviceFilePathList) => {
- System.Threading.Tasks.Task.Factory.StartNew (() => {
- try {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Please wait...");
- });
- foreach (var newDevicePath in roomDeviceFilePathList) {
- var common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (newDevicePath)));
- //newDeviceList.Add (new UpdateDeviceObj () {
- // DeviceName = common.Name, DeviceID = common.DeviceID, Id = 1, DeviceType = common.Type.ToString (), LoopID = common.LoopID,
- // MAC = UserConfig.Instance.GatewayMAC, RegionID = UserConfig.Instance.CurrentRegion.RegionID, SubnetID = common.SubnetID
- //});
-
-
- if (common != null) {
- var commonType = common.Type.ToString ();
- if (commonType == "CurtainModel") {
- commonType = "CurtainModule";
- } else if (commonType == "LightEnergySwitch" || commonType == "LightSwitchSocket" || commonType == "LightEnergySocket") {
- commonType = "LightSwitch";
- } else if (commonType == "ACInfrared") {
- commonType = "HVAC";
- }
- var oldDevice = alexaDeviceLista.Find ((obj) => obj.SubnetID == common.SubnetID && obj.DeviceID == common.DeviceID && obj.LoopID == common.LoopID && obj.DeviceType == commonType);
- if (oldDevice == null) {
- var isSuccess = AddDevice (common);
- if (!isSuccess) {
- //璺冲嚭寰幆
- break;
- }
- } else {
- //2020-07-21 濡傛灉宸茬粡瀛樺湪 鍖归厤璁惧澶囨敞鏄惁闇�瑕佹洿鏂�
- if (oldDevice.DeviceName != common.Name) {
- //Utlis.WriteLine ("鍚嶅瓧涓嶅尮閰嶏紝鎻愪氦鏇存柊锛�" + common.Name);
- var oldName = oldDevice.DeviceName;
- oldDevice.DeviceName = common.Name;
- var isSuccess = UpdateDevice (oldDevice);
- if (!isSuccess) {
- //杩樺師
- oldDevice.DeviceName = oldName;
- //Utlis.WriteLine ("鏇存柊澶辫触锛侊紒锛侊紒");
- } else {
- //Utlis.WriteLine ("鏇存柊鎴愬姛锛�");
- }
- } else {
- //Utlis.WriteLine ("鍚嶅瓧涓�鏍蜂笉鐢ㄦ洿鏂帮細"+ common.Name);
- }
-
- }
- }
- }
-
- var roomDeviceFilePathListNew = new List<string> ();
- foreach (var path in roomDeviceFilePathList) {
- var deviceFilePath = path;
- if (deviceFilePath.Contains ("LightEnergySocket")) {
- deviceFilePath = deviceFilePath.Replace ("LightEnergySocket", "LightSwitch");
- } else if (deviceFilePath.Contains ("LightEnergySwitch")) {
- deviceFilePath = deviceFilePath.Replace ("LightEnergySwitch", "LightSwitch");
- } else if (deviceFilePath.Contains ("LightSwitchSocket")) {
- deviceFilePath = deviceFilePath.Replace ("LightSwitchSocket", "LightSwitch");
- } else if (deviceFilePath.Contains ("ACInfrared")) {
- deviceFilePath = deviceFilePath.Replace ("ACInfrared", "HVAC");
- } else if (deviceFilePath.Contains ("CurtainModel")) {
- deviceFilePath = deviceFilePath.Replace ("CurtainModel", "CurtainModule");
- }
- roomDeviceFilePathListNew.Add (deviceFilePath);
- }
-
- foreach (var oldDevice in alexaDeviceLista) {
- var oldDevicePath = "Equipment_" + oldDevice.DeviceType + "_" + oldDevice.SubnetID + "_" + oldDevice.DeviceID + "_" + (oldDevice.LoopID.ToString ().Length < 2 ? "0" + oldDevice.LoopID.ToString () : oldDevice.LoopID.ToString ());
- if (!roomDeviceFilePathListNew.Contains (oldDevicePath)) {
- DelDevice (oldDevice.Id);
- Utlis.WriteLine ("delDevice " + oldDevice.DeviceName);
- }
- }
-
- foreach (var newScenePath in roomSceneFilePathList) {
- var tempScene = Scene.GetSceneByFilePath (newScenePath);
- if (tempScene != null) {
- var oldScene = alexaSceneList.Find ((obj) => obj.SceneName == tempScene.Name);
- if (oldScene == null) {
- int sceneDeviceCount = tempScene.DeviceFilePathList.Count;
- var uploadScene = new SceneAndDeviceList () { MAC = UserConfig.Instance.GatewayMAC, RegionID = UserConfig.Instance.CurrentRegion.Id, SceneName = tempScene.Name };
-
- byte [] replyBytes = null;
- if (!tempScene.busScene) {
- foreach (var deviceFilePath in tempScene.DeviceFilePathList) {
- var common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (common.Type == DeviceType.FanModule) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<FanModule> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "FanModule", LoopId = device.LoopID,
- DataString = device.WindSpeed.ToString ()
- });
- }
- } else if (common.Type == DeviceType.LightDimming) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LightDimming> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "LightDimming", LoopId = device.LoopID,
- DataString = device.CurrentBrightness.ToString ()
- });
- }
- } else if (common.Type == DeviceType.LightDALI) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LightDALI> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "LightDimming", LoopId = device.LoopID,
- DataString = device.CurrentBrightness.ToString ()
- });
- }
- } else if (common.Type == DeviceType.LightRGB) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LightLogic> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetLogicLoopColor, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "LightRGB", LoopId = device.LoopID,
- DataString = device.CurrentBrightness + "," + device.RStatus + "," + device.GStatus + "," + device.BStatus
- });
- }
- } else if (common.Type == DeviceType.LightSwitch || common.Type == DeviceType.LightSwitchSocket) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "LightSwitch", LoopId = device.LoopID,
- DataString = device.CurrentBrightness.ToString ()
- });
- }
- } else if (common.Type == DeviceType.LightEnergySocket) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "LightSwitch", LoopId = device.LoopID,
- DataString = device.CurrentBrightness.ToString ()
- });
- }
- } else if (common.Type == DeviceType.LightEnergySwitch) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "LightSwitch", LoopId = device.LoopID,
- DataString = device.CurrentBrightness.ToString ()
- });
- }
- } else if (common.Type == DeviceType.CurtainModel) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<CurtainModel> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "CurtainModule", LoopId = device.LoopID,
- DataString = ((byte)device.Status).ToString ()
- });
- }
- } else if (common.Type == DeviceType.CurtainRoller) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<CurtainRoller> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "CurtainRoller", LoopId = device.LoopID,
- DataString = ((byte)device.CurtainProress + 3).ToString ()
- });
- }
- } else if (common.Type == DeviceType.CurtainTrietex) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<CurtainTrietex> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "CurtainRoller", LoopId = device.LoopID,
- DataString = ((byte)device.CurtainProress + 3).ToString ()
- });
- }
- } else if (common.Type == DeviceType.HVAC || common.Type == DeviceType.ACInfrared) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<HVAC> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetACMode, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "HVAC", LoopId = device.LoopID,
- DataString = device.Power + "," + device.TemperatureMode + "," + device.SetMode + "," + device.SetFanSpeed + "," + device.SetTemperature
- });
- }
- } else if (common.Type == DeviceType.FoolHeat) {
- //var device = Newtonsoft.Json.JsonConvert.DeserializeObject<FoolHeat> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- //if (device == null) {
- // continue;
- //}
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetFoolHeat, device.SubnetID, device.DeviceID,
- //new byte [] { device.LoopID, (byte)(device.Status + device.WorkingMode * 16), 0,device.WorkingMode,device.NormalTemperature, device.DayTemperature,
- //device.NightTemperature, device.AwayTemperature , 0, 0 });
-
- } else if (common.Type == DeviceType.FanModule) {
- //var device = Newtonsoft.Json.JsonConvert.DeserializeObject<FanModule> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- //if (device == null) {
- // continue;
- //}
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, device.SubnetID, device.DeviceID, new byte [] { 1, (byte)device.WindSpeed });
- } else if (common.Type == DeviceType.LogicModule) {
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicModule> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetScene, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "SceneControl", LoopId = device.AreaID,
- DataString = device.AreaSceneID.ToString ()
- });
- }
- } else if (common.Type == DeviceType.UniversalDevice) {//2020-09-02 鏂板閫氱敤寮�鍏�
- var device = Newtonsoft.Json.JsonConvert.DeserializeObject<UniversalDevice> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
- if (device != null) {
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetCommonSwitch, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
- DeviceName = device.Name, DeviceType = "UniversalDevice", LoopId = device.LoopID,
- DataString = device.SendBytes[1].ToString(),
- });
- }
- }
-
- }
- } else {
- foreach (var common in tempScene.GlobalSceneDeviceList) {
- switch (common.obj1) {
- case 0://0 鏃犳晥 Invalid
- break;
- case 85://0x55 鍦烘櫙 Scene ||0x0002
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetScene, SubnetId = common.SubnetID, DeviceId = common.DeviceID,
- DeviceName = common.Name, DeviceType = "SceneControl", LoopId = common.obj2,
- DataString = common.obj3.ToString ()
- });
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetScene, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 86://0x56 搴忓垪 Sequence ||0x001A
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetSeries, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 88://0x58 閫氱敤寮�鍏� Universal Switch ||0xe01c
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetCommonSwitch, SubnetId = common.SubnetID, DeviceId = common.DeviceID,
- DeviceName = common.Name, DeviceType = "UVSwitch", LoopId = common.obj2,
- DataString = common.obj3.ToString ()
- });
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetCommonSwitch, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 89: //0x59 鍗曡矾璋冭妭 Single Channel Lighting Control 0031
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = common.SubnetID, DeviceId = common.DeviceID,
- DeviceName = common.Name, DeviceType = "LightDimming", LoopId = common.obj2,
- DataString = common.obj3.ToString ()
- });
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 92://0x5c 绐楀笜寮�鍏� Curtain Switch e3e0
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.UpdataCurtainModelStutas, SubnetId = common.SubnetID, DeviceId = common.DeviceID,
- DeviceName = common.Name, DeviceType = "CurtainModel", LoopId = common.obj2,
- DataString = common.obj3.ToString ()
- });
- //replyBytes = Control.ControlBytesSendHasReturn (Command.UpdataCurtainModelStutas, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 94://0x5e GPRS鎺у埗 GPRS Control E3D4
- replyBytes = Control.ControlBytesSendHasReturn (Command.GPRSControl, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 95://0x5f 闈㈡澘鎺у埗 Panel Control e3d8
- //replyBytes = Control.ControlBytesSendHasReturn (Command.InstructionPanelKey, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 100://0x64 骞挎挱鍦烘櫙 Broadcast Scene ||0x0002
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetScene, SubnetId = common.SubnetID, DeviceId = common.DeviceID,
- DeviceName = common.Name, DeviceType = "SceneControl", LoopId = common.obj2,
- DataString = common.obj3.ToString ()
- });
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetScene, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- case 101://0x65 骞挎挱鍥炶矾 Broadcast Channel 0031
- uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
- Command = (int)Command.SetSingleLight, SubnetId = common.SubnetID, DeviceId = common.DeviceID,
- DeviceName = common.Name, DeviceType = "LightDimming", LoopId = common.obj2,
- DataString = common.obj3.ToString ()
- });
- //replyBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- break;
- //case 102://0x66 娑堥槻妯″潡 Security Module 011E
- // replyBytes = Control.ControlBytesSendHasReturn (Command.SecurityModule, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- // break;
- //case 103://0x67 闊充箰鎾斁 Music Control 0218
- //replyBytes = Control.ControlBytesSendHasReturn (Command.MusicControl, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- //break;
- //104 閫氱敤鎺у埗 Universal Control
- //105 杩炴帴椤� Link Page
- //107 RGB璋冭妭 RGB Control
- //108 绾㈠鎺у埗 Infrared Control
- //case 109://109 閫昏緫鐏皟鑺� Logic Light Adjust || 0xE45E
- // replyBytes = Control.ControlBytesSendHasReturn (Command.LogicLightAdjust, common.SubnetID, common.DeviceID, new byte [] { common.obj2, common.obj3, common.obj4, common.obj5 });
- // break;
- //}
- //110 閫昏緫鍦烘櫙 Logic Scene
- //112 LCD & LED浼戠湢 LCD & LED Sleep
- //113 鏈嶅姟鍣ㄦ帶鍒� Server control
- }
- }
- }
-
- var isSuccess = AddScene (uploadScene);
- if (!isSuccess) {
- //璺冲嚭寰幆
- break;
- }
- }
- }
-
- }
-
-
- alexaDeviceLista = ReadDeviceList ();
- Application.RunOnMainThread (() => {
- InitDevcieRow (alexaDeviceLista, bodyView);
- });
- alexaSceneList = ReadSceneList ();
- Application.RunOnMainThread (() => {
- InitSceneRow (alexaSceneList, bodyView);
- });
-
- } catch (Exception ex) {
- Utlis.WriteLine (ex.Message);
- } finally {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Hide ();
- });
- }
- });
- };
-
- System.Threading.Tasks.Task.Factory.StartNew (() => {
- try {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Please wait...");
- });
- var tempRoom = new Room ();
- foreach (var device in alexaDeviceLista) {//鐗规畩澶勭悊鏈嶅姟鍣ㄤ笌鏈湴璁惧绫诲瀷涓嶄竴鏍风殑璁惧
- var deviceTypeSaveString = device.DeviceType;
- if (deviceTypeSaveString == "CurtainModel") {
- deviceTypeSaveString = "CurtainModule";
- } else if (deviceTypeSaveString == "LightEnergySwitch") {
- deviceTypeSaveString = "LightSwitch";
- } else if (deviceTypeSaveString == "LightEnergySocket") {
- deviceTypeSaveString = "LightSwitch";
- } else if (deviceTypeSaveString == "LightSwitchSocket") {
- deviceTypeSaveString = "LightSwitch";
- } else if (deviceTypeSaveString == "LightLogic") {
- deviceTypeSaveString = "LightRGB";
- }else if (deviceTypeSaveString == "ACInfrared") {
- deviceTypeSaveString = "HVAC";
- }
-
- var devicePath = "Equipment_" + deviceTypeSaveString + "_" + device.SubnetID + "_" + device.DeviceID + "_" + (device.LoopID.ToString ().Length < 2 ? "0" + device.LoopID.ToString () : device.LoopID.ToString ());
- tempRoom.DeviceFilePathList.Add (devicePath);
- }
- foreach (var scene in alexaSceneList) {
- tempRoom.SceneFilePathList.Add (scene.SceneName);
- }
- Application.RunOnMainThread (() => {
- var userDeviceListPage = new AlexaSettingPage (tempRoom);
- userDeviceListPage.Show ();
- userDeviceListPage.ShowPage (action, saveAction);
- });
- } catch (Exception ex) {
- Utlis.WriteLine (ex.Message);
- } finally {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Hide ();
- });
- }
- });
- };
- }
-
- #region 鍏充簬璁惧鐨勬柟娉�
- /// <summary>
- /// 璇诲彇Alexa璁惧鍒楄〃
- /// </summary>
- public List<UpdateDeviceObj> ReadDeviceList ()
- {
- var deviceList = new List<UpdateDeviceObj> ();
- var requestObj = new GetDeviceListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
- var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson);
- if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
- deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString ());
- } else {
- //2020-06-29 寮圭獥鎻愮ず閿欒
- ShowErrorInfo (revertObj.StateCode);
-
- }
- return deviceList;
}
/// <summary>
- /// 娣诲姞璁惧
+ /// 娣诲姞鎴栬�呮洿鏂拌澶囧拰鍦烘櫙璁惧鍒楄〃
/// </summary>
- public bool AddDevice (Common device)
+ bool UpdateSpeakerDeviceList (List<TargetInfo> mList)
{
- var uploadDevice = new AlexaDeviceObj () {
- RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = UserConfig.Instance.GatewayMAC.Replace (".", ""),
- DeviceName = device.Name, DeviceID = device.DeviceID, SubnetID = device.SubnetID, LoopID = device.LoopID, DeviceType = device.Type.ToString ()
+ var updateSpeakerDeviceListObj = new UpdateSpeakerDeviceListObj () {
+ homeId = mAlexa.homeId,
+ tokenId = mAlexa.tokenId,
+ targetInfos = mList
};
- if (device.Type.ToString () == "CurtainModel") {
- uploadDevice.DeviceType = "CurtainModule";
- } else if (device.Type.ToString () == "LightEnergySwitch" || device.Type.ToString () == "LightSwitchSocket" || device.Type.ToString () =="LightEnergySocket") {
- uploadDevice.DeviceType = "LightSwitch";
- } else if (device.Type.ToString () == "ACInfrared") {
- uploadDevice.DeviceType = "HVAC";
- }
- //var requestObj = new UploadDevicesObj () { Device = uploadDevice };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (uploadDevice);
- var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson);
- if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- return true;
- }else if (revertObj.StateCode == "Exist") {
- Application.RunOnMainThread (() => {
- MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + device.Name + " )");
- });
+ var revertObj = HttpServerRequest.Current.UpdateSpeakerDeviceList (updateSpeakerDeviceListObj);
+ if (revertObj.Code == StateCode.SUCCESS) {
return true;
} else {
- //2020-06-29 寮瑰嚭鎻愮ず閿欒
- ShowUploadDevicesInfo (revertObj.StateCode);
+ //鐧诲綍澶辫触
+ IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
}
return false;
}
- /// <summary>
- /// 涓婁紶璁惧 閿欒鎻愮ず
- /// </summary>
- /// <param name="stateCodeStr"></param>
- void ShowUploadDevicesInfo (string stateCodeStr,bool bUpload = true)
- {
- string mes = "";
- if (stateCodeStr == "NoRecord") {
- //浣忓畢鏈粦瀹氱綉鍏筹紒
- mes = ErrorCode.HomeNoRecord;
- } else if (stateCodeStr == "NoExist") {
- //浣忓畢涓嶅瓨鍦紒
- mes = ErrorCode.HomeNoExist;
- } else if (stateCodeStr == "Exist") {
- //璁惧鍚嶇О宸插瓨鍦�
- mes = ErrorCode.NameExist;
- } else if (stateCodeStr == ErrorCode.NetworkError) {
- mes = ErrorCode.NetworkError;
- } else {
- mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
-
- }
- if (!string.IsNullOrEmpty (mes)) {
- Application.RunOnMainThread (() => {
- if (bUpload) {
- MainPage.AddTip (ErrorCode.AddFailed + " " + mes);
- } else {
- MainPage.AddTip ("Update failed! " + mes);
- }
-
- //new Alert ("", ErrorCode.AddFailed + " " + mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- });
- }
-
- }
-
- /// <summary>
- /// 閿欒鎻愰啋
- /// </summary>
- /// <param name="stateCodeStr"></param>
- void ShowErrorInfo (string stateCodeStr)
- {
- string mes = "";
- if (stateCodeStr == ErrorCode.NetworkError) {
- mes = ErrorCode.NetworkError;
- } else {
- mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
-
- }
- if (!string.IsNullOrEmpty (mes)) {
- Application.RunOnMainThread (() => {
- MainPage.AddTip (ErrorCode.OperationFailed + " " + mes);
- });
- }
-
- }
-
- /// <summary>
- /// 鍒锋柊璁惧鍚嶅瓧
- /// </summary>
- public bool UpdateDevice (UpdateDeviceObj mUpdateDeviceObj)
- {
- var mUpdateAlexaDeviceObj = new UpdateAlexaDeviceObj () {
- Id = mUpdateDeviceObj.Id,
- DeviceType = mUpdateDeviceObj.DeviceType,
- SubnetID = mUpdateDeviceObj.SubnetID,
- DeviceID = mUpdateDeviceObj.DeviceID,
- LoopID = mUpdateDeviceObj.LoopID,
- DeviceName = mUpdateDeviceObj.DeviceName,
- MAC = mUpdateDeviceObj.MAC,
- RegionID = UserConfig.Instance.CurrentRegion.Id,
- };
-
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateAlexaDeviceObj);
- var revertObj = MainPage.RequestHttps (API.UpdateDevice, requestJson);
- if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
- return true;
- } else if (revertObj.StateCode == "Exist") {
- Application.RunOnMainThread (() => {
- MainPage.AddTip ("Update failed!" + " " + ErrorCode.NameExist + " ( " + mUpdateDeviceObj.DeviceName + " )");
- });
- return true;
- } else {
- //2020-06-29 寮瑰嚭鎻愮ず閿欒
- ShowUploadDevicesInfo (revertObj.StateCode, false);
- }
- return false;
- }
-
- /// <summary>
- /// 鍒犻櫎璁惧
- /// </summary>
- public bool DelDevice(string commonId)
- {
- var requestObj = new DelDeviceObj () { Id = commonId };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
- var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson);
- if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- return true;
- } else {
- //2020-06-29 寮圭獥鎻愮ず閿欒
- ShowErrorInfo (revertObj.StateCode);
- }
- return false;
- }
#endregion
- #region 鍏充簬鍦烘櫙鐨勬柟娉�
+
+ #region 鍔犺浇View
/// <summary>
- /// 璇诲彇Alexa鍦烘櫙鍒楄〃
+ /// 鍒锋柊鍒楄〃View
/// </summary>
- public List<SceneByRegion> ReadSceneList ()
+ void RefreshListView ()
{
- var sceneList = new List<SceneByRegion> ();
- var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
- var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson);
- if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SceneByRegion>> (revertObj.ResponseData.ToString ());
+ //褰撳墠閫夋嫨鐨勬槸璁惧
+ if (IsDeviceList) {
+ InitDevcieRow (bodyView);
} else {
- //2020-06-29 寮圭獥鎻愮ず閿欒
- ShowErrorInfo (revertObj.StateCode);
- }
- return sceneList;
- }
-
- /// <summary>
- /// 娣诲姞鍦烘櫙
- /// </summary>
- public bool AddScene (SceneAndDeviceList sceneMark)
- {
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (sceneMark);
- var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson);
- if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- //var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString };
- //var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj);
- //var revertAddDeviceObj = MainPage.RequestHttps ("BindDeviceToSceneItem", requestAddDeviceJson);
- //if (revertAddDeviceObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- return true;
- //}
- } else if (revertObj.StateCode == "Exist") {
- Application.RunOnMainThread (() => {
- MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + sceneMark.SceneName + " )");
- });
- return true;
- } else {
- //2020-06-29 寮瑰嚭鎻愮ず閿欒
- ShowUploadDevicesInfo (revertObj.StateCode);
- }
-
- return false;
- }
-
- /// <summary>
- /// 涓婁紶鍦烘櫙璁惧鎺у埗鏁版嵁
- /// </summary>
- //public bool AddDeviceDateToScene (int sceneId,string command,string dataString)
- //{
- // var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString };
- // var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj);
- // var revertAddDeviceObj = MainPage.RequestHttps ("BindDeviceToSceneItem", requestAddDeviceJson);
- // if (revertAddDeviceObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- // return true;
- // }
- // return false;
- //}
-
- /// <summary>
- /// 鍒犻櫎鍦烘櫙
- /// </summary>
- public bool DelScene (string sceneId)
- {
- var requestObj = new DeleteSceneObj () { Id = sceneId };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
- var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson);
- if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
- return true;
- } else {
- //2020-06-29 寮圭獥鎻愮ず閿欒
- ShowErrorInfo (revertObj.StateCode);
- }
- return false;
- }
- #endregion
-
- /// <summary>
- ///
- /// </summary>
- /// <param name="bodyView"></param>
- /// <param name="isScene"></param>
- void AddTopTitleView (VerticalScrolViewLayout bodyView, bool isScene = false) {
- var chooseTypeView = new RowLayout () {
- Height = Application.GetRealHeight (80),
- BackgroundColor = SkinStyle.Current.TitileView,
- };
- bodyView.AddChidren (chooseTypeView);
- Button btnEquipmentIcon = new Button () {
- Width = Application.GetRealHeight (65),
- Height = Application.GetRealHeight (65),
- UnSelectedImagePath = "Item/LogicModule.png",
- X = Application.GetRealWidth (30),
- Gravity = Gravity.CenterVertical,
- };
- chooseTypeView.AddChidren (btnEquipmentIcon);
-
- Button btnEquipmentType = new Button () {
- Width = Application.GetRealHeight (460),
- X = btnEquipmentIcon.Right,
- TextAlignment = TextAlignment.CenterLeft,
- Text = Language.StringByID (R.MyInternationalizationString.Device),
- TextColor = SkinStyle.Current.TextColor1,
- SelectedTextColor = SkinStyle.Current.DialogTextColor
- };
- chooseTypeView.AddChidren (btnEquipmentType);
-
- if (isScene) {
- btnEquipmentIcon.UnSelectedImagePath = "Scene/Scene.png";
- btnEquipmentType.Text = Language.StringByID (R.MyInternationalizationString.Scenes);
+ InitSceneRow (bodyView);
}
}
/// <summary>
- /// 娣诲姞璁惧鐣岄潰
+ /// 娣诲姞璁惧RowView
/// </summary>
- public void InitDevcieRow (List<UpdateDeviceObj> list, VerticalScrolViewLayout bodyView)
+ public void InitDevcieRow (VerticalScrolViewLayout bodyView)
{
bodyView.RemoveAll ();
- if (list.Count > 0) {
- //娣诲姞鏍囬
- AddTopTitleView (bodyView);
- }
+ if (targetInfoList == null) return;
- foreach (var device in list) {
- var rowView = new RowLayout () {
- Height = Application.GetRealHeight (110),
- };
- bodyView.AddChidren (rowView);
- var btn = new Button () {
- X = Application.GetRealWidth(60),
- Width = Application.GetRealWidth (640 - 60),
- Text = device.DeviceName,
- TextAlignment = TextAlignment.CenterLeft,
- TextColor = SkinStyle.Current.TextColor1,
- };
- rowView.AddChidren (btn);
+ foreach (var device in targetInfoList) {
+ //杩囨护鍦烘櫙鏁版嵁
+ if (device.isDevice == false) continue;
- var btnDel = new Button () {
- Text = "Delete",
- BackgroundColor = SkinStyle.Current.DelColor,
- };
- rowView.AddRightView (btnDel);
-
- btnDel.MouseUpEventHandler += (sender, e) => {
- var alert = new Alert ("", "Do you want to delete device?", "No", "Yes");
- alert.Show ();
- alert.ResultEventHandler += (s, dd) => {
- if (dd) {
- //if (DelDevice (device.Id)) {
- // rowView.RemoveFromParent ();
- // list.Remove (device);
- //}
-
- System.Threading.Tasks.Task.Run (() => {
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
- });
- try {
- var result = DelDevice (device.Id);
- Application.RunOnMainThread (() => {
- if (result) {
- rowView.RemoveFromParent ();
- list.Remove (device);
- }
- });
-
- } catch { } finally {
-
- Application.RunOnMainThread (() => {
- MainPage.Loading.Hide ();
- });
- }
- });
- }
- };
- };
- }
- }
-
- /// <summary>
- /// 娣诲姞鍦烘櫙鐣岄潰
- /// </summary>
- public void InitSceneRow (List<SceneByRegion> list, VerticalScrolViewLayout bodyView)
- {
- if (list.Count > 0) {
- //娣诲姞鏍囬
- AddTopTitleView (bodyView, true);
- }
-
- foreach (var scene in list) {
var rowView = new RowLayout () {
Height = Application.GetRealHeight (110),
};
@@ -848,45 +223,44 @@
var btn = new Button () {
X = Application.GetRealWidth (60),
Width = Application.GetRealWidth (640 - 60),
- Text = scene.SceneName,
+ Text = device.targetName,
TextAlignment = TextAlignment.CenterLeft,
TextColor = SkinStyle.Current.TextColor1,
};
rowView.AddChidren (btn);
- btn.MouseUpEventHandler += (dd,ff) => {
- //var alexaSceneSettingPage = new AlecaSceneEditPage ();
- //UserMiddle.SettingPageView.AddChidren (alexaSceneSettingPage);
- //alexaSceneSettingPage.ShowScene (scene);
- //UserMiddle.SettingPageView.PageIndex = 2;
- };
var btnDel = new Button () {
- Text = "Delete",
+ TextID = R.MyInternationalizationString.Delete,
BackgroundColor = SkinStyle.Current.DelColor,
};
rowView.AddRightView (btnDel);
btnDel.MouseUpEventHandler += (sender, e) => {
- var alert = new Alert ("", "Do you want to delete scene?", "No", "Yes");
+ Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
alert.Show ();
alert.ResultEventHandler += (s, dd) => {
if (dd) {
- //if (DelScene (scene.SceneId)) {
- // rowView.RemoveFromParent ();
- // list.Remove (scene);
- //}
System.Threading.Tasks.Task.Run (() => {
Application.RunOnMainThread (() => {
MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
});
try {
- var result = DelScene (scene.SceneId);
+ var newList = new List<TargetInfo> (targetInfoList);
+ newList.Remove (device);
+
+ bool result = UpdateSpeakerDeviceList (newList);
+
Application.RunOnMainThread (() => {
if (result) {
rowView.RemoveFromParent ();
- list.Remove (scene);
+ targetInfoList.Remove (device);
+ } else {
+ new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.DeleteFailed),
+ Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+
}
+
});
} catch { } finally {
@@ -896,11 +270,236 @@
});
}
});
+
+ }
+ };
+ };
+ }
+ }
+
+
+ /// <summary>
+ /// 娣诲姞鍦烘櫙鐣岄潰
+ /// </summary>
+ public void InitSceneRow (VerticalScrolViewLayout bodyView)
+ {
+ bodyView.RemoveAll ();
+
+ if (targetInfoList == null) return;
+
+ foreach (var scene in targetInfoList) {
+
+ if (scene.isDevice) continue;
+
+ var rowView = new RowLayout () {
+ Height = Application.GetRealHeight (110),
+ };
+ bodyView.AddChidren (rowView);
+ var btn = new Button () {
+ X = Application.GetRealWidth (60),
+ Width = Application.GetRealWidth (640 - 60),
+ Text = scene.targetName,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextColor = SkinStyle.Current.TextColor1,
+ };
+ rowView.AddChidren (btn);
+ btn.MouseUpEventHandler += (dd, ff) => {
+ //var alexaSceneSettingPage = new AlecaSceneEditPage ();
+ //UserMiddle.SettingPageView.AddChidren (alexaSceneSettingPage);
+ //alexaSceneSettingPage.ShowScene (scene);
+ //UserMiddle.SettingPageView.PageIndex = 2;
+ };
+
+ var btnDel = new Button () {
+ //Text = "Delete",
+ TextID = R.MyInternationalizationString.Delete,
+ BackgroundColor = SkinStyle.Current.DelColor,
+ };
+ rowView.AddRightView (btnDel);
+
+ btnDel.MouseUpEventHandler += (sender, e) => {
+ Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.SureDelete), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
+ alert.Show ();
+ alert.ResultEventHandler += (s, dd) => {
+ if (dd) {
+ System.Threading.Tasks.Task.Run (() => {
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
+ });
+ try {
+ var newList = new List<TargetInfo> (targetInfoList);
+ newList.Remove (scene);
+ bool result = UpdateSpeakerDeviceList (newList);
+ //var result = true;
+ Application.RunOnMainThread (() => {
+ if (result) {
+ rowView.RemoveFromParent ();
+ targetInfoList.Remove (scene);
+ } else {
+ new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.DeleteFailed),
+ Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+
+ }
+
+ });
+
+ } catch { } finally {
+
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Hide ();
+ });
+ }
+ });
+
+
}
};
};
}
}
+ #endregion
+
+
+ #region 娣诲姞璁惧鍜屽満鏅鐞嗘柟娉�
+
+ ///// <summary>
+ ///// 鐢熸垚璁惧鐩爣鏁版嵁
+ ///// </summary>
+ ///// <param name="device"></param>
+ ///// <param name="path"></param>
+ ///// <returns></returns>
+ //AlexaDeviceListItem GetAlexaDeviceListItem (Common device, string path)
+ //{
+ // var mAlexaDeviceTyp = HDLCommon.Current.GetAlexaDeviceType (device.Type);
+ // var deviceControl = new Obj_Buspro_DeviceControl () {
+ // SubnetID = device.SubnetID,
+ // DeviceID = device.DeviceID,
+ // LoopID = device.LoopID,
+ // GatewayID = UserConfig.Instance.MacMark,
+ // DevicePath = device.SavePath,
+ // };
+ // var mAlexaDeviceItem = new AlexaDeviceListItem () {
+ // DeviceName = device.Name,
+ // NicksName = device.Name,
+ // DeviceType = (int)mAlexaDeviceTyp,
+ // ControlObj = deviceControl,
+ // };
+ // return mAlexaDeviceItem;
+ //}
+
+ ///// <summary>
+ ///// 娣诲姞鎴栬�呯紪杈� 璁惧鍜屽満鏅垪琛�
+ ///// 鍚屾椂鍒锋柊鍒楄〃
+ ///// </summary>
+ //void AddAlexaDeviceAndSceneWithRefresh (List<AlexaDeviceListItem> mDeviceList, List<SceneListItem> mSceneList)
+ //{
+ // if (AddAlexaDeviceAndSceneWithOneRoom (mDeviceList, mSceneList)) {
+ // //缂栬緫鎴愬姛锛岄噸鏂板埛鏂拌幏鍙�
+ // GetDeviceAndSceneList ();
+ // }
+ //}
+
+ ///// <summary>
+ ///// 娣诲姞鎴栬�呯紪杈� 璁惧鍜屽満鏅垪琛�
+ ///// </summary>
+ ///// <param name="mDeviceList"></param>
+ ///// <param name="mSceneList"></param>
+ ///// <returns></returns>
+ //bool AddAlexaDeviceAndSceneWithOneRoom (List<TargetInfo> mList)
+ //{
+ // //鎻愪氦鏇存柊璁惧鏁版嵁
+ // var mAlexaRooms = new AlexaRoomsItem () {
+ // RoomName = UserConfig.Instance.CurrentRegion.homeName,
+ // LayerName = UserConfig.Instance.CurrentRegion.homeName,
+ // DeviceList = mDeviceList,
+ // SceneList = mSceneList
+ // };
+ // var AlexaRoomsList = new List<AlexaRoomsItem> ();
+ // AlexaRoomsList.Add (mAlexaRooms);
+ // return AddDevicesScene (AlexaRoomsList);
+ //}
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="lsit"></param>
+ void AddDevicesSceneList (List<TargetInfo> lsit)
+ {
+ System.Threading.Tasks.Task.Run (() => {
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
+ });
+ try {
+
+ bool result = UpdateSpeakerDeviceList (lsit);
+ //var result = true;
+ Application.RunOnMainThread (() => {
+ if (result) {
+ GetDeviceAndSceneList ();
+ }
+ });
+
+ } catch { } finally {
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Hide ();
+ });
+ }
+ });
+ }
+
+ /// <summary>
+ /// 鎵撳紑鍦烘櫙鎴栬�呰澶囨坊鍔犻〉闈�
+ /// </summary>
+ void OpenAlexaSettingPage ()
+ {
+ Action<List<TargetInfo>> saveAction = (lsit) => {
+ AddDevicesSceneList (lsit);
+ };
+
+ System.Threading.Tasks.Task.Factory.StartNew (() => {
+ try {
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
+ });
+ var tempRoom = new Room ();
+ //if (IsDeviceList) {
+ // foreach (var device in alexaDeviceList) {
+ // tempRoom.DeviceFilePathList.Add (device.ControlObj.DevicePath);
+ // }
+ //} else {
+ // foreach (var scene in alexaSceneList) {
+ // tempRoom.SceneFilePathList.Add (scene.SceneName);
+ // }
+ //}
+ Application.RunOnMainThread (() => {
+ if (IsDeviceList) {
+ var userDeviceListPage = new AlexaSettingDevicePage (targetInfoList);
+ userDeviceListPage.Show ();
+ userDeviceListPage.ShowPage (saveAction);
+ } else {
+ var mAlexaSettingScenePage = new AlexaSettingScenePage (targetInfoList);
+ mAlexaSettingScenePage.Show ();
+ mAlexaSettingScenePage.ShowPage (saveAction);
+
+ }
+
+
+ });
+ } catch (Exception ex) {
+ Shared.Utlis.WriteLine (ex.Message);
+ } finally {
+ Application.RunOnMainThread (() => {
+ MainPage.Loading.Hide ();
+ });
+ }
+ });
+ }
+
+
+
+
+ #endregion
+
}
}
--
Gitblit v1.8.0