Merge branch '1590-create-private-messages-on-ui-thread' into 'master'

Move private message creation off the crypto executor

Closes #1590

See merge request briar/briar!1141
This commit is contained in:
Torsten Grote
2019-06-18 11:22:45 +00:00

View File

@@ -13,7 +13,6 @@ import org.briarproject.bramble.api.FormatException;
import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.Contact;
import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.contact.ContactManager;
import org.briarproject.bramble.api.crypto.CryptoExecutor;
import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DatabaseExecutor;
import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.db.NoSuchContactException; import org.briarproject.bramble.api.db.NoSuchContactException;
@@ -69,8 +68,6 @@ public class ConversationViewModel extends AndroidViewModel
@DatabaseExecutor @DatabaseExecutor
private final Executor dbExecutor; private final Executor dbExecutor;
@CryptoExecutor
private final Executor cryptoExecutor;
private final TransactionManager db; private final TransactionManager db;
private final MessagingManager messagingManager; private final MessagingManager messagingManager;
private final ContactManager contactManager; private final ContactManager contactManager;
@@ -103,14 +100,12 @@ public class ConversationViewModel extends AndroidViewModel
@Inject @Inject
ConversationViewModel(Application application, ConversationViewModel(Application application,
@DatabaseExecutor Executor dbExecutor, @DatabaseExecutor Executor dbExecutor,
@CryptoExecutor Executor cryptoExecutor,
@IoExecutor Executor ioExecutor, TransactionManager db, @IoExecutor Executor ioExecutor, TransactionManager db,
MessagingManager messagingManager, ContactManager contactManager, MessagingManager messagingManager, ContactManager contactManager,
SettingsManager settingsManager, SettingsManager settingsManager,
PrivateMessageFactory privateMessageFactory) { PrivateMessageFactory privateMessageFactory) {
super(application); super(application);
this.dbExecutor = dbExecutor; this.dbExecutor = dbExecutor;
this.cryptoExecutor = cryptoExecutor;
this.db = db; this.db = db;
this.messagingManager = messagingManager; this.messagingManager = messagingManager;
this.contactManager = contactManager; this.contactManager = contactManager;
@@ -276,18 +271,16 @@ public class ConversationViewModel extends AndroidViewModel
private void createMessage(GroupId groupId, @Nullable String text, private void createMessage(GroupId groupId, @Nullable String text,
List<AttachmentHeader> attachments, long timestamp) { List<AttachmentHeader> attachments, long timestamp) {
cryptoExecutor.execute(() -> { try {
try { // TODO remove when text can be null in the backend
// TODO remove when text can be null in the backend String msgText = text == null ? "null" : text;
String msgText = text == null ? "null" : text; PrivateMessage pm = privateMessageFactory
PrivateMessage pm = privateMessageFactory .createPrivateMessage(groupId, timestamp, msgText,
.createPrivateMessage(groupId, timestamp, msgText, attachments);
attachments); storeMessage(pm, msgText, attachments);
storeMessage(pm, msgText, attachments); } catch (FormatException e) {
} catch (FormatException e) { throw new RuntimeException(e);
throw new RuntimeException(e); }
}
});
} }
private void storeMessage(PrivateMessage m, @Nullable String text, private void storeMessage(PrivateMessage m, @Nullable String text,