protected override async Task <string> ExecuteAsync() { TextMessageDatabase database = DatabaseFactory.getTextMessageDatabase(); var record = await database.getMessageRecord(messageId); //var message = await database.Get(messageId); try { await deliver(record); database.MarkAsPush(messageId); database.MarkAsSecure(messageId); database.MarkAsSent(messageId); } catch (libsignalservice.crypto.UntrustedIdentityException e) { Log.Debug($"Untrusted Identity Key: {e.getIdentityKey()} {e.getE164Number()}"); var recipients = RecipientFactory.getRecipientsFromString(e.getE164Number(), false); long recipientId = recipients.getPrimaryRecipient().getRecipientId(); database.AddMismatchedIdentity(record.MessageId, recipientId, e.getIdentityKey()); database.MarkAsSentFailed(record.MessageId); database.MarkAsPush(record.MessageId); } catch (Exception e) { Log.Error($"Unexpected Exception {e.Source} {e.GetType()} : {e.Message}"); } return(""); //throw new NotImplementedException(); }
public async static Task <long> send( OutgoingTextMessage message, long threadId) { //EncryptingSmsDatabase database = DatabaseFactory.getEncryptingSmsDatabase(context); TextMessageDatabase database = DatabaseFactory.getTextMessageDatabase(); Recipients recipients = message.Recipients; bool keyExchange = message.IsKeyExchange; long allocatedThreadId; if (threadId == -1) { allocatedThreadId = DatabaseFactory.getThreadDatabase().GetThreadIdForRecipients(recipients); } else { allocatedThreadId = threadId; } long messageId = database.InsertMessageOutbox(allocatedThreadId, message, TimeUtil.GetDateTimeMillis()); await sendTextMessage(recipients, keyExchange, messageId); return(allocatedThreadId); }
protected override async Task <string> ExecuteAsync() { Debug.WriteLine("executeasync"); TextMessageDatabase database = DatabaseFactory.getTextMessageDatabase(); var message = await database.getMessageRecord(messageId); //var message = await database.Get(messageId); try { deliver(message); database.markAsPush(messageId); database.markAsSecure(messageId); database.markAsSent(messageId); } catch (Exception e) { Debug.WriteLine($"{GetType()} failure {e.Message}"); } return(""); //throw new NotImplementedException(); }