|  |  |  | @ -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>() { | 
		
	
	
		
			
				
					|  |  |  | 
 |