Search in sources :

Example 1 with NewsFeedResponse

use of in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse in project IITB-App by wncc.

the class FeedFragment method updateFeed.

private void updateFeed() {
    RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class);
    retrofitInterface.getNewsFeed("sessionid=" + getArguments().getString(SESSION_ID)).enqueue(new Callback<NewsFeedResponse>() {

        @Override
        public void onResponse(Call<NewsFeedResponse> call, Response<NewsFeedResponse> response) {
            if (response.isSuccessful()) {
                NewsFeedResponse newsFeedResponse = response.body();
                final List<Event> events = newsFeedResponse.getEvents();
                FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() {

                    @Override
                    public void onItemClick(View v, int position) {
                        String eventJson = new Gson().toJson(events.get(position));
                        Bundle bundle = new Bundle();
                        bundle.putString(Constants.EVENT_JSON, eventJson);
                        EventFragment eventFragment = new EventFragment();
                        eventFragment.setArguments(bundle);
                        FragmentManager manager = getActivity().getSupportFragmentManager();
                        FragmentTransaction transaction = manager.beginTransaction();
                        transaction.replace(R.id.framelayout_for_fragment, eventFragment, eventFragment.getTag());
                        transaction.commit();
                    }
                });
                feedRecyclerView = (RecyclerView) getActivity().findViewById(R.id.feed_recycler_view);
                feedRecyclerView.setAdapter(feedAdapter);
                feedRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
                appDatabase.dbDao().deleteEvents();
                appDatabase.dbDao().insertEvents(events);
                // Server Error
                feedSwipeRefreshLayout.setRefreshing(false);
            }
        }

        @Override
        public void onFailure(Call<NewsFeedResponse> call, Throwable t) {
            // Network Error
            feedSwipeRefreshLayout.setRefreshing(false);
        }
    });
}
Also used : ItemClickListener(in.ac.iitb.gymkhana.iitbapp.ItemClickListener) Bundle(android.os.Bundle) Gson(com.google.gson.Gson) FeedAdapter(in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) FragmentManager(android.support.v4.app.FragmentManager) FragmentTransaction(android.support.v4.app.FragmentTransaction) NewsFeedResponse(in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse) ArrayList(java.util.ArrayList) List(java.util.List) RecyclerView(android.support.v7.widget.RecyclerView) RetrofitInterface(in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface)

Aggregations

Bundle (android.os.Bundle)1 FragmentManager (android.support.v4.app.FragmentManager)1 FragmentTransaction (android.support.v4.app.FragmentTransaction)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 RecyclerView (android.support.v7.widget.RecyclerView)1 View (android.view.View)1 Gson (com.google.gson.Gson)1 ItemClickListener (in.ac.iitb.gymkhana.iitbapp.ItemClickListener)1 FeedAdapter (in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter)1 RetrofitInterface (in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface)1 NewsFeedResponse (in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1