Fix incoming chat messages while in background

This commit is contained in:
Sylvain Berfini 2012-11-20 14:57:51 +01:00
parent 33c1553942
commit a32c39f9ce
2 changed files with 7 additions and 4 deletions

View file

@ -1243,6 +1243,8 @@ public class LinphoneActivity extends FragmentActivity implements
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
// Remove to avoid duplication of the listeners
LinphoneManager.removeListener(this);
LinphoneManager.addListener(this); LinphoneManager.addListener(this);
prepareContactsInBackground(); prepareContactsInBackground();
@ -1268,14 +1270,14 @@ public class LinphoneActivity extends FragmentActivity implements
@Override @Override
protected void onPause() { protected void onPause() {
LinphoneManager.removeListener(this);
super.onPause(); super.onPause();
refreshStatus(OnlineStatus.Away); refreshStatus(OnlineStatus.Away);
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
LinphoneManager.removeListener(this);
if (chatStorage != null) { if (chatStorage != null) {
chatStorage.close(); chatStorage.close();
chatStorage = null; chatStorage = null;

View file

@ -48,6 +48,7 @@ import java.util.TimerTask;
import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener;
import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener.AudioState; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener.AudioState;
import org.linphone.LinphoneSimpleListener.LinphoneOnMessageReceivedListener;
import org.linphone.LinphoneSimpleListener.LinphoneServiceListener; import org.linphone.LinphoneSimpleListener.LinphoneServiceListener;
import org.linphone.core.CallDirection; import org.linphone.core.CallDirection;
import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneAddress;
@ -943,7 +944,7 @@ public final class LinphoneManager implements LinphoneCoreListener {
@Override @Override
public void messageReceived(LinphoneCore lc, LinphoneChatRoom cr, LinphoneChatMessage message) { public void messageReceived(LinphoneCore lc, LinphoneChatRoom cr, LinphoneChatMessage message) {
for (LinphoneSimpleListener listener : getSimpleListeners(LinphoneActivity.class)) { for (LinphoneSimpleListener listener : getSimpleListeners(LinphoneActivity.class)) {
((LinphoneActivity) listener).onMessageReceived(message.getFrom(), message); ((LinphoneOnMessageReceivedListener) listener).onMessageReceived(message.getFrom(), message);
} }
} }