Exemple #1
0
        public async static Task <long> send(
            OutgoingTextMessage message,
            long threadId)
        {
            long type = MessageTypes.BASE_OUTBOX_TYPE;
            //EncryptingSmsDatabase database = DatabaseFactory.getEncryptingSmsDatabase(context);
            MessageDatabase database    = DatabaseFactory.getMessageDatabase();
            Recipients      recipients  = message.getRecipients();
            bool            keyExchange = message.isKeyExchange();

            long allocatedThreadId;

            if (threadId == -1)
            {
                allocatedThreadId = DatabaseFactory.getThreadDatabase().GetThreadIdForRecipients(recipients);
            }
            else
            {
                allocatedThreadId = threadId;
            }

            long messageId = await database.insertMessageOutbox(allocatedThreadId, message, type, TimeUtil.GetDateTimeMillis());

            // notify user interface
            Messenger.Default.Send(new AddMessageMessage()
            {
                ThreadId = allocatedThreadId, MessageId = messageId
            });


            await sendTextMessage(recipients, keyExchange, messageId);

            return(allocatedThreadId);
        }