| | |
| | | Tag = "PirMain"; |
| | | } |
| | | /// <summary> |
| | | /// 回调 |
| | | /// </summary> |
| | | public Action BackAction; |
| | | /// <summary> |
| | | /// 临时储存设备类型列表 |
| | | /// </summary> |
| | | List<DeviceType> DeviceTypeList = new List<DeviceType>(); |
| | | public void Show(Entity.Function function) |
| | | public void Show() |
| | | { |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.hongwaiyaokong; |
| | | topView.topIconBtn.Visible = true; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { |
| | | BackAction(); |
| | | this.RemoveFromParent(); }; |
| | | |
| | | FrameLayout middFLayout = new FrameLayout(); |
| | | middFLayout.Y = Application.GetRealHeight(64); |
| | | middFLayout.Height = Application.GetRealHeight(667 - 64); |
| | | this.AddChidren(middFLayout); |
| | | View.MainView mainView = new View.MainView(); |
| | | mainView.Show(middFLayout); |
| | | FrameLayout deviceListFLayout = new FrameLayout(); |
| | | deviceListFLayout.Y = mainView.pirDeviceFLayout.Bottom + Application.GetRealHeight(12); |
| | | deviceListFLayout.X = Application.GetRealWidth(16); |
| | | deviceListFLayout.Width = Application.GetRealWidth(343); |
| | | deviceListFLayout.Height = Application.GetRealHeight(328); |
| | | deviceListFLayout.BackgroundColor = CSS.CSS_Color.view; |
| | | deviceListFLayout.Radius = (uint)Application.GetRealHeight(12); |
| | | middFLayout.AddChidren(deviceListFLayout); |
| | | ///添加遥控器 |
| | | Button text3Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(11), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(100), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = StringId.tianjiayaokongqi, |
| | | IsBold = true, |
| | | }; |
| | | deviceListFLayout.AddChidren(text3Btn); |
| | | ///红外宝名称 |
| | | Button deviceNameBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(13), |
| | | X = Application.GetRealWidth(161), |
| | | Width = Application.GetRealWidth(150), |
| | | Height = Application.GetRealHeight(17), |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | Text = "mini智能遥控器", |
| | | }; |
| | | deviceListFLayout.AddChidren(deviceNameBtn); |
| | | |
| | | //下拉图标 |
| | | var dropdownIconBtn = new Button |
| | | VerticalRefreshLayout vv = new VerticalRefreshLayout(); |
| | | middFLayout.AddChidren(vv); |
| | | //加号图标 |
| | | Button addDevice = new Button |
| | | { |
| | | Y = Application.GetRealHeight(13), |
| | | X = Application.GetRealWidth(343 - 8 - 16), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | UnSelectedImagePath = "PirIcon/dropdown.png", |
| | | Y = Application.GetRealHeight(480), |
| | | X = Application.GetRealWidth(293), |
| | | Width = Application.GetRealWidth(82), |
| | | Height = Application.GetRealWidth(84), |
| | | UnSelectedImagePath = "PirIcon/add.png", |
| | | }; |
| | | deviceListFLayout.AddChidren(dropdownIconBtn); |
| | | #endregion |
| | | |
| | | if (Pir.pirDeviceList.Count != 0) |
| | | if (Pir.currPir.FunctioList.Count < 10) |
| | | { |
| | | |
| | | //if (function != null) |
| | | //{ |
| | | // Pir pir = new Pir(); |
| | | // pir.name = function.name; |
| | | // pir.deviceId = function.deviceId; |
| | | // pir.sid = function.sid; |
| | | // Pir.currPir = pir; |
| | | //} |
| | | //else |
| | | //{ |
| | | // Pir.currPir = Pir.pirDeviceList[0]; |
| | | //} |
| | | //默认第一个红外宝 |
| | | Pir.currPir = Pir.pirDeviceList[0]; |
| | | int sum = 0; |
| | | for (int i = 0; i < Pir.pirDeviceList.Count; i++) |
| | | { |
| | | //查找 |
| | | sum += Pir.pirDeviceList[i].FunctioList.Count; |
| | | } |
| | | deviceNameBtn.Text = Pir.pirDeviceList[0].name; |
| | | mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge); |
| | | mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge); |
| | | //10个遥控器就会隐藏添加图标 |
| | | middFLayout.AddChidren(addDevice); |
| | | } |
| | | |
| | | ///设备管理的点击事件 |
| | | mainView.clickBtn.MouseUpEventHandler += (sender, e) => |
| | | vv.BeginHeaderRefreshingAction += () => |
| | | { |
| | | ////关闭刷新View; |
| | | vv.EndHeaderRefreshing(); |
| | | |
| | | Method.GetControlList(this, () => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //刷新界面 |
| | | UIView(vv); |
| | | }); |
| | | }, Pir.currPir); |
| | | |
| | | }; |
| | | UIView(vv); |
| | | |
| | | topView.clickSetBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | |
| | | DeviceSet deviceSet = new DeviceSet(); |
| | | MainPage.BasePageView.AddChidren(deviceSet); |
| | | deviceSet.Show(() => |
| | | SetPir setPir = new SetPir(); |
| | | MainPage.BasePageView.AddChidren(setPir); |
| | | setPir.Show(() => |
| | | { |
| | | if (Pir.currPir != null) |
| | | { |
| | | deviceNameBtn.Text = Pir.currPir.name; |
| | | mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge); |
| | | } |
| | | int sum = 0; |
| | | for (int i = 0; i < Pir.pirDeviceList.Count; i++) |
| | | { |
| | | sum += Pir.pirDeviceList[i].FunctioList.Count; |
| | | } |
| | | mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge); |
| | | |
| | | |
| | | BackAction(); |
| | | ////刷新界面 |
| | | UIView(vv); |
| | | }); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | ///红外名称的点击事件 |
| | | deviceNameBtn.MouseUpEventHandler += (sender, e) => |
| | | addDevice.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | View.HeigthChangeView heigthChangeView = new View.HeigthChangeView(); |
| | | heigthChangeView.Show(this, Pir.pirDeviceList, (pirJson) => |
| | | FrameLayout frame = new FrameLayout |
| | | { |
| | | deviceNameBtn.Text = pirJson.name; |
| | | Pir.currPir = pirJson; |
| | | }); |
| | | }; |
| | | |
| | | int line = 0; |
| | | for (int i = 1, j = 0; i <= 7; i++, j++) |
| | | { |
| | | var currpirdeviceFLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealWidth(80), |
| | | X = Application.GetRealWidth(26 + (80 + 25) * j), |
| | | Y = Application.GetRealHeight(52 + (80 + 12) * line), |
| | | |
| | | BackgroundColor = CSS.CSS_Color.viewTrans60lucence, |
| | | }; |
| | | deviceListFLayout.AddChidren(currpirdeviceFLayout); |
| | | var deviceIconBtn = new Button |
| | | this.AddChidren(frame); |
| | | FrameLayout controlFl = new FrameLayout(); |
| | | controlFl.Y = Application.GetRealHeight(319); |
| | | controlFl.X = Application.GetRealWidth(16); |
| | | controlFl.Width = Application.GetRealWidth(343); |
| | | controlFl.Height = Application.GetRealHeight(328); |
| | | controlFl.BackgroundColor = CSS.CSS_Color.view; |
| | | controlFl.Radius = (uint)Application.GetRealHeight(12); |
| | | frame.AddChidren(controlFl); |
| | | ///添加遥控器 |
| | | Button text3Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(8), |
| | | X = Application.GetRealWidth(20), |
| | | Width = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(40), |
| | | UnSelectedImagePath = "PirIcon/Infraredtreasure.png", |
| | | }; |
| | | currpirdeviceFLayout.AddChidren(deviceIconBtn); |
| | | var iconNameBtn = new Button |
| | | { |
| | | Y = deviceIconBtn.Bottom + Application.GetRealHeight(8), |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealHeight(17), |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.TextualColor, |
| | | Y = Application.GetRealHeight(12), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(343 - 16 * 2), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextID = StringId.tianjiayaokongqi, |
| | | IsBold = true, |
| | | }; |
| | | currpirdeviceFLayout.AddChidren(iconNameBtn); |
| | | var clickBtn = new Button { Tag = i }; |
| | | currpirdeviceFLayout.AddChidren(clickBtn); |
| | | if (i % 3 == 0) |
| | | { |
| | | //满一行重置j=0值; |
| | | j = -1; |
| | | line += 1; |
| | | } |
| | | GetIconAndText(i, deviceIconBtn, iconNameBtn); |
| | | clickBtn.MouseUpEventHandler += (sender, e) => |
| | | controlFl.AddChidren(text3Btn); |
| | | frame.MouseUpEventHandler += (sender1, e1) => |
| | | { |
| | | |
| | | //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; |
| | | int if_value = int.Parse(clickBtn.Tag.ToString()); |
| | | if (if_value == 7) |
| | | frame.RemoveFromParent(); |
| | | }; |
| | | int line = 0; |
| | | for (int i = 1, j = 0; i <= 7; i++, j++) |
| | | { |
| | | var currpirdeviceFLayout = new FrameLayout |
| | | { |
| | | Method method = new Method(); |
| | | method.AddControl(this, (control) => |
| | | { |
| | | AddButton addButton = new AddButton(); |
| | | MainPage.BasePageView.AddChidren(addButton); |
| | | addButton.Show(control); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }); |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealWidth(80), |
| | | X = Application.GetRealWidth(26 + (80 + 25) * j), |
| | | Y = Application.GetRealHeight(52 + (80 + 12) * line), |
| | | |
| | | }; |
| | | controlFl.AddChidren(currpirdeviceFLayout); |
| | | var deviceIconBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(8), |
| | | X = Application.GetRealWidth(20), |
| | | Width = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(40), |
| | | UnSelectedImagePath = "PirIcon/Infraredtreasure.png", |
| | | }; |
| | | currpirdeviceFLayout.AddChidren(deviceIconBtn); |
| | | var iconNameBtn = new Button |
| | | { |
| | | Y = deviceIconBtn.Bottom + Application.GetRealHeight(8), |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealHeight(17), |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.TextualColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | currpirdeviceFLayout.AddChidren(iconNameBtn); |
| | | var clickBtn = new Button { Tag = i }; |
| | | currpirdeviceFLayout.AddChidren(clickBtn); |
| | | if (i % 3 == 0) |
| | | { |
| | | //满一行重置j=0值; |
| | | j = -1; |
| | | line += 1; |
| | | } |
| | | else |
| | | GetIconAndText(i, deviceIconBtn, iconNameBtn); |
| | | clickBtn.MouseUpEventHandler += (sender2, e2) => |
| | | { |
| | | if (DeviceTypeList.Count == 0) |
| | | |
| | | //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; |
| | | int if_value = int.Parse(clickBtn.Tag.ToString()); |
| | | if (if_value == 7) |
| | | { |
| | | GetDeviceTypeList(true, () => |
| | | { |
| | | DeviceTypeViewClick(if_value); |
| | | |
| | | }); |
| | | Method method = new Method(); |
| | | method.AddControl(this, (control) => |
| | | { |
| | | //成功后移除; |
| | | frame.RemoveFromParent(); |
| | | AddButton addButton = new AddButton(); |
| | | MainPage.BasePageView.AddChidren(addButton); |
| | | addButton.Show(control); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | DeviceTypeViewClick(if_value); |
| | | //进来都要移除; |
| | | frame.RemoveFromParent(); |
| | | if (DeviceTypeList.Count == 0) |
| | | { |
| | | GetDeviceTypeList(true, () => |
| | | { |
| | | DeviceTypeViewClick(if_value); |
| | | |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | DeviceTypeViewClick(if_value); |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | }; |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 加载UI界面 |
| | | /// </summary> |
| | | /// <param name="vv">上下滑控件</param> |
| | | private void UIView(VerticalRefreshLayout vv) |
| | | { |
| | | vv.RemoveAll(); |
| | | #region 红外宝图标 版本号 名称 状态 |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(375), |
| | | Height = Application.GetRealHeight(12 + 92 + (50 * Pir.currPir.FunctioList.Count)), |
| | | }; |
| | | vv.AddChidren(fLayout); |
| | | View.PirView pirView = new View.PirView(); |
| | | //红外宝名称 |
| | | pirView.deviceNameBtn.Text = Pir.currPir.name; |
| | | //红外宝当前有多少个遥控器 |
| | | pirView.geBtn.Text = Pir.currPir.FunctioList.Count.ToString(); |
| | | //红外宝是否在线-离线 |
| | | if (Pir.currPir.online) |
| | | { |
| | | pirView.stateIconBtn.IsSelected = true; |
| | | pirView.stateTextBtn.IsSelected = true; |
| | | pirView.stateTextBtn.TextID = StringId.zaixian; |
| | | } |
| | | else |
| | | { |
| | | pirView.stateIconBtn.IsSelected = false; |
| | | pirView.stateTextBtn.IsSelected = false; |
| | | pirView.stateTextBtn.TextID = StringId.lixian; |
| | | } |
| | | //标记红外宝 |
| | | pirView.clickBtn.Tag = Pir.currPir; |
| | | //加载界面 |
| | | pirView.Show(Pir.currPir.FunctioList.Count, fLayout); |
| | | //最后一个后面增加间隔背景 |
| | | vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) }); |
| | | #endregion |
| | | |
| | | for (int j = 0; j < Pir.currPir.FunctioList.Count; j++) |
| | | { |
| | | var control = Pir.currPir.FunctioList[j]; |
| | | |
| | | View.ControlView controlView = new View.ControlView(); |
| | | controlView.Show(pirView.devfLayout, j); |
| | | //遥控器名称 |
| | | controlView.nameBtn.Text = control.name; |
| | | //遥控器存放区域 |
| | | controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(control); |
| | | //标记遥控器 |
| | | controlView.delBtn.Tag = control; |
| | | //删除点击事件 |
| | | controlView.delBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var Function = controlView.delBtn.Tag as Entity.Function; |
| | | string text = Language.StringByID(StringId.shanchushebei) + Function.name + "?"; |
| | | TipPopView tipPopView = new TipPopView(); |
| | | tipPopView.TipBox(StringId.tip, text, (dialog) => |
| | | { |
| | | Method.ThreadSend(new Control { deviceId=control.deviceId}, (responsePackNew) => |
| | | { |
| | | dialog.Close(); |
| | | var function = Pir.currPir.FunctioList.Find((c) => c.sid == Function.sid); |
| | | if (function != null) |
| | | { |
| | | Pir.currPir.FunctioList.Remove(Function); |
| | | } |
| | | UIView(vv); |
| | | |
| | | }, "删除", "dialog", null, dialog); |
| | | |
| | | }, () => { }, false); |
| | | }; |
| | | //view点击事件 |
| | | controlView.clickBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | EditControl editControl = new EditControl(); |
| | | MainPage.BasePageView.AddChidren(editControl); |
| | | editControl.Show(control,(device) => |
| | | { |
| | | //回调更新名字/区域 |
| | | controlView.nameBtn.Text = device.name; |
| | | controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(device); |
| | | |
| | | }); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | if (j == Pir.currPir.FunctioList.Count - 1) |
| | | { |
| | | //最后改变一个线的颜色 |
| | | controlView.line1Btn.BackgroundColor = CSS.CSS_Color.viewTranslucence; |
| | | controlView.funControlRow.LineColor = CSS.CSS_Color.viewTranslucence; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | }); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取设备类型str |
| | | /// </summary> |
| | |
| | | } |
| | | }, id, "品牌列表"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |