Loading src/java/com/android/internal/telephony/domainselection/DomainSelectionConnection.java +51 −0 Original line number Diff line number Diff line Loading @@ -35,7 +35,9 @@ import android.telephony.DomainSelectionService.EmergencyScanType; import android.telephony.DomainSelector; import android.telephony.EmergencyRegistrationResult; import android.telephony.NetworkRegistrationInfo; import android.telephony.PreciseDisconnectCause; import android.telephony.data.ApnSetting; import android.telephony.ims.ImsReasonInfo; import android.util.LocalLog; import android.util.Log; Loading Loading @@ -351,6 +353,10 @@ public class DomainSelectionConnection { private boolean mIsTestMode = false; private int mDisconnectCause = DisconnectCause.NOT_VALID; private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; private String mReasonMessage = null; /** * Creates an instance. * Loading Loading @@ -788,6 +794,51 @@ public class DomainSelectionConnection { mIsTestMode = testMode; } /** * Save call disconnect info for error propagation. * @param disconnectCause The code for the reason for the disconnect. * @param preciseDisconnectCause The code for the precise reason for the disconnect. * @param reasonMessage Description of the reason for the disconnect, not intended for the user * to see. */ public void setDisconnectCause(int disconnectCause, int preciseDisconnectCause, String reasonMessage) { mDisconnectCause = disconnectCause; mPreciseDisconnectCause = preciseDisconnectCause; mReasonMessage = reasonMessage; } public int getDisconnectCause() { return mDisconnectCause; } public int getPreciseDisconnectCause() { return mPreciseDisconnectCause; } public String getReasonMessage() { return mReasonMessage; } /** * @return imsReasonInfo Reason for the IMS call failure. */ public @Nullable ImsReasonInfo getImsReasonInfo() { if (getSelectionAttributes() == null) { // Neither selectDomain(...) nor reselectDomain(...) has been called yet. return null; } return getSelectionAttributes().getPsDisconnectCause(); } /** * @return phoneId To support localized message based on phoneId */ public int getPhoneId() { return getPhone().getPhoneId(); } /** * Dumps local log. */ Loading src/java/com/android/internal/telephony/domainselection/NormalCallDomainSelectionConnection.java +0 −50 Original line number Diff line number Diff line Loading @@ -24,11 +24,9 @@ import android.net.Uri; import android.telecom.PhoneAccount; import android.telephony.AccessNetworkConstants.RadioAccessNetworkType; import android.telephony.Annotation.DisconnectCauses; import android.telephony.DisconnectCause; import android.telephony.DomainSelectionService; import android.telephony.DomainSelectionService.EmergencyScanType; import android.telephony.NetworkRegistrationInfo; import android.telephony.PreciseDisconnectCause; import android.telephony.ims.ImsReasonInfo; import com.android.internal.telephony.Phone; Loading @@ -41,9 +39,6 @@ import java.util.concurrent.CompletableFuture; public class NormalCallDomainSelectionConnection extends DomainSelectionConnection { private static final boolean DBG = false; private int mDisconnectCause = DisconnectCause.NOT_VALID; private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; private String mReasonMessage = null; private @Nullable DomainSelectionConnectionCallback mCallback; Loading Loading @@ -130,49 +125,4 @@ public class NormalCallDomainSelectionConnection extends DomainSelectionConnecti } return builder.build(); } /** * Save call disconnect info for error propagation. * @param disconnectCause The code for the reason for the disconnect. * @param preciseDisconnectCause The code for the precise reason for the disconnect. * @param reasonMessage Description of the reason for the disconnect, not intended for the user * to see. */ public void setDisconnectCause(int disconnectCause, int preciseDisconnectCause, String reasonMessage) { mDisconnectCause = disconnectCause; mPreciseDisconnectCause = preciseDisconnectCause; mReasonMessage = reasonMessage; } public int getDisconnectCause() { return mDisconnectCause; } public int getPreciseDisconnectCause() { return mPreciseDisconnectCause; } public String getReasonMessage() { return mReasonMessage; } /** * @return imsReasonInfo Reason for the IMS call failure. */ public @Nullable ImsReasonInfo getImsReasonInfo() { if (getSelectionAttributes() == null) { // Neither selectDomain(...) nor reselectDomain(...) has been called yet. return null; } return getSelectionAttributes().getPsDisconnectCause(); } /** * @return phoneId To support localized message based on phoneId */ public int getPhoneId() { return getPhone().getPhoneId(); } } tests/telephonytests/src/com/android/internal/telephony/domainselection/DomainSelectionConnectionTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.telephony.DomainSelectionService.SELECTOR_TYPE_CALLING; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; Loading @@ -42,8 +43,10 @@ import android.os.RemoteException; import android.telecom.PhoneAccount; import android.telephony.AccessNetworkConstants; import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.DisconnectCause; import android.telephony.DomainSelectionService; import android.telephony.EmergencyRegistrationResult; import android.telephony.PreciseDisconnectCause; import android.telephony.data.ApnSetting; import android.telephony.ims.ImsReasonInfo; import android.testing.AndroidTestingRunner; Loading Loading @@ -773,6 +776,26 @@ public class DomainSelectionConnectionTest extends TelephonyTest { verify(mDomainSelectionController, times(1)).selectDomain(any(), eq(transportCallback)); } @Test @SmallTest public void testSetDisconnectCause() throws Exception { mDsc = createConnection(mPhone, SELECTOR_TYPE_CALLING, true, mDomainSelectionController); assertEquals(DisconnectCause.NOT_VALID, mDsc.getDisconnectCause()); assertEquals(PreciseDisconnectCause.NOT_VALID, mDsc.getPreciseDisconnectCause()); assertEquals(mPhone.getPhoneId(), mDsc.getPhoneId()); String reason = "No SIM or SIM error"; mDsc.setDisconnectCause(DisconnectCause.ICC_ERROR, PreciseDisconnectCause.NO_VALID_SIM, reason); assertEquals(DisconnectCause.ICC_ERROR, mDsc.getDisconnectCause()); assertEquals(PreciseDisconnectCause.NO_VALID_SIM, mDsc.getPreciseDisconnectCause()); assertEquals(reason, mDsc.getReasonMessage()); assertEquals(mPhone.getPhoneId(), mDsc.getPhoneId()); } private DomainSelectionConnection createConnection(Phone phone, int selectorType, boolean isEmergency, DomainSelectionController controller) throws Exception { DomainSelectionConnection dsc = new DomainSelectionConnection(phone, Loading Loading
src/java/com/android/internal/telephony/domainselection/DomainSelectionConnection.java +51 −0 Original line number Diff line number Diff line Loading @@ -35,7 +35,9 @@ import android.telephony.DomainSelectionService.EmergencyScanType; import android.telephony.DomainSelector; import android.telephony.EmergencyRegistrationResult; import android.telephony.NetworkRegistrationInfo; import android.telephony.PreciseDisconnectCause; import android.telephony.data.ApnSetting; import android.telephony.ims.ImsReasonInfo; import android.util.LocalLog; import android.util.Log; Loading Loading @@ -351,6 +353,10 @@ public class DomainSelectionConnection { private boolean mIsTestMode = false; private int mDisconnectCause = DisconnectCause.NOT_VALID; private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; private String mReasonMessage = null; /** * Creates an instance. * Loading Loading @@ -788,6 +794,51 @@ public class DomainSelectionConnection { mIsTestMode = testMode; } /** * Save call disconnect info for error propagation. * @param disconnectCause The code for the reason for the disconnect. * @param preciseDisconnectCause The code for the precise reason for the disconnect. * @param reasonMessage Description of the reason for the disconnect, not intended for the user * to see. */ public void setDisconnectCause(int disconnectCause, int preciseDisconnectCause, String reasonMessage) { mDisconnectCause = disconnectCause; mPreciseDisconnectCause = preciseDisconnectCause; mReasonMessage = reasonMessage; } public int getDisconnectCause() { return mDisconnectCause; } public int getPreciseDisconnectCause() { return mPreciseDisconnectCause; } public String getReasonMessage() { return mReasonMessage; } /** * @return imsReasonInfo Reason for the IMS call failure. */ public @Nullable ImsReasonInfo getImsReasonInfo() { if (getSelectionAttributes() == null) { // Neither selectDomain(...) nor reselectDomain(...) has been called yet. return null; } return getSelectionAttributes().getPsDisconnectCause(); } /** * @return phoneId To support localized message based on phoneId */ public int getPhoneId() { return getPhone().getPhoneId(); } /** * Dumps local log. */ Loading
src/java/com/android/internal/telephony/domainselection/NormalCallDomainSelectionConnection.java +0 −50 Original line number Diff line number Diff line Loading @@ -24,11 +24,9 @@ import android.net.Uri; import android.telecom.PhoneAccount; import android.telephony.AccessNetworkConstants.RadioAccessNetworkType; import android.telephony.Annotation.DisconnectCauses; import android.telephony.DisconnectCause; import android.telephony.DomainSelectionService; import android.telephony.DomainSelectionService.EmergencyScanType; import android.telephony.NetworkRegistrationInfo; import android.telephony.PreciseDisconnectCause; import android.telephony.ims.ImsReasonInfo; import com.android.internal.telephony.Phone; Loading @@ -41,9 +39,6 @@ import java.util.concurrent.CompletableFuture; public class NormalCallDomainSelectionConnection extends DomainSelectionConnection { private static final boolean DBG = false; private int mDisconnectCause = DisconnectCause.NOT_VALID; private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; private String mReasonMessage = null; private @Nullable DomainSelectionConnectionCallback mCallback; Loading Loading @@ -130,49 +125,4 @@ public class NormalCallDomainSelectionConnection extends DomainSelectionConnecti } return builder.build(); } /** * Save call disconnect info for error propagation. * @param disconnectCause The code for the reason for the disconnect. * @param preciseDisconnectCause The code for the precise reason for the disconnect. * @param reasonMessage Description of the reason for the disconnect, not intended for the user * to see. */ public void setDisconnectCause(int disconnectCause, int preciseDisconnectCause, String reasonMessage) { mDisconnectCause = disconnectCause; mPreciseDisconnectCause = preciseDisconnectCause; mReasonMessage = reasonMessage; } public int getDisconnectCause() { return mDisconnectCause; } public int getPreciseDisconnectCause() { return mPreciseDisconnectCause; } public String getReasonMessage() { return mReasonMessage; } /** * @return imsReasonInfo Reason for the IMS call failure. */ public @Nullable ImsReasonInfo getImsReasonInfo() { if (getSelectionAttributes() == null) { // Neither selectDomain(...) nor reselectDomain(...) has been called yet. return null; } return getSelectionAttributes().getPsDisconnectCause(); } /** * @return phoneId To support localized message based on phoneId */ public int getPhoneId() { return getPhone().getPhoneId(); } }
tests/telephonytests/src/com/android/internal/telephony/domainselection/DomainSelectionConnectionTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.telephony.DomainSelectionService.SELECTOR_TYPE_CALLING; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; Loading @@ -42,8 +43,10 @@ import android.os.RemoteException; import android.telecom.PhoneAccount; import android.telephony.AccessNetworkConstants; import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.DisconnectCause; import android.telephony.DomainSelectionService; import android.telephony.EmergencyRegistrationResult; import android.telephony.PreciseDisconnectCause; import android.telephony.data.ApnSetting; import android.telephony.ims.ImsReasonInfo; import android.testing.AndroidTestingRunner; Loading Loading @@ -773,6 +776,26 @@ public class DomainSelectionConnectionTest extends TelephonyTest { verify(mDomainSelectionController, times(1)).selectDomain(any(), eq(transportCallback)); } @Test @SmallTest public void testSetDisconnectCause() throws Exception { mDsc = createConnection(mPhone, SELECTOR_TYPE_CALLING, true, mDomainSelectionController); assertEquals(DisconnectCause.NOT_VALID, mDsc.getDisconnectCause()); assertEquals(PreciseDisconnectCause.NOT_VALID, mDsc.getPreciseDisconnectCause()); assertEquals(mPhone.getPhoneId(), mDsc.getPhoneId()); String reason = "No SIM or SIM error"; mDsc.setDisconnectCause(DisconnectCause.ICC_ERROR, PreciseDisconnectCause.NO_VALID_SIM, reason); assertEquals(DisconnectCause.ICC_ERROR, mDsc.getDisconnectCause()); assertEquals(PreciseDisconnectCause.NO_VALID_SIM, mDsc.getPreciseDisconnectCause()); assertEquals(reason, mDsc.getReasonMessage()); assertEquals(mPhone.getPhoneId(), mDsc.getPhoneId()); } private DomainSelectionConnection createConnection(Phone phone, int selectorType, boolean isEmergency, DomainSelectionController controller) throws Exception { DomainSelectionConnection dsc = new DomainSelectionConnection(phone, Loading