From 914b72505a8afe6fd30e0b6a4e1c2fbb14db18a0 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 14 Nov 2016 10:42:42 -0200 Subject: [PATCH] Made private group timestamp greater than that of latest message --- .../conversation/GroupControllerImpl.java | 14 +++++--------- .../api/privategroup/PrivateGroupManager.java | 6 ------ .../privategroup/PrivateGroupManagerImpl.java | 10 ---------- 3 files changed, 5 insertions(+), 25 deletions(-) diff --git a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java index e0ba5d3d89..1a11bd88ef 100644 --- a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java +++ b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java @@ -6,6 +6,7 @@ import org.briarproject.android.api.AndroidNotificationManager; import org.briarproject.android.controller.handler.ResultExceptionHandler; import org.briarproject.android.privategroup.conversation.GroupController.GroupListener; import org.briarproject.android.threaded.ThreadListControllerImpl; +import org.briarproject.api.clients.MessageTracker.GroupCount; import org.briarproject.api.crypto.CryptoExecutor; import org.briarproject.api.db.DatabaseExecutor; import org.briarproject.api.db.DbException; @@ -130,15 +131,10 @@ public class GroupControllerImpl extends MessageId parentId = null; MessageId previousMsgId = privateGroupManager.getPreviousMsgId(getGroupId()); - // timestamp must be greater than the timestamps - // of the member's previous message... - long timestamp = privateGroupManager - .getMessageTimestamp(previousMsgId); - // ...and the parent post, if any - if (parentItem != null) { - timestamp = max(parentItem.getTimestamp(), timestamp); - parentId = parentItem.getId(); - } + GroupCount count = + privateGroupManager.getGroupCount(getGroupId()); + long timestamp = count.getLatestMsgTime(); + if (parentItem != null) parentId = parentItem.getId(); timestamp = max(clock.currentTimeMillis(), timestamp + 1); createMessage(body, timestamp, parentId, author, previousMsgId, handler); diff --git a/briar-api/src/org/briarproject/api/privategroup/PrivateGroupManager.java b/briar-api/src/org/briarproject/api/privategroup/PrivateGroupManager.java index 636678052d..8980268458 100644 --- a/briar-api/src/org/briarproject/api/privategroup/PrivateGroupManager.java +++ b/briar-api/src/org/briarproject/api/privategroup/PrivateGroupManager.java @@ -51,12 +51,6 @@ public interface PrivateGroupManager extends MessageTracker { */ MessageId getPreviousMsgId(GroupId g) throws DbException; - /** - * Returns the timestamp of the message with the given ID - */ - // TODO change to getPreviousMessageHeader() - long getMessageTimestamp(MessageId id) throws DbException; - /** * Marks the group with GroupId g as resolved */ diff --git a/briar-core/src/org/briarproject/privategroup/PrivateGroupManagerImpl.java b/briar-core/src/org/briarproject/privategroup/PrivateGroupManagerImpl.java index 5ff1193f93..0a8c436ec0 100644 --- a/briar-core/src/org/briarproject/privategroup/PrivateGroupManagerImpl.java +++ b/briar-core/src/org/briarproject/privategroup/PrivateGroupManagerImpl.java @@ -192,16 +192,6 @@ public class PrivateGroupManagerImpl extends BdfIncomingMessageHook implements txn.attach(e); } - @Override - public long getMessageTimestamp(MessageId id) throws DbException { - try { - BdfDictionary d = clientHelper.getMessageMetadataAsDictionary(id); - return d.getLong(KEY_TIMESTAMP); - } catch (FormatException e) { - throw new DbException(e); - } - } - @Override public GroupMessageHeader addLocalMessage(GroupMessage m) throws DbException { -- GitLab