summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/SmsEnvelope.java6
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/SmsMessage.java21
2 files changed, 18 insertions, 9 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsEnvelope.java b/telephony/java/com/android/internal/telephony/cdma/SmsEnvelope.java
index f73df56a9ba6..de93b573f215 100644
--- a/telephony/java/com/android/internal/telephony/cdma/SmsEnvelope.java
+++ b/telephony/java/com/android/internal/telephony/cdma/SmsEnvelope.java
@@ -97,6 +97,12 @@ public final class SmsEnvelope {
public CdmaSmsSubaddress origSubaddress;
/**
+ * The destination subaddress identifies the target of the SMS message.
+ * (See 3GPP2 C.S0015-B, v2, 3.4.3.4)
+ */
+ public CdmaSmsSubaddress destSubaddress;
+
+ /**
* The 6-bit bearer reply parameter is used to request the return of a
* SMS Acknowledge Message.
* (See 3GPP2 C.S0015-B, v2, 3.4.3.5)
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
index 4bd0213f3672..da4e3f87730f 100644
--- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
@@ -615,10 +615,11 @@ public class SmsMessage extends SmsMessageBase {
}
addr.origBytes = data;
Rlog.pii(LOG_TAG, "Addr=" + addr.toString());
- mOriginatingAddress = addr;
- if (parameterId == DESTINATION_ADDRESS) {
- // Original address awlays indicates one sender's address for 3GPP2
- // Here add recipient address support along with 3GPP
+ if (parameterId == ORIGINATING_ADDRESS) {
+ env.origAddress = addr;
+ mOriginatingAddress = addr;
+ } else {
+ env.destAddress = addr;
mRecipientAddress = addr;
}
break;
@@ -636,6 +637,11 @@ public class SmsMessage extends SmsMessageBase {
subdata[index] = convertDtmfToAscii(b);
}
subAddr.origBytes = subdata;
+ if (parameterId == ORIGINATING_SUB_ADDRESS) {
+ env.origSubaddress = subAddr;
+ } else {
+ env.destSubaddress = subAddr;
+ }
break;
case BEARER_REPLY_OPTION:
dis.read(parameterData, 0, parameterLen);
@@ -665,9 +671,6 @@ public class SmsMessage extends SmsMessageBase {
}
// link the filled objects to this SMS
- mOriginatingAddress = addr;
- env.origAddress = addr;
- env.origSubaddress = subAddr;
mEnvelope = env;
mPdu = pdu;
@@ -706,12 +709,12 @@ public class SmsMessage extends SmsMessageBase {
if (mOriginatingAddress != null) {
decodeSmsDisplayAddress(mOriginatingAddress);
- if (VDBG) Rlog.v(LOG_TAG, "SMS originating address: "
- + mOriginatingAddress.address);
+ if (VDBG) Rlog.v(LOG_TAG, "SMS originating address: " + mOriginatingAddress.address);
}
if (mRecipientAddress != null) {
decodeSmsDisplayAddress(mRecipientAddress);
+ if (VDBG) Rlog.v(LOG_TAG, "SMS destination address: " + mRecipientAddress.address);
}
if (mBearerData.msgCenterTimeStamp != null) {