package it.bz.its.angelhack.threedudes.hikingbuddy.activities; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ViewSwitcher; import it.bz.its.angelhack.threedudes.hikingbuddy.R; import it.bz.its.angelhack.threedudes.hikingbuddy.Utils; import it.bz.its.angelhack.threedudes.hikingbuddy.adapters.ActivitiesAdapter; import it.bz.its.angelhack.threedudes.hikingbuddy.models.ActivitiesResponse; import it.bz.its.angelhack.threedudes.hikingbuddy.services.ActivityService; import it.bz.its.angelhack.threedudes.hikingbuddy.widget.DividerDecoration; import retrofit.Callback; import retrofit.RestAdapter; import retrofit.RetrofitError; import retrofit.client.Response; /** * Created by philipgiuliani on 17.05.15. */ public class ActivitiesFragment extends Fragment implements Callback<ActivitiesResponse>, SwipeRefreshLayout.OnRefreshListener { private ViewSwitcher viewSwitcher; private RecyclerView recyclerView; private ActivitiesAdapter adapter; private SwipeRefreshLayout swipeRefreshLayout; private ActivityService api; public ActivitiesFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_activities, container, false); viewSwitcher = (ViewSwitcher) v.findViewById(R.id.viewSwitcher); recyclerView = (RecyclerView) v.findViewById(R.id.recyclerView); swipeRefreshLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipeRefreshLayout); swipeRefreshLayout.setOnRefreshListener(this); adapter = new ActivitiesAdapter(getActivity()); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerView.setAdapter(adapter); recyclerView.addItemDecoration(new DividerDecoration(getActivity()).setPaddingLeft(getResources().getDimensionPixelSize(R.dimen.list_image_padding))); RestAdapter restAdapter = Utils.getRestAdapter(getActivity()); api = restAdapter.create(ActivityService.class); api.getActivities(this); return v; } @Override public void success(ActivitiesResponse activitiesResponse, Response response) { swipeRefreshLayout.setRefreshing(false); adapter.setActivities(activitiesResponse.getActivities()); if(viewSwitcher.getNextView() == swipeRefreshLayout) { viewSwitcher.showNext(); } } @Override public void failure(RetrofitError error) { swipeRefreshLayout.setRefreshing(false); Log.d("ERROR", error.getMessage()); } @Override public void onRefresh() { api.getActivities(this); } }