Loading telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +6 −4 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ import static android.telephony.SmsMessage.MessageClass; */ public class SmsMessage extends SmsMessageBase { static final String LOG_TAG = "CDMA"; private final static Boolean DBG_SMS = false; /** * Status of a previously submitted SMS. Loading Loading @@ -541,6 +542,7 @@ public class SmsMessage extends SmsMessageBase { return; } mBearerData = BearerData.decode(mEnvelope.bearerData); if (DBG_SMS) Log.d(LOG_TAG, "MT (decoded) BearerData = " + mBearerData); messageRef = mBearerData.messageId; if (mBearerData.userData != null) { userData = mBearerData.userData.payload; Loading Loading @@ -644,14 +646,14 @@ public class SmsMessage extends SmsMessageBase { bearerData.reportReq = false; bearerData.userData = userData; bearerData.hasUserDataHeader = (userData.userDataHeader != null); int teleservice = bearerData.hasUserDataHeader ? SmsEnvelope.TELESERVICE_WEMT : SmsEnvelope.TELESERVICE_WMT; byte[] encodedBearerData = BearerData.encode(bearerData); if (DBG_SMS) Log.d(LOG_TAG, "MO (encoded) BearerData = " + bearerData); if (encodedBearerData == null) return null; int teleservice = bearerData.hasUserDataHeader ? SmsEnvelope.TELESERVICE_WEMT : SmsEnvelope.TELESERVICE_WMT; SmsEnvelope envelope = new SmsEnvelope(); envelope.messageType = SmsEnvelope.MESSAGE_TYPE_POINT_TO_POINT; envelope.teleService = teleservice; Loading telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +8 −3 Original line number Diff line number Diff line Loading @@ -484,7 +484,7 @@ public final class BearerData { Gsm7bitCodingResult result = new Gsm7bitCodingResult(); result.data = new byte[fullData.length - 1]; System.arraycopy(fullData, 1, result.data, 0, fullData.length - 1); result.septets = fullData[0]; result.septets = fullData[0] & 0x00FF; return result; } catch (com.android.internal.telephony.EncodeException ex) { throw new CodingException("7bit GSM encode failed: " + ex); Loading @@ -498,6 +498,7 @@ public final class BearerData { int udhSeptets = ((udhBytes * 8) + 6) / 7; Gsm7bitCodingResult gcr = encode7bitGsm(uData.payloadStr, udhSeptets, force); uData.msgEncoding = UserData.ENCODING_GSM_7BIT_ALPHABET; uData.msgEncodingSet = true; uData.numFields = gcr.septets; uData.payload = gcr.data; uData.payload[0] = (byte)udhData.length; Loading @@ -512,6 +513,8 @@ public final class BearerData { int udhCodeUnits = (udhBytes + 1) / 2; int udhPadding = udhBytes % 2; int payloadCodeUnits = payload.length / 2; uData.msgEncoding = UserData.ENCODING_UNICODE_16; uData.msgEncodingSet = true; uData.numFields = udhCodeUnits + payloadCodeUnits; uData.payload = new byte[uData.numFields * 2]; uData.payload[0] = (byte)udhData.length; Loading Loading @@ -606,14 +609,16 @@ public final class BearerData { * copies by passing outStream directly. */ encodeUserDataPayload(bData.userData); bData.hasUserDataHeader = bData.userData.userDataHeader != null; if (bData.userData.payload.length > SmsMessage.MAX_USER_DATA_BYTES) { throw new CodingException("encoded user data too large (" + bData.userData.payload.length + " > " + SmsMessage.MAX_USER_DATA_BYTES + " bytes)"); } /** * XXX/TODO: figure out what the right answer is WRT padding bits /* * TODO(cleanup): figure out what the right answer is WRT paddingBits field * * userData.paddingBits = (userData.payload.length * 8) - (userData.numFields * 7); * userData.paddingBits = 0; // XXX this seems better, but why? Loading telephony/java/com/android/internal/telephony/cdma/sms/UserData.java +1 −1 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ public class UserData { builder.append("{ msgEncoding=" + (msgEncodingSet ? msgEncoding : "unset")); builder.append(", msgType=" + msgType); builder.append(", paddingBits=" + paddingBits); builder.append(", numFields=" + (int)numFields); builder.append(", numFields=" + numFields); builder.append(", userDataHeader=" + userDataHeader); builder.append(", payload='" + HexDump.toHexString(payload) + "'"); builder.append(", payloadStr='" + payloadStr + "'"); Loading Loading
telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +6 −4 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ import static android.telephony.SmsMessage.MessageClass; */ public class SmsMessage extends SmsMessageBase { static final String LOG_TAG = "CDMA"; private final static Boolean DBG_SMS = false; /** * Status of a previously submitted SMS. Loading Loading @@ -541,6 +542,7 @@ public class SmsMessage extends SmsMessageBase { return; } mBearerData = BearerData.decode(mEnvelope.bearerData); if (DBG_SMS) Log.d(LOG_TAG, "MT (decoded) BearerData = " + mBearerData); messageRef = mBearerData.messageId; if (mBearerData.userData != null) { userData = mBearerData.userData.payload; Loading Loading @@ -644,14 +646,14 @@ public class SmsMessage extends SmsMessageBase { bearerData.reportReq = false; bearerData.userData = userData; bearerData.hasUserDataHeader = (userData.userDataHeader != null); int teleservice = bearerData.hasUserDataHeader ? SmsEnvelope.TELESERVICE_WEMT : SmsEnvelope.TELESERVICE_WMT; byte[] encodedBearerData = BearerData.encode(bearerData); if (DBG_SMS) Log.d(LOG_TAG, "MO (encoded) BearerData = " + bearerData); if (encodedBearerData == null) return null; int teleservice = bearerData.hasUserDataHeader ? SmsEnvelope.TELESERVICE_WEMT : SmsEnvelope.TELESERVICE_WMT; SmsEnvelope envelope = new SmsEnvelope(); envelope.messageType = SmsEnvelope.MESSAGE_TYPE_POINT_TO_POINT; envelope.teleService = teleservice; Loading
telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +8 −3 Original line number Diff line number Diff line Loading @@ -484,7 +484,7 @@ public final class BearerData { Gsm7bitCodingResult result = new Gsm7bitCodingResult(); result.data = new byte[fullData.length - 1]; System.arraycopy(fullData, 1, result.data, 0, fullData.length - 1); result.septets = fullData[0]; result.septets = fullData[0] & 0x00FF; return result; } catch (com.android.internal.telephony.EncodeException ex) { throw new CodingException("7bit GSM encode failed: " + ex); Loading @@ -498,6 +498,7 @@ public final class BearerData { int udhSeptets = ((udhBytes * 8) + 6) / 7; Gsm7bitCodingResult gcr = encode7bitGsm(uData.payloadStr, udhSeptets, force); uData.msgEncoding = UserData.ENCODING_GSM_7BIT_ALPHABET; uData.msgEncodingSet = true; uData.numFields = gcr.septets; uData.payload = gcr.data; uData.payload[0] = (byte)udhData.length; Loading @@ -512,6 +513,8 @@ public final class BearerData { int udhCodeUnits = (udhBytes + 1) / 2; int udhPadding = udhBytes % 2; int payloadCodeUnits = payload.length / 2; uData.msgEncoding = UserData.ENCODING_UNICODE_16; uData.msgEncodingSet = true; uData.numFields = udhCodeUnits + payloadCodeUnits; uData.payload = new byte[uData.numFields * 2]; uData.payload[0] = (byte)udhData.length; Loading Loading @@ -606,14 +609,16 @@ public final class BearerData { * copies by passing outStream directly. */ encodeUserDataPayload(bData.userData); bData.hasUserDataHeader = bData.userData.userDataHeader != null; if (bData.userData.payload.length > SmsMessage.MAX_USER_DATA_BYTES) { throw new CodingException("encoded user data too large (" + bData.userData.payload.length + " > " + SmsMessage.MAX_USER_DATA_BYTES + " bytes)"); } /** * XXX/TODO: figure out what the right answer is WRT padding bits /* * TODO(cleanup): figure out what the right answer is WRT paddingBits field * * userData.paddingBits = (userData.payload.length * 8) - (userData.numFields * 7); * userData.paddingBits = 0; // XXX this seems better, but why? Loading
telephony/java/com/android/internal/telephony/cdma/sms/UserData.java +1 −1 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ public class UserData { builder.append("{ msgEncoding=" + (msgEncodingSet ? msgEncoding : "unset")); builder.append(", msgType=" + msgType); builder.append(", paddingBits=" + paddingBits); builder.append(", numFields=" + (int)numFields); builder.append(", numFields=" + numFields); builder.append(", userDataHeader=" + userDataHeader); builder.append(", payload='" + HexDump.toHexString(payload) + "'"); builder.append(", payloadStr='" + payloadStr + "'"); Loading