diff options
| author | 2019-06-21 16:34:12 +0000 | |
|---|---|---|
| committer | 2019-06-21 16:34:12 +0000 | |
| commit | 3fdedfab7624db6171bce8f80ec1f9bf816f2bb2 (patch) | |
| tree | 4179e76c0f646e4dc69ebec99f596d1f112270df | |
| parent | f15b5b38dbc59495dfdf5f2322b4f88e49c52488 (diff) | |
| parent | ee503e4c07d7bd00e7616e3571e5350ae61b9a29 (diff) | |
Merge "Replace the IDD with the '+' sign"
| -rw-r--r-- | telephony/java/com/android/internal/telephony/cdma/SmsMessage.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java index 9ad8befb394d..4bd0213f3672 100644 --- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java @@ -16,6 +16,9 @@ package com.android.internal.telephony.cdma; +import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING; + +import android.content.res.Resources; import android.os.Parcel; import android.os.SystemProperties; import android.telephony.PhoneNumberUtils; @@ -23,9 +26,8 @@ import android.telephony.SmsCbLocation; import android.telephony.SmsCbMessage; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.Rlog; -import android.util.Log; import android.text.TextUtils; -import android.content.res.Resources; +import android.util.Log; import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails; import com.android.internal.telephony.SmsAddress; @@ -750,8 +752,16 @@ public class SmsMessage extends SmsMessageBase { } private void decodeSmsDisplayAddress(SmsAddress addr) { + // PCD(Plus Code Dialing) + // 1) Replaces IDD(International Direct Dialing) with the '+' if address starts with it. + // TODO: Skip it for EF SMS(SUBMIT and DELIVER) because the IDD depends on current network? + // 2) Adds the '+' prefix if TON is International + // 3) Keeps the '+' if address starts with the '+' + String idd = SystemProperties.get(PROPERTY_OPERATOR_IDP_STRING, null); addr.address = new String(addr.origBytes); - if (addr.ton == CdmaSmsAddress.TON_INTERNATIONAL_OR_IP) { + if (!TextUtils.isEmpty(idd) && addr.address.startsWith(idd)) { + addr.address = "+" + addr.address.substring(idd.length()); + } else if (addr.ton == CdmaSmsAddress.TON_INTERNATIONAL_OR_IP) { if (addr.address.charAt(0) != '+') { addr.address = "+" + addr.address; } |