浏览代码

修复个人信息页面相片列表先开通福气卡,再开通豆包卡的显示问题
修复部分照片保存本地的显示问题

leiyasi 1 年之前
父节点
当前提交
98c67b15a9

+ 34 - 0
GameClient/Assets/Game/HotUpdate/Data/RoleDataManager.cs

@@ -387,5 +387,39 @@ namespace GFGGame
             mainBgID = bgID;
             RoleInfoSProxy.ReqSaveMainBgID(bgID);
         }
+
+        public static void UpdatePhotoData()
+        {
+            List<long> numArr = new List<long>();
+            // 提取有数据的位置
+            for (int i = 0; i < RoleDataManager.photoDatas.Count; i++)
+            {
+                if (RoleDataManager.photoDatas[i] > 0)
+                {
+                    numArr.Add(RoleDataManager.photoDatas[i]);
+                }
+            }
+
+            // 找到可用空位赋值
+            int index = 0;
+            for (int i = 0; i < photoDatas.Count; i++)
+            {
+                if (RoleInfoManager.GetPosType(i) == MonthCardType.Gold && !CheckIsMonthCardOpenByType(MonthCardType.Gold)
+|| RoleInfoManager.GetPosType(i) == MonthCardType.BlackGold && !CheckIsMonthCardOpenByType(MonthCardType.BlackGold))
+                {
+                    photoDatas[i] = -1;
+                    continue;
+                }
+
+                if (index < numArr.Count)
+                {
+                    photoDatas[i] = numArr[index++];
+                }
+                else
+                {
+                    photoDatas[i] = 0;
+                }
+            }
+        }
     }
 }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/Poem/PoemPhotoSaveView.cs

@@ -78,6 +78,7 @@ namespace GFGGame
                 else
                 {
                     RefreshTravelPhoto(savePhoto.photoInfos[i]);
+                    await Task.Delay(50);
                     captureFinished = false;
                     Timers.inst.StartCoroutine(CaptureByUI());
                     while (!captureFinished)

+ 3 - 33
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/PersonalPhotoView.cs

@@ -88,12 +88,10 @@ namespace GFGGame
         {
             GObject obj = context.data as GObject;
             long selectPictureId = (long)obj.data;
-            UpdatePhotoData();
+            
             if (selectPictureId == _showPictureId)//删除:点击相同id照片
             {
                 RoleDataManager.photoDatas[_showIndex] = 0;
-
-                UpdatePhotoData();
             }
             else
             {
@@ -127,41 +125,13 @@ namespace GFGGame
                     }
                 }
             }
+
+            RoleDataManager.UpdatePhotoData();
             bool result = await RoleInfoSProxy.ReqModifyShowPhoto(RoleDataManager.photoDatas);
             if (result)
             {
                 Hide();
             }
         }
-
-        private void UpdatePhotoData()
-        {
-            List<long> numArr = new List<long>();
-            // 提取有数据的位置
-            for(int i=0;i< RoleDataManager.photoDatas.Count; i++)
-            {
-                if (RoleDataManager.photoDatas[i] != 0)
-                {
-                    numArr.Add(RoleDataManager.photoDatas[i]);
-                }
-            }
-
-            // 找到可用空位赋值
-            int index = 0;
-            for (int i = 0; i < RoleDataManager.photoDatas.Count; i++)
-            {
-                if (RoleInfoManager.GetPosType(i) == MonthCardType.Gold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.Gold)
-|| RoleInfoManager.GetPosType(i) == MonthCardType.BlackGold && !RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.BlackGold))
-                {
-                    RoleDataManager.photoDatas[i] = -1;
-                    continue;
-                }
-
-                if (index < numArr.Count)
-                {
-                    RoleDataManager.photoDatas[i] = numArr[index++];
-                }
-            }
-        }
     }
 }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/RoleInfoView.cs

@@ -114,6 +114,7 @@ namespace GFGGame
 
         private void UpdatePhotoList()
         {
+            RoleDataManager.UpdatePhotoData();
             _ui.m_photoList.numItems = RoleDataManager.photoDatas.Count;
         }