Beispiel #1
0
 public UserElement(string username, string firstName, string lastName, GitHubAvatar avatar)
     : base(username, string.Empty, UITableViewCellStyle.Subtitle)
 {
     var realName = firstName ?? "" + " " + (lastName ?? "");
      if (!string.IsNullOrWhiteSpace(realName))
         Value = realName;
     Accessory = UITableViewCellAccessory.DisclosureIndicator;
     Image = Images.Avatar;
     ImageUri = avatar.ToUri(64);
 }
        public static void SetAvatar(this UIImageView @this, GitHubAvatar avatar, int? size = 64)
        {
            @this.Image = Images.LoginUserUnknown;

            if (avatar == null)
                return;

            var avatarUri = avatar.ToUri(size);
            if (avatarUri != null)
            {
                @this.SetImage(new NSUrl(avatarUri.AbsoluteUri), Images.LoginUserUnknown, (img, err, type, imageUrl) => {
                    if (img == null || err != null)
                        return;
                    
                    if (type == SDImageCacheType.None)
                    {
                        @this.Image = Images.LoginUserUnknown;
                        @this.BeginInvokeOnMainThread(() =>
                            UIView.Transition(@this, 0.4f, UIViewAnimationOptions.TransitionCrossDissolve, () => @this.Image = img, null));
                    }
                });
            }
        }
        public void UpdatedImage(Uri uri)
        {
            if (uri == null)
                AssignUnknownUserImage();
            else
            {
                // Wipe out old avatars
                var avatar = new GitHubAvatar(uri);
                var avatarSizes = new [] { avatar.ToUri(), avatar.ToUri(64) };
                foreach (var avatarUrl in avatarSizes.Select(x => new NSUrl(x.AbsoluteUri)) )
                {
                    var cacheKey = SDWebImageManager.SharedManager.CacheKey(avatarUrl);
                    if (cacheKey != null)
                        SDWebImageManager.SharedManager.ImageCache.RemoveImage(cacheKey);
                }

                _imgView.SetImage(new NSUrl(uri.AbsoluteUri), Images.LoginUserUnknown, (img, err, cache, _) => {
                    _imgView.Image = Images.LoginUserUnknown;
                    UIView.Transition(_imgView, 0.25f, UIViewAnimationOptions.TransitionCrossDissolve, () => _imgView.Image = img, null);
                });
            }
        }
        public void Bind(string name, string name2, string name3, string description, string repoOwner, GitHubAvatar imageUrl)
        {
            Caption.Text = name;
            Label1.Text = name2;
            Label3.Text = name3;
            Description.Hidden = description == null;
            Description.Text = description ?? string.Empty;

            RepoName.Hidden = repoOwner == null;
            UserImage.Hidden = RepoName.Hidden;
            RepoName.Text = repoOwner ?? string.Empty;

            BigImage.Image = Images.Avatar;

            try
            {
                var uri = imageUrl.ToUri(64)?.AbsoluteUri;
                if (uri != null)
                    BigImage.SetImage(new NSUrl(uri), Images.Avatar);
            }
            catch
            {
            }
        }