From 7b01e42da8e212d2deea68fe0312a1056a3c9962 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 27 Sep 2013 18:15:43 +0100 Subject: [PATCH] Removed the ability to star messages (unused in UI). --- .../sf/briar/api/db/DatabaseComponent.java | 9 -- .../sf/briar/api/db/GroupMessageHeader.java | 5 +- .../net/sf/briar/api/db/MessageHeader.java | 11 +-- .../sf/briar/api/db/PrivateMessageHeader.java | 5 +- briar-core/src/net/sf/briar/db/Database.java | 16 ---- .../sf/briar/db/DatabaseComponentImpl.java | 39 -------- .../src/net/sf/briar/db/JdbcDatabase.java | 91 ++++--------------- .../src/net/sf/briar/db/H2DatabaseTest.java | 30 ------ 8 files changed, 22 insertions(+), 184 deletions(-) diff --git a/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java index 7de22f1e86..5dcf089862 100644 --- a/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java +++ b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java @@ -213,9 +213,6 @@ public interface DatabaseComponent { /** Returns all temporary secrets. */ Collection<TemporarySecret> getSecrets() throws DbException; - /** Returns true if the given message has been starred. */ - boolean getStarredFlag(MessageId m) throws DbException; - /** Returns the set of groups to which the user subscribes. */ Collection<Group> getSubscriptions() throws DbException; @@ -325,12 +322,6 @@ public interface DatabaseComponent { /** Records the given messages as having been seen by the given contact. */ void setSeen(ContactId c, Collection<MessageId> seen) throws DbException; - /** - * Marks the given message starred or unstarred and returns true if it was - * previously starred. - */ - boolean setStarredFlag(MessageId m, boolean starred) throws DbException; - /** * Makes the given group visible to the given set of contacts and invisible * to any other current or future contacts. diff --git a/briar-api/src/net/sf/briar/api/db/GroupMessageHeader.java b/briar-api/src/net/sf/briar/api/db/GroupMessageHeader.java index 6df4434fb2..12b210927a 100644 --- a/briar-api/src/net/sf/briar/api/db/GroupMessageHeader.java +++ b/briar-api/src/net/sf/briar/api/db/GroupMessageHeader.java @@ -10,9 +10,8 @@ public class GroupMessageHeader extends MessageHeader { public GroupMessageHeader(MessageId id, MessageId parent, Author author, String contentType, String subject, long timestamp, boolean read, - boolean starred, GroupId groupId) { - super(id, parent, author, contentType, subject, timestamp, read, - starred); + GroupId groupId) { + super(id, parent, author, contentType, subject, timestamp, read); this.groupId = groupId; } diff --git a/briar-api/src/net/sf/briar/api/db/MessageHeader.java b/briar-api/src/net/sf/briar/api/db/MessageHeader.java index beeda54c4b..a36a972382 100644 --- a/briar-api/src/net/sf/briar/api/db/MessageHeader.java +++ b/briar-api/src/net/sf/briar/api/db/MessageHeader.java @@ -9,11 +9,10 @@ public abstract class MessageHeader { private final Author author; private final String contentType, subject; private final long timestamp; - private final boolean read, starred; + private final boolean read; protected MessageHeader(MessageId id, MessageId parent, Author author, - String contentType, String subject, long timestamp, boolean read, - boolean starred) { + String contentType, String subject, long timestamp, boolean read) { this.id = id; this.parent = parent; this.author = author; @@ -21,7 +20,6 @@ public abstract class MessageHeader { this.subject = subject; this.timestamp = timestamp; this.read = read; - this.starred = starred; } /** Returns the message's unique identifier. */ @@ -63,9 +61,4 @@ public abstract class MessageHeader { public boolean isRead() { return read; } - - /** Returns true if the message has been starred. */ - public boolean isStarred() { - return starred; - } } diff --git a/briar-api/src/net/sf/briar/api/db/PrivateMessageHeader.java b/briar-api/src/net/sf/briar/api/db/PrivateMessageHeader.java index 1af301e990..4d3a496ab2 100644 --- a/briar-api/src/net/sf/briar/api/db/PrivateMessageHeader.java +++ b/briar-api/src/net/sf/briar/api/db/PrivateMessageHeader.java @@ -11,9 +11,8 @@ public class PrivateMessageHeader extends MessageHeader { public PrivateMessageHeader(MessageId id, MessageId parent, Author author, String contentType, String subject, long timestamp, boolean read, - boolean starred, ContactId contactId, boolean incoming) { - super(id, parent, author, contentType, subject, timestamp, read, - starred); + ContactId contactId, boolean incoming) { + super(id, parent, author, contentType, subject, timestamp, read); this.contactId = contactId; this.incoming = incoming; } diff --git a/briar-core/src/net/sf/briar/db/Database.java b/briar-core/src/net/sf/briar/db/Database.java index 819804cfd6..0eca48b083 100644 --- a/briar-core/src/net/sf/briar/db/Database.java +++ b/briar-core/src/net/sf/briar/db/Database.java @@ -435,13 +435,6 @@ interface Database<T> { Collection<MessageId> getSendableMessages(T txn, ContactId c, int maxLength) throws DbException; - /** - * Returns true if the given message has been starred. - * <p> - * Locking: message read. - */ - boolean getStarredFlag(T txn, MessageId m) throws DbException; - /** * Returns the groups to which the user subscribes. * <p> @@ -682,15 +675,6 @@ interface Database<T> { boolean setRetentionTime(T txn, ContactId c, long retention, long version) throws DbException; - /** - * Marks the given message starred or unstarred and returns true if it was - * previously starred. - * <p> - * Locking: message write. - */ - boolean setStarredFlag(T txn, MessageId m, boolean starred) - throws DbException; - /** * If the database contains the given message and it belongs to a group * that is visible to the given contact, marks the message as seen by the diff --git a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java index 6171009506..7c43a3a48e 100644 --- a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java +++ b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java @@ -1113,25 +1113,6 @@ DatabaseCleaner.Callback { } } - public boolean getStarredFlag(MessageId m) throws DbException { - messageLock.readLock().lock(); - try { - T txn = db.startTransaction(); - try { - if(!db.containsMessage(txn, m)) - throw new NoSuchMessageException(); - boolean starred = db.getStarredFlag(txn, m); - db.commitTransaction(txn); - return starred; - } catch(DbException e) { - db.abortTransaction(txn); - throw e; - } - } finally { - messageLock.readLock().unlock(); - } - } - public Collection<Group> getSubscriptions() throws DbException { subscriptionLock.readLock().lock(); try { @@ -1795,26 +1776,6 @@ DatabaseCleaner.Callback { } } - public boolean setStarredFlag(MessageId m, boolean starred) - throws DbException { - messageLock.writeLock().lock(); - try { - T txn = db.startTransaction(); - try { - if(!db.containsMessage(txn, m)) - throw new NoSuchMessageException(); - boolean wasStarred = db.setStarredFlag(txn, m, starred); - db.commitTransaction(txn); - return wasStarred; - } catch(DbException e) { - db.abortTransaction(txn); - throw e; - } - } finally { - messageLock.writeLock().unlock(); - } - } - public void setVisibility(GroupId g, Collection<ContactId> visible) throws DbException { Collection<ContactId> affected = new ArrayList<ContactId>(); diff --git a/briar-core/src/net/sf/briar/db/JdbcDatabase.java b/briar-core/src/net/sf/briar/db/JdbcDatabase.java index c5d8e9546c..545d5a15b5 100644 --- a/briar-core/src/net/sf/briar/db/JdbcDatabase.java +++ b/briar-core/src/net/sf/briar/db/JdbcDatabase.java @@ -154,7 +154,6 @@ abstract class JdbcDatabase implements Database<Connection> { + " incoming BOOLEAN NOT NULL," + " contactId INT UNSIGNED," // Null for group messages + " read BOOLEAN NOT NULL," - + " starred BOOLEAN NOT NULL," + " PRIMARY KEY (messageId)," + " FOREIGN KEY (groupId)" + " REFERENCES groups (groupId)" @@ -662,9 +661,9 @@ abstract class JdbcDatabase implements Database<Connection> { String sql = "INSERT INTO messages (messageId, parentId, groupId," + " authorId, authorName, authorKey, contentType, subject," + " timestamp, length, bodyStart, bodyLength, raw," - + " incoming, read, starred)" + + " incoming, read)" + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?," - + " FALSE, FALSE)"; + + " FALSE)"; ps = txn.prepareStatement(sql); ps.setBytes(1, m.getId().getBytes()); if(m.getParent() == null) ps.setNull(2, BINARY); @@ -760,8 +759,8 @@ abstract class JdbcDatabase implements Database<Connection> { try { String sql = "INSERT INTO messages (messageId, parentId," + " contentType, subject, timestamp, length, bodyStart," - + " bodyLength, raw, incoming, contactId, read, starred)" - + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, FALSE, FALSE)"; + + " bodyLength, raw, incoming, contactId, read)" + + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, FALSE)"; ps = txn.prepareStatement(sql); ps.setBytes(1, m.getId().getBytes()); if(m.getParent() == null) ps.setNull(2, BINARY); @@ -1289,8 +1288,7 @@ abstract class JdbcDatabase implements Database<Connection> { ResultSet rs = null; try { String sql = "SELECT messageId, parentId, authorId, authorName," - + " authorKey, contentType, subject, timestamp, read," - + " starred" + + " authorKey, contentType, subject, timestamp, read" + " FROM messages" + " WHERE groupId = ?"; ps = txn.prepareStatement(sql); @@ -1316,9 +1314,8 @@ abstract class JdbcDatabase implements Database<Connection> { String subject = rs.getString(7); long timestamp = rs.getLong(8); boolean read = rs.getBoolean(9); - boolean starred = rs.getBoolean(10); headers.add(new GroupMessageHeader(id, parent, author, - contentType, subject, timestamp, read, starred, g)); + contentType, subject, timestamp, read, g)); } rs.close(); ps.close(); @@ -1651,7 +1648,7 @@ abstract class JdbcDatabase implements Database<Connection> { try { // Get the incoming message headers String sql = "SELECT m.messageId, parentId, contentType, subject," - + " timestamp, read, starred, c.authorId, name, publicKey" + + " timestamp, read, c.authorId, name, publicKey" + " FROM messages AS m" + " JOIN contacts AS c" + " ON m.contactId = c.contactId" @@ -1671,20 +1668,18 @@ abstract class JdbcDatabase implements Database<Connection> { String subject = rs.getString(4); long timestamp = rs.getLong(5); boolean read = rs.getBoolean(6); - boolean starred = rs.getBoolean(7); - AuthorId authorId = new AuthorId(rs.getBytes(8)); - String authorName = rs.getString(9); - byte[] authorKey = rs.getBytes(10); + AuthorId authorId = new AuthorId(rs.getBytes(7)); + String authorName = rs.getString(8); + byte[] authorKey = rs.getBytes(9); Author author = new Author(authorId, authorName, authorKey); headers.add(new PrivateMessageHeader(id, parent, author, - contentType, subject, timestamp, read, starred, c, - true)); + contentType, subject, timestamp, read, c, true)); } rs.close(); ps.close(); // Get the outgoing message headers sql = "SELECT m.messageId, parentId, contentType, subject," - + " timestamp, read, starred, a.authorId, a.name," + + " timestamp, read, a.authorId, a.name," + " a.publicKey" + " FROM messages AS m" + " JOIN contacts AS c" @@ -1705,14 +1700,12 @@ abstract class JdbcDatabase implements Database<Connection> { String subject = rs.getString(4); long timestamp = rs.getLong(5); boolean read = rs.getBoolean(6); - boolean starred = rs.getBoolean(7); - AuthorId authorId = new AuthorId(rs.getBytes(8)); - String authorName = rs.getString(9); - byte[] authorKey = rs.getBytes(10); + AuthorId authorId = new AuthorId(rs.getBytes(7)); + String authorName = rs.getString(8); + byte[] authorKey = rs.getBytes(9); Author author = new Author(authorId, authorName, authorKey); headers.add(new PrivateMessageHeader(id, parent, author, - contentType, subject, timestamp, read, starred, c, - false)); + contentType, subject, timestamp, read, c, false)); } rs.close(); ps.close(); @@ -2049,28 +2042,6 @@ abstract class JdbcDatabase implements Database<Connection> { } } - public boolean getStarredFlag(Connection txn, MessageId m) - throws DbException { - PreparedStatement ps = null; - ResultSet rs = null; - try { - String sql = "SELECT starred FROM messages WHERE messageId = ?"; - ps = txn.prepareStatement(sql); - ps.setBytes(1, m.getBytes()); - rs = ps.executeQuery(); - boolean starred = false; - if(rs.next()) starred = rs.getBoolean(1); - if(rs.next()) throw new DbStateException(); - rs.close(); - ps.close(); - return starred; - } catch(SQLException e) { - tryToClose(rs); - tryToClose(ps); - throw new DbException(e); - } - } - public Collection<Group> getSubscriptions(Connection txn) throws DbException { PreparedStatement ps = null; @@ -3017,36 +2988,6 @@ abstract class JdbcDatabase implements Database<Connection> { } } - public boolean setStarredFlag(Connection txn, MessageId m, boolean starred) - throws DbException { - PreparedStatement ps = null; - ResultSet rs = null; - try { - String sql = "SELECT starred FROM messages WHERE messageId = ?"; - ps = txn.prepareStatement(sql); - ps.setBytes(1, m.getBytes()); - rs = ps.executeQuery(); - if(!rs.next()) throw new DbStateException(); - boolean wasStarred = rs.getBoolean(1); - if(rs.next()) throw new DbStateException(); - rs.close(); - ps.close(); - if(wasStarred == starred) return starred; - sql = "UPDATE messages SET starred = ? WHERE messageId = ?"; - ps = txn.prepareStatement(sql); - ps.setBoolean(1, starred); - ps.setBytes(2, m.getBytes()); - int affected = ps.executeUpdate(); - if(affected != 1) throw new DbStateException(); - ps.close(); - return !starred; - } catch(SQLException e) { - tryToClose(rs); - tryToClose(ps); - throw new DbException(e); - } - } - public boolean setStatusSeenIfVisible(Connection txn, ContactId c, MessageId m) throws DbException { PreparedStatement ps = null; diff --git a/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java b/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java index 943ed3e97e..9419d6f7a5 100644 --- a/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java +++ b/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java @@ -1202,12 +1202,10 @@ public class H2DatabaseTest extends BriarTestCase { if(messageId.equals(header.getId())) { assertHeadersMatch(message, header); assertTrue(header.isRead()); - assertFalse(header.isStarred()); messageFound = true; } else if(messageId1.equals(header.getId())) { assertHeadersMatch(message1, header); assertFalse(header.isRead()); - assertFalse(header.isStarred()); message1Found = true; } else { fail(); @@ -1218,12 +1216,10 @@ public class H2DatabaseTest extends BriarTestCase { if(messageId.equals(header.getId())) { assertHeadersMatch(message, header); assertTrue(header.isRead()); - assertFalse(header.isStarred()); messageFound = true; } else if(messageId1.equals(header.getId())) { assertHeadersMatch(message1, header); assertFalse(header.isRead()); - assertFalse(header.isStarred()); message1Found = true; } else { fail(); @@ -1275,32 +1271,6 @@ public class H2DatabaseTest extends BriarTestCase { db.close(); } - @Test - public void testStarredFlag() throws Exception { - Database<Connection> db = open(false); - Connection txn = db.startTransaction(); - - // Subscribe to a group and store a message - db.addSubscription(txn, group); - db.addGroupMessage(txn, message, false); - - // The message should be unstarred by default - assertFalse(db.getStarredFlag(txn, messageId)); - // Starring the message should return the old value - assertFalse(db.setStarredFlag(txn, messageId, true)); - assertTrue(db.setStarredFlag(txn, messageId, true)); - // The message should be starred - assertTrue(db.getStarredFlag(txn, messageId)); - // Unstarring the message should return the old value - assertTrue(db.setStarredFlag(txn, messageId, false)); - assertFalse(db.setStarredFlag(txn, messageId, false)); - // Unsubscribe from the group - db.removeSubscription(txn, groupId); - - db.commitTransaction(txn); - db.close(); - } - @Test public void testGetUnreadMessageCounts() throws Exception { Database<Connection> db = open(false); -- GitLab