//Open Video from Fav private void FavVideosAdapterOnItemClick(object sender, VideoAdapterClickEventArgs e) { try { if (e.Position <= -1) { return; } var item = FavVideosAdapter.GetItem(e.Position); if (item == null) { return; } GlobalContext.StartPlayVideo(item); } catch (Exception exception) { Console.WriteLine(exception); } }
// Replace the contents of a view (invoked by the layout manager) public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { try { Position = position; var item = MainVideoList[Position]; if (item != null) { if (item.Type == ItemType.Category || item.Type == ItemType.TopVideos || item.Type == ItemType.LatestVideos || item.Type == ItemType.FavVideos) { if (viewHolder is MainVideoAdapterViewHolder holder) { if (item.Type == ItemType.Category) { if (CategoryIconAdapter == null) { CategoryIconAdapter = new CategoryIconAdapter(ActivityContext) { CategoryList = new ObservableCollection <Classes.Category>() }; CategoryIconAdapter.ItemClick += CategoryIconAdapterOnItemClick; LinearLayoutManager layoutManager = new LinearLayoutManager(ActivityContext, LinearLayoutManager.Horizontal, false); holder.MRecycler.SetLayoutManager(layoutManager); holder.MRecycler.GetLayoutManager().ItemPrefetchEnabled = true; holder.MRecycler.SetAdapter(CategoryIconAdapter); } if (item.CategoryList.Count > 0) { if (CategoryIconAdapter.CategoryList.Count == 0) { CategoryIconAdapter.CategoryList = new ObservableCollection <Classes.Category>(item.CategoryList); CategoryIconAdapter.NotifyDataSetChanged(); } else if (CategoryIconAdapter.CategoryList != null && CategoryIconAdapter.CategoryList.Count != item.CategoryList.Count) { CategoryIconAdapter.CategoryList = new ObservableCollection <Classes.Category>(item.CategoryList); CategoryIconAdapter.NotifyDataSetChanged(); } } holder.MainLinear.Visibility = ViewStates.Visible; if (!holder.MainLinear.HasOnClickListeners) { holder.MainLinear.Click += CategoryMainLinearOnClick; } holder.MoreText.Visibility = CategoryIconAdapter.CategoryList?.Count >= 5 ? ViewStates.Visible : ViewStates.Invisible; holder.TitleText.Text = ActivityContext.GetText(Resource.String.Lbl_Category); holder.TitleText.SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.ic_cat_vector, 0, 0, 0); } else if (item.Type == ItemType.TopVideos) { if (TopVideosAdapter == null) { TopVideosAdapter = new VideoHorizontalAdapter(ActivityContext, VideoAdapterClickEventArgs.VideoType.TopVideo) { VideoList = new ObservableCollection <VideoObject>() }; TopVideosAdapter.ItemClick += TopVideosAdapterOnItemClick; LinearLayoutManager layoutManager = new LinearLayoutManager(ActivityContext, LinearLayoutManager.Horizontal, false); holder.MRecycler.SetLayoutManager(layoutManager); holder.MRecycler.GetLayoutManager().ItemPrefetchEnabled = true; var sizeProvider = new FixedPreloadSizeProvider(10, 10); var preLoader = new RecyclerViewPreloader <VideoObject>(ActivityContext, TopVideosAdapter, sizeProvider, 10); holder.MRecycler.AddOnScrollListener(preLoader); holder.MRecycler.SetAdapter(TopVideosAdapter); } if (item.TopVideoList.Count > 0) { if (TopVideosAdapter.VideoList.Count == 0) { TopVideosAdapter.VideoList = new ObservableCollection <VideoObject>(item.TopVideoList); TopVideosAdapter.NotifyDataSetChanged(); } else if (TopVideosAdapter.VideoList != null && TopVideosAdapter.VideoList.Count != item.TopVideoList.Count) { TopVideosAdapter.VideoList = new ObservableCollection <VideoObject>(item.TopVideoList); TopVideosAdapter.NotifyDataSetChanged(); } } holder.MainLinear.Visibility = ViewStates.Visible; if (!holder.MainLinear.HasOnClickListeners) { holder.MainLinear.Click += TopVideosMainLinearOnClick; } holder.MoreText.Visibility = TopVideosAdapter.VideoList?.Count >= 5 ? ViewStates.Visible : ViewStates.Invisible; holder.TitleText.Text = ActivityContext.GetText(Resource.String.Lbl_Top_videos); holder.TitleText.SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.ic_bar_chart_vector, 0, 0, 0); } else if (item.Type == ItemType.LatestVideos) { if (LatestVideosAdapter == null) { LatestVideosAdapter = new VideoHorizontalAdapter(ActivityContext, VideoAdapterClickEventArgs.VideoType.TopVideo) { VideoList = new ObservableCollection <VideoObject>() }; LatestVideosAdapter.ItemClick += LatestVideosAdapterOnItemClick; LinearLayoutManager layoutManager = new LinearLayoutManager(ActivityContext, LinearLayoutManager.Horizontal, false); holder.MRecycler.SetLayoutManager(layoutManager); holder.MRecycler.GetLayoutManager().ItemPrefetchEnabled = true; var sizeProvider = new FixedPreloadSizeProvider(10, 10); var preLoader = new RecyclerViewPreloader <VideoObject>(ActivityContext, LatestVideosAdapter, sizeProvider, 10); holder.MRecycler.AddOnScrollListener(preLoader); holder.MRecycler.SetAdapter(LatestVideosAdapter); } if (item.LatestVideoList.Count > 0) { if (LatestVideosAdapter.VideoList.Count == 0) { LatestVideosAdapter.VideoList = new ObservableCollection <VideoObject>(item.LatestVideoList); LatestVideosAdapter.NotifyDataSetChanged(); } else if (LatestVideosAdapter.VideoList != null && LatestVideosAdapter.VideoList.Count != item.LatestVideoList.Count) { LatestVideosAdapter.VideoList = new ObservableCollection <VideoObject>(item.LatestVideoList); LatestVideosAdapter.NotifyDataSetChanged(); } } holder.MainLinear.Visibility = ViewStates.Visible; if (!holder.MainLinear.HasOnClickListeners) { holder.MainLinear.Click += LatestVideosMainLinearOnClick; } holder.MoreText.Visibility = LatestVideosAdapter.VideoList?.Count >= 5 ? ViewStates.Visible : ViewStates.Invisible; holder.TitleText.Text = ActivityContext.GetText(Resource.String.Lbl_Latest_videos); holder.TitleText.SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.ic_video_camera_vector, 0, 0, 0); } else if (item.Type == ItemType.FavVideos) { if (FavVideosAdapter == null) { FavVideosAdapter = new VideoHorizontalAdapter(ActivityContext, VideoAdapterClickEventArgs.VideoType.TopVideo) { VideoList = new ObservableCollection <VideoObject>() }; FavVideosAdapter.ItemClick += FavVideosAdapterOnItemClick; LinearLayoutManager layoutManager = new LinearLayoutManager(ActivityContext, LinearLayoutManager.Horizontal, false); holder.MRecycler.SetLayoutManager(layoutManager); holder.MRecycler.GetLayoutManager().ItemPrefetchEnabled = true; var sizeProvider = new FixedPreloadSizeProvider(10, 10); var preLoader = new RecyclerViewPreloader <VideoObject>(ActivityContext, FavVideosAdapter, sizeProvider, 10); holder.MRecycler.AddOnScrollListener(preLoader); holder.MRecycler.SetAdapter(FavVideosAdapter); } if (item.FavVideoList.Count > 0) { if (FavVideosAdapter.VideoList.Count == 0) { FavVideosAdapter.VideoList = new ObservableCollection <VideoObject>(item.FavVideoList); FavVideosAdapter.NotifyDataSetChanged(); } else if (FavVideosAdapter.VideoList != null && FavVideosAdapter.VideoList.Count != item.FavVideoList.Count) { FavVideosAdapter.VideoList = new ObservableCollection <VideoObject>(item.FavVideoList); FavVideosAdapter.NotifyDataSetChanged(); } } holder.MainLinear.Visibility = ViewStates.Visible; if (!holder.MainLinear.HasOnClickListeners) { holder.MainLinear.Click += FavVideosMainLinearOnClick; } holder.MoreText.Visibility = FavVideosAdapter.VideoList?.Count >= 5 ? ViewStates.Visible : ViewStates.Invisible; holder.TitleText.Text = ActivityContext.GetText(Resource.String.Lbl_Fav_videos); holder.TitleText.SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.ic_star_vector, 0, 0, 0); } } } else if (item.Type == ItemType.OtherVideos) { if (viewHolder is VideoBigAdapterViewHolder videoRow) { GlideImageLoader.LoadImage(ActivityContext, item.VideoData.Thumbnail, videoRow.VideoImage, ImageStyle.CenterCrop, ImagePlaceholders.Drawable); GlideImageLoader.LoadImage(ActivityContext, item.VideoData.Owner.Avatar, videoRow.ChannelImage, ImageStyle.CircleCrop, ImagePlaceholders.Drawable); videoRow.TxtDuration.Text = Methods.FunString.SplitStringDuration(item.VideoData.Duration); videoRow.TxtTitle.Text = Methods.FunString.DecodeString(item.VideoData.Title); videoRow.TxtChannelName.Text = AppTools.GetNameFinal(item.VideoData.Owner); videoRow.TxtViewsCount.Text = Methods.FunString.FormatPriceValue(Convert.ToInt32(item.VideoData.Views)) + " " + ActivityContext.GetText(Resource.String.Lbl_Views); FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, videoRow.MenueView, IonIconsFonts.AndroidMoreVertical); //Verified if (item.VideoData.Owner.Verified == "1") { videoRow.IconVerified.Visibility = ViewStates.Visible; FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, videoRow.IconVerified, IonIconsFonts.CheckmarkCircled); } else { videoRow.IconVerified.Visibility = ViewStates.Gone; } if (!videoRow.MenueView.HasOnClickListeners) { videoRow.MenueView.Click += (sender, args) => { ContextThemeWrapper ctw = new ContextThemeWrapper(ActivityContext, Resource.Style.PopupMenuStyle); PopupMenu popup = new PopupMenu(ctw, videoRow.MenueView); popup.MenuInflater.Inflate(Resource.Menu.Video_More_Menue, popup.Menu); popup.Show(); popup.MenuItemClick += (o, eventArgs) => { try { var id = eventArgs.Item.ItemId; switch (id) { case Resource.Id.menu_AddWatchLater: LibrarySynchronizer.AddToWatchLater(item.VideoData); break; case Resource.Id.menu_AddPlaylist: LibrarySynchronizer.AddToPlaylist(item.VideoData); break; case Resource.Id.menu_Remove: OnMenuRemove_Click(item.VideoData); break; case Resource.Id.menu_Share: LibrarySynchronizer.ShareVideo(item.VideoData); break; case Resource.Id.menu_Report: LibrarySynchronizer.AddReportVideo(item.VideoData); break; } } catch (Exception exception) { Console.WriteLine(exception); } }; } } ; //Set Badge on videos AppTools.ShowGlobalBadgeSystem(videoRow.VideoType, item.VideoData); } } } } catch (Exception exception) { Console.WriteLine(exception); } }