mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 03:29:28 +01:00
Merge pull request #4738 from nextcloud/bugfix/4701/avoidUninitializedInternalConvId
init other data earlier than ConversationModel
This commit is contained in:
commit
8d7ce9fc5e
@ -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")
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user