Это то, что я сделал в конце концов.
Я создал свой собственный класс MoveHistory, который расширяет MutableLiveData и выполняю действия над этим. Я добавил к нему методы, которые я использую (addFirst и pollFirst), а затем переназначил значение самому себе, как предложено Luksprog
Это класс, которым я закончил:
class MoveHistory(): Serializable, MutableLiveData<ArrayDeque<Move>>(){
init {
value = ArrayDeque<Move>()
}
fun addFirst(move: Move) {
value?.addFirst(move)
value = value
}
fun pollFirst(): Move {
var move = value?.pollFirst()
value = value
return move!!
}
}
Теперь все, что мне нужно сделать, это зарегистрировать моего наблюдателя в экземпляре этого класса и использовать методы для добавления и удаления.