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

Commit bd6d5098 authored by David Brown's avatar David Brown Committed by Android Git Automerger
Browse files

am d07833f5: Don\'t manually create CallerInfo objects from SipPhone

Merge commit 'd07833f5' into gingerbread-plus-aosp

* commit 'd07833f5':
  Don't manually create CallerInfo objects from SipPhone
parents 1bdba9fa d07833f5
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -1692,12 +1692,19 @@ public class PhoneNumberUtils
    }

    /**
     * Determines if the specified number is actually a URI
     * (i.e. a SIP address) rather than a regular PSTN phone number,
     * based on whether or not the number contains an "@" character.
     *
     * @hide
     * @param number
     * @return true if number contains @
     */
    public static boolean isUriNumber(String number) {
        return number != null && number.contains("@");
        // Note we allow either "@" or "%40" to indicate a URI, in case
        // the passed-in string is URI-escaped.  (Neither "@" nor "%40"
        // will ever be found in a legal PSTN number.)
        return number != null && (number.contains("@") || number.contains("%40"));
    }

    /**
+3 −46
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.internal.telephony.sip;

import android.content.Context;
import android.net.rtp.AudioGroup;
import android.net.rtp.AudioStream;
import android.net.sip.SipAudioCall;
import android.net.sip.SipErrorCode;
import android.net.sip.SipException;
@@ -29,11 +28,9 @@ import android.os.AsyncResult;
import android.os.Message;
import android.telephony.PhoneNumberUtils;
import android.telephony.ServiceState;
import android.text.TextUtils;
import android.util.Log;

import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.Phone;
@@ -382,40 +379,6 @@ public class SipPhone extends SipPhoneBase {
            }
        }

        private CallerInfo createCallerInfo(String number, SipProfile callee) {
            SipProfile p = callee;
            String name = p.getDisplayName();
            if (TextUtils.isEmpty(name)) name = p.getUserName();
            CallerInfo info = new CallerInfo();
            info.name = name;
            info.phoneNumber = number;
            if (DEBUG) {
                Log.d(LOG_TAG, "create caller info from scratch:");
                Log.d(LOG_TAG, "     name: " + info.name);
                Log.d(LOG_TAG, "     numb: " + info.phoneNumber);
            }
            return info;
        }

        // from contacts
        private CallerInfo findCallerInfo(String number) {
            CallerInfo info = CallerInfo.getCallerInfo(mContext, number);
            if ((info == null) || (info.name == null)) return null;
            if (DEBUG) {
                Log.d(LOG_TAG, "got caller info from contact:");
                Log.d(LOG_TAG, "     name: " + info.name);
                Log.d(LOG_TAG, "     numb: " + info.phoneNumber);
                Log.d(LOG_TAG, "     pres: " + info.numberPresentation);
            }
            return info;
        }

        private CallerInfo getCallerInfo(String number, SipProfile callee) {
            CallerInfo info = findCallerInfo(number);
            if (info == null) info = createCallerInfo(number, callee);
            return info;
        }

        Connection dial(String originalNumber) throws SipException {
            String calleeSipUri = originalNumber;
            if (!calleeSipUri.contains("@")) {
@@ -424,8 +387,7 @@ public class SipPhone extends SipPhoneBase {
            try {
                SipProfile callee =
                        new SipProfile.Builder(calleeSipUri).build();
                CallerInfo info = getCallerInfo(originalNumber, callee);
                SipConnection c = new SipConnection(this, callee, info);
                SipConnection c = new SipConnection(this, callee);
                connections.add(c);
                c.dial();
                setState(Call.State.DIALING);
@@ -461,10 +423,7 @@ public class SipPhone extends SipPhoneBase {

        void initIncomingCall(SipAudioCall sipAudioCall, boolean makeCallWait) {
            SipProfile callee = sipAudioCall.getPeerProfile();
            CallerInfo info = findCallerInfo(getUriString(callee));
            if (info == null) info = findCallerInfo(callee.getUserName());
            if (info == null) info = findCallerInfo(callee.getDisplayName());
            SipConnection c = new SipConnection(this, callee, info);
            SipConnection c = new SipConnection(this, callee);
            connections.add(c);

            Call.State newState = makeCallWait ? State.WAITING : State.INCOMING;
@@ -700,12 +659,10 @@ public class SipPhone extends SipPhoneBase {
            }
        };

        public SipConnection(SipCall owner, SipProfile callee,
                CallerInfo info) {
        public SipConnection(SipCall owner, SipProfile callee) {
            super(getUriString(callee));
            mOwner = owner;
            mPeer = callee;
            setUserData(info);
        }

        void initIncomingCall(SipAudioCall sipAudioCall, Call.State newState) {