//Get Search Api public async void GetSearch_Result(string key, string user_offset = "") { try { if (!IMethods.CheckConnectivity()) { Toast.MakeText(this, GetString(Resource.String.Lbl_Error_check_internet_connection), ToastLength.Short).Show(); } else { RunOnUiThread(() => { if (user_offset == "") { swipeRefreshLayout.Refreshing = true; swipeRefreshLayout.Enabled = true; } }); var(api_status, respond) = await Global.Get_Search(UserDetails.User_id, key, "35", user_offset, "", "", Filter_gender); if (api_status == 200) { if (respond is GetSearchObject result) { if (result.Users.Count <= 0 && result.Groups.Count <= 0 && result.Pages.Count <= 0) { return; } RunOnUiThread(() => { //Add result users //*===========================================* if (result.Users.Count > 0 && result.Users.Count != 0) { if (mAdapter.mSearchUserList.Count <= 0) { mAdapter.mSearchUserList = new ObservableCollection <GetSearchObject.User>(result.Users); mAdapter.BindEnd(); } else { //Bring new item var listNew = result.Users?.Where(c => !mAdapter.mSearchUserList.Select(fc => fc.UserId).Contains(c.UserId)).ToList(); if (listNew.Count > 0) { var lastCountItem = mAdapter.ItemCount; //Results differ Classes.AddRange(mAdapter.mSearchUserList, listNew); mAdapter.NotifyItemRangeInserted(lastCountItem, listNew.Count); } } } }); } } else if (api_status == 400) { if (respond is ErrorObject error) { var errorText = error._errors.Error_text; if (errorText.Contains("Invalid or expired access_token")) { API_Request.Logout(this); } } } else if (api_status == 404) { var error = respond.ToString(); } RunOnUiThread(() => { //Show Empty Page //=========================================== if (mAdapter.mSearchUserList.Count > 0) { SearchRecyler.Visibility = ViewStates.Visible; OnlineSearch_Empty.Visibility = ViewStates.Gone; } else { SearchRecyler.Visibility = ViewStates.Gone; OnlineSearch_Empty.Visibility = ViewStates.Visible; } //Set Event Scroll >> Users if (User_OnMainScrolEvent == null) { var xamarinRecyclerViewOnScrollListener = new XamarinRecyclerViewOnScrollListener(mLayoutManager); User_OnMainScrolEvent = xamarinRecyclerViewOnScrollListener; User_OnMainScrolEvent.LoadMoreEvent += LastUsers_OnScroll_OnLoadMoreEvent; SearchRecyler.AddOnScrollListener(User_OnMainScrolEvent); SearchRecyler.AddOnScrollListener(new ScrollDownDetector()); } else { User_OnMainScrolEvent.IsLoading = false; } _SearchView.ClearFocus(); swipeRefreshLayout.Refreshing = false; }); } RunOnUiThread(() => { swipeRefreshLayout.Refreshing = false; }); } catch (Exception exception) { Console.WriteLine(exception); GetSearch_Result(search_key, LastUserid); RunOnUiThread(() => { swipeRefreshLayout.Refreshing = false; if (mAdapter.mSearchUserList.Count > 0) { SearchRecyler.Visibility = ViewStates.Visible; OnlineSearch_Empty.Visibility = ViewStates.Gone; } else { SearchRecyler.Visibility = ViewStates.Gone; OnlineSearch_Empty.Visibility = ViewStates.Visible; } }); } }