import
android.os.Bundle;
import
android.view.View;
import
androidx.annotation.NonNull;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.recyclerview.widget.ItemTouchHelper;
import
androidx.recyclerview.widget.LinearLayoutManager;
import
androidx.recyclerview.widget.RecyclerView;
import
com.google.android.material.snackbar.Snackbar;
import
java.util.ArrayList;
public
class
MainActivity
extends
AppCompatActivity {
private
RecyclerView courseRV;
private
ArrayList<RecyclerData> recyclerDataArrayList;
private
RecyclerViewAdapter recyclerViewAdapter;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
courseRV = findViewById(R.id.idRVCourse);
recyclerDataArrayList =
new
ArrayList<>();
recyclerDataArrayList.add(
new
RecyclerData(
"DSA Course"
,
"DSA Self Paced Course"
));
recyclerDataArrayList.add(
new
RecyclerData(
"C++ Course"
,
"C++ Self Paced Course"
));
recyclerDataArrayList.add(
new
RecyclerData(
"Java Course"
,
"Java Self Paced Course"
));
recyclerDataArrayList.add(
new
RecyclerData(
"Python Course"
,
"Python Self Paced Course"
));
recyclerDataArrayList.add(
new
RecyclerData(
"Fork CPP"
,
"Fork CPP Self Paced Course"
));
recyclerDataArrayList.add(
new
RecyclerData(
"Amazon SDE"
,
"Amazon SDE Test Questions"
));
recyclerViewAdapter =
new
RecyclerViewAdapter(recyclerDataArrayList,
this
);
LinearLayoutManager manager =
new
LinearLayoutManager(
this
);
courseRV.setLayoutManager(manager);
courseRV.setAdapter(recyclerViewAdapter);
new
ItemTouchHelper(
new
ItemTouchHelper.SimpleCallback(
0
, ItemTouchHelper.RIGHT) {
@Override
public
boolean
onMove(
@NonNull
RecyclerView recyclerView,
@NonNull
RecyclerView.ViewHolder viewHolder,
@NonNull
RecyclerView.ViewHolder target) {
return
false
;
}
@Override
public
void
onSwiped(
@NonNull
RecyclerView.ViewHolder viewHolder,
int
direction) {
RecyclerData deletedCourse = recyclerDataArrayList.get(viewHolder.getAdapterPosition());
int
position = viewHolder.getAdapterPosition();
recyclerDataArrayList.remove(viewHolder.getAdapterPosition());
recyclerViewAdapter.notifyItemRemoved(viewHolder.getAdapterPosition());
Snackbar.make(courseRV, deletedCourse.getTitle(), Snackbar.LENGTH_LONG).setAction(
"Undo"
,
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
recyclerDataArrayList.add(position, deletedCourse);
recyclerViewAdapter.notifyItemInserted(position);
}
}).show();
}
}).attachToRecyclerView(courseRV);
}
}