From 131ecf2b414cbb65cf7d22cc4db41dff58875076 Mon Sep 17 00:00:00 2001 From: kenshin Date: Tue, 17 Apr 2012 14:11:21 -0400 Subject: Add support for Caller Name Display Copied relevant parts from CdmaConnection.java to get the information as/if presented by network operator (Fido/Rogers in canada provide that information, and it get displayed if there's no match in phonebook). Although it works (the nale is displayed when the call is received), the information is not stored (not kept in the log). * Patch Set 2 : correct coding style * Patch Set 3 : promote [get]cnapName, [get]cnapNapePresentation to parent class (Connection) * Patch Set 4 : -remove ref to CDMA in get[CnapName|CnapNamePresentation] headers -remove unnecessary self ref-reference * Patch Set 5 : -add forgoten "protected" modifier to newly promoted class memebers Change-Id: I2279f75d679d5afa716d9904fc3b3e33c77948c6 --- .../com/android/internal/telephony/Connection.java | 12 ++++++++---- .../internal/telephony/cdma/CdmaConnection.java | 10 ---------- .../internal/telephony/gsm/GsmConnection.java | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 14 deletions(-) (limited to 'telephony/java/com/android/internal') diff --git a/telephony/java/com/android/internal/telephony/Connection.java b/telephony/java/com/android/internal/telephony/Connection.java index 07f90cd..021602f 100644 --- a/telephony/java/com/android/internal/telephony/Connection.java +++ b/telephony/java/com/android/internal/telephony/Connection.java @@ -28,6 +28,10 @@ public abstract class Connection { public static int PRESENTATION_UNKNOWN = 3; // no specified or unknown by network public static int PRESENTATION_PAYPHONE = 4; // show pay phone info + //Caller Name Display + protected String cnapName; + protected int cnapNamePresentation = PRESENTATION_ALLOWED; + private static String LOG_TAG = "TelephonyConnection"; public enum DisconnectCause { @@ -84,11 +88,11 @@ public abstract class Connection { public abstract String getAddress(); /** - * Gets CDMA CNAP name associated with connection. + * Gets CNAP name associated with connection. * @return cnap name or null if unavailable */ public String getCnapName() { - return null; + return cnapName; } /** @@ -100,12 +104,12 @@ public abstract class Connection { } /** - * Gets CDMA CNAP presentation associated with connection. + * Gets CNAP presentation associated with connection. * @return cnap name or null if unavailable */ public int getCnapNamePresentation() { - return 0; + return cnapNamePresentation; }; /** diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java index 8fb136e..e013d84 100755 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java @@ -50,7 +50,6 @@ public class CdmaConnection extends Connection { String postDialString; // outgoing calls only boolean isIncoming; boolean disconnected; - String cnapName; int index; // index in CdmaCallTracker.connections[], -1 if unassigned /* @@ -76,7 +75,6 @@ public class CdmaConnection extends Connection { DisconnectCause cause = DisconnectCause.NOT_DISCONNECTED; PostDialState postDialState = PostDialState.NOT_STARTED; int numberPresentation = Connection.PRESENTATION_ALLOWED; - int cnapNamePresentation = Connection.PRESENTATION_ALLOWED; Handler h; @@ -229,14 +227,6 @@ public class CdmaConnection extends Connection { return address; } - public String getCnapName() { - return cnapName; - } - - public int getCnapNamePresentation() { - return cnapNamePresentation; - } - public CdmaCall getCall() { return parent; } diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java b/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java index c1ad7b3..a879dac 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java @@ -26,6 +26,7 @@ import android.os.SystemClock; import android.util.Log; import android.telephony.PhoneNumberUtils; import android.telephony.ServiceState; +import android.text.TextUtils; import com.android.internal.telephony.*; @@ -125,6 +126,8 @@ public class GsmConnection extends Connection { isIncoming = dc.isMT; createTime = System.currentTimeMillis(); + cnapName = dc.name; + cnapNamePresentation = dc.namePresentation; numberPresentation = dc.numberPresentation; uusInfo = dc.uusInfo; @@ -151,6 +154,9 @@ public class GsmConnection extends Connection { index = -1; isIncoming = false; + cnapName = null; + cnapNamePresentation = Connection.PRESENTATION_ALLOWED; + numberPresentation = Connection.PRESENTATION_ALLOWED; createTime = System.currentTimeMillis(); this.parent = parent; @@ -437,6 +443,21 @@ public class GsmConnection extends Connection { changed = true; } + // A null cnapName should be the same as "" + if (TextUtils.isEmpty(dc.name)) { + if (!TextUtils.isEmpty(cnapName)) { + changed = true; + cnapName = ""; + } + } else if (!dc.name.equals(cnapName)) { + changed = true; + cnapName = dc.name; + } + + if (Phone.DEBUG_PHONE) log("--dssds----"+cnapName); + cnapNamePresentation = dc.namePresentation; + numberPresentation = dc.numberPresentation; + if (newParent != parent) { if (parent != null) { parent.detach(this); -- cgit v1.1