Как правильно обрабатывать салфетки для удаления и отмены?

#android #kotlin #android-recyclerview #itemtouchhelper

#Android #kotlin #android-recyclerview #itemtouchhelper

Вопрос:

Я реализую отмену для удаления, когда элемент прокрутки из представления recycler.

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

Это означает, что между моментом, когда пользователь ударил элемент из списка, и моментом, когда элемент был фактически удален из базы данных, проходит короткое время.

В то время у меня все еще был красный фон и значок из метода onChildDraw, он исчез только тогда, когда элемент был фактически удален.

Я добавляю скриншот, который проясняет проблему:

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

Как я могу решить эту проблему?

  private fun showUndoSnackbar(
        position: Int,
        itemToDelete: Article
    ) {
        val snackbar =
            Snackbar.make(binding.root, "Item was removed from the list", Snackbar.LENGTH_LONG)
        snackbar.setAction("UNDO") {
            uiCommunicationListener.onResponseReceived("Undo action", UIComponentType.Toast)
            recyclerViewAdapter.notifyItemChanged(position)
        }
        snackbar.addCallback(object : Snackbar.Callback() {
            override fun onDismissed(transientBottomBar: Snackbar?, event: Int) {
                if (event == DISMISS_EVENT_TIMEOUT) {
                    viewModel.delete(itemToDelete)
                }
            }
        })
        snackbar.show()
    }