diff options
author | David Brown <dab@google.com> | 2010-10-08 12:14:48 -0700 |
---|---|---|
committer | David Brown <dab@google.com> | 2010-10-10 16:40:21 -0700 |
commit | d07833f54b6e8e361b666ae16efa15fdf60159de (patch) | |
tree | b60b0325c3e735eceb9c5a01b5cc23789deeeeb7 /telephony | |
parent | 2f77c3e4de3d68904a6a872d53283775b3a5c349 (diff) | |
download | frameworks_base-d07833f54b6e8e361b666ae16efa15fdf60159de.zip frameworks_base-d07833f54b6e8e361b666ae16efa15fdf60159de.tar.gz frameworks_base-d07833f54b6e8e361b666ae16efa15fdf60159de.tar.bz2 |
Don't manually create CallerInfo objects from SipPhone
Currently the SipPhone class manually creates a CallerInfo object, and
populates it with very basic info from the SIP address, when making an
outgoing call.
But this is no longer needed, now that we do caller-id lookup properly for
SIP addresses (based on real data from the contacts database -- see
bug 3004127 and change https://android-git.corp.google.com/g/70555).
And in fact the presence of this initial CallerInfo object actually
*disabled* contacts lookup for outgoing calls (bug 3072731).
This change removes all that CallerInfo-related stuff from SipPhone.
(Thus SipPhone is now consistent with the other phone objects, like
GSMPhone and CDMAPhone, in that it doesn't muck with CallerInfo data at
all, but instead lets the phone app do it.)
Also, update isUriNumber() to handle "%40" in case the passed-in string is
URI-escaped. (Nobody depends on that now, but it may be needed in the
future, and it's certainly safe to say that "%40" will never be found in a
legal PSTN number.)
TESTED:
- Outgoing SIP call:
- In-call UI shows correct contact info
- After the call, Call Log shows correct contact info
- Incoming SIP call:
- In-call UI shows correct contact info
- After the call, Call Log shows correct contact info
- PSTN calls:
- correct contact info everywhere
Bug: 3072731
Change-Id: I51434e4e5ad66d2e8ff51fc220001fb74485f0f5
Diffstat (limited to 'telephony')
-rw-r--r-- | telephony/java/android/telephony/PhoneNumberUtils.java | 9 | ||||
-rwxr-xr-x | telephony/java/com/android/internal/telephony/sip/SipPhone.java | 49 |
2 files changed, 11 insertions, 47 deletions
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index b4a3c95..5542c42 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -1649,12 +1649,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")); } /** diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java index 02af0ed..67f13bd 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java @@ -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) { |