From ffcb91cee75e72eb9c297333b7524a38435ae324 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 12 Aug 2013 09:42:13 +0200 Subject: [PATCH] Fix multiple appearances of the same chat in chat list + added destroy method to linphonechatroom --- src/org/linphone/ChatFragment.java | 13 ++++++++----- src/org/linphone/ChatStorage.java | 1 + submodules/linphone | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java index 2e30b64c7..4f854dc22 100644 --- a/src/org/linphone/ChatFragment.java +++ b/src/org/linphone/ChatFragment.java @@ -183,11 +183,6 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC messagesFilterLimit = savedInstanceState.getInt("messagesFilterLimit"); } displayChat(displayName, pictureUri); - - LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); - if (lc != null) { - chatRoom = lc.createChatRoom(sipUri); - } SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LinphoneActivity.instance()); uploadServerUri = prefs.getString(getString(R.string.pref_image_sharing_server_key), getString(R.string.pref_image_sharing_server_default)); @@ -492,6 +487,9 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC @Override public void onPause() { + if (chatRoom != null) { + chatRoom.destroy(); + } latestImageMessages = null; message.removeTextChangedListener(textWatcher); removeVirtualKeyboardVisiblityListener(); @@ -515,6 +513,11 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC @SuppressLint("UseSparseArrays") @Override public void onResume() { + LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); + if (lc != null) { + chatRoom = lc.createChatRoom(sipUri); + } + latestImageMessages = new HashMap(); message.addTextChangedListener(textWatcher); addVirtualKeyboardVisiblityListener(); diff --git a/src/org/linphone/ChatStorage.java b/src/org/linphone/ChatStorage.java index faaed15fb..9ef35f499 100644 --- a/src/org/linphone/ChatStorage.java +++ b/src/org/linphone/ChatStorage.java @@ -290,6 +290,7 @@ public class ChatStorage { chatMessage.setUrl(message.getExternalBodyUrl()); chatMessages.add(chatMessage); } + room.destroy(); } return chatMessages; diff --git a/submodules/linphone b/submodules/linphone index 2db0e99c5..3e2f306e3 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 2db0e99c547779ffd34c08fa61e64f0a967ef6d6 +Subproject commit 3e2f306e361fce90b05da1cfc7d6c16bc592df69