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;
            }
        }
Beispiel #2
0
        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));
        }