Loading src/java/com/android/internal/telephony/Connection.java +20 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,10 @@ public abstract class Connection { protected int mCnapNamePresentation = PhoneConstants.PRESENTATION_ALLOWED; @UnsupportedAppUsage protected String mAddress; // MAY BE NULL!!! // The VERSTAT number verification status; defaults to not verified. protected @android.telecom.Connection.VerificationStatus int mNumberVerificationStatus = android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED; @UnsupportedAppUsage protected String mDialString; // outgoing calls only protected String[] mParticipantsToDial;// outgoing calls only Loading Loading @@ -1405,4 +1409,20 @@ public abstract class Connection { public int getAudioCodec() { return mAudioCodec; } /** * @return The number verification status; only applicable for IMS calls. */ public @android.telecom.Connection.VerificationStatus int getNumberVerificationStatus() { return mNumberVerificationStatus; } /** * Sets the number verification status. * @param verificationStatus The new verification status */ public void setNumberVerificationStatus( @android.telecom.Connection.VerificationStatus int verificationStatus) { mNumberVerificationStatus = verificationStatus; } } src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java +22 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ public class ImsPhoneConnection extends Connection implements imsCall.getCallProfile().getCallExtraInt(ImsCallProfile.EXTRA_OIR)); mCnapNamePresentation = ImsCallProfile.OIRToPresentation( imsCall.getCallProfile().getCallExtraInt(ImsCallProfile.EXTRA_CNAP)); setNumberVerificationStatus(toTelecomVerificationStatus( imsCall.getCallProfile().getCallerNumberVerificationStatus())); updateMediaCapabilities(imsCall); } else { mNumberPresentation = PhoneConstants.PRESENTATION_UNKNOWN; Loading Loading @@ -1493,4 +1495,24 @@ public class ImsPhoneConnection extends Connection implements + "; updating local video availability."); updateMediaCapabilities(getImsCall()); } /** * Converts an {@link ImsCallProfile} verification status to a * {@link android.telecom.Connection} verification status. * @param verificationStatus The {@link ImsCallProfile} verification status. * @return The telecom verification status. */ public static @android.telecom.Connection.VerificationStatus int toTelecomVerificationStatus( @ImsCallProfile.VerificationStatus int verificationStatus) { switch (verificationStatus) { case ImsCallProfile.VERIFICATION_STATUS_PASSED: return android.telecom.Connection.VERIFICATION_STATUS_PASSED; case ImsCallProfile.VERIFICATION_STATUS_FAILED: return android.telecom.Connection.VERIFICATION_STATUS_FAILED; case ImsCallProfile.VERIFICATION_STATUS_NOT_VERIFIED: // fall through on purpose default: return android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED; } } } tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -400,6 +400,8 @@ public abstract class TelephonyTest { mPhones = new Phone[] {mPhone}; mImsCallProfile = new ImsCallProfile(); mImsCallProfile.setCallerNumberVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_PASSED); mSimulatedCommands = new SimulatedCommands(); mContextFixture = new ContextFixture(); mContext = mContextFixture.getTestDouble(); Loading tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneCallTrackerTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -333,6 +333,8 @@ public class ImsPhoneCallTrackerTest extends TelephonyTest { @Test @SmallTest public void testImsMTCall() { mImsCallProfile.setCallerNumberVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_PASSED); assertEquals(PhoneConstants.State.IDLE, mCTUT.getState()); assertFalse(mCTUT.mRingingCall.isRinging()); // mock a MT call Loading @@ -345,6 +347,8 @@ public class ImsPhoneCallTrackerTest extends TelephonyTest { ImsPhoneConnection connection = (ImsPhoneConnection) mCTUT.mRingingCall.getConnections().get(0); connection.addListener(mImsPhoneConnectionListener); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_PASSED, connection.getNumberVerificationStatus()); } @Test Loading tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneConnectionTest.java +19 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class ImsPhoneConnectionTest extends TelephonyTest { @Test @SmallTest public void testImsConnectionSanity() { public void testImsIncomingConnectionCorrectness() { logd("Testing initial state of MT ImsPhoneConnection"); mConnectionUT = new ImsPhoneConnection(mImsPhone, mImsCall, mImsCT, mForeGroundCall, false); Loading @@ -107,6 +107,8 @@ public class ImsPhoneConnectionTest extends TelephonyTest { assertNull(mConnectionUT.getOrigDialString()); assertFalse(mConnectionUT.isMultiparty()); assertFalse(mConnectionUT.isConferenceHost()); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_PASSED, mConnectionUT.getNumberVerificationStatus()); verify(mForeGroundCall, times(1)).attach((Connection) any(), eq(ImsPhoneCall.State.INCOMING)); Loading Loading @@ -373,4 +375,20 @@ public class ImsPhoneConnectionTest extends TelephonyTest { mConnectionUT.updateAddressDisplay(mImsCall); assertEquals(inputAddress, mConnectionUT.getAddress()); } @Test @SmallTest public void testConvertVerificationStatus() { assertEquals(android.telecom.Connection.VERIFICATION_STATUS_FAILED, ImsPhoneConnection.toTelecomVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_FAILED)); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_PASSED, ImsPhoneConnection.toTelecomVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_PASSED)); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED, ImsPhoneConnection.toTelecomVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_NOT_VERIFIED)); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED, ImsPhoneConnection.toTelecomVerificationStatus(90210)); } } Loading
src/java/com/android/internal/telephony/Connection.java +20 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,10 @@ public abstract class Connection { protected int mCnapNamePresentation = PhoneConstants.PRESENTATION_ALLOWED; @UnsupportedAppUsage protected String mAddress; // MAY BE NULL!!! // The VERSTAT number verification status; defaults to not verified. protected @android.telecom.Connection.VerificationStatus int mNumberVerificationStatus = android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED; @UnsupportedAppUsage protected String mDialString; // outgoing calls only protected String[] mParticipantsToDial;// outgoing calls only Loading Loading @@ -1405,4 +1409,20 @@ public abstract class Connection { public int getAudioCodec() { return mAudioCodec; } /** * @return The number verification status; only applicable for IMS calls. */ public @android.telecom.Connection.VerificationStatus int getNumberVerificationStatus() { return mNumberVerificationStatus; } /** * Sets the number verification status. * @param verificationStatus The new verification status */ public void setNumberVerificationStatus( @android.telecom.Connection.VerificationStatus int verificationStatus) { mNumberVerificationStatus = verificationStatus; } }
src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java +22 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ public class ImsPhoneConnection extends Connection implements imsCall.getCallProfile().getCallExtraInt(ImsCallProfile.EXTRA_OIR)); mCnapNamePresentation = ImsCallProfile.OIRToPresentation( imsCall.getCallProfile().getCallExtraInt(ImsCallProfile.EXTRA_CNAP)); setNumberVerificationStatus(toTelecomVerificationStatus( imsCall.getCallProfile().getCallerNumberVerificationStatus())); updateMediaCapabilities(imsCall); } else { mNumberPresentation = PhoneConstants.PRESENTATION_UNKNOWN; Loading Loading @@ -1493,4 +1495,24 @@ public class ImsPhoneConnection extends Connection implements + "; updating local video availability."); updateMediaCapabilities(getImsCall()); } /** * Converts an {@link ImsCallProfile} verification status to a * {@link android.telecom.Connection} verification status. * @param verificationStatus The {@link ImsCallProfile} verification status. * @return The telecom verification status. */ public static @android.telecom.Connection.VerificationStatus int toTelecomVerificationStatus( @ImsCallProfile.VerificationStatus int verificationStatus) { switch (verificationStatus) { case ImsCallProfile.VERIFICATION_STATUS_PASSED: return android.telecom.Connection.VERIFICATION_STATUS_PASSED; case ImsCallProfile.VERIFICATION_STATUS_FAILED: return android.telecom.Connection.VERIFICATION_STATUS_FAILED; case ImsCallProfile.VERIFICATION_STATUS_NOT_VERIFIED: // fall through on purpose default: return android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED; } } }
tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -400,6 +400,8 @@ public abstract class TelephonyTest { mPhones = new Phone[] {mPhone}; mImsCallProfile = new ImsCallProfile(); mImsCallProfile.setCallerNumberVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_PASSED); mSimulatedCommands = new SimulatedCommands(); mContextFixture = new ContextFixture(); mContext = mContextFixture.getTestDouble(); Loading
tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneCallTrackerTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -333,6 +333,8 @@ public class ImsPhoneCallTrackerTest extends TelephonyTest { @Test @SmallTest public void testImsMTCall() { mImsCallProfile.setCallerNumberVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_PASSED); assertEquals(PhoneConstants.State.IDLE, mCTUT.getState()); assertFalse(mCTUT.mRingingCall.isRinging()); // mock a MT call Loading @@ -345,6 +347,8 @@ public class ImsPhoneCallTrackerTest extends TelephonyTest { ImsPhoneConnection connection = (ImsPhoneConnection) mCTUT.mRingingCall.getConnections().get(0); connection.addListener(mImsPhoneConnectionListener); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_PASSED, connection.getNumberVerificationStatus()); } @Test Loading
tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneConnectionTest.java +19 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class ImsPhoneConnectionTest extends TelephonyTest { @Test @SmallTest public void testImsConnectionSanity() { public void testImsIncomingConnectionCorrectness() { logd("Testing initial state of MT ImsPhoneConnection"); mConnectionUT = new ImsPhoneConnection(mImsPhone, mImsCall, mImsCT, mForeGroundCall, false); Loading @@ -107,6 +107,8 @@ public class ImsPhoneConnectionTest extends TelephonyTest { assertNull(mConnectionUT.getOrigDialString()); assertFalse(mConnectionUT.isMultiparty()); assertFalse(mConnectionUT.isConferenceHost()); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_PASSED, mConnectionUT.getNumberVerificationStatus()); verify(mForeGroundCall, times(1)).attach((Connection) any(), eq(ImsPhoneCall.State.INCOMING)); Loading Loading @@ -373,4 +375,20 @@ public class ImsPhoneConnectionTest extends TelephonyTest { mConnectionUT.updateAddressDisplay(mImsCall); assertEquals(inputAddress, mConnectionUT.getAddress()); } @Test @SmallTest public void testConvertVerificationStatus() { assertEquals(android.telecom.Connection.VERIFICATION_STATUS_FAILED, ImsPhoneConnection.toTelecomVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_FAILED)); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_PASSED, ImsPhoneConnection.toTelecomVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_PASSED)); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED, ImsPhoneConnection.toTelecomVerificationStatus( ImsCallProfile.VERIFICATION_STATUS_NOT_VERIFIED)); assertEquals(android.telecom.Connection.VERIFICATION_STATUS_NOT_VERIFIED, ImsPhoneConnection.toTelecomVerificationStatus(90210)); } }