RTP: write log message on background thread

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java  | 4 
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java | 2 
src/main/res/menu/activity_rtp_session.xml                                | 0 
3 files changed, 5 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -3303,6 +3303,10 @@ public class XmppConnectionService extends Service {
         updateConversationUi();
     }
 
+    public void createMessageAsync(final Message message) {
+        mDatabaseWriterExecutor.execute(()-> databaseBackend.createMessage(message));
+    }
+
     public void updateMessage(Message message, String uuid) {
         if (!databaseBackend.updateMessage(message, uuid)) {
             Log.e(Config.LOGTAG, "error updated message in DB after edit");

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java 🔗

@@ -1219,7 +1219,7 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
         final Conversational conversational = message.getConversation();
         if (conversational instanceof Conversation) {
             ((Conversation) conversational).add(this.message);
-            xmppConnectionService.databaseBackend.createMessage(message);
+            xmppConnectionService.createMessageAsync(message);
             xmppConnectionService.updateConversationUi();
         } else {
             throw new IllegalStateException("Somehow the conversation in a message was a stub");