diff options
author | Taesu Lee <taesu82.lee@samsung.com> | 2020-03-09 13:36:42 +0900 |
---|---|---|
committer | Taesu Lee <taesu82.lee@samsung.com> | 2020-04-03 10:35:55 +0900 |
commit | 6568f8f20ab7ca7a8f0b92b799b923abdeb4cddf (patch) | |
tree | f34a1ae49d335b9df16c904dd4d144288c9c0bff /telephony/java/com | |
parent | abc516b9f9d46fa1c8b2e033f545cea6ffba6b79 (diff) |
Use an original text for next force 7bit encoding
If config_sms_force_7bit_encoding is true, an original text will be
translated based on 7-bit ASCII table for CDMA. But if the translated
text can not be encoded as single-part SMS, the original text should be
used for next try instead and it will be translated based on GSM 7-bit
alphabet for ENCODING_GSM_7BIT_ALPHABET.
Bug: 151061215
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I679786b96d19c6f3f30ec3e2037221110f5d3f84
Diffstat (limited to 'telephony/java/com')
-rw-r--r-- | telephony/java/com/android/internal/telephony/cdma/SmsMessage.java | 12 | ||||
-rw-r--r-- | telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java | 13 |
2 files changed, 13 insertions, 12 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java index 74eb51df76dc..542e08d743ab 100644 --- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java @@ -17,7 +17,6 @@ package com.android.internal.telephony.cdma; import android.compat.annotation.UnsupportedAppUsage; -import android.content.res.Resources; import android.os.Build; import android.sysprop.TelephonyProperties; import android.telephony.PhoneNumberUtils; @@ -28,7 +27,6 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails; -import com.android.internal.telephony.Sms7BitEncodingTranslator; import com.android.internal.telephony.SmsAddress; import com.android.internal.telephony.SmsConstants; import com.android.internal.telephony.SmsHeader; @@ -416,15 +414,7 @@ public class SmsMessage extends SmsMessageBase { @UnsupportedAppUsage public static TextEncodingDetails calculateLength(CharSequence messageBody, boolean use7bitOnly, boolean isEntireMsg) { - CharSequence newMsgBody = null; - Resources r = Resources.getSystem(); - if (r.getBoolean(com.android.internal.R.bool.config_sms_force_7bit_encoding)) { - newMsgBody = Sms7BitEncodingTranslator.translate(messageBody, true /* isCdmaFormat */); - } - if (TextUtils.isEmpty(newMsgBody)) { - newMsgBody = messageBody; - } - return BearerData.calcTextEncodingDetails(newMsgBody, use7bitOnly, isEntireMsg); + return BearerData.calcTextEncodingDetails(messageBody, use7bitOnly, isEntireMsg); } /** diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java index 48cb1cd84c07..3f85de358ea2 100644 --- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java @@ -21,9 +21,11 @@ import android.content.res.Resources; import android.telephony.SmsCbCmasInfo; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.cdma.CdmaSmsCbProgramResults; +import android.text.TextUtils; import com.android.internal.telephony.GsmAlphabet; import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails; +import com.android.internal.telephony.Sms7BitEncodingTranslator; import com.android.internal.telephony.SmsConstants; import com.android.internal.telephony.SmsHeader; import com.android.internal.telephony.SmsMessageBase; @@ -540,8 +542,17 @@ public final class BearerData { */ public static TextEncodingDetails calcTextEncodingDetails(CharSequence msg, boolean force7BitEncoding, boolean isEntireMsg) { + CharSequence newMsg = null; + Resources r = Resources.getSystem(); + if (r.getBoolean(com.android.internal.R.bool.config_sms_force_7bit_encoding)) { + newMsg = Sms7BitEncodingTranslator.translate(msg, true /* isCdmaFormat */); + } + if (TextUtils.isEmpty(newMsg)) { + newMsg = msg; + } + TextEncodingDetails ted; - int septets = countAsciiSeptets(msg, force7BitEncoding); + int septets = countAsciiSeptets(newMsg, force7BitEncoding); if (septets != -1 && septets <= SmsConstants.MAX_USER_DATA_SEPTETS) { ted = new TextEncodingDetails(); ted.msgCount = 1; |