Improve speed of sending single messages.

This commit is contained in:
Cody Henthorne
2021-07-29 14:07:39 -04:00
committed by GitHub
parent 25234496bf
commit 9398716848
12 changed files with 141 additions and 111 deletions

View File

@@ -296,6 +296,7 @@ import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.SignalSessionLock;
import java.io.IOException;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -3051,12 +3052,13 @@ public class ConversationActivity extends PassphraseRequiredActivity
.ifNecessary(!sendPush)
.withPermanentDenialDialog(getString(R.string.ConversationActivity_signal_needs_sms_permission_in_order_to_send_an_sms))
.onAllGranted(() -> {
silentlySetComposeText("");
final long id = fragment.stageOutgoingMessage(message);
final long id = new SecureRandom().nextLong();
SimpleTask.run(() -> {
return MessageSender.send(context, message, thread, forceSms, () -> fragment.releaseOutgoingMessage(id));
}, this::sendComplete);
silentlySetComposeText("");
fragment.stageOutgoingMessage(message, id);
})
.execute();
}

View File

@@ -1088,8 +1088,8 @@ public class ConversationFragment extends LoggingFragment {
return messageRecord.getId();
}
public long stageOutgoingMessage(OutgoingTextMessage message) {
MessageRecord messageRecord = SmsDatabase.readerFor(message, threadId).getCurrent();
public long stageOutgoingMessage(OutgoingTextMessage message, long messageId) {
MessageRecord messageRecord = SmsDatabase.readerFor(message, threadId, messageId).getCurrent();
if (getListAdapter() != null) {
clearHeaderIfNotTyping(getListAdapter());