Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +10 −1 Original line number Diff line number Diff line Loading @@ -1672,6 +1672,16 @@ public class GsmCdmaPhone extends Phone { } } @Override public void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) { mSST.clearAllRadioOffReasons(); // We don't want to have forEmergency call be true to prevent radio emergencyDial command // from being called for a test emergency number because the network may not be able to // find emergency routing for it and dial it do the default emergency services line. setRadioPower(true, false, isSelectedPhoneForEmergencyCall, false); } @Override public void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { Loading @@ -1684,7 +1694,6 @@ public class GsmCdmaPhone extends Phone { boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) { mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply, reason); } private void storeVoiceMailNumber(String number) { Loading src/java/com/android/internal/telephony/PhoneInternalInterface.java +8 −0 Original line number Diff line number Diff line Loading @@ -580,6 +580,14 @@ public interface PhoneInternalInterface { setRadioPower(power, false, false, false); } /** * Sets the radio power on for a test emergency number. * * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place * emergency call after turning power on. */ default void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) {} /** * Sets the radio power on/off state with option to specify whether it's for emergency call * (off is sometimes called "airplane mode"). Current state can be gotten via Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +10 −2 Original line number Diff line number Diff line Loading @@ -1094,6 +1094,14 @@ public class ServiceStateTracker extends Handler { return sRadioPowerOffReasons; } /** * Clear all the radio off reasons. This should be done when turning radio off for genuine or * test emergency calls. */ public void clearAllRadioOffReasons() { sRadioPowerOffReasons.clear(); } /** * Turn on or off radio power. */ Loading @@ -1116,7 +1124,7 @@ public class ServiceStateTracker extends Handler { * Turn on or off radio power with option to specify whether it's for emergency call and specify * a reason for setting the power state. * More details check {@link PhoneInternalInterface#setRadioPower( * boolean, boolean, boolean, boolean, String)}. * boolean, boolean, boolean, boolean, int)}. */ public void setRadioPowerForReason(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) { Loading @@ -1125,7 +1133,7 @@ public class ServiceStateTracker extends Handler { if (power) { if (forEmergencyCall) { sRadioPowerOffReasons.clear(); clearAllRadioOffReasons(); } else { sRadioPowerOffReasons.remove(reason); } Loading tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -1434,6 +1434,19 @@ public class GsmCdmaPhoneTest extends TelephonyTest { verify(mSST).setRadioPowerForReason(true, true, false, true, Phone.RADIO_POWER_REASON_USER); } @Test @SmallTest public void testSetRadioPowerOnForTestEmergencyCall() { mPhoneUT.setRadioPower(false); verify(mSST).setRadioPowerForReason(false, false, false, false, Phone.RADIO_POWER_REASON_USER); mPhoneUT.setRadioPowerOnForTestEmergencyCall(false); verify(mSST).clearAllRadioOffReasons(); verify(mSST).setRadioPowerForReason(eq(true), eq(false), anyBoolean(), eq(false), eq(Phone.RADIO_POWER_REASON_USER)); } @Test @SmallTest public void testReapplyUiccApplicationEnablementRetry() throws Exception { Loading Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +10 −1 Original line number Diff line number Diff line Loading @@ -1672,6 +1672,16 @@ public class GsmCdmaPhone extends Phone { } } @Override public void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) { mSST.clearAllRadioOffReasons(); // We don't want to have forEmergency call be true to prevent radio emergencyDial command // from being called for a test emergency number because the network may not be able to // find emergency routing for it and dial it do the default emergency services line. setRadioPower(true, false, isSelectedPhoneForEmergencyCall, false); } @Override public void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { Loading @@ -1684,7 +1694,6 @@ public class GsmCdmaPhone extends Phone { boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) { mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply, reason); } private void storeVoiceMailNumber(String number) { Loading
src/java/com/android/internal/telephony/PhoneInternalInterface.java +8 −0 Original line number Diff line number Diff line Loading @@ -580,6 +580,14 @@ public interface PhoneInternalInterface { setRadioPower(power, false, false, false); } /** * Sets the radio power on for a test emergency number. * * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place * emergency call after turning power on. */ default void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) {} /** * Sets the radio power on/off state with option to specify whether it's for emergency call * (off is sometimes called "airplane mode"). Current state can be gotten via Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +10 −2 Original line number Diff line number Diff line Loading @@ -1094,6 +1094,14 @@ public class ServiceStateTracker extends Handler { return sRadioPowerOffReasons; } /** * Clear all the radio off reasons. This should be done when turning radio off for genuine or * test emergency calls. */ public void clearAllRadioOffReasons() { sRadioPowerOffReasons.clear(); } /** * Turn on or off radio power. */ Loading @@ -1116,7 +1124,7 @@ public class ServiceStateTracker extends Handler { * Turn on or off radio power with option to specify whether it's for emergency call and specify * a reason for setting the power state. * More details check {@link PhoneInternalInterface#setRadioPower( * boolean, boolean, boolean, boolean, String)}. * boolean, boolean, boolean, boolean, int)}. */ public void setRadioPowerForReason(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) { Loading @@ -1125,7 +1133,7 @@ public class ServiceStateTracker extends Handler { if (power) { if (forEmergencyCall) { sRadioPowerOffReasons.clear(); clearAllRadioOffReasons(); } else { sRadioPowerOffReasons.remove(reason); } Loading
tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -1434,6 +1434,19 @@ public class GsmCdmaPhoneTest extends TelephonyTest { verify(mSST).setRadioPowerForReason(true, true, false, true, Phone.RADIO_POWER_REASON_USER); } @Test @SmallTest public void testSetRadioPowerOnForTestEmergencyCall() { mPhoneUT.setRadioPower(false); verify(mSST).setRadioPowerForReason(false, false, false, false, Phone.RADIO_POWER_REASON_USER); mPhoneUT.setRadioPowerOnForTestEmergencyCall(false); verify(mSST).clearAllRadioOffReasons(); verify(mSST).setRadioPowerForReason(eq(true), eq(false), anyBoolean(), eq(false), eq(Phone.RADIO_POWER_REASON_USER)); } @Test @SmallTest public void testReapplyUiccApplicationEnablementRetry() throws Exception { Loading