Skip to content
Snippets Groups Projects

Move private message creation off the crypto executor

Merged akwizgran requested to merge 1590-create-private-messages-on-ui-thread into master
1 file
+ 10
17
Compare changes
  • Side-by-side
  • Inline
@@ -13,7 +13,6 @@ import org.briarproject.bramble.api.FormatException;
@@ -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
@@ -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
@@ -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
@@ -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,
Loading