|  | @@ -1,4 +1,5 @@
 | 
	
		
			
				|  |  |  using System;
 | 
	
		
			
				|  |  | +using System.Collections.Generic;
 | 
	
		
			
				|  |  |  using System.IO;
 | 
	
		
			
				|  |  |  using ET;
 | 
	
		
			
				|  |  |  using UnityEngine;
 | 
	
	
		
			
				|  | @@ -9,37 +10,132 @@ namespace GFGGame
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  | -        /// 将照片保存到本地
 | 
	
		
			
				|  |  | +        /// 个人相册
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
		
			
				|  |  | -        public void SavePicturoToLocal(Texture2D tex)
 | 
	
		
			
				|  |  | +        /// <typeparam name="PoemPhotoData"></typeparam>
 | 
	
		
			
				|  |  | +        /// <returns></returns>
 | 
	
		
			
				|  |  | +        public List<PoemPhotoData> PersonalPhotoInfos = new List<PoemPhotoData>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// 万水千山相册
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        /// <typeparam name="PoemPhotoData"></typeparam>
 | 
	
		
			
				|  |  | +        /// <returns></returns>
 | 
	
		
			
				|  |  | +        public List<PoemPhotoData> WsqsPhotoInfos = new List<PoemPhotoData>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public void Clear()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            PersonalPhotoInfos.Clear();
 | 
	
		
			
				|  |  | +            WsqsPhotoInfos.Clear();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        public void Add(PoemPhotoData photoData, int sourceType)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            List<PoemPhotoData> poemPhotoDatas = null;
 | 
	
		
			
				|  |  | +            if (sourceType == (int)PictureSourceType.PersonalAlbum)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                // PersonalPhotoInfos.Add(photoData);
 | 
	
		
			
				|  |  | +                // PersonalPhotoInfos = SortInfos(PersonalPhotoInfos);
 | 
	
		
			
				|  |  | +                poemPhotoDatas = PersonalPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else if (sourceType == (int)PictureSourceType.WanShuiQianShan)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                // WsqsPhotoInfos.Add(photoData);
 | 
	
		
			
				|  |  | +                // WsqsPhotoInfos = SortInfos(WsqsPhotoInfos);
 | 
	
		
			
				|  |  | +                poemPhotoDatas = WsqsPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            poemPhotoDatas.Add(photoData);
 | 
	
		
			
				|  |  | +            poemPhotoDatas = SortInfos(poemPhotoDatas);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        public void Remove(List<long> pictureIds, int sourceType)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            string path = Application.persistentDataPath + "/Pictures/WanshiJing/";
 | 
	
		
			
				|  |  | -            //判断目录是否存在,不存在则会创建目录
 | 
	
		
			
				|  |  | -            if (!Directory.Exists(path))
 | 
	
		
			
				|  |  | +            List<PoemPhotoData> poemPhotoDatas = null;
 | 
	
		
			
				|  |  | +            if (sourceType == (int)PictureSourceType.PersonalAlbum)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                try
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                poemPhotoDatas = PersonalPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else if (sourceType == (int)PictureSourceType.WanShuiQianShan)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                poemPhotoDatas = WsqsPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (int i = 0; i < pictureIds.Count; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                for (int j = 0; j < poemPhotoDatas.Count; j++)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    Directory.CreateDirectory(path);
 | 
	
		
			
				|  |  | +                    if (pictureIds[i] == poemPhotoDatas[j].PictureId)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        poemPhotoDatas.RemoveAt(j);
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                catch (Exception exception)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            poemPhotoDatas = SortInfos(poemPhotoDatas);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public void ChangeLockingState(long pictureId, bool state, int sourceType)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            List<PoemPhotoData> poemPhotoDatas = null;
 | 
	
		
			
				|  |  | +            if (sourceType == (int)PictureSourceType.PersonalAlbum)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                poemPhotoDatas = PersonalPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else if (sourceType == (int)PictureSourceType.WanShuiQianShan)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                poemPhotoDatas = WsqsPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            for (int i = 0; i < poemPhotoDatas.Count; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                if (poemPhotoDatas[i].PictureId == pictureId)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    throw new Exception("创建文件夹失败, error:" + exception.Message);
 | 
	
		
			
				|  |  | +                    poemPhotoDatas[i].LockingStatus = state;
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            poemPhotoDatas = SortInfos(poemPhotoDatas);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public void ChangeToppingState(long pictureId, bool state, int sourceType)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            List<PoemPhotoData> poemPhotoDatas = null;
 | 
	
		
			
				|  |  | +            if (sourceType == (int)PictureSourceType.PersonalAlbum)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                poemPhotoDatas = PersonalPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else if (sourceType == (int)PictureSourceType.WanShuiQianShan)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                poemPhotoDatas = WsqsPhotoInfos;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            for (int i = 0; i < poemPhotoDatas.Count; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                if (poemPhotoDatas[i].PictureId == pictureId)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    poemPhotoDatas[i].ToppingStatus = state;
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            string fileName = "wsj" + TimeHelper.ServerNowSecs + ".jpg";
 | 
	
		
			
				|  |  | -            var filePath = path + fileName;
 | 
	
		
			
				|  |  | -            byte[] bytes = tex.EncodeToJPG();//将纹理数据,转化成一个jpg图片
 | 
	
		
			
				|  |  | -            File.WriteAllBytes(filePath, bytes);
 | 
	
		
			
				|  |  | -            UpdateSystemPhoto(filePath);
 | 
	
		
			
				|  |  | +            poemPhotoDatas = SortInfos(poemPhotoDatas);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        //调用iOS或Android原生方法保存图片后更新相册.
 | 
	
		
			
				|  |  | -        private void UpdateSystemPhoto(string filePath)
 | 
	
		
			
				|  |  | +        private List<PoemPhotoData> SortInfos(List<PoemPhotoData> photoInfos)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -#if UNITY_ANDROID
 | 
	
		
			
				|  |  | -            AndroidJavaObject androidJavaObject = new AndroidJavaObject("com.gfg.gfglibrary.SaveImage"); //设置成我们aar库中的签名+类名
 | 
	
		
			
				|  |  | -            androidJavaObject.Call("scanFile", filePath, "已保存至相册"); //这里我们可以设置保存成功弹窗内容
 | 
	
		
			
				|  |  | -#endif
 | 
	
		
			
				|  |  | +            photoInfos.Sort((PoemPhotoData a, PoemPhotoData b) =>
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                if (a.ToppingStatus) return 1;
 | 
	
		
			
				|  |  | +                if (b.ToppingStatus) return -1;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if (a.CreationTime < b.CreationTime) return 1;
 | 
	
		
			
				|  |  | +                if (a.CreationTime > b.CreationTime) return -1;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                return 0;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            return photoInfos;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |