using System; using System.Collections; using System.Collections.Generic; using System.Net; using System.Net.Http; using ET; using FairyGUI; using UnityEngine; using UnityEngine.Networking; namespace GFGGame { public static class PoemPhotoSProxy { //获取玩家所有相册数据协议 public static async ETTask ReqAllPhotoInfos() { S2C_GetAllAlbumInfo response = null; response = (S2C_GetAllAlbumInfo)await MessageHelper.SendToServer(new C2S_GetAllAlbumInfo()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { for (int i = 0; i < response.PictureInfosA.Count; i++) { PoemPhotoData photoData = new PoemPhotoData(); photoData.PictureId = response.PictureInfosA[i].PictureId; photoData.CreationTime = response.PictureInfosA[i].CreationTime; photoData.ToppingStatus = response.PictureInfosA[i].ToppingStatus; photoData.LockingStatus = response.PictureInfosA[i].LockingStatus; photoData.SourceType = response.PictureInfosA[i].SourceType; photoData.PictureTempUrl = response.PictureInfosA[i].PictureTempUrl; // Timers.inst.StartCoroutine(PictureStorageHelper.DownloadFile(photoData.PictureTempUrl, (Texture2D texture) => // { // photoData.Bytes = texture.EncodeToJPG(); // photoData.Ntexture = new NTexture(texture); // })); PoemPhotoDataManager.Instance.Add(photoData, (int)PictureSourceType.PersonalAlbum); } Timers.inst.StartCoroutine(PictureStorageHelper.Download(PoemPhotoDataManager.Instance.PersonalPhotoInfos)); for (int i = 0; i < response.PictureInfosB.Count; i++) { PoemPhotoData photoData = new PoemPhotoData(); photoData.PictureId = response.PictureInfosB[i].PictureId; photoData.CreationTime = response.PictureInfosB[i].CreationTime; photoData.ToppingStatus = response.PictureInfosB[i].ToppingStatus; photoData.LockingStatus = response.PictureInfosB[i].LockingStatus; photoData.SourceType = response.PictureInfosB[i].SourceType; photoData.TravelLocationId = response.PictureInfosB[i].TravelLocationId; photoData.TravelSuitId = response.PictureInfosB[i].TravelSuitId; photoData.SuitResIndex = response.PictureInfosB[i].TravelSuitResourceIndex; photoData.PositionIndex = response.PictureInfosB[i].PositionIndex; PoemPhotoDataManager.Instance.Add(photoData, (int)PictureSourceType.WanShuiQianShan); } return true; } } return false; } // //获取图片的临时上传地址协议 // public static async ETTask ReqTempPictureUrl(int pictureType) // { // S2C_GetTempPictureUrl response = null; // response = (S2C_GetTempPictureUrl)await MessageHelper.SendToServer(new C2S_GetTempPictureUrl() { PictureType = pictureType }); // if (response != null) // { // if (response.Error == ErrorCode.ERR_Success) // { // return new string[] { response.TempPictureUrl, response.PictureObjectPath }; // } // } // else // { // ViewManager.Hide(); // PromptController.Instance.ShowFloatTextPrompt("获取上传地址失败"); // } // return null; // } // //将图片上传到华为云 // public static async ETTask PushToHWCloud(string signUrl, byte[] buffer) // { // HttpContent content = new ByteArrayContent(buffer); // HttpClient httpClient = new HttpClient(new HttpClientHandler() { UseCookies = false }); // HttpResponseMessage response = await httpClient.PutAsync(signUrl, content); // response.EnsureSuccessStatusCode(); // await response.Content.ReadAsStreamAsync(); // if (response.StatusCode != HttpStatusCode.OK) // { // ViewManager.Hide(); // PromptController.Instance.ShowFloatTextPrompt("上传资源失败"); // return false; // } // else // { // return true; // } // } //保存成功后,添加图片至相册 public static async ETTask ReqAddTophoto(string pictureObjectPath, int sourceType) { S2C_AddPicture response = null; response = (S2C_AddPicture)await MessageHelper.SendToServer(new C2S_AddPicture() { PictureObjectPath = pictureObjectPath, SourceType = sourceType }); ViewManager.Hide(); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemPhotoData photoData = new PoemPhotoData(); photoData.PictureId = response.PictureInfo.PictureId; photoData.CreationTime = response.PictureInfo.CreationTime; photoData.ToppingStatus = response.PictureInfo.ToppingStatus; photoData.LockingStatus = response.PictureInfo.LockingStatus; photoData.PictureTempUrl = response.PictureInfo.PictureTempUrl; PoemPhotoDataManager.Instance.Add(photoData, sourceType); EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE); PromptController.Instance.ShowFloatTextPrompt("已保存至相册"); return response.PictureInfo.PictureId; } } PromptController.Instance.ShowFloatTextPrompt("存储数据失败"); return 0; } // public static IEnumerator DownloadFile(PoemPhotoData poemPhotoData) // { // ET.Log.Debug("PictureTempUrl:" + poemPhotoData.PictureTempUrl); // using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(poemPhotoData.PictureTempUrl)) // { // yield return request.SendWebRequest(); // if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError) // { // ET.Log.Debug("Error: " + request.error); // // while (!request.isDone) // // { // DownloadFile(poemPhotoData); // yield return null; // // } // } // else // { // Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture; // poemPhotoData.Bytes = texture.EncodeToJPG(); // poemPhotoData.Ntexture = new NTexture(texture); // } // } // } //批量删除玩家相册 public static async ETTask ReqRemovedPhoto(List pictureIds, int sourceType) { S2C_RemovedPictures response = null; response = (S2C_RemovedPictures)await MessageHelper.SendToServer(new C2S_RemovedPictures() { PictureIds = pictureIds }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemPhotoDataManager.Instance.Remove(response.PictureIds, sourceType); EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE); return true; } } return false; } //修改图片锁定状态 public static async ETTask ReqChangeLockingState(long pictureId, bool state, int sourceType) { S2C_UpPictureLockingStatus response = null; response = (S2C_UpPictureLockingStatus)await MessageHelper.SendToServer(new C2S_UpPictureLockingStatus() { PictureId = pictureId, Status = state }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemPhotoDataManager.Instance.ChangeLockingState(response.PictureId, response.Status, sourceType); EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE); return true; } } return false; } //修改图片置顶状态 public static async ETTask ReqChangeToppingState(long pictureId, bool state, int sourceType) { S2C_UpPictureToppingStatus response = null; response = (S2C_UpPictureToppingStatus)await MessageHelper.SendToServer(new C2S_UpPictureToppingStatus() { PictureId = pictureId, Status = state }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemPhotoDataManager.Instance.ChangeToppingState(response.PictureId, response.Status, sourceType); EventAgent.DispatchEvent(ConstMessage.POEM_PHOTO_INFOS_CHANGE); return true; } } return false; } } }