|
@@ -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;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|