diff options
author | Jake Hamby <jhamby@google.com> | 2011-05-10 15:52:15 -0700 |
---|---|---|
committer | Jake Hamby <jhamby@google.com> | 2011-05-10 15:52:15 -0700 |
commit | ee60f3fb1b4e61ac8027293a658ba710e36d36b6 (patch) | |
tree | 54156a5e68a8a0c95f073f7d6b486726db05e0fa /telephony/java/android | |
parent | 6819c677b9d8d9a5f60f1a35e045300b1a8aec96 (diff) | |
parent | 18cc814c94edb188b73a92f0d34878d9dc054ff6 (diff) | |
download | frameworks_base-ee60f3fb1b4e61ac8027293a658ba710e36d36b6.zip frameworks_base-ee60f3fb1b4e61ac8027293a658ba710e36d36b6.tar.gz frameworks_base-ee60f3fb1b4e61ac8027293a658ba710e36d36b6.tar.bz2 |
resolved conflicts for merge of 18cc814c to honeycomb-plus-aosp
Change-Id: I2b569ada3baec2dc486296623063bc2b504c5e96
Diffstat (limited to 'telephony/java/android')
-rw-r--r-- | telephony/java/android/telephony/SmsMessage.java | 12 | ||||
-rw-r--r-- | telephony/java/android/telephony/gsm/SmsMessage.java | 37 |
2 files changed, 15 insertions, 34 deletions
diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java index 93d89a7..e75d96d 100644 --- a/telephony/java/android/telephony/SmsMessage.java +++ b/telephony/java/android/telephony/SmsMessage.java @@ -317,7 +317,8 @@ public class SmsMessage { nextPos = pos + Math.min(limit, textLen - pos); } else { // For multi-segment messages, CDMA 7bit equals GSM 7bit encoding (EMS mode). - nextPos = GsmAlphabet.findGsmSeptetLimitIndex(text, pos, limit); + nextPos = GsmAlphabet.findGsmSeptetLimitIndex(text, pos, limit, + ted.languageTable, ted.languageShiftTable); } } else { // Assume unicode. nextPos = pos + Math.min(limit / 2, textLen - pos); @@ -373,7 +374,8 @@ public class SmsMessage { */ /** - * Get an SMS-SUBMIT PDU for a destination address and a message + * Get an SMS-SUBMIT PDU for a destination address and a message. + * This method will not attempt to use any GSM national language 7 bit encodings. * * @param scAddress Service Centre address. Null means use default. * @return a <code>SubmitPdu</code> containing the encoded SC @@ -400,7 +402,8 @@ public class SmsMessage { } /** - * Get an SMS-SUBMIT PDU for a destination address and a message + * Get an SMS-SUBMIT PDU for a destination address and a message. + * This method will not attempt to use any GSM national language 7 bit encodings. * * @param scAddress Service Centre address. Null means use default. * @return a <code>SubmitPdu</code> containing the encoded SC @@ -424,7 +427,8 @@ public class SmsMessage { } /** - * Get an SMS-SUBMIT PDU for a data message to a destination address & port + * Get an SMS-SUBMIT PDU for a data message to a destination address & port. + * This method will not attempt to use any GSM national language 7 bit encodings. * * @param scAddress Service Centre address. null == use default * @param destinationAddress the address of the destination for the message diff --git a/telephony/java/android/telephony/gsm/SmsMessage.java b/telephony/java/android/telephony/gsm/SmsMessage.java index 6880175..4af99a6 100644 --- a/telephony/java/android/telephony/gsm/SmsMessage.java +++ b/telephony/java/android/telephony/gsm/SmsMessage.java @@ -297,37 +297,14 @@ public class SmsMessage { */ @Deprecated public static int[] calculateLength(CharSequence messageBody, boolean use7bitOnly) { + SmsMessageBase.TextEncodingDetails ted = + com.android.internal.telephony.gsm.SmsMessage + .calculateLength(messageBody, use7bitOnly); int ret[] = new int[4]; - - try { - // Try GSM alphabet - int septets = GsmAlphabet.countGsmSeptets(messageBody, !use7bitOnly); - ret[1] = septets; - if (septets > MAX_USER_DATA_SEPTETS) { - ret[0] = (septets + (MAX_USER_DATA_SEPTETS_WITH_HEADER - 1)) / - MAX_USER_DATA_SEPTETS_WITH_HEADER; - ret[2] = (ret[0] * MAX_USER_DATA_SEPTETS_WITH_HEADER) - septets; - } else { - ret[0] = 1; - ret[2] = MAX_USER_DATA_SEPTETS - septets; - } - ret[3] = ENCODING_7BIT; - } catch (EncodeException ex) { - // fall back to UCS-2 - int octets = messageBody.length() * 2; - ret[1] = messageBody.length(); - if (octets > MAX_USER_DATA_BYTES) { - // 6 is the size of the user data header - ret[0] = (octets + (MAX_USER_DATA_BYTES_WITH_HEADER - 1)) / - MAX_USER_DATA_BYTES_WITH_HEADER; - ret[2] = ((ret[0] * MAX_USER_DATA_BYTES_WITH_HEADER) - octets) / 2; - } else { - ret[0] = 1; - ret[2] = (MAX_USER_DATA_BYTES - octets)/2; - } - ret[3] = ENCODING_16BIT; - } - + ret[0] = ted.msgCount; + ret[1] = ted.codeUnitCount; + ret[2] = ted.codeUnitsRemaining; + ret[3] = ted.codeUnitSize; return ret; } |