private void SetRecyclerViewAdapters() { try { MAdapter = new MoviesAdapter(this) { MoviesList = new ObservableCollection <GetMoviesObject.Movie>() }; LayoutManager = new LinearLayoutManager(this); MRecycler.SetLayoutManager(LayoutManager); MRecycler.HasFixedSize = true; MRecycler.SetItemViewCacheSize(10); MRecycler.GetLayoutManager().ItemPrefetchEnabled = true; var sizeProvider = new FixedPreloadSizeProvider(10, 10); var preLoader = new RecyclerViewPreloader <GetMoviesObject.Movie>(this, MAdapter, sizeProvider, 10); MRecycler.AddOnScrollListener(preLoader); MRecycler.SetAdapter(MAdapter); RecyclerViewOnScrollListener xamarinRecyclerViewOnScrollListener = new RecyclerViewOnScrollListener(LayoutManager); MainScrollEvent = xamarinRecyclerViewOnScrollListener; MainScrollEvent.LoadMoreEvent += MainScrollEventOnLoadMoreEvent; MRecycler.AddOnScrollListener(xamarinRecyclerViewOnScrollListener); MainScrollEvent.IsLoading = false; } catch (Exception e) { Console.WriteLine(e); } }
//Event Refresh Data Page private void SwipeRefreshLayoutOnRefresh(object sender, EventArgs e) { try { MoviesAdapter.Clear(); Get_MoviesList_API(); } catch (Exception exception) { Crashes.TrackError(exception); } }
public void Get_Data_local() { try { if (MoviesAdapter != null) { if (Classes.ListChachedData_Movie.Count > 0) { MoviesAdapter.mMoviesList = Classes.ListChachedData_Movie; MoviesAdapter.BindEnd(); } } Get_MoviesList_API(); } catch (Exception e) { Crashes.TrackError(e); } }
private void MoviesAdapterOnItemClick(object sender, Movies_AdapterClickEventArgs adapterClickEvents) { try { var position = adapterClickEvents.Position; if (position >= 0) { var item = MoviesAdapter.GetItem(position); if (item != null) { var Int = new Intent(this, typeof(Video_Viewer_Activity)); Int.PutExtra("Viewer_Video", JsonConvert.SerializeObject(item)); Int.PutExtra("VideoId", item.id); StartActivity(Int); } } } catch (Exception e) { Crashes.TrackError(e); } }
private void DestroyBasic() { try { MAdView?.Destroy(); RewardedVideoAd?.OnDestroy(this); MAdapter = null; SwipeRefreshLayout = null; MRecycler = null; EmptyStateLayout = null; Inflated = null; MainScrollEvent = null; BtnFilter = null; CategoryId = null; MAdView = null; RewardedVideoAd = null; } catch (Exception e) { Console.WriteLine(e); } }
private void DestroyBasic() { try { MAdView?.Destroy(); RewardedVideoAd?.OnDestroy(this); MAdapter = null !; SwipeRefreshLayout = null !; MRecycler = null !; EmptyStateLayout = null !; Inflated = null !; MainScrollEvent = null !; BtnFilter = null !; CategoryId = null !; MAdView = null !; RewardedVideoAd = null !; } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }
//Get Data Movies Using Api public async void Get_MoviesList_API(string offset = "") { try { if (!IMethods.CheckConnectivity()) { RunOnUiThread(() => { swipeRefreshLayout.Refreshing = false; }); Toast.MakeText(this, GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short) .Show(); } else { var(api_status, respond) = await Client.Movies.Get_Movies("10", offset); if (api_status == 200) { if (respond is Get_Movies_Object result) { RunOnUiThread(() => { if (result.movies.Length <= 0) { if (swipeRefreshLayout.Refreshing) { swipeRefreshLayout.Refreshing = false; } } else if (result.movies.Length > 0) { if (MoviesAdapter.mMoviesList.Count > 0) { //Bring new users var listnew = result.movies.Where(c => !MoviesAdapter.mMoviesList.Select(fc => fc.id).Contains(c.id)).ToList(); if (listnew.Count > 0) { Classes.AddRange(MoviesAdapter.mMoviesList, listnew); } } else { MoviesAdapter.mMoviesList = new ObservableCollection <Get_Movies_Object.Movie>(result.movies); MoviesAdapter.BindEnd(); } } }); } } else if (api_status == 400) { if (respond is Error_Object error) { var errorText = error._errors.Error_text; //Toast.MakeText(this, errortext, ToastLength.Short).Show(); if (errorText.Contains("Invalid or expired access_token")) { API_Request.Logout(this); } } } else if (api_status == 404) { var error = respond.ToString(); //Toast.MakeText(this, error, ToastLength.Short).Show(); } } //Show Empty Page >> //=============================================================== RunOnUiThread(() => { if (MoviesAdapter.mMoviesList.Count > 0) { MoviesRecyler.Visibility = ViewStates.Visible; Movies_Empty.Visibility = ViewStates.Gone; } else { MoviesRecyler.Visibility = ViewStates.Gone; Movies_Empty.Visibility = ViewStates.Visible; } swipeRefreshLayout.Refreshing = false; //Set Event Scroll if (OnMainScrolEvent == null) { var xamarinRecyclerViewOnScrollListener = new XamarinRecyclerViewOnScrollListener(mLayoutManager, swipeRefreshLayout); OnMainScrolEvent = xamarinRecyclerViewOnScrollListener; OnMainScrolEvent.LoadMoreEvent += Movies_OnScroll_OnLoadMoreEvent; MoviesRecyler.AddOnScrollListener(OnMainScrolEvent); MoviesRecyler.AddOnScrollListener(new ScrollDownDetector()); } else { OnMainScrolEvent.IsLoading = false; } }); } catch (Exception e) { Crashes.TrackError(e); Get_MoviesList_API(offset); } }