diff options
author | jsh <jsh@google.com> | 2009-11-06 00:40:22 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-11-06 00:40:22 -0800 |
commit | 8031e02bcb5d8840c1f748a04bc4de436b067111 (patch) | |
tree | bd93927e62417c16a9a6eaa73477559340681cc0 /telephony | |
parent | 6334b05d38ccb9ff3bba1aa52cbebe1ab41f91a4 (diff) | |
parent | 414628c55ab0e51c0cc4d7ff34368d76a2e981e8 (diff) | |
download | frameworks_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')
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 ( |