Esempio n. 1
0
 public override int GetItemViewType(int position)
 {
     try
     {
         NativeFeedType type = GetPostType(PixelNewsFeedList[position]);
         return((int)type);
     }
     catch (Exception exception)
     {
         Console.WriteLine(exception);
         return(0);
     }
 }
Esempio n. 2
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);
            }
        }