Improved code

This commit is contained in:
Sylvain Berfini 2018-11-23 17:36:06 +01:00
parent 6035ea2732
commit 0394ca2525
2 changed files with 13 additions and 11 deletions

View file

@ -96,6 +96,18 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
ChatMessage message = event.getChatMessage(); ChatMessage message = event.getChatMessage();
message.setUserData(holder); message.setUserData(holder);
if (message.isOutgoing() && message.getState() != ChatMessage.State.Displayed) {
message.setListener(new ChatMessageListenerStub() {
@Override
public void onMsgStateChanged(ChatMessage message, ChatMessage.State state) {
ChatMessageViewHolder holder = (ChatMessageViewHolder) message.getUserData();
if (holder != null) {
notifyItemChanged(holder.getAdapterPosition());
}
}
});
}
LinphoneContact contact = null; LinphoneContact contact = null;
Address remoteSender = message.getFromAddress(); Address remoteSender = message.getFromAddress();
if (!message.isOutgoing()) { if (!message.isOutgoing()) {
@ -108,17 +120,6 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
} }
holder.bindMessage(message, contact); holder.bindMessage(message, contact);
changeBackgroundDependingOnPreviousAndNextEvents(message, holder, position); changeBackgroundDependingOnPreviousAndNextEvents(message, holder, position);
message.setListener(new ChatMessageListenerStub() {
@Override
public void onMsgStateChanged(ChatMessage message, ChatMessage.State state) {
ChatMessageViewHolder holder = (ChatMessageViewHolder) message.getUserData();
if (holder != null) {
holder.bindMessage(message, null);
changeBackgroundDependingOnPreviousAndNextEvents(message, holder, holder.getAdapterPosition());
}
}
});
} else { // Event is not chat message } else { // Event is not chat message
Address address = event.getParticipantAddress(); Address address = event.getParticipantAddress();
String displayName = null; String displayName = null;

View file

@ -56,6 +56,7 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.core.ChatMessageListenerStub;
import org.linphone.settings.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.utils.FileUtils; import org.linphone.utils.FileUtils;