Example #1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            try
            {
                base.OnCreate(savedInstanceState);

                IMethods.IApp.FullScreenApp(this);

                var view = MyContextWrapper.GetContentView(this, Settings.Lang, Resource.Layout.Gif_Layout);
                if (view != null)
                {
                    SetContentView(view);
                }
                else
                {
                    SetContentView(Resource.Layout.Gif_Layout);
                }

                ToolBar = FindViewById <Toolbar>(Resource.Id.toolbar);
                if (ToolBar != null)
                {
                    ToolBar.Title = GetText(Resource.String.Lbl_SelectGif);

                    SetSupportActionBar(ToolBar);
                    SupportActionBar.SetDisplayShowCustomEnabled(true);
                    SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                    SupportActionBar.SetHomeButtonEnabled(true);
                    SupportActionBar.SetDisplayShowHomeEnabled(true);
                }

                GifRecylerView = FindViewById <RecyclerView>(Resource.Id.Recyler);
                GifAdapter     = new GifAdapter(this);
                MLayoutManager = new GridLayoutManager(this, 2);
                GifRecylerView.SetLayoutManager(MLayoutManager);
                GifRecylerView.AddItemDecoration(new GridSpacingItemDecoration(1, 2, true));

                swipeRefreshLayout            = FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout);
                swipeRefreshLayout.Refreshing = true;
                swipeRefreshLayout.Enabled    = true;
                swipeRefreshLayout.SetColorSchemeResources(Android.Resource.Color.HoloBlueLight,
                                                           Android.Resource.Color.HoloGreenLight, Android.Resource.Color.HoloOrangeLight,
                                                           Android.Resource.Color.HoloRedLight);

                search_key = "angry";
                Get_GifData_Api(search_key);
            }
            catch (Exception e)
            {
                Crashes.TrackError(e);
            }
        }
        public async void Get_GifData_Api(string key, string offset = "")
        {
            try
            {
                if (!IMethods.CheckConnectivity())
                {
                    Toast.MakeText(this, GetString(Resource.String.Lbl_Error_check_internet_connection), ToastLength.Short).Show();
                }
                else
                {
                    if (offset == "")
                    {
                        RunOnUiThread(() => { GifAdapter.Clear(); });
                    }

                    var result = await API_Request.Search_Gifs_Web(key, offset);

                    if (result.Count > 0)
                    {
                        RunOnUiThread(() =>
                        {
                            if (GifAdapter.GifList.Count == 0)
                            {
                                GifAdapter.GifList = new ObservableCollection <GifGiphyClass.Datum>(result);
                                GifRecylerView.SetAdapter(GifAdapter);
                            }
                            else
                            {
                                //Bring new item
                                var listnew = result?.Where(c => !GifAdapter.GifList.Select(fc => fc.id).Contains(c.id)).ToList();
                                if (listnew.Count > 0)
                                {
                                    var lastCountItem = GifAdapter.ItemCount;

                                    //Results differ
                                    Classes.AddRange(GifAdapter.GifList, listnew);
                                    GifAdapter.NotifyItemRangeInserted(lastCountItem, listnew.Count);
                                }
                            }

                            swipeRefreshLayout.Refreshing = false;

                            //Set Event Scroll
                            if (OnMainScrolEvent == null)
                            {
                                var xamarinRecyclerViewOnScrollListener =
                                    new XamarinRecyclerViewOnScrollListener(MLayoutManager, swipeRefreshLayout);
                                OnMainScrolEvent = xamarinRecyclerViewOnScrollListener;
                                OnMainScrolEvent.LoadMoreEvent += Gif_OnScroll_OnLoadMoreEvent;
                                GifRecylerView.AddOnScrollListener(OnMainScrolEvent);
                                GifRecylerView.AddOnScrollListener(new ScrollDownDetector());
                            }
                            else
                            {
                                OnMainScrolEvent.IsLoading = false;
                            }
                        });
                    }
                }

                if (swipeRefreshLayout.Refreshing)
                {
                    swipeRefreshLayout.Refreshing = false;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Get_GifData_Api(search_key, offset);
            }
        }