Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +15 −2 Original line number Diff line number Diff line Loading @@ -214,6 +214,7 @@ public class SatelliteController extends Handler { private final AtomicBoolean mRegisteredForNtnSignalStrengthChanged = new AtomicBoolean(false); private final AtomicBoolean mRegisteredForSatelliteCapabilitiesChanged = new AtomicBoolean(false); private final AtomicBoolean mShouldReportNtnSignalStrength = new AtomicBoolean(false); /** * Map key: subId, value: callback to get error code of the provision request. */ Loading Loading @@ -1184,12 +1185,21 @@ public class SatelliteController extends Handler { case CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING: { ar = (AsyncResult) msg.obj; boolean shouldReport = (boolean) ar.result; if (DBG) { logd("CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING: shouldReport=" + shouldReport); } request = new SatelliteControllerHandlerRequest(shouldReport, SatelliteServiceUtils.getPhone()); if (SATELLITE_RESULT_SUCCESS != evaluateOemSatelliteRequestAllowed(true)) { return; } if (mShouldReportNtnSignalStrength.get() == shouldReport) { if (DBG) { logd("CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING : modem state matches the " + "expected state, return."); } return; } onCompleted = obtainMessage(EVENT_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING_DONE, request); if (shouldReport) { Loading @@ -1203,9 +1213,12 @@ public class SatelliteController extends Handler { case EVENT_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING_DONE: { ar = (AsyncResult) msg.obj; request = (SatelliteControllerHandlerRequest) ar.userObj; boolean shouldReport = (boolean) request.argument; int errorCode = SatelliteServiceUtils.getSatelliteError(ar, "EVENT_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING_DONE"); if (errorCode != SATELLITE_RESULT_SUCCESS) { if (errorCode == SATELLITE_RESULT_SUCCESS) { mShouldReportNtnSignalStrength.set(shouldReport); } else { loge(((boolean) request.argument ? "startSendingNtnSignalStrength" : "stopSendingNtnSignalStrength") + "returns " + errorCode); } Loading tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +43 −1 Original line number Diff line number Diff line Loading @@ -2273,6 +2273,13 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // requested again but ignored as expected and current state are matched. setUpResponseForStartSendingNtnSignalStrength(expectedResult); sendCmdStartSendingNtnSignalStrengthChangedEvent(true); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // stopSendingNtnSignalStrength() is requested when screen off event comes. reset(mMockSatelliteModemInterface); setUpResponseForRequestIsSatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS); Loading @@ -2284,6 +2291,13 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); // requested again but ignored as expected and current state are matched. setUpResponseForStopSendingNtnSignalStrength(expectedResult); sendCmdStartSendingNtnSignalStrengthChangedEvent(false); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); // startSendingNtnSignalStrength() is requested but received fail from the service. reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); Loading @@ -2293,7 +2307,26 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // stopSendingNtnSignalStrength() is requested but received fail from the service. /* stopSendingNtnSignalStrength() is ignored because startSendingNtnSignalStrength has failed thus current state is stopSendingNtnSignalStrength */ reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStopSendingNtnSignalStrength(SATELLITE_RESULT_NO_RESOURCES); sendCmdStartSendingNtnSignalStrengthChangedEvent(false); processAllMessages(); verify(mMockSatelliteModemInterface, never()) .stopSendingNtnSignalStrength(any(Message.class)); // startSendingNtnSignalStrength() is requested and modem state is changed reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStartSendingNtnSignalStrength(SATELLITE_RESULT_SUCCESS); sendCmdStartSendingNtnSignalStrengthChangedEvent(true); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // stopSendingNtnSignalStrength() is failed as modem returns error reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStopSendingNtnSignalStrength(SATELLITE_RESULT_NO_RESOURCES); Loading @@ -2301,6 +2334,15 @@ public class SatelliteControllerTest extends TelephonyTest { processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); // request stopSendingNtnSignalStrength() again and returns success reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStopSendingNtnSignalStrength(SATELLITE_RESULT_SUCCESS); sendCmdStartSendingNtnSignalStrengthChangedEvent(false); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); } @Test Loading Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +15 −2 Original line number Diff line number Diff line Loading @@ -214,6 +214,7 @@ public class SatelliteController extends Handler { private final AtomicBoolean mRegisteredForNtnSignalStrengthChanged = new AtomicBoolean(false); private final AtomicBoolean mRegisteredForSatelliteCapabilitiesChanged = new AtomicBoolean(false); private final AtomicBoolean mShouldReportNtnSignalStrength = new AtomicBoolean(false); /** * Map key: subId, value: callback to get error code of the provision request. */ Loading Loading @@ -1184,12 +1185,21 @@ public class SatelliteController extends Handler { case CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING: { ar = (AsyncResult) msg.obj; boolean shouldReport = (boolean) ar.result; if (DBG) { logd("CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING: shouldReport=" + shouldReport); } request = new SatelliteControllerHandlerRequest(shouldReport, SatelliteServiceUtils.getPhone()); if (SATELLITE_RESULT_SUCCESS != evaluateOemSatelliteRequestAllowed(true)) { return; } if (mShouldReportNtnSignalStrength.get() == shouldReport) { if (DBG) { logd("CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING : modem state matches the " + "expected state, return."); } return; } onCompleted = obtainMessage(EVENT_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING_DONE, request); if (shouldReport) { Loading @@ -1203,9 +1213,12 @@ public class SatelliteController extends Handler { case EVENT_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING_DONE: { ar = (AsyncResult) msg.obj; request = (SatelliteControllerHandlerRequest) ar.userObj; boolean shouldReport = (boolean) request.argument; int errorCode = SatelliteServiceUtils.getSatelliteError(ar, "EVENT_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING_DONE"); if (errorCode != SATELLITE_RESULT_SUCCESS) { if (errorCode == SATELLITE_RESULT_SUCCESS) { mShouldReportNtnSignalStrength.set(shouldReport); } else { loge(((boolean) request.argument ? "startSendingNtnSignalStrength" : "stopSendingNtnSignalStrength") + "returns " + errorCode); } Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +43 −1 Original line number Diff line number Diff line Loading @@ -2273,6 +2273,13 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // requested again but ignored as expected and current state are matched. setUpResponseForStartSendingNtnSignalStrength(expectedResult); sendCmdStartSendingNtnSignalStrengthChangedEvent(true); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // stopSendingNtnSignalStrength() is requested when screen off event comes. reset(mMockSatelliteModemInterface); setUpResponseForRequestIsSatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS); Loading @@ -2284,6 +2291,13 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); // requested again but ignored as expected and current state are matched. setUpResponseForStopSendingNtnSignalStrength(expectedResult); sendCmdStartSendingNtnSignalStrengthChangedEvent(false); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); // startSendingNtnSignalStrength() is requested but received fail from the service. reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); Loading @@ -2293,7 +2307,26 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // stopSendingNtnSignalStrength() is requested but received fail from the service. /* stopSendingNtnSignalStrength() is ignored because startSendingNtnSignalStrength has failed thus current state is stopSendingNtnSignalStrength */ reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStopSendingNtnSignalStrength(SATELLITE_RESULT_NO_RESOURCES); sendCmdStartSendingNtnSignalStrengthChangedEvent(false); processAllMessages(); verify(mMockSatelliteModemInterface, never()) .stopSendingNtnSignalStrength(any(Message.class)); // startSendingNtnSignalStrength() is requested and modem state is changed reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStartSendingNtnSignalStrength(SATELLITE_RESULT_SUCCESS); sendCmdStartSendingNtnSignalStrengthChangedEvent(true); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .startSendingNtnSignalStrength(any(Message.class)); // stopSendingNtnSignalStrength() is failed as modem returns error reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStopSendingNtnSignalStrength(SATELLITE_RESULT_NO_RESOURCES); Loading @@ -2301,6 +2334,15 @@ public class SatelliteControllerTest extends TelephonyTest { processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); // request stopSendingNtnSignalStrength() again and returns success reset(mMockSatelliteModemInterface); doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported(); setUpResponseForStopSendingNtnSignalStrength(SATELLITE_RESULT_SUCCESS); sendCmdStartSendingNtnSignalStrengthChangedEvent(false); processAllMessages(); verify(mMockSatelliteModemInterface, times(1)) .stopSendingNtnSignalStrength(any(Message.class)); } @Test Loading