public override void OnRegister() { PersistView.Initialize(); Person = new Person(); PersistView.InputSignal.AddListener(ProcessInput); LoadedSignal.AddListener(Loaded); }
public override void Execute() { Retain(); var errorMsg = ""; ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); }; Observable.Start(() => { if (CacheService.Exist(ImgUrl)) { return(CacheService.Get(ImgUrl)); } var hasError = false; var currentTryCount = 0; byte[] result = null; while (currentTryCount < MaxLoadTryCount) { currentTryCount++; try { var loader = new WebClient(); result = loader.DownloadData(ImgUrl); hasError = false; break; } catch (Exception e) { errorMsg = e.Message; hasError = true; } } if (hasError) { return(null); } CacheService.Save(ImgUrl, result); return(result); }).ObserveOnMainThread().Subscribe(data => { if (data != null) { var tex = new Texture2D(2, 2); tex.LoadImage(data); LoadedSignal.Dispatch(new AsyncImageData() { url = ImgUrl, texture = tex }); } else { Debug.LogError(errorMsg); LoadErrorSignal.Dispatch(); } }); }
public override void OnRemove() { PersistView.InputSignal.RemoveListener(ProcessInput); LoadedSignal.RemoveListener(Loaded); }