package
com.gtappdevelopers.kotlingfgproject
import
android.os.Bundle
import
android.view.View
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.ItemTouchHelper
import
androidx.recyclerview.widget.RecyclerView
import
com.google.android.material.snackbar.Snackbar
class
MainActivity : AppCompatActivity() {
lateinit var courseRV: RecyclerView
lateinit var courseRVAdapter: CourseRVAdapter
lateinit var courseList: ArrayList<CourseRVModal>
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
courseRV = findViewById(R.id.idRVCourses)
courseList = ArrayList()
courseRVAdapter = CourseRVAdapter(courseList,
this
)
courseRV.adapter = courseRVAdapter
courseList.add(CourseRVModal(
"Android Development"
, R.drawable.android))
courseList.add(CourseRVModal(
"C++ Development"
, R.drawable.c))
courseList.add(CourseRVModal(
"Java Development"
, R.drawable.java))
courseList.add(CourseRVModal(
"Python Development"
, R.drawable.python))
courseList.add(CourseRVModal(
"JavaScript Development"
, R.drawable.js))
courseRVAdapter.notifyDataSetChanged()
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(
0
, ItemTouchHelper.RIGHT) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean {
return
false
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
val deletedCourse: CourseRVModal =
courseList.get(viewHolder.adapterPosition)
val position = viewHolder.adapterPosition
courseList.removeAt(viewHolder.adapterPosition)
courseRVAdapter.notifyItemRemoved(viewHolder.adapterPosition)
Snackbar.make(courseRV,
"Deleted "
+ deletedCourse.courseName, Snackbar.LENGTH_LONG)
.setAction(
"Undo"
,
View.OnClickListener {
courseList.add(position, deletedCourse)
courseRVAdapter.notifyItemInserted(position)
}).show()
}
}).attachToRecyclerView(courseRV)
}
}