aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2017-08-01 13:52:28 -0700
committerTyler Gunn <tgunn@google.com>2017-08-02 13:49:45 -0700
commitfe215a7ee5ad268048410d545c0436b7d4a6bdd7 (patch)
treea680ebfb5b2ed73468fe21f3b1bcd85869a3818d
parent2434d4366485eda5c93a111d1f7c20241a384c85 (diff)
downloadtelephony-fe215a7ee5ad268048410d545c0436b7d4a6bdd7.tar.gz
Ignore phone number changes for outgoing calls.
Similar to b/63743426 (which was for IMS), ignoring phone number changes reported by the modem for outgoing calls. Test: Manual Change-Id: Id050e9086f17530457f59b64b510116ede866393 Fixes: 64192519
-rw-r--r--src/java/com/android/internal/telephony/Connection.java9
-rw-r--r--src/java/com/android/internal/telephony/GsmCdmaConnection.java3
-rw-r--r--src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java9
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java14
4 files changed, 24 insertions, 11 deletions
diff --git a/src/java/com/android/internal/telephony/Connection.java b/src/java/com/android/internal/telephony/Connection.java
index dc53172202..bb92692187 100644
--- a/src/java/com/android/internal/telephony/Connection.java
+++ b/src/java/com/android/internal/telephony/Connection.java
@@ -388,6 +388,15 @@ public abstract class Connection {
}
/**
+ * Sets whether this call is an incoming call or not.
+ * @param isIncoming {@code true} if the call is an incoming call, {@code false} if it is an
+ * outgoing call.
+ */
+ public void setIsIncoming(boolean isIncoming) {
+ mIsIncoming = isIncoming;
+ }
+
+ /**
* If this Connection is connected, then it is associated with
* a Call.
*
diff --git a/src/java/com/android/internal/telephony/GsmCdmaConnection.java b/src/java/com/android/internal/telephony/GsmCdmaConnection.java
index 1b453e6806..330e50ba89 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaConnection.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaConnection.java
@@ -614,8 +614,7 @@ public class GsmCdmaConnection extends Connection {
//Ignore dc.number and dc.name in case of a handover connection
if (isPhoneTypeGsm() && mOrigConnection != null) {
if (Phone.DEBUG_PHONE) log("update: mOrigConnection is not null");
- } else {
- log(" mNumberConverted " + mNumberConverted);
+ } else if (isIncoming()) {
if (!equalsBaseDialString(mAddress, dc.number) && (!mNumberConverted
|| !equalsBaseDialString(mConvertedNumber, dc.number))) {
if (Phone.DEBUG_PHONE) log("update: phone # changed!");
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
index 43d3754263..ba9c965770 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
@@ -236,15 +236,6 @@ public class ImsPhoneConnection extends Connection implements
public void dispose() {
}
- /**
- * Sets whether this call is an incoming call or not.
- * @param isIncoming {@code true} if the call is an incoming call, {@code false} if it is an
- * outgoing call.
- */
- public void setIsIncoming(boolean isIncoming) {
- mIsIncoming = isIncoming;
- }
-
static boolean
equalsHandlesNulls (Object a, Object b) {
return (a == null) ? (b == null) : a.equals (b);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java
index 01f95d3968..1a4d619b3d 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java
@@ -207,9 +207,23 @@ public class GsmCdmaConnectionTest extends TelephonyTest {
mDC.state = DriverCall.State.ALERTING;
for (String[] testAddress : testAddressMappingSet) {
connection = new GsmCdmaConnection(mPhone, testAddress[0], mCT, null, false);
+ connection.setIsIncoming(true);
mDC.number = testAddress[1];
connection.update(mDC);
assertEquals(testAddress[2], connection.getAddress());
}
}
+
+ /**
+ * Ensures outgoing calls do not apply address changes.
+ */
+ @Test @SmallTest
+ public void testAddressUpdateOutgoing() {
+ mDC.state = DriverCall.State.ALERTING;
+ connection = new GsmCdmaConnection(mPhone, "12345", mCT, null, false);
+ connection.setIsIncoming(false);
+ mDC.number = "678";
+ connection.update(mDC);
+ assertEquals("12345", connection.getAddress());
+ }
}