summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2012-03-18 12:01:50 +0300
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-03-18 12:01:50 +0300
commit9d5b96c9c7973d48c761eb90d2c074f69dad132a (patch)
tree8a0c7715cfc1e9cd601dcdbf30c0a3d290fd4d1b /telephony
parent57ec407db0ab0cbaa67921971fc843c133ab2193 (diff)
parenta1c3fede5ffe1b8305102a773f5d3c32951d1009 (diff)
downloadframeworks_base-9d5b96c9c7973d48c761eb90d2c074f69dad132a.zip
frameworks_base-9d5b96c9c7973d48c761eb90d2c074f69dad132a.tar.gz
frameworks_base-9d5b96c9c7973d48c761eb90d2c074f69dad132a.tar.bz2
Merge "fix sms receiving for some Samsung CDMA phones" into ics
Diffstat (limited to 'telephony')
-rwxr-xr-xtelephony/java/com/android/internal/telephony/cdma/sms/BearerData.java19
1 files changed, 15 insertions, 4 deletions
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 6743da0..5aeeef3 100755
--- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
@@ -878,10 +878,21 @@ public final class BearerData {
paramBits -= EXPECTED_PARAM_SIZE;
decodeSuccess = true;
bData.messageType = inStream.read(4);
- bData.messageId = inStream.read(8) << 8;
- bData.messageId |= inStream.read(8);
- bData.hasUserDataHeader = (inStream.read(1) == 1);
- inStream.skip(3);
+ // Some Samsung CDMAphones parses messageId differently than other devices
+ // fix it here so that incoming sms works correctly
+ boolean hasSamsungCDMAAlternateMessageIDEncoding = Resources.getSystem()
+ .getBoolean(com.android.internal.R.bool.config_smsSamsungCdmaAlternateMessageIDEncoding);
+ if (hasSamsungCDMAAlternateMessageIDEncoding) {
+ inStream.skip(4);
+ bData.messageId = inStream.read(8) << 8;
+ bData.messageId |= inStream.read(8);
+ bData.hasUserDataHeader = (inStream.read(8) == 1);
+ } else {
+ bData.messageId = inStream.read(8) << 8;
+ bData.messageId |= inStream.read(8);
+ bData.hasUserDataHeader = (inStream.read(1) == 1);
+ inStream.skip(3);
+ }
}
if ((! decodeSuccess) || (paramBits > 0)) {
Log.d(LOG_TAG, "MESSAGE_IDENTIFIER decode " +