Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3fdedfab authored by Amit Mahajan's avatar Amit Mahajan Committed by Gerrit Code Review
Browse files

Merge "Replace the IDD with the '+' sign"

parents f15b5b38 ee503e4c
Loading
Loading
Loading
Loading
+13 −3
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
            }
            }