Add correct contextual menu options on 'Send' button.

[Send TextSecure message | Send unencrypted SMS | Send encrypted SMS]

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2014-06-11 15:31:59 -07:00
parent 7c9282f306
commit 68747142d6
13 changed files with 107 additions and 55 deletions

View File

@@ -59,13 +59,13 @@ public class EncryptingSmsDatabase extends SmsDatabase {
}
public List<Long> insertMessageOutbox(MasterSecret masterSecret, long threadId,
OutgoingTextMessage message)
OutgoingTextMessage message, boolean forceSms)
{
long type = Types.BASE_OUTBOX_TYPE;
message = message.withBody(getEncryptedBody(masterSecret, message.getMessageBody()));
type |= Types.ENCRYPTION_SYMMETRIC_BIT;
return insertMessageOutbox(threadId, message, type);
return insertMessageOutbox(threadId, message, type, forceSms);
}
public Pair<Long, Long> insertMessageInbox(MasterSecret masterSecret,

View File

@@ -572,14 +572,14 @@ public class MmsDatabase extends Database implements MmsSmsColumns {
Trimmer.trimThread(context, threadId);
}
public long insertMessageOutbox(MasterSecret masterSecret, OutgoingMediaMessage message, long threadId)
public long insertMessageOutbox(MasterSecret masterSecret, OutgoingMediaMessage message,
long threadId, boolean forceSms)
throws MmsException
{
long type = Types.BASE_OUTBOX_TYPE | Types.ENCRYPTION_SYMMETRIC_BIT;
if (message.isSecure()) {
type |= Types.SECURE_MESSAGE_BIT;
}
if (message.isSecure()) type |= Types.SECURE_MESSAGE_BIT;
if (forceSms) type |= Types.MESSAGE_FORCE_SMS_BIT;
if (message.isGroup()) {
if (((OutgoingGroupMediaMessage)message).isGroupUpdate()) type |= Types.GROUP_UPDATE_BIT;

View File

@@ -362,10 +362,13 @@ public class SmsDatabase extends Database implements MmsSmsColumns {
return insertMessageInbox(message, Types.BASE_INBOX_TYPE);
}
protected List<Long> insertMessageOutbox(long threadId, OutgoingTextMessage message, long type) {
protected List<Long> insertMessageOutbox(long threadId, OutgoingTextMessage message,
long type, boolean forceSms)
{
if (message.isKeyExchange()) type |= Types.KEY_EXCHANGE_BIT;
else if (message.isSecureMessage()) type |= Types.SECURE_MESSAGE_BIT;
else if (message.isEndSession()) type |= Types.END_SESSION_BIT;
if (forceSms) type |= Types.MESSAGE_FORCE_SMS_BIT;
long date = System.currentTimeMillis();
List<Long> messageIds = new LinkedList<Long>();