From c1863db0158fb6c2a1cd96686d514c98c1073937 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 17 一月 2020 11:58:18 +0800
Subject: [PATCH] 2020-01-17

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs |  292 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 179 insertions(+), 113 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
index 1cbb57a..3fefd82 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs
@@ -7,14 +7,91 @@
     {
         public bool IsHideBack = false;
 
+        bool IsNeedGoToGuideAddGatewayView = false;
 
         public GuideAddResidence ()
         {
             BackgroundColor = SkinStyle.Current.MainColor;
         }
 
-        public void ShowHomeList (bool showDialog = false)
+        //bool isInitViewEnd = false;
+        VerticalScrolViewLayout VerticalScrolViewMiddle;
+
+        public void ShowHomeView (bool showDialog = false) {
+            #region 鏍囬
+            var topView = new FrameLayout () {
+                Y = Application.GetRealHeight (36),
+                Height = Application.GetRealHeight (90),
+            };
+            AddChidren (topView);
+
+            var title = new Button () {
+                TextAlignment = TextAlignment.Center,
+                Text = "Zones/Residences",
+                TextSize = 19,
+                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",
+                Y = Application.GetRealHeight (17),
+                X = Application.GetRealWidth (640 - 80),
+            };
+            topView.AddChidren (ItemButton);
+            ItemButton.MouseUpEventHandler += (sender1, e1) => {
+                //GuideAddHomeDialog (new RegionInfoRes () { Id = "",  Name = "" }, false);
+                GuideAddHomeDialog (new RegionInfoRes () { Id = "", Name = "" }, false);
+            };
+
+            //if (!IsHideBack) {
+            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) => {
+                if (IsHideBack) {
+                    ShowIfLogoutAlter ();
+                } else {
+                    (Parent as PageLayout).PageIndex -= 1;
+                }
+
+            };
+
+            //}
+
+
+
+            #endregion
+
+            var BodyView = new FrameLayout () {
+                Width = LayoutParams.MatchParent,
+                Height = Application.GetRealHeight (1136 - 126),
+                Y = topView.Bottom,
+                BackgroundColor = SkinStyle.Current.ViewColor,
+            };
+            AddChidren (BodyView);
+
+            VerticalScrolViewMiddle = new VerticalScrolViewLayout ();
+            BodyView.AddChidren (VerticalScrolViewMiddle);
+
+            GetHomeList (showDialog);
+
+        }
+
+        /// <summary>
+        /// 鏌ヨ鎵�鏈変綇瀹呭垪琛�
+        /// </summary>
+        /// <param name="showDialog"></param>
+        void GetHomeList (bool showDialog = false)
         {
+            
             new System.Threading.Thread (() => {
                 bool needHide = true;
                 try {
@@ -39,7 +116,7 @@
 
                     var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                     var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2);
-                    if (revertObj2.StateCode.ToUpper() == "SUCCESS") {
+                    if (revertObj2.StateCode.ToUpper () == "SUCCESS") {
                         var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ());
                         var responseDataObj = mResidenceRes.PageData;
                         //if(responseDataObj == null && responseDataObj.Count == 0) {
@@ -55,7 +132,13 @@
                                 });
                             }
                             UserConfig.Instance.SaveUserConfig ();
-                            UserConfig.Instance.CurrentRegion = responseDataObj.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id);
+                            //2020-01-16
+                            var mHome = responseDataObj.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id);
+                            if (mHome != null) {
+                                UserConfig.Instance.CurrentRegion = mHome;
+                            } else {
+                                UserConfig.Instance.CurrentRegion = UserConfig.Instance.HomeLists [0];
+                            }
                         } else {
                             Application.RunOnMainThread (() => {
                                 MainPage.Loading.Hide ();
@@ -77,17 +160,17 @@
                         MainPage.Loading.Hide ();
                         ShowHomeListView (showDialog);
                     });
-            } catch (Exception ex) {
-                Application.RunOnMainThread (() => {
-                    MainPage.Loading.Hide ();
-                    this.RemoveFromParent ();
+                } catch (Exception ex) {
+                    Application.RunOnMainThread (() => {
+                        MainPage.Loading.Hide ();
+                        this.RemoveFromParent ();
+                        needHide = false;
+                    });
+                    Console.WriteLine (ex.Message);
+                } finally {
                     needHide = false;
-                });
-                Console.WriteLine (ex.Message);
-            } finally {
-                needHide = false;
-            }
-        }) { IsBackground = true }.Start ();
+                }
+            }) { IsBackground = true }.Start ();
         }
 
 
@@ -115,94 +198,79 @@
 
         }
 
-        void ShowHomeListView (bool showDialog = true)
+
+        /// <summary>
+        /// 鍔犺浇鍒锋柊鎵�鏈変綇瀹�
+        /// </summary>
+        /// <param name="ifNeedShowDialog"></param>
+        void ShowHomeListView (bool ifNeedShowDialog = false)
         {
-            RemoveAll (); 
-            #region 鏍囬
-            var topView = new FrameLayout () {
-                Y = Application.GetRealHeight (36),
-                Height = Application.GetRealHeight (90),
-            };
-            AddChidren (topView);
-
-            var title = new Button () {
-                TextAlignment = TextAlignment.Center,
-                Text= "Zones/Residences",
-                TextSize = 19,
-                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",
-                Y = Application.GetRealHeight (17),
-                X = Application.GetRealWidth (640 - 80),
-            };
-            topView.AddChidren (ItemButton);
-            ItemButton.MouseUpEventHandler += (sender1, e1) => {
-                //GuideAddHomeDialog (new RegionInfoRes () { Id = "",  Name = "" }, false);
-                GuideAddHomeDialog (new RegionInfoRes () { Id = "", Name = "" }, false);
-            };
-            if (!IsHideBack) {
-                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;
-                };
-            }
-            #endregion
-
-            var BodyView = new FrameLayout () {
-                Width = LayoutParams.MatchParent,
-                Height = Application.GetRealHeight (1136 - 126),
-                Y = topView.Bottom,
-                BackgroundColor = SkinStyle.Current.ViewColor,
-            };
-            AddChidren (BodyView);
-
-            VerticalScrolViewLayout VerticalScrolViewMiddle = new VerticalScrolViewLayout ();
-            BodyView.AddChidren (VerticalScrolViewMiddle);
-
             try {
+                VerticalScrolViewMiddle.RemoveAll ();
                 foreach (var tempHome in UserConfig.Instance.HomeLists) {
                     AddResidenceListRow (tempHome, VerticalScrolViewMiddle);
                 }
             } catch { }
 
-            //if (UserConfig.Instance.GatewayList != null && UserConfig.Instance.GatewayList.Count == 0) {
-            //    if (showDialog) {
-            //        GuideAddHomeDialog (UserConfig.Instance.HomeLists [0], true);
-            //        UserConfig.Instance.CurrentRegion = UserConfig.Instance.HomeLists [0];
-            //    }
-            //}
 
-            if (!UserConfig.Instance.CheckHomeGateways()) {
-                if (showDialog) {
+            if (!UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
+                if (ifNeedShowDialog) {
                     GuideAddHomeDialog (UserConfig.Instance.HomeLists [0], true);
                     UserConfig.Instance.CurrentRegion = UserConfig.Instance.HomeLists [0];
                 }
             }
+
+            if (IsNeedGoToGuideAddGatewayView) {
+                IsNeedGoToGuideAddGatewayView = false;
+                GotoGuideAddGatewayView (UserConfig.Instance.CurrentRegion);
+
+            }
+
         }
+
+        /// <summary>
+        /// 鎻愮ず鐢ㄦ埛鏄惁閫�鍑虹櫥褰�
+        /// </summary>
+        void ShowIfLogoutAlter ()
+        {
+            var logoutAlert = new Alert ("", "Log out?", "No", "Yes");
+            logoutAlert.Show ();
+            logoutAlert.ResultEventHandler += (sender1, e1) => {
+                if (e1) {
+                    AccountLogout ();
+                }
+            };
+
+        }
+
+        /// <summary>
+        /// 閫�鍑虹櫥褰�
+        /// </summary>
+        void AccountLogout ()
+        {
+            try {
+                MainPage.LoginUser.LastTime = DateTime.Now.AddDays (-30);
+                MainPage.LoginUser.SaveUserInfo ();
+                new AccountLogin ().Show ();
+            } catch {
+
+            }
+
+        }
+
+
 
         /// <summary>
         /// 鍔犺浇鐣岄潰
         /// </summary>
         /// <param name="home">Home.</param>
-        /// <param name="VerticalScrolViewMiddle">Vertical scrol view middle.</param>
-        void AddResidenceListRow (RegionInfoRes home, VerticalScrolViewLayout VerticalScrolViewMiddle)
+        /// <param name="mVerticalScrolViewMiddle">Vertical scrol view middle.</param>
+        void AddResidenceListRow (RegionInfoRes home, VerticalScrolViewLayout mVerticalScrolViewMiddle)
         {
             var rowView = new RowLayout () {
                 Height = Application.GetRealHeight (110),
             };
-            VerticalScrolViewMiddle.AddChidren (rowView);
+            mVerticalScrolViewMiddle.AddChidren (rowView);
 
             Button btnRowLine = new Button () {
                 Y = Application.GetRealHeight (107),
@@ -251,10 +319,6 @@
             };
             rowView.AddChidren (goNextButton);
 
-         
-      
-
-
             Button rightButton1 = new Button () {
                 X = Application.GetRealWidth (550),
                 Width = Application.GetRealWidth (28),
@@ -265,9 +329,6 @@
             };
             rowView.AddChidren (rightButton1);
 
-
-           
-
             EventHandler<MouseEventArgs> eHandler = (sender, e) => {
                 if (home.Id == UserConfig.Instance.CurrentRegion.Id) {
                     if (home.IsOthreShare) {
@@ -275,11 +336,8 @@
                         new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show ();
                         return;
                     }
-                    //UserConfig.Instance.GatewayMAC = gatewayMAC;
-                    var addGatewayDialog = new GuideAddGateway ();
-                    (Parent as PageLayout).AddChidren (addGatewayDialog);
-                    addGatewayDialog.ShowPage (home);
-                    (Parent as PageLayout).PageIndex = (Parent as PageLayout).ChildrenCount - 1;
+
+                    GotoGuideAddGatewayView (home);
                 } else {
                     ChangeRegion (home);
                 }
@@ -422,7 +480,7 @@
                                     var revertObj2 = MainPage.RequestHttps (API.DelHome, requestJson2);
                                     if (revertObj2.StateCode.ToUpper () == "SUCCESS") {
                                         Application.RunOnMainThread (() => {
-                                            ShowHomeList ();
+                                            GetHomeList ();
                                         });
                                     } else {
                                         ShowDelHomeErrorInfo (revertObj2.StateCode);
@@ -472,6 +530,23 @@
         }
 
         /// <summary>
+        ///  璺宠浆缃戝叧鎼滅储椤甸潰
+        /// </summary>
+        /// <param name="home"></param>
+        void GotoGuideAddGatewayView (RegionInfoRes home) {
+            try {
+                var addGatewayDialog = new GuideAddGateway ();
+                (Parent as PageLayout).AddChidren (addGatewayDialog);
+                addGatewayDialog.ShowPage (home);
+                (Parent as PageLayout).PageIndex = (Parent as PageLayout).ChildrenCount - 1;
+            } catch {
+
+                System.Console.WriteLine ("============>GotoGuideAddGatewayView 璺宠浆澶辫触 ");
+            }
+            
+        }
+
+        /// <summary>
         /// 鏇存崲鏈湴鍖哄煙
         /// </summary>
         /// <param name="home">Home.</param>
@@ -511,7 +586,17 @@
                     UserConfig.Instance.SaveUserConfig ();
                     Room.InitAllRoom ();
                     Application.RunOnMainThread (() => {
-                        ShowHomeList (false);
+                        if (goToGuideAddGatewayView) {
+                            IsNeedGoToGuideAddGatewayView = true;
+                            //2020-01-16
+                            //GotoGuideAddGatewayView (home);
+
+                            //var addGatewayDialog = new GuideAddGateway ();
+                            //UserMiddle.guidePageView.AddChidren (addGatewayDialog);
+                            //addGatewayDialog.ShowPage (home);//guidePageView
+                            //UserMiddle.guidePageView.PageIndex = 1;
+                        }
+                        GetHomeList (false);
 
 
                         if (goHomePage) {
@@ -526,12 +611,7 @@
                             CheckIfNeedAddRoom ();
                         }
 
-                        if (goToGuideAddGatewayView) {
-                            var addGatewayDialog = new GuideAddGateway ();
-                            UserMiddle.guidePageView.AddChidren (addGatewayDialog);
-                            addGatewayDialog.ShowPage (home);//guidePageView
-                            UserMiddle.guidePageView.PageIndex = 1;
-                        }
+                        
                     });
                     MainPage.LoginUser.SaveUserInfo ();
                     
@@ -657,22 +737,8 @@
                     return;
                 }
 
-                //ChangeRegion (home, false);
                 EditResidence (home, etZoneName.Text.Trim (), guide);
 
-               
-                //if (guide) {
-
-                //    //ShowHomeList ();
-                //    EditResidence (home, etZoneName.Text.Trim ());
-                //    var addGatewayDialog = new GuideAddGateway ();
-                //    UserMiddle.guidePageView.AddChidren (addGatewayDialog);
-                //    addGatewayDialog.ShowPage (home);//guidePageView
-                //    UserMiddle.guidePageView.PageIndex = 1;
-                //} else {
-                //    EditResidence (home, etZoneName.Text.Trim ());
-                    
-                //}
             };
 
             if(!guide)

--
Gitblit v1.8.0