//Event Refresh Data Page private void MyProducts_SwipeRefreshLayoutOnRefresh(object sender, EventArgs e) { try { MMyProductsAdapter.Clear(); Get_MyDataMarket_Api(); } catch (Exception exception) { Crashes.TrackError(exception); } }
public void Get_Data_local() { try { if (MMyProductsAdapter != null) { if (Classes.ListChachedData_MyProduct.Count > 0) { MMyProductsAdapter.MyProductsList = Classes.ListChachedData_MyProduct; MMyProductsAdapter.BindEnd(); } } Get_MyDataMarket_Api(); } catch (Exception e) { Crashes.TrackError(e); } }
//Event Go to see data Product >> Open ProductView_Activity private void MMyProductsAdapter_OnItemClick(object sender, MyProducts_AdapterClickEventArgs adapterClickEvents) { try { var Position = adapterClickEvents.Position; if (Position >= 0) { var item = MMyProductsAdapter.GetItem(Position); if (item != null) { var Int = new Intent(Context, typeof(ProductView_Activity)); Int.PutExtra("ProductView", JsonConvert.SerializeObject(item)); StartActivity(Int); } } } catch (Exception e) { Crashes.TrackError(e); } }
//Get Data Market Using API >> My Products public async void Get_MyDataMarket_Api(string offset = "") { try { if (!IMethods.CheckConnectivity()) { Toast.MakeText(Activity, Activity.GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short).Show(); } else { var(Api_status, Respond) = await Client.Market.Get_Products(UserDetails.User_id, "35", offset); if (Api_status == 200) { if (Respond is Get_Products_Object result) { Activity.RunOnUiThread(() => { if (result.products.Length <= 0) { if (swipeRefreshLayout.Refreshing) { swipeRefreshLayout.Refreshing = false; } } else if (result.products.Length > 0) { if (MMyProductsAdapter.MyProductsList.Count <= 0) { MMyProductsAdapter.MyProductsList = new ObservableCollection <Get_Products_Object.Product>(result.products); MMyProductsAdapter.BindEnd(); var animation = AnimationUtils.LoadAnimation(Activity, Resource.Animation.slideUpAnim); MainRecyclerView.StartAnimation(animation); } else { //Bring new item var listnew = result.products?.Where(c => !MMyProductsAdapter.MyProductsList.Select(fc => fc.id).Contains(c.id)) .ToList(); if (listnew.Count > 0) { var lastCountItem = MMyProductsAdapter.ItemCount; //Results differ Classes.AddRange(MMyProductsAdapter.MyProductsList, listnew); MMyProductsAdapter.NotifyItemRangeInserted(lastCountItem, listnew.Count); } if (swipeRefreshLayout.Refreshing) { swipeRefreshLayout.Refreshing = false; } } } }); } } else if (Api_status == 400) { if (Respond is Error_Object error) { var errortext = error._errors.Error_text; //Toast.MakeText(this.Activity, errortext, ToastLength.Short).Show(); if (errortext.Contains("Invalid or expired access_token")) { API_Request.Logout(Activity); } } } else if (Api_status == 404) { var error = Respond.ToString(); //Toast.MakeText(this.Activity, error, ToastLength.Short).Show(); } } //Show Empty Page >> //=============================================================== Activity.RunOnUiThread(() => { if (MMyProductsAdapter.MyProductsList.Count > 0) { if (MainRecyclerView.Visibility == ViewStates.Gone) { MainRecyclerView.Visibility = ViewStates.Visible; } if (MyProducts_Empty.Visibility == ViewStates.Visible) { MyProducts_Empty.Visibility = ViewStates.Gone; } } else { MainRecyclerView.Visibility = ViewStates.Gone; MyProducts_Empty.Visibility = ViewStates.Visible; } swipeRefreshLayout.Refreshing = false; //Set Event Scroll if (MarketMyProductScrolEvent == null) { var xamarinRecyclerViewOnScrollListener = new XamarinRecyclerViewOnScrollListener(mLayoutManager, swipeRefreshLayout); MarketMyProductScrolEvent = xamarinRecyclerViewOnScrollListener; MarketMyProductScrolEvent.LoadMoreEvent += MyProductsOnScroll_OnLoadMoreEvent; MainRecyclerView.AddOnScrollListener(MarketMyProductScrolEvent); MainRecyclerView.AddOnScrollListener(new ScrollDownDetector()); } else { MarketMyProductScrolEvent.IsLoading = false; } }); } catch (Exception e) { Crashes.TrackError(e); Get_MyDataMarket_Api(offset); } }