diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 71605d991..85b0ac8ef 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -178,6 +178,9 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene mListener = new LinphoneCoreListenerBase(){ @Override public void messageReceived(LinphoneCore lc, LinphoneChatRoom cr, LinphoneChatMessage message) { + if(!displayChatMessageNotification(message.getFrom().asStringUriOnly())) { + cr.markAsRead(); + } displayMissedChats(getChatStorage().getUnreadMessageCount()); if (messageListFragment != null && messageListFragment.isVisible()) { ((ChatListFragment) messageListFragment).refresh(); @@ -603,10 +606,10 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene public boolean displayChatMessageNotification(String address){ if(chatFragment != null) { if(chatFragment.getSipUri().equals(address)){ - return true; + return false; } } - return false; + return true; } public void displayChat(String sipUri) { @@ -651,6 +654,9 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene changeCurrentFragment(FragmentsAvailable.CHATLIST, null); displayChat(sipUri); } + if (messageListFragment != null && messageListFragment.isVisible()) { + ((ChatListFragment) messageListFragment).refresh(); + } } else { Intent intent = new Intent(this, ChatActivity.class); intent.putExtra("SipUri", sipUri); diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 52b038723..ea5ff88bc 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -717,7 +717,7 @@ public class LinphoneManager implements LinphoneCoreListener { try { Contact contact = ContactsManager.getInstance().findContactWithAddress(mServiceContext.getContentResolver(),from); if (!mServiceContext.getResources().getBoolean(R.bool.disable_chat__message_notification)) { - if(LinphoneActivity.isInstanciated() && !LinphoneActivity.instance().displayChatMessageNotification(from.asStringUriOnly())) { + if(LinphoneActivity.isInstanciated() && LinphoneActivity.instance().displayChatMessageNotification(from.asStringUriOnly())) { if (contact != null) { LinphoneService.instance().displayMessageNotification(from.asStringUriOnly(), contact.getName(), textMessage); } else {