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

            if (Methods.CheckConnectivity())
            {
                MainScrollEventHotOrNot.IsLoading = true;

                int countList = HotOrNotUserAdapter.UsersDateList.Count;
                var(apiStatus, respond) = await RequestsAsync.Users.HotOrNotAsync(UserDetails.Gender, "30", offset);

                if (apiStatus != 200 || !(respond is ListUsersObject result) || result.Data == null)
                {
                    Methods.DisplayReportResult(Activity, respond);
                }
                else
                {
                    var respondList = result.Data.Count;
                    if (respondList > 0)
                    {
                        foreach (var item in from item in result.Data let check = HotOrNotUserAdapter.UsersDateList.FirstOrDefault(a => a.Id == item.Id) where check == null select item)
                        {
                            HotOrNotUserAdapter.UsersDateList.Add(item);
                        }

                        if (countList > 0)
                        {
                            Activity.RunOnUiThread(() => HotOrNotUserAdapter.NotifyItemRangeInserted(countList - 1, HotOrNotUserAdapter.UsersDateList.Count - countList));
                        }
                        else
                        {
                            Activity.RunOnUiThread(() => HotOrNotUserAdapter.NotifyDataSetChanged());
                        }
                    }
                    else
                    {
                        if (HotOrNotUserAdapter.UsersDateList.Count > 10 && !RecylerHotOrNot.CanScrollVertically(1))
                        {
                            Toast.MakeText(Context, Context.GetText(Resource.String.Lbl_NoMoreUsers), ToastLength.Short).Show();
                        }
                    }
                }

                Activity.RunOnUiThread(() =>
                {
                    try
                    {
                        if (HotOrNotUserAdapter?.UsersDateList?.Count > 0)
                        {
                            RecylerHotOrNot.Visibility  = ViewStates.Visible;
                            HotOrNotLinear.Visibility   = ViewStates.Visible;
                            EmptyStateLayout.Visibility = ViewStates.Gone;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                });
                MainScrollEventHotOrNot.IsLoading = false;
            }
            else
            {
                Toast.MakeText(Context, Context.GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short).Show();
            }

            MainScrollEventHotOrNot.IsLoading = false;
        }
Example #2
0
        private void SetRecyclerViewAdapters()
        {
            try
            {
                if (AppSettings.ShowUsersAsCards)
                {
                    GridLayoutManager mLayoutManager = new GridLayoutManager(Activity, 2);
                    NearByRecyclerView.SetLayoutManager(mLayoutManager);
                    CardDateAdapter2 = new CardAdapter2(Activity);
                    NearByRecyclerView.SetAdapter(CardDateAdapter2);
                    CardDateAdapter2.OnItemClick += CardDateAdapter2_OnItemClick;

                    if (MainScrollEvent != null)
                    {
                        return;
                    }
                    MainScrollEvent = new RecyclerViewOnScrollListener(mLayoutManager);
                    NearByRecyclerView.AddOnScrollListener(MainScrollEvent);
                    MainScrollEvent.LoadMoreEvent += SeconderScrollEventOnLoadMoreEvent;
                }
                else
                {
                    StaggeredGridLayoutManager nearByLayoutManager = new StaggeredGridLayoutManager(3, LinearLayoutManager.Vertical);
                    NearByRecyclerView.SetLayoutManager(nearByLayoutManager);
                    NearByAdapter              = new NearByAdapter(Activity);
                    NearByAdapter.OnItemClick += NearByAdapterOnItemClick;
                    NearByRecyclerView.SetAdapter(NearByAdapter);

                    RecyclerViewOnScrollListener xamarinRecyclerViewOnScrollListener = new RecyclerViewOnScrollListener(nearByLayoutManager, 3);
                    MainScrollEvent = xamarinRecyclerViewOnScrollListener;
                    MainScrollEvent.LoadMoreEvent += SeconderScrollEventOnLoadMoreEvent;
                    NearByRecyclerView.AddOnScrollListener(xamarinRecyclerViewOnScrollListener);
                    MainScrollEvent.IsLoading = false;
                }

                //=======================================================

                //Pro Recycler View
                ProUserAdapter              = new ProUserAdapter(Activity);
                ProUserAdapter.OnItemClick += ProUserAdapterOnItemClick;

                ProRecyclerView.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false));
                ProRecyclerView.SetItemViewCacheSize(20);
                ProRecyclerView.HasFixedSize           = true;
                ProRecyclerView.NestedScrollingEnabled = false;
                ProRecyclerView.GetLayoutManager().ItemPrefetchEnabled = true;
                var sizeProviderPro = new FixedPreloadSizeProvider(10, 10);
                var preLoaderPro    = new RecyclerViewPreloader <UserInfoObject>(Activity, ProUserAdapter, sizeProviderPro, 10);
                ProRecyclerView.AddOnScrollListener(preLoaderPro);
                ProRecyclerView.SetAdapter(ProUserAdapter);

                //=======================================================

                //Hot Or Not Recycler View
                HotOrNotUserAdapter = new HotOrNotUserAdapter(Activity)
                {
                    UsersDateList = new ObservableCollection <UserInfoObject>()
                };
                HotOrNotUserAdapter.HotItemClick   += MAdapterOnHotItemClick;
                HotOrNotUserAdapter.NotItemClick   += MAdapterOnNotItemClick;
                HotOrNotUserAdapter.ImageItemClick += MAdapterOnImageItemClick;


                LayoutManager = new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false);
                RecylerHotOrNot.SetLayoutManager(LayoutManager);
                //RecylerHotOrNot.SetItemViewCacheSize(20);
                //RecylerHotOrNot.HasFixedSize = true;
                //RecylerHotOrNot.GetLayoutManager().ItemPrefetchEnabled = true;
                RecylerHotOrNot.NestedScrollingEnabled = false;
                //var sizeProviderPro2 = new FixedPreloadSizeProvider(10, 10);
                //var preLoaderPro2 = new RecyclerViewPreloader<UserInfoObject>(Activity, HotOrNotUserAdapter, sizeProviderPro2, 10);
                //RecylerHotOrNot.AddOnScrollListener(preLoaderPro2);
                RecylerHotOrNot.SetAdapter(HotOrNotUserAdapter);

                RecyclerViewOnScrollListener xamarinRecyclerViewOnScrollListenerHotOrNot = new RecyclerViewOnScrollListener(LayoutManager);
                MainScrollEventHotOrNot = xamarinRecyclerViewOnScrollListenerHotOrNot;
                MainScrollEventHotOrNot.LoadMoreEvent += MainScrollEventHotOrNotOnLoadMoreEvent;
                RecylerHotOrNot.AddOnScrollListener(xamarinRecyclerViewOnScrollListenerHotOrNot);
                MainScrollEventHotOrNot.IsLoading = false;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }