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; }
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); } }