Example #1
0
        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();
        }
Example #2
0
        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);
        }
Example #3
0
        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();
        }