summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/datamodel/data/DraftMessageData.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/datamodel/data/DraftMessageData.java')
-rw-r--r--src/com/android/messaging/datamodel/data/DraftMessageData.java29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/com/android/messaging/datamodel/data/DraftMessageData.java b/src/com/android/messaging/datamodel/data/DraftMessageData.java
index 7a7199a..fcdd53b 100644
--- a/src/com/android/messaging/datamodel/data/DraftMessageData.java
+++ b/src/com/android/messaging/datamodel/data/DraftMessageData.java
@@ -38,6 +38,7 @@ import com.android.messaging.util.BugleGservicesKeys;
import com.android.messaging.util.LogUtil;
import com.android.messaging.util.PhoneUtils;
import com.android.messaging.util.SafeAsyncTask;
+import com.android.messaging.util.SecureMessagingHelper;
import java.util.ArrayList;
import java.util.Collection;
@@ -93,6 +94,7 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
private String mSelfId;
private MessageTextStats mMessageTextStats;
private boolean mSending;
+ private boolean mSecured;
/** Keeps track of completed attachments in the message draft. This data is persisted to db */
private final List<MessagePartData> mAttachments;
@@ -190,6 +192,7 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
message = MessageData.createDraftSmsMessage(mConversationId, mSelfId,
mMessageText);
}
+ message.setTransportSecured(isSecured());
if (clearLocalCopy) {
// The message now owns all the attachments and the text...
@@ -606,6 +609,12 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
return mSending;
}
+ public boolean isSecured() {return mSecured;}
+
+ public void setSecured(boolean secured) {
+ mSecured = secured;
+ }
+
@Override // ReadDraftMessageActionListener.onReadDraftMessageSucceeded
public void onReadDraftDataSucceeded(final ReadDraftDataAction action, final Object data,
final MessageData message, final ConversationListItemData conversation) {
@@ -697,8 +706,9 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
}
public void checkDraftForAction(final boolean checkMessageSize, final int selfSubId,
- final CheckDraftTaskCallback callback, final Binding<DraftMessageData> binding) {
- new CheckDraftForSendTask(checkMessageSize, selfSubId, callback, binding)
+ SecureMessagingHelper helper, final CheckDraftTaskCallback callback,
+ final Binding<DraftMessageData> binding) {
+ new CheckDraftForSendTask(checkMessageSize, selfSubId, helper, callback, binding)
.executeOnThreadPool((Void) null);
}
@@ -748,17 +758,21 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
public static final int RESULT_MESSAGE_OVER_LIMIT = 3;
public static final int RESULT_VIDEO_ATTACHMENT_LIMIT_EXCEEDED = 4;
public static final int RESULT_SIM_NOT_READY = 5;
+ public static final int RESULT_PARTICIPANTS_MIXED = 6;
private final boolean mCheckMessageSize;
private final int mSelfSubId;
private final CheckDraftTaskCallback mCallback;
+ private SecureMessagingHelper mSecureMessagingHelper;
private final String mBindingId;
private final List<MessagePartData> mAttachmentsCopy;
private int mPreExecuteResult = RESULT_PASSED;
public CheckDraftForSendTask(final boolean checkMessageSize, final int selfSubId,
- final CheckDraftTaskCallback callback, final Binding<DraftMessageData> binding) {
+ SecureMessagingHelper secureMessagingHelperelper, final CheckDraftTaskCallback callback,
+ final Binding<DraftMessageData> binding) {
mCheckMessageSize = checkMessageSize;
mSelfSubId = selfSubId;
+ mSecureMessagingHelper = secureMessagingHelperelper;
mCallback = callback;
mBindingId = binding.getBindingId();
// Obtain an immutable copy of the attachment list so we can operate on it in the
@@ -803,6 +817,15 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
if (mCheckMessageSize && getIsMessageOverLimit()) {
return RESULT_MESSAGE_OVER_LIMIT;
}
+
+ if (mSecureMessagingHelper != null) {
+ mSecureMessagingHelper.checkIfAllParticipantsSecured();
+ setSecured(mSecureMessagingHelper.isAllParticipantsSecured());
+ if (mSecureMessagingHelper.isParticipantsMixed()) {
+ return RESULT_PARTICIPANTS_MIXED;
+ }
+ }
+
return RESULT_PASSED;
}