private async Task <Bitmap> GetImage(String url) { Bitmap bitmap = CachingUtil.GetBitmapFromCacheByUrl(url, Context); if (bitmap != null) { return(bitmap); } try { var request = WebRequest.Create(url); var resp = await request.GetResponseAsync() .ConfigureAwait(continueOnCapturedContext: false); var stream = resp.GetResponseStream(); bitmap = BitmapFactory.DecodeStream(stream); bitmap = ScaleImage(bitmap, Resources.DisplayMetrics); bitmap = CropImage(bitmap); bitmap = MakeImageRound(bitmap); CachingUtil.PutBitmapToCacheByUrl(url, bitmap, Context); return(bitmap); } catch (Exception ex) { var log = ServiceContainer.Resolve <ILogger> (); log.Debug(LogTag, ex, "Failed to get user profile image."); return(null); } }
public async Task UpdateCacheAsync() { var urlApi = "https://coronavirus-tracker-api.herokuapp.com/all"; CachingUtil.ClearCacheOlderThan("covid-all", 1); if (!CacheFilename.IsFileCacheExist()) { Log.Information("Getting information from {UrlApi}", urlApi); var covidAll = await urlApi.GetJsonAsync <CovidAll>(); await covidAll.WriteCacheAsync(CacheFilename); } else { Log.Information("Covid Cache has updated."); } }