Merge pull request #4738 from nextcloud/bugfix/4701/avoidUninitializedInternalConvId

init other data earlier than ConversationModel
This commit is contained in:
Sowjanya Kota 2025-02-18 15:50:00 +01:00 committed by GitHub
commit 8d7ce9fc5e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 26 additions and 16 deletions

View File

@ -440,10 +440,17 @@ class ChatActivity :
conversationUser = currentUserProvider.currentUser.blockingGet()
handleIntent(intent)
messageInputFragment = getMessageInputFragment()
chatViewModel = ViewModelProvider(this, viewModelFactory)[ChatViewModel::class.java]
val urlForChatting = ApiUtils.getUrlForChat(chatApiVersion, conversationUser?.baseUrl, roomToken)
val credentials = ApiUtils.getCredentials(conversationUser!!.username, conversationUser!!.token)
chatViewModel.initData(
credentials!!,
urlForChatting,
roomToken
)
messageInputFragment = getMessageInputFragment()
messageInputViewModel = ViewModelProvider(this, viewModelFactory)[MessageInputViewModel::class.java]
messageInputViewModel.setData(chatViewModel.getChatRepository())
@ -576,14 +583,8 @@ class ChatActivity :
chatViewModel.getConversationFlow
.onEach { conversationModel ->
currentConversation = conversationModel
val urlForChatting = ApiUtils.getUrlForChat(chatApiVersion, conversationUser?.baseUrl, roomToken)
val credentials = ApiUtils.getCredentials(conversationUser!!.username, conversationUser!!.token)
chatViewModel.setData(
currentConversation!!,
credentials!!,
urlForChatting
chatViewModel.updateConversation(
currentConversation!!
)
logConversationInfos("GetRoomSuccessState")

View File

@ -44,7 +44,9 @@ interface ChatMessageRepository : LifecycleAwareManager {
val removeMessageFlow: Flow<ChatMessage>
fun setData(conversationModel: ConversationModel, credentials: String, urlForChatting: String)
fun initData(credentials: String, urlForChatting: String, roomToken: String)
fun updateConversation(conversationModel: ConversationModel)
fun initScopeAndLoadInitialMessages(withNetworkParams: Bundle)

View File

@ -118,11 +118,14 @@ class OfflineFirstChatRepository @Inject constructor(
private lateinit var credentials: String
private lateinit var urlForChatting: String
override fun setData(conversationModel: ConversationModel, credentials: String, urlForChatting: String) {
this.conversationModel = conversationModel
override fun initData(credentials: String, urlForChatting: String, roomToken: String) {
internalConversationId = currentUser.id.toString() + "@" + roomToken
this.credentials = credentials
this.urlForChatting = urlForChatting
internalConversationId = conversationModel.internalId
}
override fun updateConversation(conversationModel: ConversationModel) {
this.conversationModel = conversationModel
}
override fun initScopeAndLoadInitialMessages(withNetworkParams: Bundle) {

View File

@ -243,8 +243,12 @@ class ChatViewModel @Inject constructor(
val reactionDeletedViewState: LiveData<ViewState>
get() = _reactionDeletedViewState
fun setData(conversationModel: ConversationModel, credentials: String, urlForChatting: String) {
chatRepository.setData(conversationModel, credentials, urlForChatting)
fun initData(credentials: String, urlForChatting: String, roomToken: String) {
chatRepository.initData(credentials, urlForChatting, roomToken)
}
fun updateConversation(currentConversation: ConversationModel) {
chatRepository.updateConversation(currentConversation)
}
fun getRoom(token: String) {