// ------------------------------------------- /* * LoadNewImage */ private bool LoadNewImage(GameObject _origin, long _id, Image _image, int _height, bool _showLoadingMessage) { m_imageReferenceTmp = new ImageRequestedInfo(_origin, _id, _image, _height, _showLoadingMessage); ImageModel imageModel = GetImageByID(m_imageReferenceTmp.Id); if (imageModel != null) { UIEventController.Instance.DispatchUIEvent(EVENT_IMAGE_LOADED_REPORT_SYSTEM, _image); try { ImageUtils.LoadBytesImage(m_imageReferenceTmp.Image, imageModel.Data, m_imageReferenceTmp.Height, MenusScreenController.Instance.SizeHeightAllowedImages); } catch (Exception err) { if (MenusScreenController.Instance.DebugMode) { Debug.Log(err.StackTrace); } }; UIEventController.Instance.DispatchUIEvent(EVENT_IMAGES_LOAD_SERVER_LOCAL_DATA_LOADED); return(true); } else { if (_showLoadingMessage) { MenusScreenController.Instance.CreateNewInformationScreen(ScreenInformationView.SCREEN_WAIT, UIScreenTypePreviousAction.KEEP_CURRENT_SCREEN, LanguageController.Instance.GetText("message.info"), LanguageController.Instance.GetText("message.please.wait"), null, ""); } CommsHTTPConstants.LoadImage(m_imageReferenceTmp.Id); } if (m_images.Count > LIMIT_IMAGES_IN_MEMORY_TO_CLEAR) { m_images.Clear(); } return(false); }
// ------------------------------------------- /* * Process other images requests */ void Update() { // LOAD IMAGES if (m_imageReferenceTmp == null) { m_timeAcumImages += Time.deltaTime; if (m_timeAcumImages > 1) { m_timeAcumImages = 0; if (m_queuedRequests.Count > 0) { ImageRequestedInfo reqImage = m_queuedRequests[0]; m_queuedRequests.RemoveAt(0); if (LoadNewImage(reqImage.Origin, reqImage.Id, reqImage.Image, reqImage.Height, reqImage.ShowLoadingMessage)) { m_timeAcumImages = 0.8f; } } } } // LOAD THUMNAILS if (m_thumbnailRequests.Count > 0) { m_timeAcumThumbnail += Time.deltaTime; if (m_timeAcumImages > 0.2) { m_timeAcumImages = 0; if (m_counterThumnail < m_thumbnailRequests.Count) { m_thumbnailRequests[m_counterThumnail].LoadTexture(); m_counterThumnail++; } } } }
// ------------------------------------------- /* * OnBasicEvent */ private void OnBasicEvent(string _nameEvent, params object[] _list) { if (_nameEvent == EVENT_IMAGES_LOAD_FROM_SYSTEM_IMAGE) { UIEventController.Instance.DispatchUIEvent(EVENT_IMAGES_CLEAR_THUMBNAIL_CACHE); string fullPath = (string)_list[0]; m_lastScrollPosition = (float)_list[1]; if (fullPath.LastIndexOf('/') != -1) { m_pathLastFileBrowsed = fullPath.Substring(0, fullPath.LastIndexOf('/')); } if (fullPath.LastIndexOf('\\') != -1) { m_pathLastFileBrowsed = fullPath.Substring(0, fullPath.LastIndexOf('\\')); } Image imageContainer = (Image)_list[2]; int heightTarget = (int)_list[3]; int typeTarget = (int)_list[4]; ImageUtils.LoadImage(fullPath, imageContainer, heightTarget, MenusScreenController.Instance.SizeHeightAllowedImages); if (typeTarget != RequestModel.IMAGE_TYPE_FINISHED) { UIEventController.Instance.DispatchUIEvent(ScreenController.EVENT_FORCE_DESTRUCTION_POPUP); } } if (_nameEvent == EVENT_IMAGES_LOAD_REFERENCE_IMG_WITH_URL) { string pathFileURL = (string)_list[0]; Image imgContainer = (Image)_list[1]; int heightImage = (int)_list[2]; byte[] dataImage = (byte[])_list[3]; ImageUtils.LoadBytesImage(imgContainer, dataImage, heightImage, MenusScreenController.Instance.SizeHeightAllowedImages); BasicSystemEventController.Instance.DispatchBasicSystemEvent(ImageUtils.EVENT_IMAGES_LOAD_CONFIRMATION_FROM_SYSTEM, pathFileURL); } if (_nameEvent == EVENT_IMAGES_LOAD_REFERENCE_IMG_WITH_IMAGE_URL) { string pathFileURL = (string)_list[0]; Image imgContainer = (Image)_list[1]; int heightImage = (int)_list[2]; ImageURLLoader.Instance.LoadURLImage(pathFileURL, imgContainer, heightImage, MenusScreenController.Instance.SizeHeightAllowedImages); } if (_nameEvent == EVENT_IMAGES_LOAD_FROM_ID) { m_timeAcumImages = ((GetImageByID((long)_list[1]) != null) ? 1 : 0); m_queuedRequests.Add(new ImageRequestedInfo((GameObject)_list[0], (long)_list[1], (Image)_list[2], (int)_list[3], (bool)_list[4])); } if (_nameEvent == EVENT_IMAGES_LOAD_TOXIC_IMAGE) { Image imgContainer = (Image)_list[0]; int heightImage = (int)_list[1]; byte[] dataImage = (byte[])_list[2]; ImageUtils.LoadBytesImage(imgContainer, dataImage, heightImage, MenusScreenController.Instance.SizeHeightAllowedImages); } if (_nameEvent == EVENT_IMAGES_LOAD_PRIORITY_FROM_ID) { m_timeAcumImages = ((GetImageByID((long)_list[1]) != null) ? 1 : 0); m_queuedRequests.Insert(0, new ImageRequestedInfo((GameObject)_list[0], (long)_list[1], (Image)_list[2], (int)_list[3], (bool)_list[4])); } if (_nameEvent == EVENT_IMAGES_LOAD_FROM_BYTE_ARRAY) { ImageUtils.LoadBytesImage((Image)_list[1], (byte[])_list[0], (int)_list[2], MenusScreenController.Instance.SizeHeightAllowedImages); } if (_nameEvent == EVENT_IMAGES_UPLOAD_TO_SERVER_NEW_IMAGE) { byte[] dataImg = (byte[])_list[4]; m_imageTemp = new ImageModel(); m_imageTemp.Table = (string)_list[1]; m_imageTemp.IdOrigin = (long)_list[2]; m_imageTemp.Type = (int)_list[3]; m_imageTemp.Size = dataImg.Length; m_imageTemp.CopyData(dataImg); m_imageTemp.Url = (string)_list[5]; CommsHTTPConstants.UploadImage((long)_list[0], m_imageTemp.Table, m_imageTemp.IdOrigin, m_imageTemp.Type, dataImg, m_imageTemp.Url); } if (_nameEvent == EVENT_IMAGES_UPLOAD_TO_SERVER_CONFIRMATION) { if (_list.Length > 0) { if ((bool)_list[0]) { if (m_imageTemp != null) { m_imageTemp.Id = (long)_list[1]; m_imageTemp.Table = (string)_list[2]; m_imageTemp.IdOrigin = (long)_list[3]; m_images.Add(m_imageTemp.Clone()); m_imageTemp = null; } } } } if (_nameEvent == EVENT_IMAGES_LOAD_SERVER_DATA_RECEIVED) { if (m_imageReferenceTmp != null) { if ((bool)_list[0]) { ImageModel imageNew = new ImageModel(); imageNew.Id = (long)_list[1]; imageNew.Table = (string)_list[2]; imageNew.IdOrigin = (long)_list[3]; imageNew.Type = (int)_list[4]; imageNew.Url = (string)_list[5]; imageNew.Size = (int)_list[6]; imageNew.CopyData((byte[])_list[7]); m_images.Add(imageNew); ImageModel imageModel = GetImageByID(imageNew.Id); if (imageModel != null) { if (m_imageReferenceTmp != null) { if (m_imageReferenceTmp.Image != null) { ImageUtils.LoadBytesImage(m_imageReferenceTmp.Image, imageModel.Data, m_imageReferenceTmp.Height, MenusScreenController.Instance.SizeHeightAllowedImages); UIEventController.Instance.DispatchUIEvent(EVENT_IMAGE_LOADED_REPORT_SYSTEM, m_imageReferenceTmp.Image, imageNew.Url); } } } } } m_imageReferenceTmp = null; } if (_nameEvent == EVENT_IMAGES_LOAD_SERVER_LOCAL_DATA_LOADED) { m_imageReferenceTmp = null; } if (_nameEvent == EVENT_IMAGES_CALL_DELETE_IMAGE) { long idImage = (long)_list[1]; if (idImage != -1) { RemoveImageByID(idImage); CommsHTTPConstants.RemoveImage(idImage); } } if (_nameEvent == EVENT_IMAGES_CANCEL_LOADING_IMAGES) { m_queuedRequests.Clear(); // m_imageReferenceTmp = null; } if (_nameEvent == RequestsController.EVENT_REQUEST_CALL_DELETE_RECORDS) { m_images.Clear(); m_queuedRequests.Clear(); m_imageReferenceTmp = null; } if (_nameEvent == EVENT_IMAGES_LOAD_THUMBNAIL_FILE_BROWSER) { if (m_thumbnailRequests.Count < 50) { m_thumbnailRequests.Add(new ThumbnailRequestedInfo((GUIContent)_list[0], (string)_list[1], m_heightThumbnail)); } } if (_nameEvent == EVENT_IMAGES_CLEAR_THUMBNAIL_CACHE) { for (int i = 0; i < m_thumbnailRequests.Count; i++) { m_thumbnailRequests[i].Destroy(); } m_thumbnailRequests.Clear(); m_counterThumnail = 0; m_timeAcumImages = 0; } }