public async Task Load(Repository repo) { Repository = repo; if (!GlobalHelper.IsInternet()) { //Sending NoInternet message to all viewModels Messenger.Default.Send(new GlobalHelper.NoInternetMessageType()); } else { //Sending Internet available message to all viewModels Messenger.Default.Send(new GlobalHelper.HasInternetMessageType()); isLoading = true; if (Repository?.Owner != null) { // Get the image buffer manually to avoid making the HTTP call twice CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(5)); IBuffer buffer = await HTTPHelper.GetBufferFromUrlAsync(Repository.Owner.AvatarUrl, cts.Token); if (buffer != null) { // Load the user image Tuple <ImageSource, ImageSource> images = await ImageHelper.GetImageAndBlurredCopyFromPixelDataAsync(buffer, 256); UserAvatar = images?.Item1; UserBlurredAvatar = images?.Item2; // Calculate the brightness byte brightness = await ImageHelper.CalculateAverageBrightnessAsync(buffer); Messenger.Default.Send(new GlobalHelper.SetBlurredAvatarUIBrightnessMessageType { Brightness = brightness }); } } IsStar = await RepositoryUtility.CheckStarred(Repository); isLoading = false; } }
public static async Task <Tuple <ImageSource, ImageSource> > GetDeveloperAvatarOptionsAsync([NotNull] User user, int blur, CancellationToken token) { IBuffer imageBuffer = await HTTPHelper.GetBufferFromUrlAsync(user.AvatarUrl, token); return(imageBuffer == null ? null : await ImageHelper.GetImageAndBlurredCopyFromPixelDataAsync(imageBuffer, blur)); }