nurzain-pradana

Untitled

Apr 13th, 2020
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. package com.nurzainpradana.androidfundamental.submission3moviecatalogueapi.ui.movies;
  2.  
  3. import android.content.Intent;
  4. import android.content.res.TypedArray;
  5. import android.os.Bundle;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.ProgressBar;
  10. import android.widget.Toast;
  11.  
  12. import androidx.annotation.NonNull;
  13. import androidx.annotation.Nullable;
  14. import androidx.fragment.app.Fragment;
  15. import androidx.lifecycle.Observer;
  16. import androidx.lifecycle.ViewModelProvider;
  17. import androidx.recyclerview.widget.LinearLayoutManager;
  18. import androidx.recyclerview.widget.RecyclerView;
  19.  
  20. import com.loopj.android.http.AsyncHttpClient;
  21. import com.loopj.android.http.AsyncHttpResponseHandler;
  22. import com.nurzainpradana.androidfundamental.submission3moviecatalogueapi.R;
  23.  
  24. import org.json.JSONArray;
  25. import org.json.JSONObject;
  26.  
  27. import java.util.ArrayList;
  28.  
  29. import cz.msebera.android.httpclient.Header;
  30.  
  31. public class MoviesFragment extends Fragment {
  32.  
  33. private RecyclerView rvMovies;
  34. private ArrayList<Movie> listMovie = new ArrayList<>();
  35. private CardViewMovieAdapter adapter;
  36.  
  37. private ProgressBar progressBar;
  38.  
  39. private MovieViewModel movieViewModel;
  40.  
  41.  
  42. public View onCreateView(@NonNull LayoutInflater inflater,
  43. ViewGroup container, Bundle savedInstanceState) {
  44. View root = inflater.inflate(R.layout.fragment_movies, container, false);
  45. return root;
  46. }
  47.  
  48. @Override
  49. public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
  50. super.onViewCreated(view, savedInstanceState);
  51. progressBar = view.findViewById(R.id.progressBar);
  52. rvMovies = view.findViewById(R.id.rv_movies);
  53. rvMovies.setHasFixedSize(true);
  54.  
  55. movieViewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(MovieViewModel.class);
  56.  
  57. movieViewModel.getMovies().observe(this.getViewLifecycleOwner(), new Observer<ArrayList<Movie>>() {
  58. @Override
  59. public void onChanged(ArrayList<Movie> movies) {
  60. if (adapter != null) {
  61. adapter.setData(movies);
  62. showLoading(false);
  63. }
  64. }
  65. });
  66. showRecyclerCardView();
  67. }
  68.  
  69. private void showRecyclerCardView() {
  70. rvMovies.setLayoutManager(new LinearLayoutManager(getContext()));
  71. final CardViewMovieAdapter cardViewMovieAdapter = new CardViewMovieAdapter(listMovie);
  72. rvMovies.setAdapter(cardViewMovieAdapter);
  73.  
  74. cardViewMovieAdapter.setOnItemClickCallback(new CardViewMovieAdapter.OnItemClickCallback() {
  75. @Override
  76. public void onItemClicked(Movie data) {
  77. showSelectedMovie(data);
  78.  
  79. Intent gotoDetailMovie = new Intent(getContext(), DetailMovieAct.class);
  80. Movie mMovie = new Movie();
  81. mMovie.setMovieTitle(data.getMovieTitle());
  82. mMovie.setMoviePoster(data.getMoviePoster());
  83. mMovie.setMovieYear(data.getMovieYear());
  84. mMovie.setMovieGenre(data.getMovieGenre());
  85. mMovie.setMovieDescription(data.getMovieDescription());
  86. gotoDetailMovie.putExtra(DetailMovieAct.EXTRA_MOVIE, mMovie);
  87. startActivity(gotoDetailMovie);
  88.  
  89. }
  90. });
  91.  
  92. }
  93. public void showSelectedMovie(Movie movie){
  94. Toast.makeText(getContext(), "Kamu memilih " + movie.getMovieTitle(), Toast.LENGTH_SHORT).show();
  95. }
  96.  
  97. private void showLoading(Boolean state) {
  98. if(state) {
  99. progressBar.setVisibility(View.VISIBLE);
  100. } else {
  101. progressBar.setVisibility(View.GONE);
  102. }
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment