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