Example #1
0
        private async Task LoadDataAsync(string offset = "0")
        {
            if (MainScrollEvent.IsLoading)
            {
                return;
            }

            if (Methods.CheckConnectivity())
            {
                MainScrollEvent.IsLoading = true;
                int countList;
                AdminVideoResponseModel response;
                if (VideoEnum == ResponsesEnum.FollowingResponses)
                {
                    countList = adpater.FollowingResponses.Count;
                    response  = await UserResponseAPI.GetFollowingResponseVideos();
                }
                else
                {
                    countList = adpater.ForYouResponses.Count;
                    response  = await UserResponseAPI.GetForYouResponseVideos();
                }

                if (VideoEnum == ResponsesEnum.FollowingResponses)
                {
                    var videoList   = response.VideoResponse.ToList();
                    var respondList = videoList.Count;
                    if (respondList > 0)
                    {
                        if (countList > 0)
                        {
                            foreach (var item in from item in videoList let check = adpater.FollowingResponses.FirstOrDefault(a => a.VideoId == item.VideoId) where check == null select item)
                            {
                                adpater.FollowingResponses.Add(item);
                            }

                            Activity.RunOnUiThread(() => { adpater.NotifyItemRangeInserted(countList, adpater.FollowingResponses.Count - countList); });
                        }
                        else
                        {
                            adpater.FollowingResponses = new ObservableCollection <AdminVideoResponse>(response.VideoResponse);
                            Activity.RunOnUiThread(() => { adpater.NotifyDataSetChanged(); });
                        }
                    }
                    else
                    {
                        if (((VideoEnum == ResponsesEnum.FollowingResponses && adpater.FollowingResponses.Count > 10) || (VideoEnum == ResponsesEnum.ForYouResponses && adpater.ForYouResponses.Count > 10)) && !recyclerViewUserSettigs.CanScrollVertically(1))
                        {
                            Toast.MakeText(Context, Context.GetText(Resource.String.Lbl_NoMoreVideos), ToastLength.Short).Show();
                        }
                    }
                }
                else
                {
                    var videoList   = response.VideoResponse.ToList();
                    var respondList = videoList.Count;
                    if (respondList > 0)
                    {
                        if (countList > 0)
                        {
                            foreach (var item in from item in videoList let check = adpater.ForYouResponses.FirstOrDefault(a => a.VideoId == item.VideoId) where check == null select item)
                            {
                                adpater.ForYouResponses.Add(item);
                            }

                            Activity.RunOnUiThread(() => { adpater.NotifyItemRangeInserted(countList, adpater.ForYouResponses.Count - countList); });
                        }
                        else
                        {
                            adpater.ForYouResponses = new ObservableCollection <AdminVideoResponse>(response.VideoResponse);
                            Activity.RunOnUiThread(() => { adpater.NotifyDataSetChanged(); });
                        }
                    }
                    else
                    {
                        if (((VideoEnum == ResponsesEnum.FollowingResponses && adpater.FollowingResponses.Count > 10) || (VideoEnum == ResponsesEnum.ForYouResponses && adpater.ForYouResponses.Count > 10)) && !recyclerViewUserSettigs.CanScrollVertically(1))
                        {
                            Toast.MakeText(Context, Context.GetText(Resource.String.Lbl_NoMoreVideos), ToastLength.Short).Show();
                        }
                    }
                }

                Activity.RunOnUiThread(ShowEmptyPage);
            }
            else
            {
                Inflated = EmptyStateLayout.Inflate();
                EmptyStateInflater x = new EmptyStateInflater();
                x.InflateLayout(Inflated, EmptyStateInflater.Type.NoConnection);
                if (!x.EmptyStateButton.HasOnClickListeners)
                {
                    x.EmptyStateButton.Click += null;
                    x.EmptyStateButton.Click += EmptyStateButtonOnClick;
                }

                Toast.MakeText(Context, Context.GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short).Show();
            }
            MainScrollEvent.IsLoading = false;
        }