|
|
|
@ -1594,6 +1594,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
boolean forceSms = sendButton.isManualSelection() && sendButton.getSelectedTransport().isSms();
|
|
|
|
|
int subscriptionId = sendButton.getSelectedTransport().getSimSubscriptionId().or(-1);
|
|
|
|
|
long expiresIn = recipient.getExpireMessages() * 1000;
|
|
|
|
|
boolean initiating = threadId == -1;
|
|
|
|
|
|
|
|
|
|
Log.w(TAG, "isManual Selection: " + sendButton.isManualSelection());
|
|
|
|
|
Log.w(TAG, "forceSms: " + forceSms);
|
|
|
|
@ -1605,9 +1606,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
} else if (!forceSms && identityRecords.isUntrusted()) {
|
|
|
|
|
handleUntrustedRecipients();
|
|
|
|
|
} else if (attachmentManager.isAttachmentPresent() || recipient.isGroupRecipient() || recipient.getAddress().isEmail()) {
|
|
|
|
|
sendMediaMessage(forceSms, expiresIn, subscriptionId);
|
|
|
|
|
sendMediaMessage(forceSms, expiresIn, subscriptionId, initiating);
|
|
|
|
|
} else {
|
|
|
|
|
sendTextMessage(forceSms, expiresIn, subscriptionId);
|
|
|
|
|
sendTextMessage(forceSms, expiresIn, subscriptionId, initiating);
|
|
|
|
|
}
|
|
|
|
|
} catch (RecipientFormattingException ex) {
|
|
|
|
|
Toast.makeText(ConversationActivity.this,
|
|
|
|
@ -1621,13 +1622,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void sendMediaMessage(final boolean forceSms, final long expiresIn, final int subscriptionId)
|
|
|
|
|
private void sendMediaMessage(final boolean forceSms, final long expiresIn, final int subscriptionId, boolean initiating)
|
|
|
|
|
throws InvalidMessageException
|
|
|
|
|
{
|
|
|
|
|
sendMediaMessage(forceSms, getMessage(), attachmentManager.buildSlideDeck(), expiresIn, subscriptionId);
|
|
|
|
|
sendMediaMessage(forceSms, getMessage(), attachmentManager.buildSlideDeck(), expiresIn, subscriptionId, initiating);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ListenableFuture<Void> sendMediaMessage(final boolean forceSms, String body, SlideDeck slideDeck, final long expiresIn, final int subscriptionId)
|
|
|
|
|
private ListenableFuture<Void> sendMediaMessage(final boolean forceSms, String body, SlideDeck slideDeck, final long expiresIn, final int subscriptionId, final boolean initiating)
|
|
|
|
|
throws InvalidMessageException
|
|
|
|
|
{
|
|
|
|
|
final SettableFuture<Void> future = new SettableFuture<>();
|
|
|
|
@ -1651,6 +1652,10 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
new AsyncTask<OutgoingMediaMessage, Void, Long>() {
|
|
|
|
|
@Override
|
|
|
|
|
protected Long doInBackground(OutgoingMediaMessage... messages) {
|
|
|
|
|
if (initiating) {
|
|
|
|
|
DatabaseFactory.getRecipientPreferenceDatabase(context).setProfileSharing(recipient.getAddress(), true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return MessageSender.send(context, masterSecret, messages[0], threadId, forceSms, new SmsDatabase.InsertListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onComplete() {
|
|
|
|
@ -1669,7 +1674,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
return future;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void sendTextMessage(final boolean forceSms, final long expiresIn, final int subscriptionId)
|
|
|
|
|
private void sendTextMessage(final boolean forceSms, final long expiresIn, final int subscriptionId, final boolean initiatingConversation)
|
|
|
|
|
throws InvalidMessageException
|
|
|
|
|
{
|
|
|
|
|
final Context context = getApplicationContext();
|
|
|
|
@ -1687,6 +1692,10 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
new AsyncTask<OutgoingTextMessage, Void, Long>() {
|
|
|
|
|
@Override
|
|
|
|
|
protected Long doInBackground(OutgoingTextMessage... messages) {
|
|
|
|
|
if (initiatingConversation) {
|
|
|
|
|
DatabaseFactory.getRecipientPreferenceDatabase(context).setProfileSharing(recipient.getAddress(), true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return MessageSender.send(context, masterSecret, messages[0], threadId, forceSms, new SmsDatabase.InsertListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onComplete() {
|
|
|
|
@ -1780,11 +1789,12 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|
|
|
|
boolean forceSms = sendButton.isManualSelection() && sendButton.getSelectedTransport().isSms();
|
|
|
|
|
int subscriptionId = sendButton.getSelectedTransport().getSimSubscriptionId().or(-1);
|
|
|
|
|
long expiresIn = recipient.getExpireMessages() * 1000;
|
|
|
|
|
boolean initiating = threadId == -1;
|
|
|
|
|
AudioSlide audioSlide = new AudioSlide(ConversationActivity.this, result.first, result.second, MediaUtil.AUDIO_AAC, true);
|
|
|
|
|
SlideDeck slideDeck = new SlideDeck();
|
|
|
|
|
slideDeck.addSlide(audioSlide);
|
|
|
|
|
|
|
|
|
|
sendMediaMessage(forceSms, "", slideDeck, expiresIn, subscriptionId).addListener(new AssertedSuccessListener<Void>() {
|
|
|
|
|
sendMediaMessage(forceSms, "", slideDeck, expiresIn, subscriptionId, initiating).addListener(new AssertedSuccessListener<Void>() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onSuccess(Void nothing) {
|
|
|
|
|
new AsyncTask<Void, Void, Void>() {
|
|
|
|
|