Merge pull request #4439 from nextcloud/bugfix/noid/fixNpeInRestoreMessageQueue

fix NPE in restoreMessageQueue
This commit is contained in:
Sowjanya Kota 2024-11-14 09:56:12 +01:00 committed by GitHub
commit 9257d41197
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 8 deletions

View File

@ -411,12 +411,11 @@ class ChatActivity :
setContentView(binding.root)
setupSystemColors()
messageInputFragment = MessageInputFragment()
conversationUser = currentUserProvider.currentUser.blockingGet()
handleIntent(intent)
messageInputFragment = getMessageInputFragment()
chatViewModel = ViewModelProvider(this, viewModelFactory)[ChatViewModel::class.java]
messageInputViewModel = ViewModelProvider(this, viewModelFactory)[MessageInputViewModel::class.java]
@ -457,6 +456,15 @@ class ChatActivity :
}
}
private fun getMessageInputFragment(): MessageInputFragment {
val internalId = conversationUser!!.id.toString() + "@" + roomToken
return MessageInputFragment().apply {
arguments = Bundle().apply {
putString(CONVERSATION_INTERNAL_ID, internalId)
}
}
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val extras: Bundle? = intent.extras
@ -990,7 +998,7 @@ class ChatActivity :
} else {
supportFragmentManager.commit {
setReorderingAllowed(true)
replace(R.id.fragment_container_activity_chat, MessageInputFragment())
replace(R.id.fragment_container_activity_chat, getMessageInputFragment())
}
}
}
@ -3786,5 +3794,6 @@ class ChatActivity :
private const val RESUME_AUDIO_TAG = "RESUME_AUDIO_TAG"
private const val DELAY_TO_SHOW_PROGRESS_BAR = 1000L
private const val FIVE_MINUTES_IN_SECONDS: Long = 300
const val CONVERSATION_INTERNAL_ID = "CONVERSATION_INTERNAL_ID"
}
}

View File

@ -111,6 +111,7 @@ class MessageInputFragment : Fragment() {
lateinit var networkMonitor: NetworkMonitor
lateinit var binding: FragmentMessageInputBinding
private lateinit var conversationInternalId: String
private var typedWhileTypingTimerIsRunning: Boolean = false
private var typingTimer: CountDownTimer? = null
private lateinit var chatActivity: ChatActivity
@ -122,6 +123,10 @@ class MessageInputFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sharedApplication!!.componentApplication.inject(this)
conversationInternalId = arguments?.getString(ChatActivity.CONVERSATION_INTERNAL_ID).orEmpty()
if (conversationInternalId.isEmpty()) {
Log.e(TAG, "internalId for conversation passed to MessageInputFragment is empty")
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
@ -143,7 +148,7 @@ class MessageInputFragment : Fragment() {
override fun onResume() {
super.onResume()
chatActivity.messageInputViewModel.restoreMessageQueue(chatActivity.currentConversation!!.internalId)
chatActivity.messageInputViewModel.restoreMessageQueue(conversationInternalId)
}
override fun onDestroyView() {
@ -728,9 +733,8 @@ class MessageInputFragment : Fragment() {
}
}
private fun isTypingStatusEnabled(): Boolean {
return !CapabilitiesUtil.isTypingStatusPrivate(chatActivity.conversationUser!!)
}
private fun isTypingStatusEnabled(): Boolean =
!CapabilitiesUtil.isTypingStatusPrivate(chatActivity.conversationUser!!)
private fun uploadFile(fileUri: String, isVoiceMessage: Boolean, caption: String = "", token: String = "") {
var metaData = ""