Loading telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +13 −3 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.internal.telephony.cdma; 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.Parcel; import android.os.SystemProperties; import android.os.SystemProperties; import android.telephony.PhoneNumberUtils; import android.telephony.PhoneNumberUtils; Loading @@ -23,9 +26,8 @@ import android.telephony.SmsCbLocation; import android.telephony.SmsCbMessage; import android.telephony.SmsCbMessage; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.Rlog; import android.telephony.Rlog; import android.util.Log; import android.text.TextUtils; 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.GsmAlphabet.TextEncodingDetails; import com.android.internal.telephony.SmsAddress; import com.android.internal.telephony.SmsAddress; Loading Loading @@ -750,8 +752,16 @@ public class SmsMessage extends SmsMessageBase { } } private void decodeSmsDisplayAddress(SmsAddress addr) { 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); 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) != '+') { if (addr.address.charAt(0) != '+') { addr.address = "+" + addr.address; addr.address = "+" + addr.address; } } Loading Loading
telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +13 −3 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.internal.telephony.cdma; 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.Parcel; import android.os.SystemProperties; import android.os.SystemProperties; import android.telephony.PhoneNumberUtils; import android.telephony.PhoneNumberUtils; Loading @@ -23,9 +26,8 @@ import android.telephony.SmsCbLocation; import android.telephony.SmsCbMessage; import android.telephony.SmsCbMessage; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.Rlog; import android.telephony.Rlog; import android.util.Log; import android.text.TextUtils; 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.GsmAlphabet.TextEncodingDetails; import com.android.internal.telephony.SmsAddress; import com.android.internal.telephony.SmsAddress; Loading Loading @@ -750,8 +752,16 @@ public class SmsMessage extends SmsMessageBase { } } private void decodeSmsDisplayAddress(SmsAddress addr) { 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); 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) != '+') { if (addr.address.charAt(0) != '+') { addr.address = "+" + addr.address; addr.address = "+" + addr.address; } } Loading