Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +21 −3 Original line number Diff line number Diff line Loading @@ -115,8 +115,10 @@ import android.telephony.satellite.NtnSignalStrength; import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.SatelliteSubscriberInfo; import android.telephony.satellite.SatelliteSubscriberProvisionStatus; import android.telephony.satellite.SatelliteSubscriptionInfo; import android.util.Log; import android.util.Pair; import android.util.SparseArray; Loading Loading @@ -3607,8 +3609,9 @@ public class SatelliteController extends Handler { } Message onCompleted = obtainMessage(EVENT_SET_SATELLITE_ENABLED_DONE, request); mSatelliteModemInterface.requestSatelliteEnabled(argument.enableSatellite, argument.enableDemoMode, argument.isEmergency, onCompleted); mSatelliteModemInterface.requestSatelliteEnabled( createModemEnableRequest(argument), onCompleted); startWaitForSatelliteEnablingResponseTimer(argument); // Logs satellite session timestamps for session metrics if (argument.enableSatellite) { Loading @@ -3617,6 +3620,21 @@ public class SatelliteController extends Handler { mSessionProcessingTimeStamp = System.currentTimeMillis(); } /** Get the request attributes that modem needs to enable/disable satellite */ private SatelliteModemEnableRequestAttributes createModemEnableRequest( @NonNull RequestSatelliteEnabledArgument arg) { int subId = mSubscriptionManagerService.getDefaultSubId(); synchronized (mSatellitePhoneLock) { if (mSatellitePhone != null) subId = mSatellitePhone.getSubId(); } SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(subId); String iccid = subInfo != null ? subInfo.getIccId() : ""; String apn = getConfigForSubId(subId).getString(KEY_SATELLITE_NIDD_APN_NAME_STRING, ""); return new SatelliteModemEnableRequestAttributes( arg.enableSatellite, arg.enableDemoMode, arg.isEmergency, new SatelliteSubscriptionInfo(iccid, apn)); } private void handleRequestSatelliteAttachRestrictionForCarrierCmd( SatelliteControllerHandlerRequest request) { RequestHandleSatelliteAttachRestrictionForCarrierArgument argument = Loading Loading @@ -5705,7 +5723,7 @@ public class SatelliteController extends Handler { String subscriberId = subscriberIdPair.first; int carrierId = info.getCarrierId(); String apn = getConfigForSubId(info.getSubscriptionId()) .getString(KEY_SATELLITE_NIDD_APN_NAME_STRING); .getString(KEY_SATELLITE_NIDD_APN_NAME_STRING, ""); logd("requestSatelliteSubscriberProvisionStatus: subscriberId:" + subscriberId + " , carrierId=" + carrierId + " , apn=" + apn); if (subscriberId.isEmpty()) { Loading src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +7 −7 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteManager.SatelliteException; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.stub.INtnSignalStrengthConsumer; import android.telephony.satellite.stub.ISatellite; import android.telephony.satellite.stub.ISatelliteCapabilitiesConsumer; Loading Loading @@ -654,17 +655,16 @@ public class SatelliteModemInterface { * is enabled, this may also disable the cellular modem, and if the satellite modem is disabled, * this may also re-enable the cellular modem. * * @param enableSatellite True to enable the satellite modem and false to disable. * @param enableDemoMode True to enable demo mode and false to disable. * @param isEmergency {@code true} to enable emergency mode, {@code false} otherwise. * @param enableAttributes info needed to allow carrier to roam to satellite. * @param message The Message to send to result of the operation to. */ public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode, boolean isEmergency, @NonNull Message message) { public void requestSatelliteEnabled(SatelliteModemEnableRequestAttributes enableAttributes, @NonNull Message message) { if (mSatelliteService != null) { try { mSatelliteService.requestSatelliteEnabled(enableSatellite, enableDemoMode, isEmergency, new IIntegerConsumer.Stub() { mSatelliteService.requestSatelliteEnabled(SatelliteServiceUtils .toSatelliteModemEnableRequestAttributes(enableAttributes), new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); Loading src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +37 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.telephony.satellite.PointingInfo; import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.SatelliteSubscriptionInfo; import android.telephony.satellite.stub.NTRadioTechnology; import android.telephony.satellite.stub.SatelliteModemState; import android.telephony.satellite.stub.SatelliteResult; Loading Loading @@ -257,6 +259,41 @@ public class SatelliteServiceUtils { return converted; } /** * Convert SatelliteSubscriptionInfo from framework definition to service definition. * @param info The SatelliteSubscriptionInfo from the framework. * @return The converted SatelliteSubscriptionInfo for the satellite service. */ @NonNull public static android.telephony.satellite.stub .SatelliteSubscriptionInfo toSatelliteSubscriptionInfo( @NonNull SatelliteSubscriptionInfo info ) { android.telephony.satellite.stub.SatelliteSubscriptionInfo converted = new android.telephony.satellite.stub.SatelliteSubscriptionInfo(); converted.iccId = info.getIccId(); converted.niddApn = info.getNiddApn(); return converted; } /** * Convert SatelliteModemEnableRequestAttributes from framework definition to service definition * @param attributes The SatelliteModemEnableRequestAttributes from the framework. * @return The converted SatelliteModemEnableRequestAttributes for the satellite service. */ @NonNull public static android.telephony.satellite.stub .SatelliteModemEnableRequestAttributes toSatelliteModemEnableRequestAttributes( @NonNull SatelliteModemEnableRequestAttributes attributes ) { android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes converted = new android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes(); converted.isEnabled = attributes.isEnabled(); converted.isDemoMode = attributes.isDemoMode(); converted.isEmergencyMode = attributes.isEmergencyMode(); converted.satelliteSubscriptionInfo = toSatelliteSubscriptionInfo( attributes.getSatelliteSubscriptionInfo()); return converted; } /** * Get the {@link SatelliteManager.SatelliteResult} from the provided result. * Loading tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +33 −20 Original line number Diff line number Diff line Loading @@ -125,7 +125,9 @@ import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteManager.SatelliteException; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.SatelliteSubscriberProvisionStatus; import android.telephony.satellite.SatelliteSubscriptionInfo; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.util.Pair; Loading Loading @@ -3043,8 +3045,8 @@ public class SatelliteControllerTest extends TelephonyTest { List<String> barredPlmnList = new ArrayList<>(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list and the overlay config plmn list are available and the // carrier plmn list and the barred plmn list are empty, verify passing to the modem. Loading Loading @@ -3101,32 +3103,32 @@ public class SatelliteControllerTest extends TelephonyTest { entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", ""}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list is invalid, verify not passing to the modem. reset(mMockSatelliteModemInterface); entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", "123456789"}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list is invalid, verify not passing to the modem. reset(mMockSatelliteModemInterface); entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", "12"}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list is invalid, verify not passing to the modem. reset(mMockSatelliteModemInterface); entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", "1234"}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); } private void verifyPassingToModemAfterQueryCompleted(List<String> entitlementPlmnList, Loading Loading @@ -3537,23 +3539,31 @@ public class SatelliteControllerTest extends TelephonyTest { verifySatelliteEnabled(false, SATELLITE_RESULT_SUCCESS); // Time out to enable satellite ArgumentCaptor<SatelliteModemEnableRequestAttributes> enableSatelliteRequest = ArgumentCaptor.forClass(SatelliteModemEnableRequestAttributes.class); ArgumentCaptor<Message> enableSatelliteResponse = ArgumentCaptor.forClass(Message.class); mIIntegerConsumerResults.clear(); setUpNoResponseForRequestSatelliteEnabled(true, false, false); clearInvocations(mMockSatelliteModemInterface); mSatelliteControllerUT.requestSatelliteEnabled(SUB_ID, true, false, false, mIIntegerConsumer); processAllMessages(); assertFalse(waitForIIntegerConsumerResult(1)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled(eq(true), eq(false), eq(false), verify(mMockSatelliteModemInterface).requestSatelliteEnabled( enableSatelliteRequest.capture(), enableSatelliteResponse.capture()); SatelliteModemEnableRequestAttributes request = enableSatelliteRequest.getValue(); assertTrue(request.isEnabled()); assertFalse(request.isDemoMode()); assertFalse(request.isEmergencyMode()); clearInvocations(mMockSatelliteModemInterface); moveTimeForward(TEST_WAIT_FOR_SATELLITE_ENABLING_RESPONSE_TIMEOUT_MILLIS); processAllMessages(); assertTrue(waitForIIntegerConsumerResult(1)); assertEquals(SATELLITE_RESULT_MODEM_TIMEOUT, (long) mIIntegerConsumerResults.get(0)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled(eq(false), eq(false), eq(false), any(Message.class)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); verifySatelliteEnabled(false, SATELLITE_RESULT_SUCCESS); // Send the response for the above request to enable satellite. SatelliteController should Loading Loading @@ -3583,8 +3593,8 @@ public class SatelliteControllerTest extends TelephonyTest { mIIntegerConsumer); processAllMessages(); assertFalse(waitForIIntegerConsumerResult(1)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled(eq(false), eq(false), eq(false), verify(mMockSatelliteModemInterface).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), disableSatelliteResponse.capture()); clearInvocations(mMockSatelliteModemInterface); Loading @@ -3592,8 +3602,8 @@ public class SatelliteControllerTest extends TelephonyTest { processAllMessages(); assertTrue(waitForIIntegerConsumerResult(1)); assertEquals(SATELLITE_RESULT_MODEM_TIMEOUT, (long) mIIntegerConsumerResults.get(0)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // Satellite should state at enabled state since satellite disable request failed verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS); Loading Loading @@ -4204,12 +4214,12 @@ public class SatelliteControllerTest extends TelephonyTest { if (exception == null && !enabled) { sendSatelliteModemStateChangedEvent(SATELLITE_MODEM_STATE_OFF, null); } Message message = (Message) invocation.getArguments()[3]; Message message = (Message) invocation.getArguments()[1]; AsyncResult.forMessage(message, null, exception); message.sendToTarget(); return null; }).when(mMockSatelliteModemInterface) .requestSatelliteEnabled(eq(enabled), eq(demoMode), eq(emergency), .requestSatelliteEnabled(any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); } Loading @@ -4229,7 +4239,10 @@ public class SatelliteControllerTest extends TelephonyTest { private void setUpNoResponseForRequestSatelliteEnabled(boolean enabled, boolean demoMode, boolean emergency) { doNothing().when(mMockSatelliteModemInterface) .requestSatelliteEnabled(eq(enabled), eq(demoMode), eq(emergency), .requestSatelliteEnabled(eq(new SatelliteModemEnableRequestAttributes( enabled, demoMode, emergency, new SatelliteSubscriptionInfo("", "") )), any(Message.class)); } Loading Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +21 −3 Original line number Diff line number Diff line Loading @@ -115,8 +115,10 @@ import android.telephony.satellite.NtnSignalStrength; import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.SatelliteSubscriberInfo; import android.telephony.satellite.SatelliteSubscriberProvisionStatus; import android.telephony.satellite.SatelliteSubscriptionInfo; import android.util.Log; import android.util.Pair; import android.util.SparseArray; Loading Loading @@ -3607,8 +3609,9 @@ public class SatelliteController extends Handler { } Message onCompleted = obtainMessage(EVENT_SET_SATELLITE_ENABLED_DONE, request); mSatelliteModemInterface.requestSatelliteEnabled(argument.enableSatellite, argument.enableDemoMode, argument.isEmergency, onCompleted); mSatelliteModemInterface.requestSatelliteEnabled( createModemEnableRequest(argument), onCompleted); startWaitForSatelliteEnablingResponseTimer(argument); // Logs satellite session timestamps for session metrics if (argument.enableSatellite) { Loading @@ -3617,6 +3620,21 @@ public class SatelliteController extends Handler { mSessionProcessingTimeStamp = System.currentTimeMillis(); } /** Get the request attributes that modem needs to enable/disable satellite */ private SatelliteModemEnableRequestAttributes createModemEnableRequest( @NonNull RequestSatelliteEnabledArgument arg) { int subId = mSubscriptionManagerService.getDefaultSubId(); synchronized (mSatellitePhoneLock) { if (mSatellitePhone != null) subId = mSatellitePhone.getSubId(); } SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(subId); String iccid = subInfo != null ? subInfo.getIccId() : ""; String apn = getConfigForSubId(subId).getString(KEY_SATELLITE_NIDD_APN_NAME_STRING, ""); return new SatelliteModemEnableRequestAttributes( arg.enableSatellite, arg.enableDemoMode, arg.isEmergency, new SatelliteSubscriptionInfo(iccid, apn)); } private void handleRequestSatelliteAttachRestrictionForCarrierCmd( SatelliteControllerHandlerRequest request) { RequestHandleSatelliteAttachRestrictionForCarrierArgument argument = Loading Loading @@ -5705,7 +5723,7 @@ public class SatelliteController extends Handler { String subscriberId = subscriberIdPair.first; int carrierId = info.getCarrierId(); String apn = getConfigForSubId(info.getSubscriptionId()) .getString(KEY_SATELLITE_NIDD_APN_NAME_STRING); .getString(KEY_SATELLITE_NIDD_APN_NAME_STRING, ""); logd("requestSatelliteSubscriberProvisionStatus: subscriberId:" + subscriberId + " , carrierId=" + carrierId + " , apn=" + apn); if (subscriberId.isEmpty()) { Loading
src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +7 −7 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteManager.SatelliteException; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.stub.INtnSignalStrengthConsumer; import android.telephony.satellite.stub.ISatellite; import android.telephony.satellite.stub.ISatelliteCapabilitiesConsumer; Loading Loading @@ -654,17 +655,16 @@ public class SatelliteModemInterface { * is enabled, this may also disable the cellular modem, and if the satellite modem is disabled, * this may also re-enable the cellular modem. * * @param enableSatellite True to enable the satellite modem and false to disable. * @param enableDemoMode True to enable demo mode and false to disable. * @param isEmergency {@code true} to enable emergency mode, {@code false} otherwise. * @param enableAttributes info needed to allow carrier to roam to satellite. * @param message The Message to send to result of the operation to. */ public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode, boolean isEmergency, @NonNull Message message) { public void requestSatelliteEnabled(SatelliteModemEnableRequestAttributes enableAttributes, @NonNull Message message) { if (mSatelliteService != null) { try { mSatelliteService.requestSatelliteEnabled(enableSatellite, enableDemoMode, isEmergency, new IIntegerConsumer.Stub() { mSatelliteService.requestSatelliteEnabled(SatelliteServiceUtils .toSatelliteModemEnableRequestAttributes(enableAttributes), new IIntegerConsumer.Stub() { @Override public void accept(int result) { int error = SatelliteServiceUtils.fromSatelliteError(result); Loading
src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +37 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.telephony.satellite.PointingInfo; import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.SatelliteSubscriptionInfo; import android.telephony.satellite.stub.NTRadioTechnology; import android.telephony.satellite.stub.SatelliteModemState; import android.telephony.satellite.stub.SatelliteResult; Loading Loading @@ -257,6 +259,41 @@ public class SatelliteServiceUtils { return converted; } /** * Convert SatelliteSubscriptionInfo from framework definition to service definition. * @param info The SatelliteSubscriptionInfo from the framework. * @return The converted SatelliteSubscriptionInfo for the satellite service. */ @NonNull public static android.telephony.satellite.stub .SatelliteSubscriptionInfo toSatelliteSubscriptionInfo( @NonNull SatelliteSubscriptionInfo info ) { android.telephony.satellite.stub.SatelliteSubscriptionInfo converted = new android.telephony.satellite.stub.SatelliteSubscriptionInfo(); converted.iccId = info.getIccId(); converted.niddApn = info.getNiddApn(); return converted; } /** * Convert SatelliteModemEnableRequestAttributes from framework definition to service definition * @param attributes The SatelliteModemEnableRequestAttributes from the framework. * @return The converted SatelliteModemEnableRequestAttributes for the satellite service. */ @NonNull public static android.telephony.satellite.stub .SatelliteModemEnableRequestAttributes toSatelliteModemEnableRequestAttributes( @NonNull SatelliteModemEnableRequestAttributes attributes ) { android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes converted = new android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes(); converted.isEnabled = attributes.isEnabled(); converted.isDemoMode = attributes.isDemoMode(); converted.isEmergencyMode = attributes.isEmergencyMode(); converted.satelliteSubscriptionInfo = toSatelliteSubscriptionInfo( attributes.getSatelliteSubscriptionInfo()); return converted; } /** * Get the {@link SatelliteManager.SatelliteResult} from the provided result. * Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +33 −20 Original line number Diff line number Diff line Loading @@ -125,7 +125,9 @@ import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteManager.SatelliteException; import android.telephony.satellite.SatelliteModemEnableRequestAttributes; import android.telephony.satellite.SatelliteSubscriberProvisionStatus; import android.telephony.satellite.SatelliteSubscriptionInfo; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.util.Pair; Loading Loading @@ -3043,8 +3045,8 @@ public class SatelliteControllerTest extends TelephonyTest { List<String> barredPlmnList = new ArrayList<>(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list and the overlay config plmn list are available and the // carrier plmn list and the barred plmn list are empty, verify passing to the modem. Loading Loading @@ -3101,32 +3103,32 @@ public class SatelliteControllerTest extends TelephonyTest { entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", ""}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list is invalid, verify not passing to the modem. reset(mMockSatelliteModemInterface); entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", "123456789"}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list is invalid, verify not passing to the modem. reset(mMockSatelliteModemInterface); entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", "12"}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // If the entitlement plmn list is invalid, verify not passing to the modem. reset(mMockSatelliteModemInterface); entitlementPlmnList = Arrays.stream(new String[]{"00101", "00102", "1234"}).toList(); mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(SUB_ID, false, entitlementPlmnList, barredPlmnList, mIIntegerConsumer); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); } private void verifyPassingToModemAfterQueryCompleted(List<String> entitlementPlmnList, Loading Loading @@ -3537,23 +3539,31 @@ public class SatelliteControllerTest extends TelephonyTest { verifySatelliteEnabled(false, SATELLITE_RESULT_SUCCESS); // Time out to enable satellite ArgumentCaptor<SatelliteModemEnableRequestAttributes> enableSatelliteRequest = ArgumentCaptor.forClass(SatelliteModemEnableRequestAttributes.class); ArgumentCaptor<Message> enableSatelliteResponse = ArgumentCaptor.forClass(Message.class); mIIntegerConsumerResults.clear(); setUpNoResponseForRequestSatelliteEnabled(true, false, false); clearInvocations(mMockSatelliteModemInterface); mSatelliteControllerUT.requestSatelliteEnabled(SUB_ID, true, false, false, mIIntegerConsumer); processAllMessages(); assertFalse(waitForIIntegerConsumerResult(1)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled(eq(true), eq(false), eq(false), verify(mMockSatelliteModemInterface).requestSatelliteEnabled( enableSatelliteRequest.capture(), enableSatelliteResponse.capture()); SatelliteModemEnableRequestAttributes request = enableSatelliteRequest.getValue(); assertTrue(request.isEnabled()); assertFalse(request.isDemoMode()); assertFalse(request.isEmergencyMode()); clearInvocations(mMockSatelliteModemInterface); moveTimeForward(TEST_WAIT_FOR_SATELLITE_ENABLING_RESPONSE_TIMEOUT_MILLIS); processAllMessages(); assertTrue(waitForIIntegerConsumerResult(1)); assertEquals(SATELLITE_RESULT_MODEM_TIMEOUT, (long) mIIntegerConsumerResults.get(0)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled(eq(false), eq(false), eq(false), any(Message.class)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); verifySatelliteEnabled(false, SATELLITE_RESULT_SUCCESS); // Send the response for the above request to enable satellite. SatelliteController should Loading Loading @@ -3583,8 +3593,8 @@ public class SatelliteControllerTest extends TelephonyTest { mIIntegerConsumer); processAllMessages(); assertFalse(waitForIIntegerConsumerResult(1)); verify(mMockSatelliteModemInterface).requestSatelliteEnabled(eq(false), eq(false), eq(false), verify(mMockSatelliteModemInterface).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), disableSatelliteResponse.capture()); clearInvocations(mMockSatelliteModemInterface); Loading @@ -3592,8 +3602,8 @@ public class SatelliteControllerTest extends TelephonyTest { processAllMessages(); assertTrue(waitForIIntegerConsumerResult(1)); assertEquals(SATELLITE_RESULT_MODEM_TIMEOUT, (long) mIIntegerConsumerResults.get(0)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled(anyBoolean(), anyBoolean(), anyBoolean(), any(Message.class)); verify(mMockSatelliteModemInterface, never()).requestSatelliteEnabled( any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); // Satellite should state at enabled state since satellite disable request failed verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS); Loading Loading @@ -4204,12 +4214,12 @@ public class SatelliteControllerTest extends TelephonyTest { if (exception == null && !enabled) { sendSatelliteModemStateChangedEvent(SATELLITE_MODEM_STATE_OFF, null); } Message message = (Message) invocation.getArguments()[3]; Message message = (Message) invocation.getArguments()[1]; AsyncResult.forMessage(message, null, exception); message.sendToTarget(); return null; }).when(mMockSatelliteModemInterface) .requestSatelliteEnabled(eq(enabled), eq(demoMode), eq(emergency), .requestSatelliteEnabled(any(SatelliteModemEnableRequestAttributes.class), any(Message.class)); } Loading @@ -4229,7 +4239,10 @@ public class SatelliteControllerTest extends TelephonyTest { private void setUpNoResponseForRequestSatelliteEnabled(boolean enabled, boolean demoMode, boolean emergency) { doNothing().when(mMockSatelliteModemInterface) .requestSatelliteEnabled(eq(enabled), eq(demoMode), eq(emergency), .requestSatelliteEnabled(eq(new SatelliteModemEnableRequestAttributes( enabled, demoMode, emergency, new SatelliteSubscriptionInfo("", "") )), any(Message.class)); } Loading