diff options
author | Roman Birg <roman@cyngn.com> | 2016-05-13 13:58:50 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-05-16 08:50:20 -0700 |
commit | e4d27317b48f06f199c392f85f99ab8d98e90c47 (patch) | |
tree | b546b651808e0bcd1dc8bba4b79e1ef718b0b26e /src | |
parent | 3352b45980ae9a98bf864d60fb04114a8b157c0b (diff) | |
download | packages_apps_Messaging-e4d27317b48f06f199c392f85f99ab8d98e90c47.zip packages_apps_Messaging-e4d27317b48f06f199c392f85f99ab8d98e90c47.tar.gz packages_apps_Messaging-e4d27317b48f06f199c392f85f99ab8d98e90c47.tar.bz2 |
Messaging: properly handle "always ask" SMS sending option
Before the app would require the system to have an SMS subscription
actively selected, but the app also allows the user to override that sub
and send an SMS with another SIM. If the user overrides it, we should
respect their choice and allow the SMS to send if no system one is ever
selected.
Ticket: CYNGNOS-2185, CYNGNOS-2570
Change-Id: I04c1e8bd5c0c41c90af870c4336c0c7f5ba83d4c
Signed-off-by: Roman Birg <roman@cyngn.com>
Diffstat (limited to 'src')
3 files changed, 18 insertions, 12 deletions
diff --git a/src/com/android/messaging/datamodel/data/ConversationData.java b/src/com/android/messaging/datamodel/data/ConversationData.java index 71bd167..06a8260 100644 --- a/src/com/android/messaging/datamodel/data/ConversationData.java +++ b/src/com/android/messaging/datamodel/data/ConversationData.java @@ -69,8 +69,6 @@ public class ConversationData extends BindableData { private static final long LAST_MESSAGE_TIMESTAMP_NaN = -1; private static final int MESSAGE_COUNT_NaN = -1; - private static int mOverrideSubId = -1; - /** * Takes a conversation id and a list of message ids and computes the positions * for each message. @@ -592,10 +590,6 @@ public class ConversationData extends BindableData { return mParticipantData.isLoaded(); } - public void setOverrideSendingSubId(int subId) { - mOverrideSubId = subId; - } - public void sendMessage(final BindingBase<ConversationData> binding, final MessageData message) { Assert.isTrue(TextUtils.equals(mConversationId, message.getConversationId())); @@ -605,8 +599,8 @@ public class ConversationData extends BindableData { InsertNewMessageAction.insertNewMessage(message); } else { final int systemDefaultSubId = PhoneUtils.getDefault().getDefaultSmsSubscriptionId(); - if (mOverrideSubId != ParticipantData.DEFAULT_SELF_SUB_ID) { - InsertNewMessageAction.insertNewMessage(message, mOverrideSubId); + if (PhoneUtils.getOverrideSendingSubId() != ParticipantData.DEFAULT_SELF_SUB_ID) { + InsertNewMessageAction.insertNewMessage(message, PhoneUtils.getOverrideSendingSubId()); } else if (systemDefaultSubId != ParticipantData.DEFAULT_SELF_SUB_ID && mSelfParticipantsData.isDefaultSelf(message.getSelfId())) { // Lock the sub selection to the system default SIM as soon as the user clicks on diff --git a/src/com/android/messaging/ui/conversation/ComposeMessageView.java b/src/com/android/messaging/ui/conversation/ComposeMessageView.java index 9bf3635..9bcd00e 100644 --- a/src/com/android/messaging/ui/conversation/ComposeMessageView.java +++ b/src/com/android/messaging/ui/conversation/ComposeMessageView.java @@ -78,6 +78,7 @@ import com.android.messaging.util.ContentType; import com.android.messaging.util.LogUtil; import com.android.messaging.util.MediaUtil; import com.android.messaging.util.OsUtil; +import com.android.messaging.util.PhoneUtils; import com.android.messaging.util.UiUtils; import com.android.messaging.util.UnicodeFilter; @@ -339,8 +340,7 @@ public class ComposeMessageView extends LinearLayout @Override public void onClick(final View clickView) { - mConversationDataModel.getData().setOverrideSendingSubId( - ParticipantData.DEFAULT_SELF_SUB_ID); + PhoneUtils.setOverrideSendingSubId(ParticipantData.DEFAULT_SELF_SUB_ID); if (isSMSPromptEnabled()) { showSimSelector((Activity)mOriginalContext, new OnSimSelectedCallback() { @Override @@ -713,7 +713,7 @@ public class ComposeMessageView extends LinearLayout } private void sendMessageWithSubId(int subId) { - mConversationDataModel.getData().setOverrideSendingSubId(subId); + PhoneUtils.setOverrideSendingSubId(subId); sendMessageInternal(true /* checkMessageSize */); } diff --git a/src/com/android/messaging/util/PhoneUtils.java b/src/com/android/messaging/util/PhoneUtils.java index cd89551..1eb410c 100644 --- a/src/com/android/messaging/util/PhoneUtils.java +++ b/src/com/android/messaging/util/PhoneUtils.java @@ -75,6 +75,16 @@ public abstract class PhoneUtils { private static final ArrayMap<String, ArrayMap<String, String>> sCanonicalPhoneNumberCache = new ArrayMap<>(); + public static int sOverrideSendingSubId = -1; + + public static int getOverrideSendingSubId() { + return sOverrideSendingSubId; + } + + public static void setOverrideSendingSubId(int subId) { + sOverrideSendingSubId = subId; + } + protected final Context mContext; protected final TelephonyManager mTelephonyManager; protected final int mSubId; @@ -561,7 +571,9 @@ public abstract class PhoneUtils { @Override public boolean getHasPreferredSmsSim() { - return getDefaultSmsSubscriptionId() != ParticipantData.DEFAULT_SELF_SUB_ID; + return getDefaultSmsSubscriptionId() != ParticipantData.DEFAULT_SELF_SUB_ID + || (sOverrideSendingSubId != ParticipantData.DEFAULT_SELF_SUB_ID + && SmsManager.getDefault().isSMSPromptEnabled()); } @Override |