Merge "Use an original text for next force 7bit encoding"

This commit is contained in:
Treehugger Robot
2020-04-07 02:32:15 +00:00
committed by Gerrit Code Review
3 changed files with 17 additions and 13 deletions

View File

@@ -493,7 +493,10 @@ public class SmsMessage {
String newMsgBody = null; String newMsgBody = null;
Resources r = Resources.getSystem(); Resources r = Resources.getSystem();
if (r.getBoolean(com.android.internal.R.bool.config_sms_force_7bit_encoding)) { if (r.getBoolean(com.android.internal.R.bool.config_sms_force_7bit_encoding)) {
newMsgBody = Sms7BitEncodingTranslator.translate(text, isCdma); // 7-bit ASCII table based translation is required only for CDMA single-part SMS since
// ENCODING_7BIT_ASCII is used for CDMA single-part SMS and ENCODING_GSM_7BIT_ALPHABET
// is used for CDMA multi-part SMS.
newMsgBody = Sms7BitEncodingTranslator.translate(text, isCdma && ted.msgCount == 1);
} }
if (TextUtils.isEmpty(newMsgBody)) { if (TextUtils.isEmpty(newMsgBody)) {
newMsgBody = text; newMsgBody = text;

View File

@@ -17,7 +17,6 @@
package com.android.internal.telephony.cdma; package com.android.internal.telephony.cdma;
import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
import android.os.Build; import android.os.Build;
import android.sysprop.TelephonyProperties; import android.sysprop.TelephonyProperties;
import android.telephony.PhoneNumberUtils; import android.telephony.PhoneNumberUtils;
@@ -28,7 +27,6 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails; import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
import com.android.internal.telephony.Sms7BitEncodingTranslator;
import com.android.internal.telephony.SmsAddress; import com.android.internal.telephony.SmsAddress;
import com.android.internal.telephony.SmsConstants; import com.android.internal.telephony.SmsConstants;
import com.android.internal.telephony.SmsHeader; import com.android.internal.telephony.SmsHeader;
@@ -416,15 +414,7 @@ public class SmsMessage extends SmsMessageBase {
@UnsupportedAppUsage @UnsupportedAppUsage
public static TextEncodingDetails calculateLength(CharSequence messageBody, public static TextEncodingDetails calculateLength(CharSequence messageBody,
boolean use7bitOnly, boolean isEntireMsg) { boolean use7bitOnly, boolean isEntireMsg) {
CharSequence newMsgBody = null; return BearerData.calcTextEncodingDetails(messageBody, use7bitOnly, isEntireMsg);
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);
} }
/** /**

View File

@@ -21,9 +21,11 @@ import android.content.res.Resources;
import android.telephony.SmsCbCmasInfo; import android.telephony.SmsCbCmasInfo;
import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.cdma.CdmaSmsCbProgramData;
import android.telephony.cdma.CdmaSmsCbProgramResults; import android.telephony.cdma.CdmaSmsCbProgramResults;
import android.text.TextUtils;
import com.android.internal.telephony.GsmAlphabet; import com.android.internal.telephony.GsmAlphabet;
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails; import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
import com.android.internal.telephony.Sms7BitEncodingTranslator;
import com.android.internal.telephony.SmsConstants; import com.android.internal.telephony.SmsConstants;
import com.android.internal.telephony.SmsHeader; import com.android.internal.telephony.SmsHeader;
import com.android.internal.telephony.SmsMessageBase; import com.android.internal.telephony.SmsMessageBase;
@@ -540,8 +542,17 @@ public final class BearerData {
*/ */
public static TextEncodingDetails calcTextEncodingDetails(CharSequence msg, public static TextEncodingDetails calcTextEncodingDetails(CharSequence msg,
boolean force7BitEncoding, boolean isEntireMsg) { 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; TextEncodingDetails ted;
int septets = countAsciiSeptets(msg, force7BitEncoding); int septets = countAsciiSeptets(newMsg, force7BitEncoding);
if (septets != -1 && septets <= SmsConstants.MAX_USER_DATA_SEPTETS) { if (septets != -1 && septets <= SmsConstants.MAX_USER_DATA_SEPTETS) {
ted = new TextEncodingDetails(); ted = new TextEncodingDetails();
ted.msgCount = 1; ted.msgCount = 1;