Display of sent messages (cpim to remove)

This commit is contained in:
Sylvain Berfini 2017-10-30 15:01:51 +01:00
parent b25bb9a530
commit e41591d731
3 changed files with 32 additions and 12 deletions

View file

@ -61,6 +61,7 @@ import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
@ -76,16 +77,16 @@ public class ChatEventsAdapter extends BaseAdapter {
private LayoutInflater mLayoutInflater; private LayoutInflater mLayoutInflater;
private Bitmap mDefaultBitmap; private Bitmap mDefaultBitmap;
public ChatEventsAdapter(Context context, GroupChatFragment fragment, LayoutInflater inflater, EventLog[] history, List<LinphoneContact> participants) { public ChatEventsAdapter(Context context, GroupChatFragment fragment, LayoutInflater inflater, EventLog[] history, ArrayList<LinphoneContact> participants) {
mContext = context; mContext = context;
mFragment = fragment; mFragment = fragment;
mLayoutInflater = inflater; mLayoutInflater = inflater;
mHistory = Arrays.asList(history); mHistory = new ArrayList<>(Arrays.asList(history));
mParticipants = participants; mParticipants = participants;
} }
public void updateHistory(EventLog[] history) { public void updateHistory(EventLog[] history) {
mHistory = Arrays.asList(history); mHistory = new ArrayList<>(Arrays.asList(history));
notifyDataSetChanged(); notifyDataSetChanged();
} }
@ -94,7 +95,7 @@ public class ChatEventsAdapter extends BaseAdapter {
notifyDataSetChanged(); notifyDataSetChanged();
} }
public void setContacts(List<LinphoneContact> participants) { public void setContacts(ArrayList<LinphoneContact> participants) {
mParticipants = participants; mParticipants = participants;
} }
@ -142,7 +143,7 @@ public class ChatEventsAdapter extends BaseAdapter {
if (event.getType() == EventLog.Type.ConferenceChatMessage) { if (event.getType() == EventLog.Type.ConferenceChatMessage) {
holder.bubbleLayout.setVisibility(View.VISIBLE); holder.bubbleLayout.setVisibility(View.VISIBLE);
ChatMessage message = null;//event.getChatMessage(); ChatMessage message = event.getChatMessage();
holder.messageId = message.getMessageId(); holder.messageId = message.getMessageId();
message.setUserData(holder); message.setUserData(holder);
@ -154,6 +155,9 @@ public class ChatEventsAdapter extends BaseAdapter {
if (message.isOutgoing()) { if (message.isOutgoing()) {
displayName = remoteSender.getDisplayName(); displayName = remoteSender.getDisplayName();
if (displayName == null || displayName.isEmpty()) {
displayName = remoteSender.getUsername();
}
if (status == ChatMessage.State.InProgress) { if (status == ChatMessage.State.InProgress) {
holder.messageSendingInProgress.setVisibility(View.VISIBLE); holder.messageSendingInProgress.setVisibility(View.VISIBLE);

View file

@ -58,6 +58,7 @@ import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Buffer; import org.linphone.core.Buffer;
import org.linphone.core.Call;
import org.linphone.core.ChatMessage; import org.linphone.core.ChatMessage;
import org.linphone.core.ChatMessageListener; import org.linphone.core.ChatMessageListener;
import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoom;
@ -95,7 +96,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
private String mRemoteSipUri; private String mRemoteSipUri;
private Address mRemoteSipAddress; private Address mRemoteSipAddress;
private ChatRoom mChatRoom; private ChatRoom mChatRoom;
private List<LinphoneContact> mParticipants; private ArrayList<LinphoneContact> mParticipants;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@ -571,6 +572,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
} }
}); });
msg.send(); msg.send();
mFilesUploadLayout.removeAllViews(); mFilesUploadLayout.removeAllViews();
mMessageTextToSend.setText(""); mMessageTextToSend.setText("");
} }
@ -581,6 +583,11 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
} }
} }
@Override
public void onChatMessageSent(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
}
@Override @Override
public void onUndecryptableMessageReceived(ChatRoom cr, ChatMessage msg) { public void onUndecryptableMessageReceived(ChatRoom cr, ChatMessage msg) {
final Address from = msg.getFromAddress(); final Address from = msg.getFromAddress();
@ -625,20 +632,18 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
} }
@Override @Override
public void onMessageReceived(ChatRoom cr, ChatMessage msg) { public void onChatMessageReceived(ChatRoom cr, EventLog event) {
cr.markAsRead(); cr.markAsRead();
LinphoneActivity.instance().updateMissedChatCount(); LinphoneActivity.instance().updateMissedChatCount();
ChatMessage msg = event.getChatMessage();
String externalBodyUrl = msg.getExternalBodyUrl(); String externalBodyUrl = msg.getExternalBodyUrl();
Content fileTransferContent = msg.getFileTransferInformation(); Content fileTransferContent = msg.getFileTransferInformation();
if (externalBodyUrl != null || fileTransferContent != null) { if (externalBodyUrl != null || fileTransferContent != null) {
LinphoneActivity.instance().checkAndRequestExternalStoragePermission(); LinphoneActivity.instance().checkAndRequestExternalStoragePermission();
} }
}
@Override mMessagesAdapter.addToHistory(event);
public void onChatMessageReceived(ChatRoom cr, EventLog event_log) {
ChatMessage msg = event_log.getChatMessage();
} }
@Override @Override
@ -701,23 +706,32 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
} }
} }
@Override
public void onMessageReceived(ChatRoom cr, ChatMessage msg) {
}
@Override @Override
public void onParticipantAdminStatusChanged(ChatRoom cr, EventLog event) { public void onParticipantAdminStatusChanged(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
} }
@Override @Override
public void onParticipantDeviceRemoved(ChatRoom cr, EventLog event) { public void onParticipantDeviceRemoved(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
} }
@Override @Override
public void onParticipantRemoved(ChatRoom cr, EventLog event) { public void onParticipantRemoved(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
} }
@Override @Override
public void onParticipantDeviceAdded(ChatRoom cr, EventLog event) { public void onParticipantDeviceAdded(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
} }
@ -728,11 +742,13 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
@Override @Override
public void onParticipantAdded(ChatRoom cr, EventLog event) { public void onParticipantAdded(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
} }
@Override @Override
public void onSubjectChanged(ChatRoom cr, EventLog event) { public void onSubjectChanged(ChatRoom cr, EventLog event) {
mMessagesAdapter.addToHistory(event);
} }

@ -1 +1 @@
Subproject commit f702e9a8fe0d487ef7cd529287d010ae55512a06 Subproject commit 637595573d79e14f1fcfcbc1a5d3e5e928d6664d