@@ -70,13 +70,16 @@ import dagger.android.AndroidInjection
7070import io.github.rockerhieu.emojicon.EmojiconGridFragment
7171import io.github.rockerhieu.emojicon.EmojiconsFragment
7272import io.github.rockerhieu.emojicon.emoji.Emojicon
73+ import kotlinx.coroutines.CoroutineScope
7374import kotlinx.coroutines.Dispatchers
75+ import kotlinx.coroutines.launch
7476import org.greenrobot.eventbus.EventBus
7577import org.greenrobot.eventbus.Subscribe
7678import org.greenrobot.eventbus.ThreadMode
7779import java.io.File
7880import java.util.*
7981import javax.inject.Inject
82+ import kotlin.collections.ArrayList
8083
8184
8285class MediaPreviewActivity : BaseActivity (), MediaPreviewAdapter.OnItemClickListener,
@@ -604,7 +607,9 @@ class MediaPreviewActivity : BaseActivity(), MediaPreviewAdapter.OnItemClickList
604607 val multipleImages: MediaPreviewModel
605608 mimeType = mimeType ? : intent.type
606609 var filePathFromUri: String? = " "
607- filePathFromUri = if (uri.scheme == null ) uri.path else RealPathUtil .getRealPath(this @MediaPreviewActivity, uri)
610+ filePathFromUri = RealPathUtil .getRealPath(this @MediaPreviewActivity, uri)
611+
612+ // filePathFromUri = if (uri.scheme == null) uri.path else RealPathUtil.getRealPath(this@MediaPreviewActivity, uri)
608613 LogMessage .d(TAG , " file path createAdapterObject = $filePathFromUri " )
609614 LogMessage .d(TAG , " log mime type in createAdapterObject = $mimeType " )
610615 if (mimeType!! .startsWith(" image/" )) {
@@ -1014,14 +1019,13 @@ class MediaPreviewActivity : BaseActivity(), MediaPreviewAdapter.OnItemClickList
10141019
10151020 private fun sendMediaFilesForSingleUser () {
10161021 if (AppUtils .isNetConnected(this )) {
1017- shareMessagesController.sendMediaMessagesForSingleUser(fileObjects, selectedUsers!! )
1018-
1019- val handler = Handler ()
1020- handler.postDelayed({
1021- progressDialog!! .dismiss()
1022- navigateToAppropriateScreen()
1023- finish()
1024- }, 500 )
1022+ shareMessagesController.sendMediaMessagesForSingleUser(fileObjects, selectedUsers!! ,object : QuickShareMessageListener {
1023+ override fun sendMediaSucess () {
1024+ progressDialog!! .dismiss()
1025+ navigateToAppropriateScreen()
1026+ finish()
1027+ }
1028+ })
10251029 } else {
10261030 progressDialog!! .dismiss()
10271031 CustomToast .show(context, getString(R .string.msg_no_internet))
@@ -1058,77 +1062,128 @@ class MediaPreviewActivity : BaseActivity(), MediaPreviewAdapter.OnItemClickList
10581062 return
10591063 }
10601064 setTextIncludingMention(mentionedUsersIds)
1061- val messageObject = messagingClient.composeVideoMessage(toUser, intent.getStringExtra(Constants .FILE_PATH )!! ,
1062- sendTextMessageWithMentionFormat.toString(), replyMessageId, mentionedUsersIds).second
10631065
1064- messageObject?.let {
1065- messagingClient.sendMessage(it, object : MessageListener {
1066- override fun onSendMessageSuccess (message : ChatMessage ) {
1067- mediaPreviewBinding.previewProgress.previewProgress.gone()
1068- ReplyHashMap .saveReplyId(toUser, Constants .EMPTY_STRING )
1069- SharedPreferenceManager .setString(
1070- Constants .REPLY_MESSAGE_USER ,
1071- Constants .EMPTY_STRING
1072- )
1073- SharedPreferenceManager .setString(
1074- Constants .REPLY_MESSAGE_ID ,
1075- Constants .EMPTY_STRING
1076- )
1077- viewModel.setUnSentMessageForAnUser(toUser, Constants .EMPTY_STRING )
1078- FlyMessenger .saveUnsentMentionedUserId(toUser," " )
1079- unSentMentionedUserIdList.clear()
1080- ChatParent .startActivity(
1081- this @MediaPreviewActivity,
1082- toUser,
1083- viewModel.profileDetails.value!! .getChatType()
1084- )
1085- }
1086- })
1066+ CoroutineScope (Dispatchers .IO ).launch {
1067+ val messageObject = messagingClient.composeVideoMessage(toUser, intent.getStringExtra(Constants .FILE_PATH )!! ,
1068+ sendTextMessageWithMentionFormat.toString(), replyMessageId, mentionedUsersIds).second
1069+
1070+ messageObject?.let {
1071+ messagingClient.sendMessage(it, object : MessageListener {
1072+ override fun onSendMessageSuccess (message : ChatMessage ) {
1073+ mediaPreviewBinding.previewProgress.previewProgress.gone()
1074+ ReplyHashMap .saveReplyId(toUser, Constants .EMPTY_STRING )
1075+ SharedPreferenceManager .setString(
1076+ Constants .REPLY_MESSAGE_USER ,
1077+ Constants .EMPTY_STRING
1078+ )
1079+ SharedPreferenceManager .setString(
1080+ Constants .REPLY_MESSAGE_ID ,
1081+ Constants .EMPTY_STRING
1082+ )
1083+ viewModel.setUnSentMessageForAnUser(toUser, Constants .EMPTY_STRING )
1084+ FlyMessenger .saveUnsentMentionedUserId(toUser," " )
1085+ unSentMentionedUserIdList.clear()
1086+ ChatParent .startActivity(
1087+ this @MediaPreviewActivity,
1088+ toUser,
1089+ viewModel.profileDetails.value!! .getChatType()
1090+ )
1091+ }
1092+
1093+ override fun onSendMessageFailure (message : String ) {
1094+ runOnUiThread {
1095+ mediaPreviewBinding.sendMedia.isEnabled = true
1096+ mediaPreviewBinding.previewProgress.previewProgress.gone()
1097+ if (message.isNotEmpty())
1098+ CustomToast .show(this @MediaPreviewActivity, message)
1099+ }
1100+ }
1101+ })
1102+ }
10871103 }
1104+
1105+
10881106 }
10891107 myApp?.clearMediaCaptionObject()
10901108 }
10911109
10921110 private fun sendGalleryAttachments (toUser : String , replyMessageId : String ) {
10931111 mediaPreviewBinding.previewProgress.previewProgress.show()
1094- val sentMessages = arrayListOf<ChatMessage >()
1095- for (item in selectedImageList) {
1096- var messageObject: MessageObject ?
1097- if (item.isImage) {
1098- if (! ChatManager .getAvailableFeatures().isImageAttachmentEnabled) {
1099- mediaPreviewBinding.previewProgress.previewProgress.gone()
1100- CustomAlertDialog ().showFeatureRestrictionAlert(this )
1101- mediaPreviewBinding.sendMedia.isEnabled = true
1102- break
1103- }
1104- messageObject = messagingClient.composeImageMessage(toUser, item.path, item.caption, replyMessageId,item.mentionedUsersIds)
1105- } else {
1106- if (! ChatManager .getAvailableFeatures().isVideoAttachmentEnabled) {
1107- mediaPreviewBinding.previewProgress.previewProgress.gone()
1108- CustomAlertDialog ().showFeatureRestrictionAlert(this )
1109- mediaPreviewBinding.sendMedia.isEnabled = true
1110- break
1112+ CoroutineScope (Dispatchers .IO ).launch {
1113+ val sentMessages = arrayListOf<ChatMessage >()
1114+ var errorMessageList = ArrayList <String >()
1115+ for (item in selectedImageList) {
1116+ var messageObject: MessageObject ?
1117+ if (item.isImage) {
1118+ if (! ChatManager .getAvailableFeatures().isImageAttachmentEnabled) {
1119+ mediaPreviewBinding.previewProgress.previewProgress.gone()
1120+ CustomAlertDialog ().showFeatureRestrictionAlert(this @MediaPreviewActivity)
1121+ mediaPreviewBinding.sendMedia.isEnabled = true
1122+ break
1123+ }
1124+ messageObject = messagingClient.composeImageMessage(toUser, item.path, item.caption, replyMessageId,item.mentionedUsersIds)
1125+ } else {
1126+ if (! ChatManager .getAvailableFeatures().isVideoAttachmentEnabled) {
1127+ mediaPreviewBinding.previewProgress.previewProgress.gone()
1128+ CustomAlertDialog ().showFeatureRestrictionAlert(this @MediaPreviewActivity)
1129+ mediaPreviewBinding.sendMedia.isEnabled = true
1130+ break
1131+ }
1132+ messageObject = messagingClient.composeVideoMessage(toUser, item.path, item.caption, replyMessageId,item.mentionedUsersIds).second
11111133 }
1112- messageObject = messagingClient.composeVideoMessage(toUser, item.path, item.caption, replyMessageId,item.mentionedUsersIds).second
1134+ sendGalleryAttachmentFiles(messageObject,sentMessages,toUser,errorMessageList)
1135+
11131136 }
1114- messageObject?.let {
1115- messagingClient.sendMessage(it, object : MessageListener {
1116- override fun onSendMessageSuccess (message : ChatMessage ) {
1117- sentMessages.add(message)
1118- if (sentMessages.size == selectedImageList.size) {
1119- mediaPreviewBinding.previewProgress.previewProgress.gone()
1120- ReplyHashMap .saveReplyId(toUser, Constants .EMPTY_STRING )
1121- SharedPreferenceManager .setString(Constants .REPLY_MESSAGE_USER , Constants .EMPTY_STRING )
1122- SharedPreferenceManager .setString(Constants .REPLY_MESSAGE_ID , Constants .EMPTY_STRING )
1123- viewModel.setUnSentMessageForAnUser(toUser, Constants .EMPTY_STRING )
1124- ChatParent .startActivity(this @MediaPreviewActivity, toUser, viewModel.profileDetails.value!! .getChatType())
1125- }
1137+ FlyMessenger .saveUnsentMentionedUserId(toUser," " )
1138+ unSentMentionedUserIdList.clear()
1139+ }
1140+
1141+ }
1142+
1143+ private fun sendGalleryAttachmentFiles (
1144+ messageObject : MessageObject ? ,
1145+ sentMessages : ArrayList <ChatMessage >,
1146+ toUser : String ,
1147+ errorMessageList : ArrayList <String >
1148+ ) {
1149+ messageObject?.let {
1150+ messagingClient.sendMessage(it, object : MessageListener {
1151+ override fun onSendMessageSuccess (message : ChatMessage ) {
1152+ sentMessages.add(message)
1153+ launchChatPage(sentMessages,toUser,errorMessageList)
1154+ }
1155+
1156+ override fun onSendMessageFailure (message : String ) {
1157+ if (message.isNotEmpty()) {
1158+ errorMessageList.add(message)
11261159 }
1127- })
1160+ sentMessages.add(ChatMessage ())
1161+ launchChatPage(sentMessages,toUser,errorMessageList)
1162+ }
1163+ })
1164+ }
1165+
1166+ }
1167+
1168+ private fun launchChatPage (
1169+ sentMessages : ArrayList <ChatMessage >,
1170+ toUser : String ,
1171+ errorMessageList : ArrayList <String >
1172+ ) {
1173+ if (sentMessages.size == selectedImageList.size) {
1174+ runOnUiThread {
1175+ mediaPreviewBinding.sendMedia.isEnabled = true
1176+ mediaPreviewBinding.previewProgress.previewProgress.gone()
1177+ if (errorMessageList.size > 0 ) {
1178+ CustomToast .show(this @MediaPreviewActivity, errorMessageList.get(0 ))
1179+ }
11281180 }
1181+ ReplyHashMap .saveReplyId(toUser, Constants .EMPTY_STRING )
1182+ SharedPreferenceManager .setString(Constants .REPLY_MESSAGE_USER , Constants .EMPTY_STRING )
1183+ SharedPreferenceManager .setString(Constants .REPLY_MESSAGE_ID , Constants .EMPTY_STRING )
1184+ viewModel.setUnSentMessageForAnUser(toUser, Constants .EMPTY_STRING )
1185+ ChatParent .startActivity(this @MediaPreviewActivity, toUser, viewModel.profileDetails.value!! .getChatType())
11291186 }
1130- FlyMessenger .saveUnsentMentionedUserId(toUser," " )
1131- unSentMentionedUserIdList.clear()
11321187 }
11331188
11341189 private fun removeSelectedFile () {
0 commit comments