Обновление UI с помощью LiveData (обновление ссылки)

Есть фрагмент с RecyclerView. При нажатии на кнопку удаления элемента (в элементе списка) или при добавлении элемента, нужно автоматически обновить список (перезаписать). Опытным путём определил, что LiveData основывается на ссылках, а не значениях. И обновление произойдёт только после создания новой ссылки. На сколько корректно использовать такое решение для аналогичных задач и есть ли более лаконичное решение?

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    viewModel.listOfPhotoUri.observe(viewLifecycleOwner) {
        photoAdapter.updateData(it.toList())
    }
}
// ViewModel

fun addUri(uri: Uri) {
    _listOfPhotoUri.value?.add(uri)
    rewriteLiveData()
}

fun removeUri(uri: Uri) {
    _listOfPhotoUri.value?.remove(uri)
    rewriteLiveData()
}

private fun rewriteLiveData(): MutableSet<Uri> {
    val newValue = _listOfPhotoUri.value
    _listOfPhotoUri.value?.let {
        _listOfPhotoUri.value = it
    }
    return newValue ?: mutableSetOf()
}

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