@@ -132,7 +132,6 @@ import com.nextcloud.talk.adapters.messages.OutcomingPreviewMessageViewHolder
132132import com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder
133133import com.nextcloud.talk.adapters.messages.OutcomingVoiceMessageViewHolder
134134import com.nextcloud.talk.adapters.messages.PreviewMessageInterface
135- import com.nextcloud.talk.adapters.messages.PreviewMessageViewHolder
136135import com.nextcloud.talk.adapters.messages.SystemMessageInterface
137136import com.nextcloud.talk.adapters.messages.SystemMessageViewHolder
138137import com.nextcloud.talk.adapters.messages.TalkMessagesListAdapter
@@ -245,6 +244,7 @@ import kotlinx.coroutines.CoroutineScope
245244import kotlinx.coroutines.Dispatchers
246245import kotlinx.coroutines.FlowPreview
247246import kotlinx.coroutines.flow.collect
247+ import kotlinx.coroutines.flow.first
248248import kotlinx.coroutines.flow.onEach
249249import kotlinx.coroutines.launch
250250import kotlinx.coroutines.runBlocking
@@ -263,7 +263,6 @@ import java.util.Locale
263263import java.util.concurrent.ExecutionException
264264import javax.inject.Inject
265265import kotlin.math.roundToInt
266- import kotlinx.coroutines.flow.first
267266
268267@Suppress(" TooManyFunctions" , " LargeClass" , " LongMethod" )
269268@AutoInjector(NextcloudTalkApplication ::class )
@@ -672,10 +671,6 @@ class ChatActivity :
672671 fun downloadAndOpenFile (messageId : Int ) {
673672 lifecycleScope.launch {
674673 val chatMessage = chatViewModel.getMessageById(messageId.toLong()).first()
675-
676- // dirty hack to fill selectedIndividualHashMap
677- val dirtyHack = chatMessage.imageUrl
678-
679674 FileViewerUtils (this @ChatActivity, conversationUser).openFile(chatMessage)
680675 }
681676 }
@@ -1704,7 +1699,7 @@ class ChatActivity :
17041699 adapter?.registerViewClickListener(
17051700 R .id.playPauseBtn
17061701 ) { _, message ->
1707- val filename = message.selectedIndividualHashMap !! [ " name" ]
1702+ val filename = message.fileParameters. name
17081703 val file = File (context.cacheDir, filename!! )
17091704 if (file.exists()) {
17101705 if (message.isPlayingVoiceMessage) {
@@ -1735,7 +1730,7 @@ class ChatActivity :
17351730 }
17361731
17371732 private fun setUpWaveform (message : ChatMessage , thenPlay : Boolean = true, backgroundPlayAllowed : Boolean = false) {
1738- val filename = message.selectedIndividualHashMap !! [ " name" ]
1733+ val filename = message.fileParameters. name
17391734 val file = File (context.cacheDir, filename!! )
17401735 if (file.exists() && message.voiceMessageFloatArray == null ) {
17411736 message.isDownloadingVoiceMessage = true
@@ -1768,7 +1763,7 @@ class ChatActivity :
17681763 if (! nextMessage.isVoiceMessage) break
17691764
17701765 downloadFileToCache(nextMessage, false ) {
1771- nextMessage.selectedIndividualHashMap?.get( " name" ) ?.let { newFileName ->
1766+ nextMessage.fileParameters. name?.let { newFileName ->
17721767 val newFile = File (context.cacheDir, newFileName)
17731768 chatViewModel.queueInMediaPlayer(newFile.canonicalPath, nextMessage)
17741769 }
@@ -2228,14 +2223,11 @@ class ChatActivity :
22282223 message.activeUser!! .capabilities!!
22292224 .spreedCapability!!
22302225 )
2231- val fileName = message.selectedIndividualHashMap!! [" name" ]
2232- var size = message.selectedIndividualHashMap!! [" size" ]
2233- if (size == null ) {
2234- size = " -1"
2235- }
2236- val fileSize = size.toLong()
2237- val fileId = message.selectedIndividualHashMap!! [" id" ]
2238- val path = message.selectedIndividualHashMap!! [" path" ]
2226+ val fileName = message.fileParameters.name
2227+ var fileSize = message.fileParameters.size
2228+
2229+ val fileId = message.fileParameters.id
2230+ val path = message.fileParameters.path
22392231
22402232 // check if download worker is already running
22412233 val workers = WorkManager .getInstance(
@@ -3346,17 +3338,6 @@ class ChatActivity :
33463338 return layoutManager?.findFirstVisibleItemPosition() == 0
33473339 }
33483340
3349- private fun setUnreadMessageMarker (chatMessageList : List <ChatMessage >) {
3350- if (chatMessageList.isNotEmpty()) {
3351- val unreadChatMessage = ChatMessage ()
3352- unreadChatMessage.jsonMessageId = UNREAD_MESSAGES_MARKER_ID
3353- unreadChatMessage.actorId = " -1"
3354- unreadChatMessage.timestamp = chatMessageList[0 ].timestamp
3355- unreadChatMessage.message = context.getString(R .string.nc_new_messages)
3356- adapter?.addToStart(unreadChatMessage, false )
3357- }
3358- }
3359-
33603341 // private fun processMessagesNotFromTheFuture(chatMessageList: List<ChatMessage>) {
33613342 // for (i in chatMessageList.indices) {
33623343 // if (chatMessageList.size > i + 1) {
@@ -4439,7 +4420,7 @@ class ChatActivity :
44394420 }
44404421
44414422 fun share (message : ChatMessage ) {
4442- val filename = message.selectedIndividualHashMap !! [ " name" ]
4423+ val filename = message.fileParameters. name
44434424 path = applicationContext.cacheDir.absolutePath + " /" + filename
44444425 val shareUri = FileProvider .getUriForFile(
44454426 this ,
@@ -4457,7 +4438,7 @@ class ChatActivity :
44574438 }
44584439
44594440 fun checkIfSharable (message : ChatMessage ) {
4460- val filename = message.selectedIndividualHashMap !! [ " name" ]
4441+ val filename = message.fileParameters. name
44614442 path = applicationContext.cacheDir.absolutePath + " /" + filename
44624443 val file = File (context.cacheDir, filename!! )
44634444 if (file.exists()) {
@@ -4471,7 +4452,7 @@ class ChatActivity :
44714452
44724453 private fun showSaveToStorageWarning (message : ChatMessage ) {
44734454 val saveFragment: DialogFragment = SaveToStorageDialogFragment .newInstance(
4474- message.selectedIndividualHashMap !! [ " name" ] !!
4455+ message.fileParameters. name
44754456 )
44764457 saveFragment.show(
44774458 supportFragmentManager,
@@ -4480,7 +4461,7 @@ class ChatActivity :
44804461 }
44814462
44824463 fun checkIfSaveable (message : ChatMessage ) {
4483- val filename = message.selectedIndividualHashMap !! [ " name" ]
4464+ val filename = message.fileParameters. name
44844465 path = applicationContext.cacheDir.absolutePath + " /" + filename
44854466 val file = File (context.cacheDir, filename!! )
44864467 if (file.exists()) {
@@ -4509,11 +4490,11 @@ class ChatActivity :
45094490
45104491 if (noteToSelfConversation != null ) {
45114492 var shareUri: Uri ? = null
4512- val data: HashMap <String ? , String ? >?
4493+ val data: HashMap <String , String >?
45134494 var metaData = " "
45144495 var objectId = " "
4515- if (message.hasFileAttachment() ) {
4516- val filename = message.selectedIndividualHashMap !! [ " name" ]
4496+ if (message.hasFileAttachment) {
4497+ val filename = message.fileParameters. name
45174498 path = applicationContext.cacheDir.absolutePath + " /" + filename
45184499 shareUri = FileProvider .getUriForFile(
45194500 context,
@@ -4526,12 +4507,11 @@ class ChatActivity :
45264507 shareUri,
45274508 Intent .FLAG_GRANT_WRITE_URI_PERMISSION or Intent .FLAG_GRANT_READ_URI_PERMISSION
45284509 )
4529- } else if (message.hasGeoLocation()) {
4530- data = message.messageParameters?.get(" object" )
4531- objectId = data?.get(" id" )!!
4532- val name = data[" name" ]!!
4533- val lat = data[" latitude" ]!!
4534- val lon = data[" longitude" ]!!
4510+ } else if (message.hasGeoLocation) {
4511+ objectId = message.geoLocationParameters.id!!
4512+ val name = message.geoLocationParameters.name
4513+ val lat = message.geoLocationParameters.latitude
4514+ val lon = message.geoLocationParameters.longitude
45354515 metaData =
45364516 " {\" type\" :\" geo-location\" ,\" id\" :\" geo:$lat ,$lon \" ,\" latitude\" :\" $lat \" ," +
45374517 " \" longitude\" :\" $lon \" ,\" name\" :\" $name \" }"
@@ -4642,8 +4622,8 @@ class ChatActivity :
46424622 }
46434623
46444624 fun openInFilesApp (message : ChatMessage ) {
4645- val keyID = message.selectedIndividualHashMap !! [ PreviewMessageViewHolder . KEY_ID ]
4646- val link = message.selectedIndividualHashMap !! [ " link" ]
4625+ val keyID = message.fileParameters.id
4626+ val link = message.fileParameters. link
46474627 val fileViewerUtils = FileViewerUtils (this , message.activeUser!! )
46484628 fileViewerUtils.openFileInFilesApp(link!! , keyID!! )
46494629 }
@@ -4785,16 +4765,17 @@ class ChatActivity :
47854765 return isUserAllowedByPrivileges
47864766 }
47874767
4768+ @Deprecated(" chatkit" )
47884769 override fun hasContentFor (message : ChatMessage , type : Byte ): Boolean =
47894770 when (type) {
4790- CONTENT_TYPE_LOCATION -> message.hasGeoLocation()
4771+ CONTENT_TYPE_LOCATION -> message.hasGeoLocation
47914772 CONTENT_TYPE_VOICE_MESSAGE -> message.isVoiceMessage
4792- CONTENT_TYPE_POLL -> message.isPoll()
4773+ CONTENT_TYPE_POLL -> message.hasPoll
47934774 CONTENT_TYPE_LINK_PREVIEW -> message.isLinkPreview()
47944775 CONTENT_TYPE_SYSTEM_MESSAGE -> ! TextUtils .isEmpty(message.systemMessage)
47954776 CONTENT_TYPE_UNREAD_NOTICE_MESSAGE -> message.id == UNREAD_MESSAGES_MARKER_ID .toString()
47964777 CONTENT_TYPE_CALL_STARTED -> message.id == " -2"
4797- CONTENT_TYPE_DECK_CARD -> message.isDeckCard()
4778+ CONTENT_TYPE_DECK_CARD -> message.hasDeckCard
47984779
47994780 else -> false
48004781 }
0 commit comments