public override int GetItemViewType(int position) { try { NativeFeedType type = GetPostType(PixelNewsFeedList[position]); return((int)type); } catch (Exception exception) { Console.WriteLine(exception); return(0); } }
// Replace the contents of a view (invoked by the layout manager) public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { try { if (viewHolder is UserPostAdapterViewHolder holder) { PostsObject item = PostList[position]; if (item != null) { item.Mp4 = Methods.FunString.StringNullRemover(item.Mp4); NativeFeedType type = NewsFeedAdapter.GetPostType(item); if (type == NativeFeedType.Video) { FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, holder.PlayIcon, IonIconsFonts.Play); if (holder.PlayIcon.Visibility != ViewStates.Visible) { holder.PlayIcon.Visibility = ViewStates.Visible; } FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, holder.TypeIcon, IonIconsFonts.Videocamera); if (holder.TypeIcon.Visibility != ViewStates.Visible) { holder.TypeIcon.Visibility = ViewStates.Visible; } } else if (type == NativeFeedType.Gif) { holder.TypeIcon.Text = ActivityContext.GetText(Resource.String.Lbl_Gif); FontUtils.SetFont(holder.TypeIcon, Fonts.SfSemibold); if (holder.TypeIcon.Visibility != ViewStates.Visible) { holder.TypeIcon.Visibility = ViewStates.Visible; } } else if (type == NativeFeedType.Youtube) { FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, holder.PlayIcon, IonIconsFonts.Play); if (holder.PlayIcon.Visibility != ViewStates.Visible) { holder.PlayIcon.Visibility = ViewStates.Visible; } FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, holder.TypeIcon, IonIconsFonts.SocialYoutube); if (holder.TypeIcon.Visibility != ViewStates.Visible) { holder.TypeIcon.Visibility = ViewStates.Visible; } } if (string.IsNullOrEmpty(item.MediaSet[0]?.Extra)) { item.MediaSet[0].Extra = item.MediaSet[0]?.File; } if (type == NativeFeedType.Video) { if (!string.IsNullOrEmpty(item.MediaSet[0]?.Extra)) { FullGlideRequestBuilder.Load(item.MediaSet[0]?.Extra).Into(holder.Image); } else { var fileName = item.MediaSet[0].File.Split('/').Last(); var fileNameWithoutExtension = fileName.Split('.').First(); item.MediaSet[0].Extra = Methods.Path.FolderDcimImage + "/" + fileNameWithoutExtension + ".png"; var vidoePlaceHolderImage = Methods.MultiMedia.GetMediaFrom_Gallery(Methods.Path.FolderDcimImage, fileNameWithoutExtension + ".png"); if (vidoePlaceHolderImage == "File Dont Exists") { var bitmapImage = Methods.MultiMedia.Retrieve_VideoFrame_AsBitmap(ActivityContext, item.MediaSet[0]?.File); if (bitmapImage != null) { Methods.MultiMedia.Export_Bitmap_As_Image(bitmapImage, fileNameWithoutExtension, Methods.Path.FolderDcimImage); FullGlideRequestBuilder.Load(bitmapImage).Into(holder.Image); } else { Glide.With(ActivityContext) .AsBitmap() .Apply(new RequestOptions().Placeholder(Resource.Drawable.blackdefault).Error(Resource.Drawable.blackdefault)) .Load(item.MediaSet[0]?.File) // or URI/path .Into(holder.Image); //image view to set thumbnail to } } else { FullGlideRequestBuilder.Load(vidoePlaceHolderImage).Into(holder.Image); } } } else { FullGlideRequestBuilder.Load(!string.IsNullOrEmpty(item.MediaSet[0].Extra) ? item.MediaSet[0].Extra : item.MediaSet[0].File).Into(holder.Image); //GlideImageLoader.LoadImage(ActivityContext, !string.IsNullOrEmpty(item.MediaSet[0].Extra) ? item.MediaSet[0].Extra : item.MediaSet[0].File, holder.Image, ImageStyle.CenterCrop, ImagePlaceholders.Color); } } } } catch (Exception exception) { Console.WriteLine(exception); } }