Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +22 −0 Original line number Diff line number Diff line Loading @@ -1778,6 +1778,28 @@ public class SatelliteController extends Handler { return mIsDemoModeEnabled; } /** * Request to get whether the satellite enabled request is for emergency or not. * * @param subId The subId of the subscription to check whether request is for emergency. * @param result The result receiver that returns whether the request is for emergency * if the request is successful or an error code if the request failed. */ public void requestIsEmergencyModeEnabled(int subId, @NonNull ResultReceiver result) { if (!mFeatureFlags.oemEnabledSatelliteFlag()) { plogd("requestIsEmergencyModeEnabled: oemEnabledSatelliteFlag is disabled"); result.send(SatelliteManager.SATELLITE_RESULT_NOT_SUPPORTED, null); return; } synchronized (mSatelliteEnabledRequestLock) { Bundle bundle = new Bundle(); bundle.putBoolean(SatelliteManager.KEY_EMERGENCY_MODE_ENABLED, getRequestIsEmergency()); result.send(SATELLITE_RESULT_SUCCESS, bundle); } } /** * Request to get whether the satellite service is supported on the device. * Loading tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +54 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_ import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_NONE; import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_POOR; import static android.telephony.satellite.SatelliteManager.KEY_DEMO_MODE_ENABLED; import static android.telephony.satellite.SatelliteManager.KEY_EMERGENCY_MODE_ENABLED; import static android.telephony.satellite.SatelliteManager.KEY_NTN_SIGNAL_STRENGTH; import static android.telephony.satellite.SatelliteManager.KEY_SATELLITE_CAPABILITIES; import static android.telephony.satellite.SatelliteManager.KEY_SATELLITE_COMMUNICATION_ALLOWED; Loading Loading @@ -453,6 +454,23 @@ public class SatelliteControllerTest extends TelephonyTest { } }; private boolean mRequestIsEmergency = false; private ResultReceiver mRequestIsEmergencyReceiver = new ResultReceiver(null) { @Override protected void onReceiveResult(int resultCode, Bundle resultData) { logd("requestIsEmergencyReceiver: resultCode=" + resultCode); if (resultCode == SATELLITE_RESULT_SUCCESS) { if (resultData.containsKey(KEY_EMERGENCY_MODE_ENABLED)) { mRequestIsEmergency = resultData.getBoolean( KEY_EMERGENCY_MODE_ENABLED); } else { loge("KEY_EMERGENCY_MODE_ENABLED does not exist."); } } } }; @Before public void setUp() throws Exception { super.setUp(getClass().getSimpleName()); Loading Loading @@ -1025,6 +1043,42 @@ public class SatelliteControllerTest extends TelephonyTest { verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS); } @Test public void testGetRequestIsEmergency() { mIsSatelliteEnabledSemaphore.drainPermits(); doReturn(true).when(mFeatureFlags).carrierRoamingNbIotNtn(); // Successfully enable satellite mIIntegerConsumerResults.clear(); setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS); verifySatelliteSupported(true, SATELLITE_RESULT_SUCCESS); // Set provisioned state sendProvisionedStateChangedEvent(true, null); processAllMessages(); verifySatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS); mSatelliteControllerUT.setSettingsKeyForSatelliteModeCalled = false; mSatelliteControllerUT.setSettingsKeyToAllowDeviceRotationCalled = false; // Set response for enabling request setUpResponseForRequestSatelliteEnabled(true, false, true/*emergency*/, SATELLITE_RESULT_SUCCESS); // Request satellite enabling for emergency mSatelliteControllerUT.requestSatelliteEnabled(SUB_ID, true, false, true/*isEmergency*/, mIIntegerConsumer); mSatelliteControllerUT.setSatelliteSessionController(mMockSatelliteSessionController); processAllMessages(); assertTrue(waitForIIntegerConsumerResult(1)); assertEquals(SATELLITE_RESULT_SUCCESS, (long) mIIntegerConsumerResults.get(0)); verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS); // Verify satellite enabled for emergency assertTrue(mSatelliteControllerUT.getRequestIsEmergency()); mSatelliteControllerUT.requestIsEmergencyModeEnabled(SUB_ID, mRequestIsEmergencyReceiver); assertTrue(mRequestIsEmergency); } @Test public void testRequestSatelliteCapabilities() { mSatelliteCapabilitiesSemaphore.drainPermits(); Loading Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +22 −0 Original line number Diff line number Diff line Loading @@ -1778,6 +1778,28 @@ public class SatelliteController extends Handler { return mIsDemoModeEnabled; } /** * Request to get whether the satellite enabled request is for emergency or not. * * @param subId The subId of the subscription to check whether request is for emergency. * @param result The result receiver that returns whether the request is for emergency * if the request is successful or an error code if the request failed. */ public void requestIsEmergencyModeEnabled(int subId, @NonNull ResultReceiver result) { if (!mFeatureFlags.oemEnabledSatelliteFlag()) { plogd("requestIsEmergencyModeEnabled: oemEnabledSatelliteFlag is disabled"); result.send(SatelliteManager.SATELLITE_RESULT_NOT_SUPPORTED, null); return; } synchronized (mSatelliteEnabledRequestLock) { Bundle bundle = new Bundle(); bundle.putBoolean(SatelliteManager.KEY_EMERGENCY_MODE_ENABLED, getRequestIsEmergency()); result.send(SATELLITE_RESULT_SUCCESS, bundle); } } /** * Request to get whether the satellite service is supported on the device. * Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +54 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_ import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_NONE; import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_POOR; import static android.telephony.satellite.SatelliteManager.KEY_DEMO_MODE_ENABLED; import static android.telephony.satellite.SatelliteManager.KEY_EMERGENCY_MODE_ENABLED; import static android.telephony.satellite.SatelliteManager.KEY_NTN_SIGNAL_STRENGTH; import static android.telephony.satellite.SatelliteManager.KEY_SATELLITE_CAPABILITIES; import static android.telephony.satellite.SatelliteManager.KEY_SATELLITE_COMMUNICATION_ALLOWED; Loading Loading @@ -453,6 +454,23 @@ public class SatelliteControllerTest extends TelephonyTest { } }; private boolean mRequestIsEmergency = false; private ResultReceiver mRequestIsEmergencyReceiver = new ResultReceiver(null) { @Override protected void onReceiveResult(int resultCode, Bundle resultData) { logd("requestIsEmergencyReceiver: resultCode=" + resultCode); if (resultCode == SATELLITE_RESULT_SUCCESS) { if (resultData.containsKey(KEY_EMERGENCY_MODE_ENABLED)) { mRequestIsEmergency = resultData.getBoolean( KEY_EMERGENCY_MODE_ENABLED); } else { loge("KEY_EMERGENCY_MODE_ENABLED does not exist."); } } } }; @Before public void setUp() throws Exception { super.setUp(getClass().getSimpleName()); Loading Loading @@ -1025,6 +1043,42 @@ public class SatelliteControllerTest extends TelephonyTest { verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS); } @Test public void testGetRequestIsEmergency() { mIsSatelliteEnabledSemaphore.drainPermits(); doReturn(true).when(mFeatureFlags).carrierRoamingNbIotNtn(); // Successfully enable satellite mIIntegerConsumerResults.clear(); setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS); verifySatelliteSupported(true, SATELLITE_RESULT_SUCCESS); // Set provisioned state sendProvisionedStateChangedEvent(true, null); processAllMessages(); verifySatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS); mSatelliteControllerUT.setSettingsKeyForSatelliteModeCalled = false; mSatelliteControllerUT.setSettingsKeyToAllowDeviceRotationCalled = false; // Set response for enabling request setUpResponseForRequestSatelliteEnabled(true, false, true/*emergency*/, SATELLITE_RESULT_SUCCESS); // Request satellite enabling for emergency mSatelliteControllerUT.requestSatelliteEnabled(SUB_ID, true, false, true/*isEmergency*/, mIIntegerConsumer); mSatelliteControllerUT.setSatelliteSessionController(mMockSatelliteSessionController); processAllMessages(); assertTrue(waitForIIntegerConsumerResult(1)); assertEquals(SATELLITE_RESULT_SUCCESS, (long) mIIntegerConsumerResults.get(0)); verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS); // Verify satellite enabled for emergency assertTrue(mSatelliteControllerUT.getRequestIsEmergency()); mSatelliteControllerUT.requestIsEmergencyModeEnabled(SUB_ID, mRequestIsEmergencyReceiver); assertTrue(mRequestIsEmergency); } @Test public void testRequestSatelliteCapabilities() { mSatelliteCapabilitiesSemaphore.drainPermits(); Loading