Merge e56ed120e22945949c2d794c62de57c591de70d0 on remote branch
Change-Id: I390ba74d3a27831da9ead26cf979a89553027e99
diff --git a/src/com/android/mms/data/WorkingMessage.java b/src/com/android/mms/data/WorkingMessage.java
index 629ccdc..00f5c5d 100755
--- a/src/com/android/mms/data/WorkingMessage.java
+++ b/src/com/android/mms/data/WorkingMessage.java
@@ -891,6 +891,12 @@
return recipients.serialize();
}
+ public ContactList getWorkingContactLists() {
+ if (mWorkingRecipients == null) {
+ return null;
+ }
+ return ContactList.getByNumbers(mWorkingRecipients, false);
+ }
// Call when we've returned from adding an attachment. We're no longer forcing the message
// into a Mms message. At this point we either have the goods to make the message a Mms
// or we don't. No longer fake it.
diff --git a/src/com/android/mms/ui/ComposeMessageActivity.java b/src/com/android/mms/ui/ComposeMessageActivity.java
index c7af5a9..99d4f19 100755
--- a/src/com/android/mms/ui/ComposeMessageActivity.java
+++ b/src/com/android/mms/ui/ComposeMessageActivity.java
@@ -1783,6 +1783,14 @@
}
editSmsMessageItem(msgItem);
+ boolean inEcm = TelephonyProperties.in_ecm_mode().orElse(false);
+ Log.d(TAG,"ecm mode: " + inEcm);
+ if (inEcm && !isEmergencySmsSupport()) {
+ if (mWorkingMessage.getText() != null) {
+ mTextEditor.setTextKeepState(mWorkingMessage.getText());
+ mTextEditor.setSelection(mTextEditor.length());
+ }
+ }
}
sendMessage(true);
@@ -5549,14 +5557,24 @@
return (size + KILOBYTE -1) / KILOBYTE + 1;
}
+ private ContactList getRecipientForEmergency() {
+ ContactList contactList;
+ if (isRecipientsEditorVisible()) {
+ contactList = mWorkingMessage.getWorkingContactLists();
+ } else {
+ contactList = mConversation.getRecipients();
+ }
+ return contactList;
+ }
public boolean isEmergencySmsSupport() {
PersistableBundle b;
boolean eSmsCarrierSupport = false;
- ContactList recipients = getRecipients();
- int subId = mWorkingMessage.mCurrentConvSubId;
+ ContactList recipients = getRecipientForEmergency();
if (recipients == null || recipients.size() != 1) {
+ Log.d(TAG, "recipient is invalid");
return false;
}
+ int subId = mWorkingMessage.mCurrentConvSubId;
Log.d(TAG, "isEmergencySmsSupport subId: " + subId);
if (!PhoneNumberUtils.isLocalEmergencyNumber(getApplicationContext(),
subId, recipients.get(0).getNumber())) {