mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-20 14:49:53 +01:00
Update conversation timestamps for outgoing messages
This commit is contained in:
@@ -101,8 +101,7 @@ public abstract class ReadableMessageManagerImpl
|
|||||||
BdfDictionary meta = new BdfDictionary();
|
BdfDictionary meta = new BdfDictionary();
|
||||||
meta.put(READ, read);
|
meta.put(READ, read);
|
||||||
clientHelper.mergeMessageMetadata(txn, m, meta);
|
clientHelper.mergeMessageMetadata(txn, m, meta);
|
||||||
GroupId g = getContactGroup(db.getContact(txn, c)).getId();
|
updateContactMetadata(txn, c, -1, local, wasRead, read);
|
||||||
updateGroupMetadata(txn, g, -1, local, wasRead, read);
|
|
||||||
txn.setComplete();
|
txn.setComplete();
|
||||||
} catch (FormatException e) {
|
} catch (FormatException e) {
|
||||||
throw new DbException(e);
|
throw new DbException(e);
|
||||||
@@ -111,7 +110,14 @@ public abstract class ReadableMessageManagerImpl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateGroupMetadata(Transaction txn, GroupId groupId,
|
protected void updateContactMetadata(Transaction txn, ContactId contactId,
|
||||||
|
long timestamp, boolean local, boolean wasRead, boolean read)
|
||||||
|
throws DbException, FormatException {
|
||||||
|
GroupId g = getContactGroup(db.getContact(txn, contactId)).getId();
|
||||||
|
updateGroupMetadata(txn, g, timestamp, local, wasRead, read);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateGroupMetadata(Transaction txn, GroupId groupId,
|
||||||
long timestamp, boolean local, boolean wasRead, boolean read)
|
long timestamp, boolean local, boolean wasRead, boolean read)
|
||||||
throws DbException, FormatException {
|
throws DbException, FormatException {
|
||||||
BdfDictionary groupMeta =
|
BdfDictionary groupMeta =
|
||||||
|
|||||||
@@ -310,6 +310,8 @@ class IntroductionManagerImpl extends ReadableMessageManagerImpl
|
|||||||
Transaction txn = db.startTransaction(false);
|
Transaction txn = db.startTransaction(false);
|
||||||
try {
|
try {
|
||||||
introducerManager.makeIntroduction(txn, c1, c2, msg, timestamp);
|
introducerManager.makeIntroduction(txn, c1, c2, msg, timestamp);
|
||||||
|
updateContactMetadata(txn, c1.getId(), timestamp, true, true, true);
|
||||||
|
updateContactMetadata(txn, c2.getId(), timestamp, true, true, true);
|
||||||
txn.setComplete();
|
txn.setComplete();
|
||||||
} finally {
|
} finally {
|
||||||
db.endTransaction(txn);
|
db.endTransaction(txn);
|
||||||
@@ -329,6 +331,7 @@ class IntroductionManagerImpl extends ReadableMessageManagerImpl
|
|||||||
getSessionState(txn, g.getId(), sessionId.getBytes());
|
getSessionState(txn, g.getId(), sessionId.getBytes());
|
||||||
|
|
||||||
introduceeManager.acceptIntroduction(txn, state, timestamp);
|
introduceeManager.acceptIntroduction(txn, state, timestamp);
|
||||||
|
updateContactMetadata(txn, contactId, timestamp, true, true, true);
|
||||||
txn.setComplete();
|
txn.setComplete();
|
||||||
} finally {
|
} finally {
|
||||||
db.endTransaction(txn);
|
db.endTransaction(txn);
|
||||||
@@ -348,6 +351,7 @@ class IntroductionManagerImpl extends ReadableMessageManagerImpl
|
|||||||
getSessionState(txn, g.getId(), sessionId.getBytes());
|
getSessionState(txn, g.getId(), sessionId.getBytes());
|
||||||
|
|
||||||
introduceeManager.declineIntroduction(txn, state, timestamp);
|
introduceeManager.declineIntroduction(txn, state, timestamp);
|
||||||
|
updateContactMetadata(txn, contactId, timestamp, true, true, true);
|
||||||
txn.setComplete();
|
txn.setComplete();
|
||||||
} finally {
|
} finally {
|
||||||
db.endTransaction(txn);
|
db.endTransaction(txn);
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ class MessagingManagerImpl extends ReadableMessageManagerImpl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addLocalMessage(PrivateMessage m) throws DbException {
|
public void addLocalMessage(PrivateMessage m) throws DbException {
|
||||||
|
Transaction txn = db.startTransaction(false);
|
||||||
try {
|
try {
|
||||||
BdfDictionary meta = new BdfDictionary();
|
BdfDictionary meta = new BdfDictionary();
|
||||||
meta.put(TIMESTAMP, m.getMessage().getTimestamp());
|
meta.put(TIMESTAMP, m.getMessage().getTimestamp());
|
||||||
@@ -123,9 +124,15 @@ class MessagingManagerImpl extends ReadableMessageManagerImpl
|
|||||||
meta.put("contentType", m.getContentType());
|
meta.put("contentType", m.getContentType());
|
||||||
meta.put(LOCAL, true);
|
meta.put(LOCAL, true);
|
||||||
meta.put(READ, true);
|
meta.put(READ, true);
|
||||||
clientHelper.addLocalMessage(m.getMessage(), CLIENT_ID, meta, true);
|
clientHelper.addLocalMessage(txn, m.getMessage(), CLIENT_ID, meta,
|
||||||
|
true);
|
||||||
|
updateGroupMetadata(txn, m.getMessage().getGroupId(),
|
||||||
|
m.getMessage().getTimestamp(), true, true, true);
|
||||||
|
txn.setComplete();
|
||||||
} catch (FormatException e) {
|
} catch (FormatException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
} finally {
|
||||||
|
db.endTransaction(txn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -872,6 +872,7 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IM
|
|||||||
|
|
||||||
messageQueueManager
|
messageQueueManager
|
||||||
.sendMessage(txn, group, timestamp, body, meta);
|
.sendMessage(txn, group, timestamp, body, meta);
|
||||||
|
updateGroupMetadata(txn, m.getGroupId(), timestamp, true, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user