aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/services
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel.gultsch@rwth-aachen.de>2014-04-18 21:26:01 +0200
committerDaniel Gultsch <daniel.gultsch@rwth-aachen.de>2014-04-18 21:26:01 +0200
commit7ccbf0008a600cd00e3dea1b95890d7454509af3 (patch)
tree097cb37392b14dfe0d97ec17a4e5a0ebe3c9b7b0 /src/eu/siacs/conversations/services
parent1e5f916b2a61b90c610614178bcd4c971817c83d (diff)
fixed concurrent modification of contacts which led to missing presences
Diffstat (limited to 'src/eu/siacs/conversations/services')
-rw-r--r--src/eu/siacs/conversations/services/XmppConnectionService.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java
index 0dea3731..69f0b8af 100644
--- a/src/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/eu/siacs/conversations/services/XmppConnectionService.java
@@ -317,7 +317,7 @@ public class XmppConnectionService extends Service {
}
}
replaceContactInConversation(contact.getJid(), contact);
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,true);
} else {
//Log.d(LOGTAG,"presence without resource "+packet.toString());
}
@@ -328,7 +328,7 @@ public class XmppConnectionService extends Service {
contact.removePresence(fromParts[1]);
}
replaceContactInConversation(contact.getJid(), contact);
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,true);
} else if (type.equals("subscribe")) {
Log.d(LOGTAG,"received subscribe packet from "+packet.getFrom());
if (contact
@@ -339,7 +339,7 @@ public class XmppConnectionService extends Service {
contact.resetSubscriptionOption(Contact.Subscription.PREEMPTIVE_GRANT);
replaceContactInConversation(contact.getJid(),
contact);
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,false);
if ((contact
.getSubscriptionOption(Contact.Subscription.ASKING))
&& (!contact
@@ -469,7 +469,7 @@ public class XmppConnectionService extends Service {
replaceContactInConversation(contact.getJid(), null);
} else {
contact.parseSubscriptionFromElement(item);
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,false);
replaceContactInConversation(contact.getJid(), contact);
}
}
@@ -667,6 +667,7 @@ public class XmppConnectionService extends Service {
@Override
public void onBind(Account account) {
+ Log.d("xmppService","bount. cleaning presences");
databaseBackend.clearPresences(account);
account.clearPresences(); // self presences
if (account.getXmppConnection().hasFeatureRosterManagment()) {
@@ -912,7 +913,7 @@ public class XmppConnectionService extends Service {
.getString("photouri"));
contact.setDisplayName(phoneContact
.getString("displayname"));
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,false);
replaceContactInConversation(contact.getJid(),
contact);
} else {
@@ -920,7 +921,7 @@ public class XmppConnectionService extends Service {
|| (contact.getProfilePhoto() != null)) {
contact.setSystemAccount(null);
contact.setPhotoUri(null);
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,false);
replaceContactInConversation(
contact.getJid(), contact);
}
@@ -1212,7 +1213,7 @@ public class XmppConnectionService extends Service {
}
public void updateContact(Contact contact) {
- databaseBackend.updateContact(contact);
+ databaseBackend.updateContact(contact,false);
replaceContactInConversation(contact.getJid(), contact);
}