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();
|
String externalBodyUrl = message.getExternalBodyUrl();
|
||||||
Content fileTransferContent = message.getFileTransferInformation();
|
Content fileTransferContent = message.getFileTransferInformation();
|
||||||
String appData = message.getAppdata();
|
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
|
if (appData != null) { // Download already done, just display the result
|
||||||
displayAttachedFile(message, holder);
|
displayAttachedFile(message, holder);
|
||||||
} else { // Attachment not yet downloaded
|
} else { // Attachment not yet downloaded
|
||||||
|
@ -342,6 +342,7 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene
|
||||||
|
|
||||||
holder.fileTransferLayout.setVisibility(View.GONE);
|
holder.fileTransferLayout.setVisibility(View.GONE);
|
||||||
if (message.getState() == ChatMessage.State.InProgress) {
|
if (message.getState() == ChatMessage.State.InProgress) {
|
||||||
|
message.setListener(this); // add the listener for file upload progress display
|
||||||
holder.messageSendingInProgress.setVisibility(View.GONE);
|
holder.messageSendingInProgress.setVisibility(View.GONE);
|
||||||
holder.fileTransferLayout.setVisibility(View.VISIBLE);
|
holder.fileTransferLayout.setVisibility(View.VISIBLE);
|
||||||
holder.fileTransferAction.setText(mContext.getString(R.string.cancel));
|
holder.fileTransferAction.setText(mContext.getString(R.string.cancel));
|
||||||
|
@ -491,7 +492,6 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene
|
||||||
holder.fileTransferLayout.setVisibility(View.GONE);
|
holder.fileTransferLayout.setVisibility(View.GONE);
|
||||||
displayAttachedFile(message, holder);
|
displayAttachedFile(message, holder);
|
||||||
} else {
|
} else {
|
||||||
holder.fileTransferAction.setVisibility(View.GONE);
|
|
||||||
holder.fileTransferProgressBar.setVisibility(View.VISIBLE);
|
holder.fileTransferProgressBar.setVisibility(View.VISIBLE);
|
||||||
holder.fileTransferProgressBar.setProgress(offset * 100 / total);
|
holder.fileTransferProgressBar.setProgress(offset * 100 / total);
|
||||||
}
|
}
|
||||||
|
|
|
@ -625,46 +625,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
} else {
|
} else {
|
||||||
msg = mChatRoom.createMessage(text);
|
msg = mChatRoom.createMessage(text);
|
||||||
}
|
}
|
||||||
|
// Set listener not required here anymore, message will be added to messages list and adapter will set the listener
|
||||||
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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
msg.send();
|
msg.send();
|
||||||
|
|
||||||
mFilesUploadLayout.removeAllViews();
|
mFilesUploadLayout.removeAllViews();
|
||||||
|
|
Loading…
Reference in a new issue