HDL-ON_Android/Application.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL-ON_Android/HDL-ON_Android.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/MainPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation 2.zip | 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation.zip | 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HDL-ON_Android/Application.cs
@@ -149,15 +149,23 @@ HDLUtils.SetAuthoritiesName("com.hdl.onpro.fileProvider"); //Shared.Application.IsGpsEnable = true; bool isfirst = true; //获取经纬度 Shared.Application.LocationAction = (lon, lat) => { try { Shared.Application.LocationAction = null; if (isfirst) { //只触发一次 //Shared.Application.LocationAction = null; new HDL_ON.DAL.Server.HttpServerRequest().GetCityWeatherInfo(lon.ToString(), lat.ToString()); } isfirst = false; ///监听经纬度 HDL_ON.UI.UI2.Intelligence.Automation.LogicMethod.CurrLogicMethod.AppLatAndLonEvent(lon, lat); //关闭定位服务 Shared.Application.StopGPSLocationService(); //Shared.Application.StopGPSLocationService(); } catch (Exception ex) { HDL-ON_Android/HDL-ON_Android.csproj
@@ -33,7 +33,6 @@ <DefineConstants>DEBUG;TRACE;__Android__</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk> <MandroidI18n>cjk</MandroidI18n> <AndroidDexTool>d8</AndroidDexTool> <AndroidEnableSGenConcurrent>false</AndroidEnableSGenConcurrent> @@ -62,7 +61,7 @@ <AndroidEnableSGenConcurrent>false</AndroidEnableSGenConcurrent> <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime> <AndroidKeyStore>True</AndroidKeyStore> <AndroidSigningKeyStore>/Users/kaede/Desktop/HDL_APP_Project/on_plus.keystore</AndroidSigningKeyStore> <AndroidSigningKeyStore>/Users/hdl/Desktop/on_plus/on_plus.keystore</AndroidSigningKeyStore> <AndroidSigningStorePass>85521566</AndroidSigningStorePass> <AndroidSigningKeyPass>85521566</AndroidSigningKeyPass> <AndroidSigningKeyAlias>on_plus</AndroidSigningKeyAlias> HDL_ON/UI/MainPage.cs
@@ -120,7 +120,8 @@ /// </summary> public static List<string> RoomNotSupportFunctionList { get { get { if(_RoomNotSupportFunctionList == null) { _RoomNotSupportFunctionList = new List<string>(); @@ -145,9 +146,6 @@ BaseView = Application.MainPage; Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor; ///监听经纬度 HDL_ON.UI.UI2.Intelligence.Automation.LogicMethod.CurrLogicMethod.AppLatAndLonEvent(); //#region 测试 //var ddd = new UI.test.TestDialog(); //ddd.InitView(); @@ -281,7 +279,8 @@ StartX = (int)e.X; BtnBackIcon.Y = (int)e.Y + Application.GetRealHeight(50); }; backView.MouseUpEventHandler = (sender, e) => { backView.MouseUpEventHandler = (sender, e) => { MainPage.Log($"up{e.X}"); StartX = 0; BtnBackIcon.X = -Application.GetRealWidth(100); @@ -294,7 +293,8 @@ } } }; backView.MouseUpOutsideEventHandler = (sender, e) => { backView.MouseUpOutsideEventHandler = (sender, e) => { MainPage.Log($"up{e.X}"); StartX = 0; BtnBackIcon.X = -Application.GetRealWidth(100); @@ -370,7 +370,8 @@ catch (Exception ex) { MainPage.Log($"GoUserPage : {ex.Message}"); }finally } finally { Application.RunOnMainThread(() => { @@ -427,11 +428,13 @@ if (view.Tag.ToString() != "unlockpage") { view.RemoveFromParent(); }else } else { result = 2; } }else } else { view.RemoveFromParent(); } HDL_ON/UI/UI2/3-Intelligence/Automation 2.zipBinary files differ
HDL_ON/UI/UI2/3-Intelligence/Automation.zipBinary files differ
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
@@ -11,7 +11,6 @@ } public void Show() { LogicView.TopView topView = new LogicView.TopView(); this.AddChidren(topView.FLayoutView()); topView.clickBackBtn.MouseUpEventHandler += (e, sen) => @@ -159,9 +158,8 @@ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); } /// <summary> /// 地理围栏View /// 添加地理围栏 /// </summary> /// <param name="flMain">Fl main.</param> /// <param name="edit">If set to <c>true</c> edit.</param> @@ -171,9 +169,8 @@ ///通过调试宝给的经纬度<标准GPS> double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//纬度 double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//经度 //WGS84坐标转高德坐标 LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(Entity.DB_ResidenceData.Instance.CurrentRegion.longitude, Entity.DB_ResidenceData.Instance.CurrentRegion.latitude, out longitude, out latitude); int r = 500;//半径 int r = 500;//默认半径 if (edit) { for (var i = 0; i < Logic.currlogic.input.Count; i++) @@ -193,12 +190,18 @@ //离开地点 strname = Language.StringByID(StringId.likai); } //纬度 latitude = Convert.ToDouble(input.geo_fence.latitude); //经度 longitude = Convert.ToDouble(input.geo_fence.longitude); //再一次编辑地理围栏 <控件暂时不支持显示记录上一次的状态> if (!string.IsNullOrEmpty(input.geo_fence.latitude) && !string.IsNullOrEmpty(input.geo_fence.longitude)) { ////纬度 //var latitude1 = Convert.ToDouble(input.geo_fence.latitude); ////经度 //var longitude1 = Convert.ToDouble(input.geo_fence.longitude); //半径 r = int.Parse(input.geo_fence.radius); //WGS84坐标转高德坐标 //LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(longitude1, latitude1, out longitude, out latitude); } } } PublicInterface publicInterface = new PublicInterface(); @@ -232,7 +235,36 @@ ((BaseActivity)Application.Activity).SetPermission((result3) => { if (result3 == false) { return; } //调用方法,跳转页面 Location(valueStr, strname, latitude, longitude, r); }, "android.permission.READ_PHONE_STATE"); }, "android.permission.WRITE_EXTERNAL_STORAGE"); }); #endif #if __IOS__ //调用方法,跳转页面 Location(valueStr, strname, latitude, longitude, r); #endif }); } /// <summary> /// 地理围栏View /// </summary> /// <param name="valueStr">进入(arrive)或者离开(leave)</param> /// <param name="strname"></param> /// <param name="latitude">纬度</param> /// <param name="longitude">经度</param> /// <param name="r">半径(默认500米)</param> private void Location(string valueStr, string strname, double latitude, double longitude, int r) { if (r == 0) { //按道理说不会出现 r = 500; } //调用方法,跳转页面 GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => { @@ -262,48 +294,7 @@ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r); }, "android.permission.READ_PHONE_STATE"); }, "android.permission.WRITE_EXTERNAL_STORAGE"); }); #endif #if __IOS__ //调用方法,跳转页面 GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => { //高德坐标转WGS84坐标(高德地图设置GPS) double out_lng, out_lat; LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat); Input input = new Input(); input.sid = LogicMethod.CurrLogicMethod.NewSid(); input.condition_type = "8"; Dictionary<string, string> dic = new Dictionary<string, string>(); LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction"); LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "="); LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string"); LogicMethod.CurrLogicMethod.dictionary(dic, "value", "arrive"); input.condition.Add(dic); //纬度 input.geo_fence.latitude = out_lat.ToString(); //经度 input.geo_fence.longitude = out_lng.ToString(); //半径<单位米> input.geo_fence.radius = mRadius.ToString(); AddCondition(input); LogicMethod.CurrLogicMethod.RemoveAllView(); AddLogic addLogic = new AddLogic(); MainPage.BasePageView.AddChidren(addLogic); addLogic.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r); #endif }); } /// <summary> /// 添加条件 /// </summary> HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -827,16 +827,23 @@ /// <summary> /// APP上报GPS经纬度 /// </summary> public void AppLatAndLonEvent() /// <param name="lon">APP GPS经度</param> /// <param name="lat">APP GPS纬度</param> public void AppLatAndLonEvent(double lon, double lat) { Application.LocationAction += (lon, lat) => { ////GPS坐标转成高德坐标 //double out_lng, out_lat; //this.WGS84_to_GCJ02(lon, lat, out out_lng, out out_lat); //上报经纬度 Console.WriteLine($"GPS经度===={lon} \nGPS纬度===={lat}"); //Application.LocationAction += (lon, lat) => //{ // Console.WriteLine($"GPS经度===={lon}"); // Console.WriteLine($"GPS纬度===={lat}"); // ////GPS坐标转成高德坐标 // //double out_lng, out_lat; // //this.WGS84_to_GCJ02(lon, lat, out out_lng, out out_lat); // //上报经纬度 // this.AutomatedGeofenceStatusReporting(lon, lat); //}; //上报经纬度<gps 上报条件大于30秒且移动距离大于100米,上报经纬度> this.AutomatedGeofenceStatusReporting(lon, lat); }; } /// <summary> @@ -846,9 +853,18 @@ /// <param name="out_lat">APP GPS纬度</param> private void AutomatedGeofenceStatusReporting(double out_lng, double out_lat) { if (IsOthreShare) { //不是主账号直接返回 return; } List<LogicData> logicDataList = new List<LogicData>(); logicDataList.Clear(); //获取逻辑ID列表 System.Threading.Tasks.Task.Run(() => { try { //获取逻辑ID列表,目前针对所有<备注:如果只针对当前手机的话,可以直接拿缓存数据自动化列表遍历> var idStr = Send.GetLogicIdList(); if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "") { @@ -856,7 +872,8 @@ logicDataList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<LogicData>>(date); } ///有自动列表才处理 if (logicDataList.Count>0) { if (logicDataList.Count > 0) { ///遍历所有列表 for (int i = 0; i < logicDataList.Count; i++) { @@ -867,9 +884,9 @@ //经纬度为空,认为自动化没有配置地理围栏,不处理; continue; } //自动化纬度 //自动化配置输入条件纬度 double lat = Convert.ToDouble(logicDate.geo_fence.latitude); //自动化经度 //自动化配置输入条件经度 double lon = Convert.ToDouble(logicDate.geo_fence.longitude); //自动化配置输入条件<地理围栏半径><单位,公里、千米.米> int radius = int.Parse(logicDate.geo_fence.radius); @@ -878,21 +895,74 @@ //定义一个局部变量 string direction = string.Empty; //两点距离小于配置距离<既自动化配置输入条件地理围栏半径>,说明进入区域 if (r<radius) { if (r < radius) { //到达某地 direction = "arrive"; } else { } else { //离开 direction = "leave"; } bool f= Send.GeoFenceStateReport(logicDate.userLogicId,logicDate.sid, direction); //if () { } //Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); ///遍历缓存列表<不为空说明数据已经推送过,不再推送> var isPush = pushList.Find((o) => o.homeId == HomeId && o.userId == UserInfo.Current.ID && o.userLogicId == logicDate.userLogicId && o.arriveOnLeave == direction); if (isPush == null) { //推送给云端是否成功 bool push = Send.GeoFenceStateReport(logicDate.userLogicId, logicDate.sid, direction); if (push) { ///添加到推送列表 pushList.Add(new Push { homeId = HomeId, userId = UserInfo.Current.ID, userLogicId = logicDate.userLogicId, sid = logicDate.sid, arriveOnLeave = direction, }); } } } } } catch { } }); } /// <summary> /// 推送列表<这里数据已经推送过> /// </summary> private static List<Push> pushList = new List<Push>(); } public class Push { /// <summary> /// 云端唯一id /// </summary> public string userLogicId = ""; /// <summary> /// 网关id /// </summary> public string gatewayId = ""; /// <summary> /// 逻辑唯一标识 /// </summary> public string sid = ""; /// <summary> /// 住宅id /// </summary> public string homeId = ""; /// <summary> /// 到达某地 离开 /// </summary> public string arriveOnLeave = ""; /// <summary> /// 用户id /// </summary> public string userId = ""; } } HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -30,7 +30,6 @@ } return new List<ResidenceMemberInfo>(); } /// <summary> /// 获取逻辑ID列表 /// </summary> @@ -106,7 +105,8 @@ conditionArray.Add(conditionJOb); } inputTypeJOb.Add("condition",conditionArray); if (dictionary.condition_type=="8") { if (dictionary.condition_type == "8") { ///地理围栏 var geo_fencejob = new JObject(); geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); @@ -216,6 +216,7 @@ var conditionArray = new JArray { }; foreach (var dic in dictionary.condition) { var conditionJOb = new JObject { }; conditionJOb.Add("key", dic["key"]); var c1 = ""; @@ -350,8 +351,6 @@ } return responsePackNew; } /// <summary> /// 自动化地理围栏状态上报 /// </summary> HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
@@ -108,9 +108,6 @@ index = i; break; } ///找到标记索引,退出循环体 index = i; break; } } if (index != -1) HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs
@@ -29,6 +29,7 @@ VerticalScrolViewLayout functionListView; <<<<<<< HEAD Action<SecurityAlarm> refreshAction; /// <summary> /// 本地功能转换的输出列表(灯光、场景) @@ -43,6 +44,20 @@ refreshAction = action; alarm = inOutput; } ======= SecurityAlarm securityAlarm; Action<SecurityAlarm> refreshAction; List<SecurityOutput> outputList = new List<SecurityOutput>(); List<Function> allocatedList = new List<Function>(); public AddOutputPage(SecurityAlarm function, Action<SecurityAlarm> action) { bodyView = this; securityAlarm = function; refreshAction = action; } >>>>>>> WJC /// <summary> @@ -50,6 +65,62 @@ /// </summary> public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; new TopViewDiv(bodyView, Language.StringByID(StringId.AddFunction)).LoadTopView(); #region 显示的功能类型切换区域 showdFunctionTypeRow = new FrameLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(62), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(showdFunctionTypeRow); btnFloorDownIcon = new Button() { Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), X = Application.GetRealWidth(16), Y = Application.GetRealHeight(18), UnSelectedImagePath = "Public/DownIcon.png", }; showdFunctionTypeRow.AddChidren(btnFloorDownIcon); btnFloor = new Button() { X = btnFloorDownIcon.Right, Y = Application.GetRealHeight(18), Width = Application.GetRealWidth(200), Height = Application.GetMinRealAverage(16), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = DB_ResidenceData.Instance.CurFloor.roomName, }; showdFunctionTypeRow.AddChidren(btnFloor); #endregion functionListView = new VerticalScrolViewLayout() { Y = showdFunctionTypeRow.Bottom, Height = Application.GetRealHeight(530 - 100), BackgroundColor = CSS_Color.BackgroundColor, }; bodyView.AddChidren(functionListView); foreach (var function in FunctionList.List.Functions) { if (!MainPage.SceneSupportFunctionList.Contains(function.spk)) { <<<<<<< HEAD bodyView.BackgroundColor = CSS_Color.BackgroundColor; new TopViewDiv(bodyView, Language.StringByID(StringId.AddFunction)).LoadTopView(); @@ -130,9 +201,70 @@ this.RemoveFromParent(); refreshAction?.Invoke(alarm); }; ======= continue; } if (function == null) { continue; } function.roomIds.Remove(null); allocatedList.Add(function); } LoadFunctionListRow(null); var bottomView = new FrameLayout() { Y = Application.GetRealHeight(591), Height = Application.GetRealHeight(100), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(22), }; this.AddChidren(bottomView); var btnConfrim = new Button() { X = Application.GetRealWidth(78), Y = Application.GetRealHeight(12), Width = Application.GetRealWidth(220), Height = Application.GetRealWidth(44), Radius = (uint)Application.GetRealWidth(22), BackgroundColor = CSS_Color.MainColor, TextID = StringId.Confirm, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainBackgroundColor, TextAlignment = TextAlignment.Center, }; bottomView.AddChidren(btnConfrim); btnConfrim.MouseUpEventHandler = (sender, e) => { securityAlarm.output = new List<SecurityOutput>(); foreach (var output in outputList) { if (output.addCondition) { securityAlarm.output.Add(output); } } this.RemoveFromParent(); refreshAction?.Invoke(securityAlarm); }; >>>>>>> WJC } <<<<<<< HEAD /// <summary> /// 配置数据 /// </summary> @@ -164,6 +296,9 @@ RoomName = function.GetRoomListName(), }); } ======= } >>>>>>> WJC foreach (var scene in FunctionList.List.scenes) @@ -192,10 +327,72 @@ }); } // <summary> /// 显示功能Row /// </summary> void LoadFunctionListRow(List<Function> functions) { functionListView.RemoveAll(); if (functions == null) { functions = allocatedList; } foreach (var function in functions) { var output = securityAlarm.output.Find((obj) => obj.sid == function.sid); if (output == null) { output = new SecurityOutput(); output.sid = function.sid; } else { output.addCondition = true; } outputList.Add(output); FrameLayout functionRow = new FrameLayout() { Height = Application.GetRealHeight(65), BackgroundColor = CSS_Color.MainBackgroundColor, }; functionListView.AddChidren(functionRow); var btnFunctionName = new Button() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(44), Text = function.name, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, }; functionRow.AddChidren(btnFunctionName); var btnFunctionFloorName = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(24), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(41), Text = function.GetRoomListName(), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }; functionRow.AddChidren(btnFunctionFloorName); Button btnState = new Button() { Width = Application.GetRealWidth(317), TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.PromptingColor1, }; functionRow.AddChidren(btnState); <<<<<<< HEAD // <summary> /// 显示功能Row /// </summary> @@ -313,30 +510,63 @@ Height = Application.GetRealWidth(1), BackgroundColor = CSS_Color.DividingLineColor, }); ======= } } private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null) Button btnChooseIcon = new Button() { Dialog dialog = new Dialog(); X = Application.GetRealWidth(333), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "Public/ChooseIcon.png", SelectedImagePath = "Public/ChooseOnIcon.png", }; functionRow.AddChidren(btnChooseIcon); FrameLayout contentView = new FrameLayout(); dialog.AddChidren(contentView); contentView.MouseUpEventHandler = (sender, e) => btnChooseIcon.MouseUpEventHandler = (sender, e) => { dialog.Close(); btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected; if (btnChooseIcon.IsSelected) { output.addCondition = true; if (output.status.Count == 0) { if (btnChoose != null) { btnChoose.IsSelected = false; ShowStateDialog(output, btnState, btnChooseIcon); } } else { output.addCondition = false; } }; btnState.MouseUpEventHandler = (sender, e) => { ShowStateDialog(output, btnState, btnChooseIcon); }; >>>>>>> WJC if (output.addCondition) { btnChooseIcon.IsSelected = true; btnState.Text = output.StateText(); } <<<<<<< HEAD private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null) ======= functionListView.AddChidren(new Button() >>>>>>> WJC { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(1), BackgroundColor = CSS_Color.DividingLineColor, }); <<<<<<< HEAD VerticalScrolViewLayout optinView = new VerticalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, @@ -379,6 +609,67 @@ btnOpen.IsSelected = output.status[0].value.ToLower() == "on"; btnClose.IsSelected = !btnOpen.IsSelected; } ======= } } >>>>>>> WJC private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null) { Dialog dialog = new Dialog(); FrameLayout contentView = new FrameLayout(); dialog.AddChidren(contentView); contentView.MouseUpEventHandler = (sender, e) => { dialog.Close(); if (output.status.Count == 0) { if (btnChoose != null) { btnChoose.IsSelected = false; } } }; VerticalScrolViewLayout optinView = new VerticalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(515), Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(88), Radius = (uint)Application.GetRealHeight(13), BackgroundColor = CSS_Color.MainBackgroundColor, }; contentView.AddChidren(optinView); Button btnOpen = new Button() { Height = Application.GetRealHeight(44), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = StringId.On }; optinView.AddChidren(btnOpen); optinView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); Button btnClose = new Button() { Height = Application.GetRealHeight(44), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, TextID = StringId.OFF, TextSize = CSS_FontSize.SubheadingFontSize, }; optinView.AddChidren(btnClose); Button btnCancel = new Button() @@ -397,7 +688,8 @@ dialog.Show(); btnOpen.MouseUpEventHandler = (sender, e) => { btnOpen.MouseUpEventHandler = (sender, e) => { btnState.Text = btnOpen.Text; output.status = new List<SecurityOutputStatus>() { @@ -407,6 +699,7 @@ value = "on", } }; <<<<<<< HEAD var localInput = alarm.output.Find((obj) => obj.sid == output.sid ); @@ -422,11 +715,27 @@ btnState.Text = btnClose.Text; output.status = new List<SecurityOutputStatus>() { ======= output.addCondition = true; if (btnChoose != null) { btnChoose.IsSelected = true; } dialog.Close(); }; btnClose.MouseUpEventHandler = (sender, e) => { btnState.Text = btnClose.Text; output.status = new List<SecurityOutputStatus>() { >>>>>>> WJC new SecurityOutputStatus() { key = FunctionAttributeKey.OnOff, value = "off", } <<<<<<< HEAD }; var localInput = alarm.output.Find((obj) => obj.sid == output.sid @@ -451,11 +760,33 @@ }; ======= }; output.addCondition = true; if (btnChoose != null) { btnChoose.IsSelected = true; >>>>>>> WJC } dialog.Close(); }; btnCancel.MouseUpEventHandler = (sender, e) => { dialog.Close(); if (output.status.Count == 0) { if (btnChoose != null) { btnChoose.IsSelected = false; } } }; } <<<<<<< HEAD /// <summary> /// 住宅列表点击事件 /// </summary> @@ -477,6 +808,32 @@ }, nowSelectId); }; } ======= >>>>>>> WJC /// <summary> /// 住宅列表点击事件 /// </summary> void LoadDialog_ChangeFloor() { string nowSelectId = null; btnFloor.MouseUpEventHandler += (sender, e) => { var listAllFun = new List<Function>(); listAllFun.AddRange(allocatedList); //显示下拉界面 var form = new FloorRoomSelectPopupView(); form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) => { nowSelectId = selectId; //重新刷新设备列表 this.LoadFunctionListRow(listFun); }, nowSelectId); }; } }