diff --git a/src/android/org/linphone/chat/ChatEventsAdapter.java b/src/android/org/linphone/chat/ChatEventsAdapter.java index 1ce459eed..97401d860 100644 --- a/src/android/org/linphone/chat/ChatEventsAdapter.java +++ b/src/android/org/linphone/chat/ChatEventsAdapter.java @@ -307,7 +307,7 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene String externalBodyUrl = message.getExternalBodyUrl(); Content fileTransferContent = message.getFileTransferInformation(); String appData = message.getAppdata(); - if (externalBodyUrl != null || fileTransferContent != null) { // Incoming file transfer + if (externalBodyUrl != null) { // Incoming file transfer if (appData != null) { // Download already done, just display the result displayAttachedFile(message, holder); } else { // Attachment not yet downloaded @@ -342,6 +342,7 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene holder.fileTransferLayout.setVisibility(View.GONE); if (message.getState() == ChatMessage.State.InProgress) { + message.setListener(this); // add the listener for file upload progress display holder.messageSendingInProgress.setVisibility(View.GONE); holder.fileTransferLayout.setVisibility(View.VISIBLE); holder.fileTransferAction.setText(mContext.getString(R.string.cancel)); @@ -491,7 +492,6 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene holder.fileTransferLayout.setVisibility(View.GONE); displayAttachedFile(message, holder); } else { - holder.fileTransferAction.setVisibility(View.GONE); holder.fileTransferProgressBar.setVisibility(View.VISIBLE); holder.fileTransferProgressBar.setProgress(offset * 100 / total); } diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index c9f58c901..afaca2b10 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -625,46 +625,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con } else { msg = mChatRoom.createMessage(text); } - - msg.setListener(new ChatMessageListenerStub() { - @Override - public void onFileTransferProgressIndication(ChatMessage message, Content content, int offset, int total) { - ChatBubbleViewHolder holder = (ChatBubbleViewHolder) message.getUserData(); - if (holder != null && message.getMessageId().equals(holder.messageId) && message.isOutgoing()) { - if (offset == total) { - holder.fileTransferLayout.setVisibility(View.GONE); - holder.fileTransferProgressBar.setVisibility(View.GONE); - holder.fileTransferAction.setVisibility(View.GONE); - } else { - holder.fileTransferProgressBar.setVisibility(View.VISIBLE); - holder.fileTransferProgressBar.setProgress(offset * 100 / total); - } - } - } - - @Override - public void onMsgStateChanged(ChatMessage message, ChatMessage.State state) { - ChatBubbleViewHolder holder = (ChatBubbleViewHolder) message.getUserData(); - if (holder != null && message.getMessageId().equals(holder.messageId) && message.isOutgoing()) { - if (state == ChatMessage.State.DeliveredToUser) { - holder.imdmLayout.setVisibility(View.VISIBLE); - holder.imdmIcon.setImageResource(R.drawable.chat_delivered); - holder.imdmLabel.setText(R.string.delivered); - holder.imdmLabel.setTextColor(getResources().getColor(R.color.colorD)); - } else if (state == ChatMessage.State.Displayed) { - holder.imdmLayout.setVisibility(View.VISIBLE); - holder.imdmIcon.setImageResource(R.drawable.chat_read); - holder.imdmLabel.setText(R.string.displayed); - holder.imdmLabel.setTextColor(getResources().getColor(R.color.colorK)); - } else if (state == ChatMessage.State.NotDelivered) { - holder.imdmLayout.setVisibility(View.VISIBLE); - holder.imdmIcon.setImageResource(R.drawable.chat_error); - holder.imdmLabel.setText(R.string.resend); - holder.imdmLabel.setTextColor(getResources().getColor(R.color.colorI)); - } - } - } - }); + // Set listener not required here anymore, message will be added to messages list and adapter will set the listener msg.send(); mFilesUploadLayout.removeAllViews();