From 4d4ddb50ac07d29150d827c75c9c748120e7b360 Mon Sep 17 00:00:00 2001 From: klaus Date: Wed, 13 Sep 2023 14:31:06 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=A1=9C=EB=94=A9=20=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/message/text/TextMessageViewModel.kt | 14 +++++++++----- .../message/voice/VoiceMessageViewModel.kt | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageViewModel.kt index dec8d68..86e7f1b 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageViewModel.kt @@ -27,7 +27,7 @@ class TextMessageViewModel(private val repository: MessageRepository) : BaseView var page = 1 var pageSize = 10 - private var totalCount = 0 + private var isLast = false private var _isLoading = MutableLiveData(false) val isLoading: LiveData @@ -35,6 +35,7 @@ class TextMessageViewModel(private val repository: MessageRepository) : BaseView fun selectMessageBox(messageBox: MessageBox) { if (messageBox != _messageBoxLiveData.value!!) { + isLast = false page = 1 _messageBoxLiveData.postValue(messageBox) getMessages(messageBox) @@ -42,7 +43,7 @@ class TextMessageViewModel(private val repository: MessageRepository) : BaseView } fun getMessages(messageBox: MessageBox = _messageBoxLiveData.value!!) { - if (!_isLoading.value!! && (page - 1 == 0 || totalCount > page * pageSize)) { + if (!_isLoading.value!! && !isLast) { _isLoading.postValue(true) val messageBoxObservable = when (messageBox) { @@ -78,10 +79,13 @@ class TextMessageViewModel(private val repository: MessageRepository) : BaseView .subscribe( { if (it.success && it.data != null) { - totalCount = it.data.totalCount - _getMessagesLiveData.postValue(it.data.items) - page += 1 + if (it.data.items.isNotEmpty()) { + _getMessagesLiveData.postValue(it.data.items) + } else { + isLast = true + _getMessagesLiveData.postValue(listOf()) + } } else { if (it.message != null) { _toastLiveData.postValue(it.message) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/message/voice/VoiceMessageViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/message/voice/VoiceMessageViewModel.kt index cfe9cae..3a298b8 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/message/voice/VoiceMessageViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/message/voice/VoiceMessageViewModel.kt @@ -27,7 +27,7 @@ class VoiceMessageViewModel(private val repository: MessageRepository) : BaseVie var page = 1 var pageSize = 10 - private var totalCount = 0 + private var isLast = false private var _isLoading = MutableLiveData(false) val isLoading: LiveData @@ -35,6 +35,7 @@ class VoiceMessageViewModel(private val repository: MessageRepository) : BaseVie fun selectMessageBox(messageBox: MessageBox) { if (messageBox != _messageBoxLiveData.value!!) { + isLast = false page = 1 _messageBoxLiveData.postValue(messageBox) getMessages(messageBox) @@ -42,7 +43,7 @@ class VoiceMessageViewModel(private val repository: MessageRepository) : BaseVie } fun getMessages(messageBox: MessageBox = _messageBoxLiveData.value!!) { - if (!_isLoading.value!! && (page - 1 == 0 || totalCount > page * pageSize)) { + if (!_isLoading.value!! && !isLast) { _isLoading.postValue(true) val messageBoxObservable = when (messageBox) { MessageBox.SENT -> { @@ -77,10 +78,13 @@ class VoiceMessageViewModel(private val repository: MessageRepository) : BaseVie .subscribe( { if (it.success && it.data != null) { - totalCount = it.data.totalCount - _getMessagesLiveData.postValue(it.data.items) - page += 1 + if (it.data.items.isNotEmpty()) { + _getMessagesLiveData.postValue(it.data.items) + } else { + isLast = true + _getMessagesLiveData.postValue(listOf()) + } } else { if (it.message != null) { _toastLiveData.postValue(it.message)