diff --git a/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java b/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java index 39ae861d2..6cb8fbd97 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java +++ b/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java @@ -217,7 +217,7 @@ public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements Vi for (Content c : fileContents) { View content = LayoutInflater.from(mContext).inflate(R.layout.chat_bubble_content, null, false); - if (c.isFile()) { + if (c.isFile() || (c.isFileTransfer() && message.isOutgoing())) { // If message is outgoing, even if content is file transfer we have the file available String filePath = c.getFilePath(); View v; @@ -260,13 +260,6 @@ public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements Vi message.downloadContent(c); } }); - - message.setListener(new ChatMessageListenerStub() { - @Override - public void onMsgStateChanged(ChatMessage msg, ChatMessage.State state) { - //TODO: invalidate - } - }); } else { Log.w("WRITE_EXTERNAL_STORAGE permission not granted, won't be able to store the downloaded file"); LinphoneActivity.instance().checkAndRequestExternalStoragePermission(); diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java b/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java index ae1beb7f6..b62a8a297 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesAdapter.java @@ -25,6 +25,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import org.linphone.mediastream.Log; import org.linphone.utils.LinphoneUtils; import org.linphone.R; import org.linphone.contacts.ContactsManager; @@ -50,6 +51,8 @@ public class ChatMessagesAdapter extends SelectableAdapter mTransientMessages; + private ChatMessageViewHolderClickListener mClickListener; public ChatMessagesAdapter(ChatMessagesFragment fragment, SelectableHelper helper, int itemResource, EventLog[] history, ArrayList participants, ChatMessageViewHolderClickListener clickListener) { @@ -61,6 +64,7 @@ public class ChatMessagesAdapter extends SelectableAdapter(); } @Override @@ -76,7 +80,7 @@ public class ChatMessagesAdapter extends SelectableAdapter 0; + for (int i = 0; i < mFilesUploadLayout.getChildCount(); i++) { String filePath = (String) mFilesUploadLayout.getChildAt(i).getTag(); String fileName = filePath.substring(filePath.lastIndexOf("/") + 1); @@ -914,7 +919,8 @@ public class ChatMessagesFragment extends Fragment implements ChatRoomListener, content.setName(fileName); content.setFilePath(filePath); // Let the file body handler take care of the upload - if (getResources().getBoolean(R.bool.send_text_and_images_as_different_messages)) { + if (getResources().getBoolean(R.bool.send_text_and_images_as_different_messages) + && (mFilesUploadLayout.getChildCount() > 1 || hasText)) { ChatMessage fileMessage = mChatRoom.createFileTransferMessage(content); fileMessage.send(); } else { @@ -922,8 +928,7 @@ public class ChatMessagesFragment extends Fragment implements ChatRoomListener, } } - String text = mMessageTextToSend.getText().toString(); - if (text != null && text.length() > 0) { + if (hasText) { msg.addTextContent(text); } diff --git a/app/src/main/java/org/linphone/chat/ImdnFragment.java b/app/src/main/java/org/linphone/chat/ImdnFragment.java index de182120a..74b336e11 100644 --- a/app/src/main/java/org/linphone/chat/ImdnFragment.java +++ b/app/src/main/java/org/linphone/chat/ImdnFragment.java @@ -136,6 +136,10 @@ public class ImdnFragment extends Fragment { } private void refreshInfo() { + if (mMessage == null) { + //TODO: error + return; + } Address remoteSender = mMessage.getFromAddress(); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(remoteSender);