gxc
2020-02-28 66a9965c44ecc32a6696abca876ab9d1cd091584
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
@@ -16,7 +16,7 @@
        /// <summary>
        /// SceneIcon
        /// </summary>
        public Button SceneIcon;
        public ImageView SceneIcon;
        /// <summary>
        /// statu
        /// </summary>
@@ -37,6 +37,10 @@
        /// scene
        /// </summary>
        public SceneUI scene;
        /// <summary>
        /// CollectionAction
        /// </summary>
        public Action CollectionAction;
        /// <summary>
        /// IsSelected
@@ -58,12 +62,17 @@
            }
        }
        /// <summary>
        /// SceneMainView
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        public SceneMainView(int x, int y)
        {
            X = Application.GetRealWidth(x);
            Y = Application.GetRealHeight(y);
            Width = Application.GetMinRealAverage(487);
            Height = Application.GetMinRealAverage(348);
            Width = Application.GetRealWidth(487);
            Height = Application.GetRealHeight(358);
        }
        /// <summary>
@@ -73,38 +82,51 @@
        {
            this.scene = sceneUI;
            CardBG = new Button
            {
                Width = Application.GetMinRealAverage(487),
                Height = Application.GetMinRealAverage(348),
                UnSelectedImagePath = "Item/FunctionCardView.png",
                Gravity = Gravity.CenterHorizontal
            };
            AddChidren(CardBG);
            InitFrame();
            SceneIcon = new Button
            InitStatu();
        }
        /// <summary>
        /// InitFrame
        /// </summary>
        private void InitFrame()
        {
            //CardBG = new Button
            //{
            //    Width = Application.GetMinRealAverage(487),
            //    Height = Application.GetMinRealAverage(348),
            //    UnSelectedImagePath = "Item/FunctionCardView.png",
            //    Gravity = Gravity.CenterHorizontal
            //};
            //AddChidren(CardBG);
            SceneIcon = new ImageView
            {
                X = Application.GetMinRealAverage(14),
                X=Application.GetRealWidth(14),
                Width = Application.GetMinRealAverage(458),
                Height = Application.GetRealHeight(305),
                Gravity = Gravity.CenterHorizontal
                Height = Application.GetMinRealAverage(305),
                Gravity = Gravity.CenterHorizontal,
                Radius= (uint)Application.GetRealHeight(17)
            };
            AddChidren(SceneIcon);
            //SceneIcon.SetViewShadow(true);
            //SceneIcon.SetCornerWithSameRadius(Application.GetRealHeight(100), HDLUtils.RectCornerBottomRight);
            sceneBG = new Button
            {
                Width = Application.GetMinRealAverage(487),
                Height = Application.GetMinRealAverage(348),
                UnSelectedImagePath = "Item/SceneCard.png",
                UnSelectedImagePath = "Scene/Background.png",
                Gravity = Gravity.CenterHorizontal
            };
            AddChidren(sceneBG);
            TimeButton = new Button()
            {
                X = Application.GetMinRealAverage(40),
                Y = Application.GetMinRealAverage(17),
                Width = Application.GetMinRealAverage(320),
                X = Application.GetMinRealAverage(30),
                Y = Application.GetMinRealAverage(20),
                Width = Application.GetMinRealAverage(63),
                Height = Application.GetMinRealAverage(63),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor3,
                TextAlignment = TextAlignment.CenterLeft,
@@ -113,8 +135,8 @@
            CollectButton = new Button
            {
                X = Application.GetMinRealAverage(366),
                Y = Application.GetMinRealAverage(14),
                X = Application.GetMinRealAverage(350),
                Y = Application.GetMinRealAverage(1),
                Width = Application.GetMinRealAverage(107),
                Height = Application.GetMinRealAverage(107),
                UnSelectedImagePath = "Item/Collection1.png",
@@ -128,18 +150,21 @@
                Y = Application.GetMinRealAverage(239),
                Width = Application.GetMinRealAverage(279),
                Height = Application.GetMinRealAverage(60),
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                SelectedTextColor = ZigbeeColor.Current.GXCTextSelectedColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 14,
                IsBold = true
            };
            AddChidren(SceneNameButton);
            InitStatu();
        }
        /// <summary>
        /// InitStatu
        /// </summary>
        private void InitStatu()
        {
            SetIimeByDelayTime(scene.SceneDelayTime);
            SetTimeByDelayTime(scene.SceneDelayTime);
            SetSceneNameText(scene.Name);
            SetIcon(scene.IconPath);
            SetCollect(Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName));
@@ -147,8 +172,8 @@
            TimeButton.MouseUpEventHandler += SetTimeEvents;
            CollectButton.MouseUpEventHandler += CollectionEvent;
            SceneIcon.MouseUpEventHandler += SceneUpHandler;
            sceneBG.MouseUpEventHandler += SceneUpHandler;
            SceneNameButton.MouseUpEventHandler += SceneUpHandler;
            sceneBG.MouseUpEventHandler += SceneUpHandler;
        }
        /// <summary>
@@ -157,10 +182,12 @@
        /// <param name="name"></param>
        public void SetTimeText(string name)
        {
            TimeButton.Width = Application.GetMinRealAverage(320);
            TimeButton.Width = Application.GetMinRealAverage(280);
            TimeButton.Height = Application.GetMinRealAverage(63);
            TimeButton.UnSelectedImagePath = string.Empty;
            TimeButton.Text = name;
            TimeButton.TextSize = 14;
            TimeButton.IsBold = true;
        }
        /// <summary>
@@ -178,7 +205,7 @@
        /// SetIimeByDelayTime
        /// </summary>
        /// <param name="time"></param>
        public void SetIimeByDelayTime(int time)
        public void SetTimeByDelayTime(int time)
        {
            if (time > 0)
            {
@@ -205,7 +232,14 @@
        /// <param name="iconPath"></param>
        public void SetIcon(string iconPath)
        {
            SceneIcon.UnSelectedImagePath = iconPath;
            if (scene.IconPathType == 0)
            {
                SceneIcon.ImagePath = iconPath;
            }
            else
            {
                SceneIcon.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, iconPath);
            }
        }
        /// <summary>
@@ -226,6 +260,7 @@
        {
            if (scene.RemainTime > 0 && scene.SceneDelayTime == 0)
            {
                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
                return;
            }
            //1成功 0失败
@@ -248,22 +283,22 @@
                {
                    return;
                }
                CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail);
                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.ControlSceneFail));
            }
            var times = scene.SceneDelayTime;
            scene.RemainTime = times;
            scene.RemainTime = scene.SceneDelayTime;
            scene.SceneDelayTime = 0;
            Common.Room.CurrentRoom.ModifySceneDelayTime(scene);
            new System.Threading.Thread(() =>
            {
                while (times > 0)
                while (scene.RemainTime > 0)
                {
                    System.Threading.Thread.Sleep(1000);
                    Application.RunOnMainThread(() =>
                    {
                        SetTimeText(CommonFormResouce.GetTimeString(times));
                        SetTimeText(CommonFormResouce.GetTimeString(scene.RemainTime));
                    });
                    times -= 1;
                    scene.RemainTime -= 1;
                }
                Application.RunOnMainThread(() =>
                {
@@ -280,16 +315,23 @@
        /// <param name="mouseEventArgs"></param>
        private void  CollectionEvent(object sender,MouseEventArgs mouseEventArgs)
        {
            (sender as Button).IsSelected = !(sender as Button).IsSelected;
            if ((sender as Button).IsSelected)
            if (Common.Room.CurrentRoom.IsLove)
            {
                Shared.Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
                Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                CollectionAction?.Invoke();
            }
            else
            {
                Shared.Common.Room.CurrentRoom.GetLoveRoom().RemoveScene(scene);
                (sender as Button).IsSelected = !(sender as Button).IsSelected;
                if ((sender as Button).IsSelected)
                {
                    Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
                }
                else
                {
                    Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                }
            }
            scene.Save();
        }
        /// <summary>
@@ -301,16 +343,19 @@
        {
            if (scene.RemainTime > 0)
            {
                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
                return;
            }
            var timeSelect = new SelectTime();
            CommonPage.Instance.AddChidren(timeSelect);
            timeSelect.TempTime = scene.DelayTime;
            timeSelect.TempTime = scene.SceneDelayTime;
            timeSelect.Init();
            timeSelect.TimeAction = (t) =>
            {
                scene.SceneDelayTime = t;
                SetIimeByDelayTime(t);
                SetTimeByDelayTime(t);
                Common.Room.CurrentRoom.ModifySceneDelayTime(scene);
            };
        }