Fixed & improved file transfer message listener use
This commit is contained in:
parent
ae2d6c41a1
commit
342fa44027
2 changed files with 3 additions and 42 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue