From 7581e5a2b8bd9f0e39137e7ad5e79f8ca080c882 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 18 Jul 2012 16:53:36 +0200 Subject: [PATCH] Fix chat messages misbehaviour --- res/layout/incall.xml | 1 + src/org/linphone/ChatFragment.java | 7 ++++++- src/org/linphone/ChatStorage.java | 4 ++-- src/org/linphone/LinphoneActivity.java | 14 ++++++-------- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/res/layout/incall.xml b/res/layout/incall.xml index 8dc406e35..b7378fde9 100644 --- a/res/layout/incall.xml +++ b/res/layout/incall.xml @@ -24,6 +24,7 @@ getMessages(String correspondent) { diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index eaccdf6c0..eaf4a7b66 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -415,14 +415,13 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene chatStorage = new ChatStorage(this); } - chatStorage.saveMessage(from.asStringUriOnly(), "", message); + int id = chatStorage.saveMessage(from.asStringUriOnly(), "", message); - Log.d("Message received from " + from + ": " + message); - if (messageListenerFragment != null && messageListenerFragment.isVisible()) { - ((ChatFragment) messageListenerFragment).onMessageReceived(from, message); - } - - if (LinphoneService.isReady()) { + ChatFragment chatFragment = ((ChatFragment) messageListenerFragment); + if (messageListenerFragment != null && messageListenerFragment.isVisible() && chatFragment.getSipUri().equals(from.asStringUriOnly())) { + chatFragment.onMessageReceived(from, message); + chatStorage.markMessageAsRead(id); + } else if (LinphoneService.isReady()) { LinphoneUtils.findUriPictureOfContactAndSetDisplayName(from, getContentResolver()); LinphoneService.instance().displayMessageNotification(from.asStringUriOnly(), from.getDisplayName(), message); displayMissedChats(chatStorage.getUnreadMessageCount()); @@ -443,7 +442,6 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene } chatStorage.saveMessage("", to, message); - Log.d("Message sent to " + to + ": " + message); } @Override