summaryrefslogtreecommitdiffstats
path: root/telephony/java/android
diff options
context:
space:
mode:
authorJake Hamby <jhamby@google.com>2011-05-10 15:52:15 -0700
committerJake Hamby <jhamby@google.com>2011-05-10 15:52:15 -0700
commitee60f3fb1b4e61ac8027293a658ba710e36d36b6 (patch)
tree54156a5e68a8a0c95f073f7d6b486726db05e0fa /telephony/java/android
parent6819c677b9d8d9a5f60f1a35e045300b1a8aec96 (diff)
parent18cc814c94edb188b73a92f0d34878d9dc054ff6 (diff)
downloadframeworks_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.java12
-rw-r--r--telephony/java/android/telephony/gsm/SmsMessage.java37
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 &amp; port
+ * Get an SMS-SUBMIT PDU for a data message to a destination address &amp; 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;
}