From 8ea878da1d664e9c7bbdb2d3a8c1652ca5b04fa8 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Tue, 2 Oct 2018 14:12:15 +0200 Subject: [PATCH] Fix chat list Update submodule bctoolbox --- res/raw/linphonerc_factory | 2 ++ .../org/linphone/chat/ChatListFragment.java | 18 +++++++++++++++++- .../org/linphone/chat/ChatRoomsAdapter.java | 3 ++- submodules/bctoolbox | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/res/raw/linphonerc_factory b/res/raw/linphonerc_factory index d3a7d7be9..0758999a3 100644 --- a/res/raw/linphonerc_factory +++ b/res/raw/linphonerc_factory @@ -45,6 +45,8 @@ store_friends=0 activation_code_length=4 show_login_view=1 friendlist_subscription_enabled=1 +debug_popup_magic=#1234 +debug=1 [assistant] password_max_length=-1 diff --git a/src/android/org/linphone/chat/ChatListFragment.java b/src/android/org/linphone/chat/ChatListFragment.java index ab6e6883d..0a77f0cef 100644 --- a/src/android/org/linphone/chat/ChatListFragment.java +++ b/src/android/org/linphone/chat/ChatListFragment.java @@ -36,6 +36,7 @@ import android.widget.TextView; import org.linphone.contacts.ContactsManager; import org.linphone.core.ChatRoomListenerStub; import org.linphone.core.EventLog; +import org.linphone.core.Participant; import org.linphone.mediastream.Log; import org.linphone.ui.ListSelectionHelper; import org.linphone.contacts.ContactsUpdatedListener; @@ -62,7 +63,7 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene private ListSelectionHelper mSelectionHelper; private RelativeLayout mWaitLayout; private int mChatRoomDeletionPendingCount; - private ChatRoomListenerStub mChatRoomListener; + private ChatRoomListenerStub mChatRoomListener, mChatRoomRefresher; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -108,11 +109,20 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene @Override public void onChatRoomStateChanged(Core lc, ChatRoom cr, ChatRoom.State state) { if (state == ChatRoom.State.Created) { + if (cr != null) cr.addListener(mChatRoomRefresher); refreshChatRoomsList(); } } }; + mChatRoomRefresher = new ChatRoomListenerStub() { + @Override + public void onConferenceJoined(ChatRoom cr, EventLog eventLog) { + refreshChatRoomsList(); + cr.removeListener(mChatRoomRefresher); + } + }; + mChatRoomListener = new ChatRoomListenerStub() { @Override public void onStateChanged(ChatRoom room, ChatRoom.State state) { @@ -130,6 +140,12 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene } } } + + @Override + public void onParticipantDeviceAdded(ChatRoom cr, EventLog eventLog) { + super.onParticipantDeviceAdded(cr, eventLog); + refreshChatRoomsList(); + } }; return view; diff --git a/src/android/org/linphone/chat/ChatRoomsAdapter.java b/src/android/org/linphone/chat/ChatRoomsAdapter.java index d18e371bb..db062be4b 100644 --- a/src/android/org/linphone/chat/ChatRoomsAdapter.java +++ b/src/android/org/linphone/chat/ChatRoomsAdapter.java @@ -108,6 +108,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { public void onSubjectChanged(ChatRoom cr, EventLog eventLog) { ChatRoomViewHolder holder = (ChatRoomViewHolder) cr.getUserData(); holder.displayName.setText(cr.getSubject()); + refresh(); } }; @@ -231,7 +232,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { if (contact != null) { holder.lastMessageSenderView.setText(contact.getFullName() + mContext.getString(R.string.separator)); } else { - if (isUs(LinphoneManager.getLc().getDefaultProxyConfig(), lastMessage.getFromAddress().getUsername())) { + if (lastMessage.getFromAddress() != null && isUs(LinphoneManager.getLc().getDefaultProxyConfig(), lastMessage.getFromAddress().getUsername())) { holder.lastMessageSenderView.setText(mContext.getString(R.string.you) + mContext.getString(R.string.separator)); } else { holder.lastMessageSenderView.setText(LinphoneUtils.getAddressDisplayName(lastMessageSenderAddress) + mContext.getString(R.string.separator)); diff --git a/submodules/bctoolbox b/submodules/bctoolbox index 64e65dc3c..7a8fb9c07 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit 64e65dc3c1b53f3c3f295aea3aeb545e9c7a2dad +Subproject commit 7a8fb9c070ba7fe69c9c8ea471ba4e1e0d258660