Удаление элемента из RecyclerView(RoomDatabase)

У меня есть RecyclerView, в нем элементы с кнопкой, по нажатию на неё, элемент удаляется. При нажатии срабатывает эта часть кода:

val db = Room.databaseBuilder(context, RoomDatabase::class.java, "test").allowMainThreadQueries().build()
val testDao = db.dataDAO()

holder.delete.setOnClickListener {

     testDao.delete(Model(model[position].position))
     notifyItemRemoved(position)

     Toast.makeText(context, "delete" + model[position].position, Toast.LENGTH_SHORT).show()
}

Возникла проблема, элемент удаляется но в конце списка дублируется новый элемент, а при пере заходе в приложение список становиться таким каким должен быть, то есть без того удалённого элемента и без дублирования, я не понимаю из-за чего это происходи, пожалуйста помогите исправить код.

введите сюда описание изображения

Мой адаптер

class AdapterRoomDatabase(private val model: List<Model>, val context: Context) : RecyclerView.Adapter<AdapterRoomDatabase.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val binding = ItemLayoutBinding.inflate(LayoutInflater.from(parent.context), parent, false)
        return ViewHolder(binding)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bind(model[position])
        
        val db = Room.databaseBuilder(context, RoomDatabase::class.java, "test").allowMainThreadQueries().build()
        val testDao = db.dataDAO()
        
        holder.delete.setOnClickListener {

            testDao.delete(Model(model[position].position))
            notifyItemRemoved(position)

            Toast.makeText(context, "delete" + model[position].position, Toast.LENGTH_SHORT).show()
        }
    }

    override fun getItemCount(): Int {
        return model.size
    }

    inner class ViewHolder(private val binding: ItemLayoutBinding) : RecyclerView.ViewHolder(binding.root) {

        lateinit var delete: CardView

        fun bind(note: Model) {
            delete = itemView.findViewById(R.id.delete)
            with(binding) {
                position.text = note.position.toString()
                id.text = note.id
                name.text = note.name
            }
        }
    }
}

Ответы (0 шт):