diff options
author | Steve Kondik <shade@chemlab.org> | 2012-03-18 12:01:50 +0300 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.cyanogenmod.com> | 2012-03-18 12:01:50 +0300 |
commit | 9d5b96c9c7973d48c761eb90d2c074f69dad132a (patch) | |
tree | 8a0c7715cfc1e9cd601dcdbf30c0a3d290fd4d1b /telephony | |
parent | 57ec407db0ab0cbaa67921971fc843c133ab2193 (diff) | |
parent | a1c3fede5ffe1b8305102a773f5d3c32951d1009 (diff) | |
download | frameworks_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-x | telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java | 19 |
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 " + |