HomeFragment.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package club.thepenguins.android.fragments;
  2. import android.os.Bundle;
  3. import androidx.fragment.app.Fragment;
  4. import androidx.recyclerview.widget.LinearLayoutManager;
  5. import androidx.recyclerview.widget.RecyclerView;
  6. import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
  7. import android.util.Log;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. import club.thepenguins.android.R;
  14. import club.thepenguins.android.adapters.PostRecyclerAdapter;
  15. import club.thepenguins.android.api.APIService;
  16. import club.thepenguins.android.data.Model;
  17. import club.thepenguins.android.data.Posts;
  18. import club.thepenguins.android.utils.Constants;
  19. import retrofit2.Call;
  20. import retrofit2.Callback;
  21. import retrofit2.Response;
  22. import retrofit2.Retrofit;
  23. import retrofit2.converter.gson.GsonConverterFactory;
  24. public class HomeFragment extends Fragment {
  25. private static final String ARG_PARAM1 = "param1";
  26. private static final String ARG_PARAM2 = "param2";
  27. private String mParam1;
  28. private String mParam2;
  29. private RecyclerView recyclerView;
  30. private LinearLayoutManager LayoutManager;
  31. private ArrayList<Model> list;
  32. private PostRecyclerAdapter adapter;
  33. public static List<Posts> mListPost;
  34. private SwipeRefreshLayout swipeContainer;
  35. public static HomeFragment newInstance(String param1, String param2) {
  36. HomeFragment fragment = new HomeFragment();
  37. Bundle args = new Bundle();
  38. args.putString(ARG_PARAM1, param1);
  39. args.putString(ARG_PARAM2, param2);
  40. fragment.setArguments(args);
  41. return fragment;
  42. }
  43. public HomeFragment() {
  44. // Required empty public constructor
  45. }
  46. @Override
  47. public void onCreate(Bundle savedInstanceState) {
  48. super.onCreate(savedInstanceState);
  49. if (getArguments() != null) {
  50. mParam1 = getArguments().getString(ARG_PARAM1);
  51. mParam2 = getArguments().getString(ARG_PARAM2);
  52. }
  53. }
  54. @Override
  55. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  56. Bundle savedInstanceState) {
  57. View rootView = inflater.inflate(R.layout.fragment_home, container, false);
  58. getActivity().setTitle("Choose Fragment");
  59. recyclerView = rootView.findViewById(R.id.recycler_view);
  60. LayoutManager = new LinearLayoutManager(rootView.getContext(), LinearLayoutManager.VERTICAL, false);
  61. recyclerView.setLayoutManager(LayoutManager);
  62. swipeContainer = rootView.findViewById(R.id.swiperefresh);
  63. list = new ArrayList<>();
  64. getRetrofit();
  65. adapter = new PostRecyclerAdapter(list, rootView.getContext());
  66. recyclerView.setAdapter(adapter);
  67. swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  68. @Override
  69. public void onRefresh() {
  70. adapter.clear();
  71. getRetrofit();
  72. }
  73. });
  74. swipeContainer.setColorSchemeResources(android.R.color.holo_blue_bright,
  75. android.R.color.holo_green_light,
  76. android.R.color.holo_orange_light,
  77. android.R.color.holo_red_light);
  78. return rootView;
  79. }
  80. private void getRetrofit() {
  81. swipeContainer.setRefreshing(true);
  82. Retrofit retrofit = new Retrofit.Builder()
  83. .baseUrl(Constants.BaseUrl)
  84. .addConverterFactory(GsonConverterFactory.create())
  85. .build();
  86. APIService service = retrofit.create(APIService.class);
  87. Call<List<Posts>> call = service.getPosts();
  88. call.enqueue(new Callback<List<Posts>>() {
  89. @Override
  90. public void onResponse(Call<List<Posts>> call, Response<List<Posts>> response) {
  91. mListPost = response.body();
  92. for (int i = 0; i < response.body().size(); i++) {
  93. list.add(new Model(response.body().get(i).getTitle().getRendered(), response.body().get(i).getContent().getRendered(), response.body().get(i).getEmbedded().getWpFeaturedmedia().get(0).getSourceUrl(), response.body().get(i).getContent().getRendered(), response.body().get(i).getEmbedded().getAuthor().get(0).getName()));
  94. Log.d("Home", "onResponse: " + response.body().get(i).getEmbedded().getWpFeaturedmedia().get(0).getSourceUrl());
  95. }
  96. adapter.notifyDataSetChanged();
  97. swipeContainer.setRefreshing(false);
  98. }
  99. @Override
  100. public void onFailure(Call<List<Posts>> call, Throwable t) {
  101. Log.d("Home", "onFailure: ", t);
  102. }
  103. });
  104. }
  105. }