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
This commit is contained in:
kenshin
2012-04-17 14:11:21 -04:00
parent 0748a56987
commit 131ecf2b41
3 changed files with 29 additions and 14 deletions

View File

@@ -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;
};
/**

View File

@@ -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;
}

View File

@@ -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);