Advertisement
joris

HomeFragment

Jul 5th, 2016
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.05 KB | None | 0 0
  1. package page;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.os.Handler;
  6. import android.support.v4.app.Fragment;
  7. import android.support.v4.widget.SwipeRefreshLayout;
  8. import android.support.v7.widget.LinearLayoutManager;
  9. import android.support.v7.widget.RecyclerView;
  10. import android.util.Log;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14. import android.widget.Toast;
  15.  
  16. import com.transvision.bertho.transvisiondashboardapp.R;
  17.  
  18. import java.util.ArrayList;
  19. import java.util.List;
  20.  
  21. import adapter.ChannelAdapter;
  22. import butterknife.Bind;
  23. import butterknife.ButterKnife;
  24. import model.Channel;
  25. import model.ChannelResponse;
  26. import rest.ApiClient;
  27. import rest.ApiInterface;
  28. import retrofit2.Call;
  29. import retrofit2.Callback;
  30. import retrofit2.Response;
  31.  
  32.  
  33. public class HomeFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
  34.  
  35.     @Bind(R.id.movies_recycler_view) RecyclerView recyclerView;
  36.     @Bind(R.id.swipe_layout) SwipeRefreshLayout swipeRefreshLayout;
  37.  
  38.     private static final String TAG = HomeFragment.class.getSimpleName();
  39.  
  40.     private ChannelAdapter adapter;
  41.     List<Channel> listChannel;
  42.  
  43.     @Override
  44.     public void onCreate(Bundle savedInstanceState) {
  45.         super.onCreate(savedInstanceState);
  46.     }
  47.  
  48.     @Override
  49.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  50.  
  51.         View rootView = inflater.inflate(R.layout.fragment_home, container, false);
  52.         ButterKnife.bind(this, rootView);
  53.  
  54.         listChannel = new ArrayList<>();
  55.  
  56.         setUpSwipeLayout();
  57.         setUpAdapter();
  58.         setUpRecyclerview();
  59.  
  60.         new Handler().postDelayed(new Runnable() {
  61.             @Override
  62.             public void run() {
  63.                 load();
  64.             }
  65.         }, 500);
  66.  
  67.         return rootView;
  68.     }
  69.  
  70.     protected void setUpSwipeLayout()
  71.     {
  72.         swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary, R.color.colorAccent);
  73.         swipeRefreshLayout.setOnRefreshListener(this);
  74.     }
  75.  
  76.     private void setUpAdapter(){
  77.         if(adapter == null){
  78.             adapter = new ChannelAdapter(listChannel, R.layout.list_channel, getActivity());
  79.         }
  80.     }
  81.  
  82.     private void setUpRecyclerview(){
  83.         recyclerView.clearOnScrollListeners();
  84.         recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
  85.         recyclerView.setAdapter(adapter);
  86.     }
  87.  
  88.     private void load(){
  89.         swipeRefreshLayout.setRefreshing(true);
  90.         ApiInterface apiService = ApiClient.getChannel().create(ApiInterface.class);
  91.         Call<ChannelResponse> call = apiService.getItems();
  92.  
  93.         call.enqueue(new Callback<ChannelResponse>() {
  94.             @Override
  95.             public void onResponse(Call<ChannelResponse> call, Response<ChannelResponse> response) {
  96.  
  97.                 listChannel = response.body().getItems();
  98.                 adapter = new ChannelAdapter(listChannel, R.layout.list_channel, getActivity());
  99.                 recyclerView.setAdapter(adapter);
  100.                 recyclerView.clearOnScrollListeners();
  101.                 recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
  102.                 adapter.notifyDataSetChanged();
  103.  
  104.                 Log.e(TAG, "CONNECTION SUCCESS");
  105.                 swipeRefreshLayout.setRefreshing(false);
  106.             }
  107.  
  108.             @Override
  109.             public void onFailure(Call<ChannelResponse> call, Throwable t) {
  110.                 Log.e(TAG, t.toString());
  111.                 showToast("CONNECTION ERROR");
  112.                 swipeRefreshLayout.setRefreshing(false);
  113.             }
  114.         });
  115.     }
  116.  
  117.     @Override
  118.     public void onAttach(Activity activity) {
  119.         super.onAttach(activity);
  120.     }
  121.  
  122.     @Override
  123.     public void onDetach() {
  124.         super.onDetach();
  125.     }
  126.  
  127.     public void showToast(String output){
  128.         Toast.makeText(getActivity(), output, Toast.LENGTH_SHORT).show();
  129.     }
  130.  
  131.     @Override
  132.     public void onRefresh() {
  133.         load();
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement