From 69d3858d6ee726ef7ed48f43ff5c878670187f9b Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 28 十一月 2019 13:31:57 +0800
Subject: [PATCH] 补漏:IOS 的微信登录

---
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs |  217 ++++++++++++++++++++++++++---------------------------
 1 files changed, 106 insertions(+), 111 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs
index 628bf5d..bd4329d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs
@@ -14,7 +14,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalFrameControl listView = null;
+        private VerticalFrameRefreshControl listView = null;
         /// <summary>
         /// 鍏ㄩ儴鐨勮
         /// </summary>
@@ -32,43 +32,52 @@
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uMessageCenter));
 
-            listView = new VerticalFrameControl(35);
-            listView.Height = bodyFrameLayout.Height;
-            bodyFrameLayout.AddChidren(listView);
-
             //鍒濆鍖栧彸涓婅鑿滃崟
             this.InitTopRightMenu();
 
+            listView = new VerticalFrameRefreshControl(35);
+            listView.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listView);
+            listView.BeginHeaderRefreshingAction += () =>
+            {
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //鍒濆鍖栦腑閮ㄤ俊鎭�
+                    this.InitMiddleData(false);
+                });
+            };
+
             HdlThreadLogic.Current.RunThread(() =>
             {
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+
                 //鍒濆鍖栦腑閮ㄤ俊鎭�
-                this.InitMiddleData();
+                this.InitMiddleData(true);
             });
         }
 
         /// <summary>
         /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        private async void InitMiddleData()
+        private async void InitMiddleData(bool showReload)
         {
-            this.dicAllRow = new Dictionary<string, RowLayoutControl>();
-
-            //鎵撳紑杩涘害鏉�
-            this.ShowProgressBar();
-            var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetPushMessageRecord", false, "");
-            if (result == null)
+            //鑾峰彇鏁版嵁
+            var dicData = await this.GetMessageData();
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar(dicData == null && showReload == true ? ShowReLoadMode.YES : ShowReLoadMode.NO);
+            
+            HdlThreadLogic.Current.RunMain(() =>
             {
-                //鍏抽棴杩涘害鏉�
-                this.CloseProgressBar(ShowReLoadMode.YES);
+                //鍏抽棴鍒锋柊鐗规晥
+                listView?.EndHeaderRefreshing();
+            });
+            if (dicData == null)
+            {
+                //鏁版嵁寮傚父
                 return;
             }
-            var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MessageRecordInfo>>(result);
-            //鍚堝苟鏁版嵁
-            var dicData = this.MergeMessageRecordData(dataInfo);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-            
-            HdlThreadLogic.Current.RunMainInThread(() =>
+            HdlThreadLogic.Current.RunMain(() =>
             {
                 //鍒濆鍖栦腑閮ㄦ帶浠�
                 this.InitMiddleFrame(dicData);
@@ -81,45 +90,45 @@
         /// <param name="dicData"></param>
         private void InitMiddleFrame(Dictionary<string, List<MessageRecordInfo>> dicData)
         {
+            //娓呯┖
+            listView.RemoveAll();
+
             int index = 0;
             foreach (var keys in dicData.Keys)
             {
                 var listData = dicData[keys];
-                HdlThreadLogic.Current.RunMain(() =>
+                index++;
+                //瀹瑰櫒
+                var framBack = new FrameListControl(23);
+                framBack.Name = index.ToString();
+                framBack.Height = Application.GetRealHeight(100);
+                framBack.BackgroundColor = UserCenterColor.Current.White;
+                listView.AddChidrenFrame(framBack);
+
+                //鏃ユ湡
+                string strMonth = Language.StringByID(R.MyInternationalizationString.Month);
+                string strDate = Language.StringByID(R.MyInternationalizationString.Day);
+                var frameDate = new FrameLayout();
+                frameDate.Height = Application.GetRealHeight(118);
+                framBack.AddChidren(frameDate);
+                var btnDate = new NormalViewControl(500, 60, true);
+                btnDate.TextSize = 15;
+                btnDate.X = ControlCommonResourse.XXLeft;
+                btnDate.Y = Application.GetRealHeight(35);
+                btnDate.Text = Convert.ToDateTime(listData[0].MsgTime).ToString("MM" + strMonth + "dd" + strDate);
+                frameDate.AddChidren(btnDate);
+
+                for (int i = 0; i < listData.Count; i++)
                 {
-                    index++;
-                    //瀹瑰櫒
-                    var framBack = new FrameListControl(23);
-                    framBack.Name = index.ToString();
-                    framBack.Height = Application.GetRealHeight(100);
-                    framBack.BackgroundColor = UserCenterColor.Current.White;
-                    listView.AddChidrenFrame(framBack);
-
-                    //鏃ユ湡
-                    string strMonth = Language.StringByID(R.MyInternationalizationString.Month);
-                    string strDate = Language.StringByID(R.MyInternationalizationString.Day);
-                    var frameDate = new FrameLayout();
-                    frameDate.Height = Application.GetRealHeight(118);
-                    framBack.AddChidren(frameDate);
-                    var btnDate = new NormalViewControl(500, 60, true);
-                    btnDate.TextSize = 15;
-                    btnDate.X = ControlCommonResourse.XXLeft;
-                    btnDate.Y = Application.GetRealHeight(35);
-                    btnDate.Text = Convert.ToDateTime(listData[0].MsgTime).ToString("MM" + strMonth + "dd" + strDate);
-                    frameDate.AddChidren(btnDate);
-
-                    for (int i = 0; i < listData.Count; i++)
-                    {
-                        //娣诲姞淇℃伅琛�
-                        this.AddMsgRowControl(framBack, listData[i], i != listData.Count - 1);
-                    }
-                    //璋冩暣楂樺害
-                    listView.AdjustChidrenFrameHeight(framBack, Application.GetRealHeight(23));
-                    if (index == dicData.Count)
-                    {
-                        listView.AdjustTableHeight();
-                    }
-                });
+                    //娣诲姞淇℃伅琛�
+                    this.AddMsgRowControl(framBack, listData[i], i != listData.Count - 1);
+                }
+                //璋冩暣楂樺害
+                listView.AdjustChidrenFrameHeight(framBack, Application.GetRealHeight(23));
+                if (index == dicData.Count)
+                {
+                    listView.AdjustTableHeight();
+                }
             }
         }
 
@@ -187,7 +196,7 @@
             btnIcon.UnSelectedImagePath = "Item/Safety.png";
 
             //娑堟伅绫诲瀷
-            var btnMsgObject = rowControl.frameTable.AddLeftCaption("娴嬭瘯:娑堟伅绫诲瀷", 600);
+            var btnMsgObject = rowControl.frameTable.AddLeftCaption("鎶ヨ娑堟伅", 600);
             PicViewControl btnNewTip = null;
             if (recordInfo.IsRead == 0)
             {
@@ -267,9 +276,12 @@
         /// <param name="strId"></param>
         private async System.Threading.Tasks.Task<bool> SetTickIsRead(string strId)
         {
-            var pra = new { Id = strId };
-            await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/TickIsRead", true, pra);
-            return true;
+            string strUrl = "ZigbeeUsers/TickIsRead?Id=" + strId;
+            var result = await Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(strUrl, null, Common.Config.Instance.Token, "GET");
+            var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResponsePack>(Encoding.UTF8.GetString(result));
+            //妫�娴嬫槸鍚﹀瓨鍦ㄩ敊璇俊鎭�
+            var falge = UserCenterLogic.CheckNotEorrorMsg(revertObj, "ZigbeeUsers/TickIsRead", null, null);
+            return falge;
         }
 
         /// <summary>
@@ -326,9 +338,18 @@
         /// <param name="rowContr"></param>
         private async System.Threading.Tasks.Task<bool> DeleteMsg(string strId, FrameListControl frameList, RowLayoutControl rowContr)
         {
-            var pra = new { Id = strId };
-            var result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/DeletePushMessage", true, pra);
-            if (result == true && frameList != null)
+            string strUrl = "ZigbeeUsers/DeletePushMessage?Id=" + strId;
+
+            var result = await Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(strUrl, null, Common.Config.Instance.Token, "GET");
+            if (result == null)
+            {
+                return UserCenterLogic.CheckNotEorrorMsg(null, "ZigbeeUsers/DeletePushMessage", null, null);
+            }
+            var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResponsePack>(Encoding.UTF8.GetString(result));
+            //妫�娴嬫槸鍚﹀瓨鍦ㄩ敊璇俊鎭�
+            var falge = UserCenterLogic.CheckNotEorrorMsg(revertObj, "ZigbeeUsers/DeletePushMessage", null, null);
+
+            if (falge == true && frameList != null)
             {
                 HdlThreadLogic.Current.RunMain(() =>
                 {
@@ -338,7 +359,7 @@
                     this.AdjustControlLocation(frameList, rowContr);
                 });
             }
-            return result;
+            return falge;
         }
 
         /// <summary>
@@ -368,21 +389,8 @@
                             return;
                         }
                     }
-                    //鍏抽棴杩涘害鏉�
-                    this.CloseProgressBar();
-
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        bodyFrameLayout.RemoveAll();
-                        listView = new VerticalFrameControl(35);
-                        listView.Height = bodyFrameLayout.Height;
-                        bodyFrameLayout.AddChidren(listView);
-                        HdlThreadLogic.Current.RunThread(() =>
-                        {
-                            //鍒濆鍖栦腑閮ㄤ俊鎭�
-                            this.InitMiddleData();
-                        });
-                    });
+                    //鍒濆鍖栦腑閮ㄤ俊鎭�
+                    this.InitMiddleData(true);
                 });
             });
         }
@@ -455,7 +463,25 @@
 
         #endregion
 
-        #region 鈻� 鍚堝苟鏁版嵁___________________________
+        #region 鈻� 鑾峰彇鏁版嵁___________________________
+
+        /// <summary>
+        /// 鑾峰彇娑堟伅璁板綍
+        /// </summary>
+        /// <returns></returns>
+        private async System.Threading.Tasks.Task<Dictionary<string, List<MessageRecordInfo>>> GetMessageData()
+        {
+            this.dicAllRow = new Dictionary<string, RowLayoutControl>();
+
+            var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetPushMessageRecord", false, "");
+            if (result == null)
+            {
+                return null;
+            }
+            var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MessageRecordInfo>>(result);
+            //鍚堝苟鏁版嵁
+            return this.MergeMessageRecordData(dataInfo);
+        }
 
         /// <summary>
         /// 鍚堝苟鏁版嵁
@@ -497,37 +523,6 @@
                 }
             }
             return dicData;
-        }
-
-        #endregion
-
-        #region 鈻� 缁撴瀯浣揰____________________________
-
-        /// <summary>
-        /// 淇℃伅缁撴灉
-        /// </summary>
-        private class MessageRecordInfo
-        {
-            /// <summary>
-            /// 涓婚敭
-            /// </summary>
-            public string RegId = string.Empty;
-            /// <summary>
-            /// 娑堟伅鍐呭
-            /// </summary>
-            public string MsgContent = string.Empty;
-            /// <summary>
-            /// MsgType
-            /// </summary>
-            public string MsgType = string.Empty;
-            /// <summary>
-            /// 鏄惁宸茶
-            /// </summary>
-            public int IsRead = 0;
-            /// <summary>
-            /// 鏃堕棿 2019-09-10 13:11:55
-            /// </summary>
-            public string MsgTime = string.Empty;
         }
 
         #endregion

--
Gitblit v1.8.0