summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorjsh <jsh@google.com>2009-11-06 00:40:22 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-11-06 00:40:22 -0800
commit8031e02bcb5d8840c1f748a04bc4de436b067111 (patch)
treebd93927e62417c16a9a6eaa73477559340681cc0 /telephony
parent6334b05d38ccb9ff3bba1aa52cbebe1ab41f91a4 (diff)
parent414628c55ab0e51c0cc4d7ff34368d76a2e981e8 (diff)
downloadframeworks_base-8031e02bcb5d8840c1f748a04bc4de436b067111.zip
frameworks_base-8031e02bcb5d8840c1f748a04bc4de436b067111.tar.gz
frameworks_base-8031e02bcb5d8840c1f748a04bc4de436b067111.tar.bz2
am 414628c5: am 9e63ce81: am 092f0341: Merge change I44d4cbec into eclair
Merge commit '414628c55ab0e51c0cc4d7ff34368d76a2e981e8' * commit '414628c55ab0e51c0cc4d7ff34368d76a2e981e8': Fix some SMS encode issues.
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/GsmAlphabet.java2
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java19
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java2
3 files changed, 21 insertions, 2 deletions
diff --git a/telephony/java/com/android/internal/telephony/GsmAlphabet.java b/telephony/java/com/android/internal/telephony/GsmAlphabet.java
index 461b694..ebdd220 100644
--- a/telephony/java/com/android/internal/telephony/GsmAlphabet.java
+++ b/telephony/java/com/android/internal/telephony/GsmAlphabet.java
@@ -658,7 +658,7 @@ public class GsmAlphabet {
charToGsm.put('Z', i++);
charToGsm.put('\u00c4', i++);
charToGsm.put('\u00d6', i++);
- charToGsm.put('\u0147', i++);
+ charToGsm.put('\u00d1', i++);
charToGsm.put('\u00dc', i++);
charToGsm.put('\u00a7', i++);
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 721729d..c7032ac 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
@@ -16,6 +16,10 @@
package com.android.internal.telephony.cdma.sms;
+import static android.telephony.SmsMessage.ENCODING_16BIT;
+import static android.telephony.SmsMessage.MAX_USER_DATA_BYTES;
+import static android.telephony.SmsMessage.MAX_USER_DATA_BYTES_WITH_HEADER;
+
import android.util.Log;
import android.util.SparseIntArray;
@@ -417,6 +421,21 @@ public final class BearerData {
} else {
ted = com.android.internal.telephony.gsm.SmsMessage.calculateLength(
msg, force7BitEncoding);
+ if (ted.msgCount == 1 && ted.codeUnitSize == SmsMessage.ENCODING_7BIT) {
+ // We don't support single-segment EMS, so calculate for 16-bit
+ // TODO: Consider supporting single-segment EMS
+ ted.codeUnitCount = msg.length();
+ int octets = ted.codeUnitCount * 2;
+ if (octets > MAX_USER_DATA_BYTES) {
+ ted.msgCount = (octets / MAX_USER_DATA_BYTES_WITH_HEADER) + 1;
+ ted.codeUnitsRemaining = (MAX_USER_DATA_BYTES_WITH_HEADER
+ - (octets % MAX_USER_DATA_BYTES_WITH_HEADER))/2;
+ } else {
+ ted.msgCount = 1;
+ ted.codeUnitsRemaining = (MAX_USER_DATA_BYTES - octets)/2;
+ }
+ ted.codeUnitSize = ENCODING_16BIT;
+ }
}
return ted;
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
index f49b502..5f2e561 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
@@ -135,7 +135,7 @@ public class CdmaSmsAddress extends SmsAddress {
};
private static final char[] numericCharsSugar = {
- '(', ')', ' ', '-', '+', '.'
+ '(', ')', ' ', '-', '+', '.', '/', '\\'
};
private static final SparseBooleanArray numericCharDialableMap = new SparseBooleanArray (