Merge "Use an original text for next force 7bit encoding"
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user