Advertisement
SatyaRacerare

ListFavMovActivity

Sep 15th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.47 KB | None | 0 0
  1. package com.example.submission4madegdk2019.activity;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import androidx.recyclerview.widget.LinearLayoutManager;
  5. import androidx.recyclerview.widget.RecyclerView;
  6.  
  7. import android.content.Intent;
  8. import android.os.AsyncTask;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.widget.ProgressBar;
  12.  
  13. import com.example.submission4madegdk2019.LoadMovFavCallbac;
  14. import com.example.submission4madegdk2019.R;
  15. import com.example.submission4madegdk2019.adapter.MoviesFavAdapter;
  16. import com.example.submission4madegdk2019.db.MovieFavHelper;
  17. import com.example.submission4madegdk2019.model.MovieFav;
  18. import com.google.android.material.snackbar.Snackbar;
  19.  
  20. import java.lang.ref.WeakReference;
  21. import java.util.ArrayList;
  22.  
  23. import static com.example.submission4madegdk2019.activity.DetailMovieFavoriteActivity.REQUEST_UPDATE;
  24.  
  25. public class ListFavMovActivity extends AppCompatActivity implements View.OnClickListener, LoadMovFavCallbac {
  26.  
  27.     private static final String SEND_MOVIE = "send_movie";
  28.     private MovieFavHelper movieFavHelper;
  29.     private RecyclerView rvMovFav;
  30.     private ProgressBar progressBar;
  31.     private MoviesFavAdapter moviesFavAdapter;
  32.  
  33.     @Override
  34.     protected void onCreate(Bundle savedInstanceState) {
  35.         super.onCreate(savedInstanceState);
  36.         setContentView(R.layout.activity_list_fav_mov);
  37.  
  38.         movieFavHelper = MovieFavHelper.getInstance(getApplicationContext());
  39.         movieFavHelper.open();
  40.  
  41.         rvMovFav = findViewById(R.id.rv_movie_favorite);
  42.         rvMovFav.setLayoutManager(new LinearLayoutManager(this));
  43.         rvMovFav.setHasFixedSize(true);
  44.  
  45.         moviesFavAdapter = new MoviesFavAdapter(this);
  46.         progressBar = findViewById(R.id.progress_Bar);
  47.         rvMovFav.setAdapter(moviesFavAdapter);
  48.  
  49.         if (savedInstanceState == null) {
  50.             new LoadMovAsync(movieFavHelper, this).execute();
  51.         } else {
  52.             ArrayList<MovieFav> movieFavArrayList = savedInstanceState.getParcelableArrayList(SEND_MOVIE);
  53.             if (movieFavArrayList != null) {
  54.                 moviesFavAdapter.setMovieFavList(movieFavArrayList);
  55.             }
  56.         }
  57.     }
  58.  
  59.  
  60.     @Override
  61.     public void onClick(View v) {
  62.  
  63.     }
  64.  
  65.     @Override
  66.     public void preExecute() {
  67.         runOnUiThread(new Runnable() {
  68.             @Override
  69.             public void run() {
  70.                 progressBar.setVisibility(View.VISIBLE);
  71.             }
  72.         });
  73.  
  74.     }
  75.  
  76.     @Override
  77.     public void posExecute(ArrayList<MovieFav> movieFav) {
  78.         progressBar.setVisibility(View.INVISIBLE);
  79.         moviesFavAdapter.setMovieFavList(movieFav);
  80.     }
  81.  
  82.  
  83.     private static class LoadMovAsync
  84.             extends AsyncTask<Void, Void, ArrayList<MovieFav>> {
  85.  
  86.         private final WeakReference<MovieFavHelper> weakReference;
  87.         private final WeakReference<LoadMovFavCallbac> weakCallback;
  88.  
  89.         private LoadMovAsync(MovieFavHelper movieFavHelper, LoadMovFavCallbac callback) {
  90.             weakReference = new WeakReference<>(movieFavHelper);
  91.             weakCallback = new WeakReference<>(callback);
  92.         }
  93.  
  94.         @Override
  95.         protected ArrayList<MovieFav> doInBackground(Void... voids) {
  96.  
  97.             return weakReference.get().getAllMoviesFav();
  98.         }
  99.         @Override
  100.         protected void onPreExecute(){
  101.             super.onPreExecute();
  102.             weakCallback.get().preExecute();
  103.         }
  104.         @Override
  105.         protected void onPostExecute(ArrayList<MovieFav> movieFavs){
  106.             super.onPostExecute(movieFavs);
  107.             weakCallback.get().posExecute(movieFavs);
  108.         }
  109.     }
  110.     @Override
  111.     protected void onDestroy(){
  112.         super.onDestroy();
  113.         movieFavHelper.close();
  114.     }
  115.     @Override
  116.     protected  void onActivityResult(int reqcode, int rescode, Intent intent){
  117.         super.onActivityResult(reqcode,rescode, intent);
  118.         if (intent != null){
  119.             if (reqcode == REQUEST_UPDATE) {
  120.                 if (rescode == DetailMovieFavoriteActivity.RESULT_DELETE){
  121.                     int pos = intent.getIntExtra(DetailMovieFavoriteActivity.SEND_MOVIE, 0);
  122.                     moviesFavAdapter.removeItem(pos);
  123.                     showSnackbarMessage(getString(R.string.notify_delete_mov));
  124.                 }
  125.             }
  126.         }
  127.     }
  128.     private void showSnackbarMessage(String message){
  129.         Snackbar.make(rvMovFav, message, Snackbar.LENGTH_SHORT).show();
  130.     }
  131.  
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement