Merge "Suppressed anomaly report for user edited APNs" into main
diff --git a/proto/src/telephony.proto b/proto/src/telephony.proto
index b87728b..92f62cc 100644
--- a/proto/src/telephony.proto
+++ b/proto/src/telephony.proto
@@ -259,8 +259,8 @@
// Roaming type
enum RoamingType {
- // Unknown. The default value. Different from ROAMING_TYPE_UNKNOWN.
- UNKNOWN = -1;
+ // Undefined. The default value. Different from ROAMING_TYPE_UNKNOWN.
+ ROAMING_TYPE_UNDEFINED = -1;
// In home network
ROAMING_TYPE_NOT_ROAMING = 0;
@@ -346,10 +346,10 @@
optional TelephonyOperator data_operator = 2;
// Current voice network roaming type
- optional RoamingType voice_roaming_type = 3 [default = UNKNOWN];
+ optional RoamingType voice_roaming_type = 3 [default = ROAMING_TYPE_UNDEFINED];
// Current data network roaming type
- optional RoamingType data_roaming_type = 4 [default = UNKNOWN];
+ optional RoamingType data_roaming_type = 4 [default = ROAMING_TYPE_UNDEFINED];
// Current voice radio technology
optional RadioAccessTechnology voice_rat = 5 [default = UNKNOWN];
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index 8b3be1e..9e64f52 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -151,6 +151,15 @@
public static final HalVersion RADIO_HAL_VERSION_UNKNOWN = HalVersion.UNKNOWN;
/** @hide */
+ public static final HalVersion RADIO_HAL_VERSION_1_1 = new HalVersion(1, 1);
+
+ /** @hide */
+ public static final HalVersion RADIO_HAL_VERSION_1_2 = new HalVersion(1, 2);
+
+ /** @hide */
+ public static final HalVersion RADIO_HAL_VERSION_1_3 = new HalVersion(1, 3);
+
+ /** @hide */
public static final HalVersion RADIO_HAL_VERSION_1_4 = new HalVersion(1, 4);
/** @hide */
diff --git a/src/java/com/android/internal/telephony/RadioConfig.java b/src/java/com/android/internal/telephony/RadioConfig.java
index 13f6502..da20639 100644
--- a/src/java/com/android/internal/telephony/RadioConfig.java
+++ b/src/java/com/android/internal/telephony/RadioConfig.java
@@ -61,10 +61,6 @@
static final int EVENT_HIDL_SERVICE_DEAD = 1;
static final int EVENT_AIDL_SERVICE_DEAD = 2;
- static final HalVersion RADIO_CONFIG_HAL_VERSION_UNKNOWN = new HalVersion(-1, -1);
- static final HalVersion RADIO_CONFIG_HAL_VERSION_1_1 = new HalVersion(1, 1);
- static final HalVersion RADIO_CONFIG_HAL_VERSION_1_3 = new HalVersion(1, 3);
- static final HalVersion RADIO_CONFIG_HAL_VERSION_2_0 = new HalVersion(2, 0);
private final boolean mIsMobileNetworkSupported;
private final SparseArray<RILRequest> mRequestList = new SparseArray<>();
@@ -294,13 +290,12 @@
if (service != null) {
mRadioConfigProxy.setAidl(
- RADIO_CONFIG_HAL_VERSION_2_0,
android.hardware.radio.config.IRadioConfig.Stub.asInterface(service));
}
if (mRadioConfigProxy.isEmpty()) {
try {
- mRadioConfigProxy.setHidl(RADIO_CONFIG_HAL_VERSION_1_3,
+ mRadioConfigProxy.setHidl(RIL.RADIO_HAL_VERSION_1_3,
android.hardware.radio.config.V1_3.IRadioConfig.getService(true));
} catch (RemoteException | NoSuchElementException e) {
mRadioConfigProxy.clear();
@@ -310,7 +305,7 @@
if (mRadioConfigProxy.isEmpty()) {
try {
- mRadioConfigProxy.setHidl(RADIO_CONFIG_HAL_VERSION_1_1,
+ mRadioConfigProxy.setHidl(RIL.RADIO_HAL_VERSION_1_1,
android.hardware.radio.config.V1_1.IRadioConfig.getService(true));
} catch (RemoteException | NoSuchElementException e) {
mRadioConfigProxy.clear();
@@ -515,7 +510,7 @@
RadioConfigProxy proxy = getRadioConfigProxy(null);
if (proxy.isEmpty()) return;
- if (proxy.getVersion().less(RADIO_CONFIG_HAL_VERSION_1_1)) {
+ if (proxy.getVersion().less(RIL.RADIO_HAL_VERSION_1_1)) {
if (result != null) {
AsyncResult.forMessage(result, null,
CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -543,7 +538,7 @@
*/
public boolean isSetPreferredDataCommandSupported() {
RadioConfigProxy proxy = getRadioConfigProxy(null);
- return !proxy.isEmpty() && proxy.getVersion().greaterOrEqual(RADIO_CONFIG_HAL_VERSION_1_1);
+ return !proxy.isEmpty() && proxy.getVersion().greaterOrEqual(RIL.RADIO_HAL_VERSION_1_1);
}
/**
@@ -574,7 +569,7 @@
RadioConfigProxy proxy = getRadioConfigProxy(result);
if (proxy.isEmpty()) return;
- if (proxy.getVersion().less(RADIO_CONFIG_HAL_VERSION_1_1)) {
+ if (proxy.getVersion().less(RIL.RADIO_HAL_VERSION_1_1)) {
if (result != null) {
AsyncResult.forMessage(
result, null, CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -628,7 +623,7 @@
RadioConfigProxy proxy = getRadioConfigProxy(Message.obtain(result));
if (proxy.isEmpty()) return;
- if (proxy.getVersion().less(RADIO_CONFIG_HAL_VERSION_1_3)) {
+ if (proxy.getVersion().less(RIL.RADIO_HAL_VERSION_1_3)) {
if (result != null) {
if (DBG) {
logd("RIL_REQUEST_GET_HAL_DEVICE_CAPABILITIES > REQUEST_NOT_SUPPORTED");
diff --git a/src/java/com/android/internal/telephony/RadioConfigProxy.java b/src/java/com/android/internal/telephony/RadioConfigProxy.java
index b6c6d68..9f34e29 100644
--- a/src/java/com/android/internal/telephony/RadioConfigProxy.java
+++ b/src/java/com/android/internal/telephony/RadioConfigProxy.java
@@ -31,14 +31,15 @@
* downstream users.
*/
public class RadioConfigProxy {
- private final HalVersion mRadioHalVersion;
+ private static final String TAG = "RadioConfigProxy";
+ private HalVersion mRadioHalVersion;
private final RadioConfigHidlServiceDeathRecipient mRadioConfigHidlServiceDeathRecipient;
private final RadioConfigAidlServiceDeathRecipient mRadioConfigAidlServiceDeathRecipient;
private volatile android.hardware.radio.config.V1_1.IRadioConfig mHidlRadioConfigProxy = null;
private volatile android.hardware.radio.config.IRadioConfig mAidlRadioConfigProxy = null;
- private HalVersion mRadioConfigHalVersion = RadioConfig.RADIO_CONFIG_HAL_VERSION_UNKNOWN;
+ private HalVersion mRadioConfigHalVersion = RIL.RADIO_HAL_VERSION_UNKNOWN;
private boolean mIsAidl;
public RadioConfigProxy(RadioConfig radioConfig, HalVersion radioHalVersion) {
@@ -83,13 +84,15 @@
/**
* Set IRadioConfig as the AIDL implementation for RadioConfigProxy
*
- * @param radioConfigHalVersion RadioConfig HAL version
* @param radioConfig IRadioConfig implementation
*/
- public void setAidl(
- HalVersion radioConfigHalVersion,
- android.hardware.radio.config.IRadioConfig radioConfig) {
- mRadioConfigHalVersion = radioConfigHalVersion;
+ public void setAidl(android.hardware.radio.config.IRadioConfig radioConfig) {
+ try {
+ mRadioConfigHalVersion = RIL.getServiceHalVersion(radioConfig.getInterfaceVersion());
+ Rlog.d(TAG, "setAidl: setting HAL version to version = " + mRadioConfigHalVersion);
+ } catch (RemoteException e) {
+ Rlog.e(TAG, "setAidl: " + e);
+ }
mAidlRadioConfigProxy = radioConfig;
mIsAidl = true;
mRadioConfigAidlServiceDeathRecipient.setService(radioConfig.asBinder());
@@ -106,7 +109,7 @@
/** Reset RadioConfigProxy */
public void clear() {
- mRadioConfigHalVersion = RadioConfig.RADIO_CONFIG_HAL_VERSION_UNKNOWN;
+ mRadioConfigHalVersion = RIL.RADIO_HAL_VERSION_UNKNOWN;
mHidlRadioConfigProxy = null;
mAidlRadioConfigProxy = null;
mRadioConfigHidlServiceDeathRecipient.clear();
diff --git a/src/java/com/android/internal/telephony/data/PhoneSwitcher.java b/src/java/com/android/internal/telephony/data/PhoneSwitcher.java
index c4eb9ca..5c1d0e1 100644
--- a/src/java/com/android/internal/telephony/data/PhoneSwitcher.java
+++ b/src/java/com/android/internal/telephony/data/PhoneSwitcher.java
@@ -1562,6 +1562,9 @@
mPendingSwitchSubId = INVALID_SUBSCRIPTION_ID;
if (subIdToValidate == mPreferredDataSubId.get()) {
+ if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+ mAutoSelectedDataSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
+ }
sendSetOpptCallbackHelper(callback, SET_OPPORTUNISTIC_SUB_SUCCESS);
return;
}
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index b7f37d0..287f839 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -175,8 +175,6 @@
private static final int EVENT_IS_SATELLITE_SUPPORTED_DONE = 16;
private static final int CMD_GET_SATELLITE_CAPABILITIES = 17;
private static final int EVENT_GET_SATELLITE_CAPABILITIES_DONE = 18;
- private static final int CMD_IS_SATELLITE_COMMUNICATION_ALLOWED = 19;
- private static final int EVENT_IS_SATELLITE_COMMUNICATION_ALLOWED_DONE = 20;
private static final int CMD_GET_TIME_SATELLITE_NEXT_VISIBLE = 21;
private static final int EVENT_GET_TIME_SATELLITE_NEXT_VISIBLE_DONE = 22;
private static final int EVENT_RADIO_STATE_CHANGED = 23;
@@ -1073,39 +1071,6 @@
break;
}
- case CMD_IS_SATELLITE_COMMUNICATION_ALLOWED: {
- request = (SatelliteControllerHandlerRequest) msg.obj;
- onCompleted =
- obtainMessage(EVENT_IS_SATELLITE_COMMUNICATION_ALLOWED_DONE, request);
- mSatelliteModemInterface
- .requestIsSatelliteCommunicationAllowedForCurrentLocation(onCompleted);
- break;
- }
-
- case EVENT_IS_SATELLITE_COMMUNICATION_ALLOWED_DONE: {
- ar = (AsyncResult) msg.obj;
- request = (SatelliteControllerHandlerRequest) ar.userObj;
- int error = SatelliteServiceUtils.getSatelliteError(ar,
- "isSatelliteCommunicationAllowedForCurrentLocation");
- Bundle bundle = new Bundle();
- if (error == SATELLITE_RESULT_SUCCESS) {
- if (ar.result == null) {
- loge("isSatelliteCommunicationAllowedForCurrentLocation: result is null");
- error = SatelliteManager.SATELLITE_RESULT_INVALID_TELEPHONY_STATE;
- } else {
- boolean communicationAllowed = (boolean) ar.result;
- if (DBG) {
- logd("isSatelliteCommunicationAllowedForCurrentLocation: "
- + communicationAllowed);
- }
- bundle.putBoolean(SatelliteManager.KEY_SATELLITE_COMMUNICATION_ALLOWED,
- communicationAllowed);
- }
- }
- ((ResultReceiver) request.argument).send(error, bundle);
- break;
- }
-
case CMD_GET_TIME_SATELLITE_NEXT_VISIBLE: {
request = (SatelliteControllerHandlerRequest) msg.obj;
onCompleted = obtainMessage(EVENT_GET_TIME_SATELLITE_NEXT_VISIBLE_DONE,
@@ -1305,10 +1270,9 @@
if (SATELLITE_RESULT_SUCCESS != evaluateOemSatelliteRequestAllowed(true)) {
return;
}
- if (mShouldReportNtnSignalStrength.get() == shouldReport) {
+ if (!isSatelliteEnabled() || mShouldReportNtnSignalStrength.get() == shouldReport) {
if (DBG) {
- logd("CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING : modem state matches the "
- + "expected state, return.");
+ logd("CMD_UPDATE_NTN_SIGNAL_STRENGTH_REPORTING: ignore request.");
}
return;
}
@@ -1956,26 +1920,6 @@
}
/**
- * Request to get whether satellite communication is allowed for the current location.
- *
- * @param subId The subId of the subscription to check whether satellite communication is
- * allowed for the current location for.
- * @param result The result receiver that returns whether satellite communication is allowed
- * for the current location if the request is successful or an error code
- * if the request failed.
- */
- public void requestIsSatelliteCommunicationAllowedForCurrentLocation(int subId,
- @NonNull ResultReceiver result) {
- int error = evaluateOemSatelliteRequestAllowed(false);
- if (error != SATELLITE_RESULT_SUCCESS) {
- result.send(error, null);
- return;
- }
-
- sendRequestAsync(CMD_IS_SATELLITE_COMMUNICATION_ALLOWED, result, null);
- }
-
- /**
* Request to get the time after which the satellite will be visible.
*
* @param subId The subId to get the time after which the satellite will be visible for.
@@ -2982,6 +2926,9 @@
} else {
loge(caller + ": mSatelliteSessionController is not initialized yet");
}
+ if (!enabled) {
+ mShouldReportNtnSignalStrength.set(false);
+ }
}
private void registerForSatelliteProvisionStateChanged() {
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java b/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java
index 2f86eea..e51042f 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java
@@ -1009,48 +1009,6 @@
}
/**
- * Request to get whether satellite communication is allowed for the current location.
- *
- * @param message The Message to send to result of the operation to.
- */
- public void requestIsSatelliteCommunicationAllowedForCurrentLocation(@NonNull Message message) {
- if (mSatelliteService != null) {
- try {
- mSatelliteService.requestIsSatelliteCommunicationAllowedForCurrentLocation(
- new IIntegerConsumer.Stub() {
- @Override
- public void accept(int result) {
- int error = SatelliteServiceUtils.fromSatelliteError(result);
- logd("requestIsCommunicationAllowedForCurrentLocation: "
- + error);
- Binder.withCleanCallingIdentity(() ->
- sendMessageWithResult(message, null, error));
- }
- }, new IBooleanConsumer.Stub() {
- @Override
- public void accept(boolean result) {
- logd("requestIsCommunicationAllowedForCurrentLocation: "
- + result);
- Binder.withCleanCallingIdentity(() -> sendMessageWithResult(
- message, result,
- SatelliteManager.SATELLITE_RESULT_SUCCESS));
- }
- });
- } catch (RemoteException e) {
- loge("requestIsCommunicationAllowedForCurrentLocation: RemoteException "
- + e);
- sendMessageWithResult(message, null,
- SatelliteManager.SATELLITE_RESULT_SERVICE_ERROR);
- }
- } else {
- loge("requestIsCommunicationAllowedForCurrentLocation: "
- + "Satellite service is unavailable.");
- sendMessageWithResult(message, null,
- SatelliteManager.SATELLITE_RESULT_RADIO_NOT_AVAILABLE);
- }
- }
-
- /**
* Request to get the time after which the satellite will be visible. This is an int
* representing the duration in seconds after which the satellite will be visible.
* This will return 0 if the satellite is currently visible.
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
index 1f9ace9..8420acf 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
@@ -1518,6 +1518,53 @@
}
@Test
+ public void testSetPreferredDataCallback_voiceCall() throws Exception {
+ doReturn(true).when(mMockRadioConfig).isSetPreferredDataCommandSupported();
+ initialize();
+ setAllPhonesInactive();
+
+ // Phone 0 has sub 1, phone 1 has sub 2.
+ // Sub 1 is default data sub.
+ // Both are active subscriptions are active sub, as they are in both active slots.
+ setSlotIndexToSubId(0, 1);
+ setSlotIndexToSubId(1, 2);
+ setDefaultDataSubId(1);
+ assertEquals(1, mPhoneSwitcherUT.getActiveDataSubId());
+
+ doReturn(new SubscriptionInfoInternal.Builder(mSubscriptionManagerService
+ .getSubscriptionInfoInternal(2)).setOpportunistic(1).build())
+ .when(mSubscriptionManagerService).getSubscriptionInfoInternal(2);
+
+ // First temporarily switched to the opportunistic sub 2
+ mPhoneSwitcherUT.trySetOpportunisticDataSubscription(2, false, mSetOpptDataCallback1);
+ processAllMessages();
+ mPhoneSwitcherUT.mValidationCallback.onNetworkAvailable(null, 2);
+ processAllMessages();
+ verify(mSetOpptDataCallback1).onComplete(SET_OPPORTUNISTIC_SUB_SUCCESS);
+
+ // Voice call led back to default sub 1
+ doReturn(mImsPhone).when(mPhone).getImsPhone();
+ doReturn(true).when(mPhone).isUserDataEnabled();
+ doReturn(true).when(mDataSettingsManager).isDataEnabled();
+ mockImsRegTech(0, REGISTRATION_TECH_LTE);
+ notifyPhoneAsInCall(mPhone);
+
+ assertEquals(1, mPhoneSwitcherUT.getActiveDataSubId());
+ assertEquals(2, mPhoneSwitcherUT.getAutoSelectedDataSubId());
+
+ // CBRS set preferred data back to default during the phone call
+ clearInvocations(mSetOpptDataCallback1);
+ mPhoneSwitcherUT.trySetOpportunisticDataSubscription(SubscriptionManager
+ .DEFAULT_SUBSCRIPTION_ID, false, mSetOpptDataCallback1);
+ processAllMessages();
+
+ verify(mSetOpptDataCallback1).onComplete(SET_OPPORTUNISTIC_SUB_SUCCESS);
+ assertEquals(1, mPhoneSwitcherUT.getActiveDataSubId());
+ assertEquals(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+ mPhoneSwitcherUT.getAutoSelectedDataSubId());
+ }
+
+ @Test
@SmallTest
public void testMultiSimConfigChange() throws Exception {
doReturn(true).when(mMockRadioConfig).isSetPreferredDataCommandSupported();
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
index aae6a2f..0f77e31 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
@@ -557,58 +557,6 @@
}
@Test
- public void testRequestIsSatelliteCommunicationAllowedForCurrentLocation() {
- mSatelliteAllowedSemaphore.drainPermits();
- setUpResponseForRequestIsSatelliteSupported(false, SATELLITE_RESULT_SUCCESS);
- verifySatelliteSupported(false, SATELLITE_RESULT_SUCCESS);
- mSatelliteControllerUT.requestIsSatelliteCommunicationAllowedForCurrentLocation(SUB_ID,
- mSatelliteAllowedReceiver);
- processAllMessages();
- assertTrue(waitForRequestIsSatelliteAllowedForCurrentLocationResult(1));
- assertEquals(SATELLITE_RESULT_NOT_SUPPORTED, mQueriedSatelliteAllowedResultCode);
-
- resetSatelliteControllerUT();
- mSatelliteControllerUT.requestIsSatelliteCommunicationAllowedForCurrentLocation(SUB_ID,
- mSatelliteAllowedReceiver);
- processAllMessages();
- assertTrue(waitForRequestIsSatelliteAllowedForCurrentLocationResult(1));
- assertEquals(SATELLITE_RESULT_INVALID_TELEPHONY_STATE, mQueriedSatelliteAllowedResultCode);
-
- resetSatelliteControllerUT();
- setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
- verifySatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
- setUpResponseForRequestIsSatelliteAllowedForCurrentLocation(true,
- SATELLITE_RESULT_SUCCESS);
- mSatelliteControllerUT.requestIsSatelliteCommunicationAllowedForCurrentLocation(SUB_ID,
- mSatelliteAllowedReceiver);
- processAllMessages();
- assertTrue(waitForRequestIsSatelliteAllowedForCurrentLocationResult(1));
- assertEquals(SATELLITE_RESULT_SUCCESS, mQueriedSatelliteAllowedResultCode);
- assertTrue(mQueriedSatelliteAllowed);
-
- resetSatelliteControllerUT();
- setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
- verifySatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
- setUpNullResponseForRequestIsSatelliteAllowedForCurrentLocation(SATELLITE_RESULT_SUCCESS);
- mSatelliteControllerUT.requestIsSatelliteCommunicationAllowedForCurrentLocation(SUB_ID,
- mSatelliteAllowedReceiver);
- processAllMessages();
- assertTrue(waitForRequestIsSatelliteAllowedForCurrentLocationResult(1));
- assertEquals(SATELLITE_RESULT_INVALID_TELEPHONY_STATE, mQueriedSatelliteAllowedResultCode);
-
- resetSatelliteControllerUT();
- setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
- verifySatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
- setUpNullResponseForRequestIsSatelliteAllowedForCurrentLocation(
- SATELLITE_RESULT_INVALID_MODEM_STATE);
- mSatelliteControllerUT.requestIsSatelliteCommunicationAllowedForCurrentLocation(SUB_ID,
- mSatelliteAllowedReceiver);
- processAllMessages();
- assertTrue(waitForRequestIsSatelliteAllowedForCurrentLocationResult(1));
- assertEquals(SATELLITE_RESULT_INVALID_MODEM_STATE, mQueriedSatelliteAllowedResultCode);
- }
-
- @Test
public void testRequestTimeForNextSatelliteVisibility() {
mSatelliteVisibilityTimeSemaphore.drainPermits();
setUpResponseForRequestIsSatelliteSupported(false, SATELLITE_RESULT_SUCCESS);
@@ -2368,6 +2316,24 @@
doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported();
provisionSatelliteService();
setUpResponseForStartSendingNtnSignalStrength(expectedResult);
+
+ // but it is ignored because satellite is disabled
+ setUpResponseForRequestIsSatelliteEnabled(false, SATELLITE_RESULT_SUCCESS);
+ verifySatelliteEnabled(false, SATELLITE_RESULT_SUCCESS);
+ sendCmdStartSendingNtnSignalStrengthChangedEvent(true);
+ processAllMessages();
+ verify(mMockSatelliteModemInterface, never())
+ .startSendingNtnSignalStrength(any(Message.class));
+
+ // after satellite is enabled, startSendingNtnSignalStrength() is requested normally
+ resetSatelliteControllerUT();
+ reset(mMockSatelliteModemInterface);
+ doReturn(true).when(mMockSatelliteModemInterface).isSatelliteServiceSupported();
+ provisionSatelliteService();
+ setUpResponseForStartSendingNtnSignalStrength(expectedResult);
+ setUpResponseForRequestIsSatelliteEnabled(true, SATELLITE_RESULT_SUCCESS);
+ verifySatelliteEnabled(true, SATELLITE_RESULT_SUCCESS);
+ processAllMessages();
sendCmdStartSendingNtnSignalStrengthChangedEvent(true);
processAllMessages();
verify(mMockSatelliteModemInterface, times(1))
@@ -3314,32 +3280,6 @@
}).when(mMockSatelliteModemInterface).requestIsSatelliteSupported(any(Message.class));
}
- private void setUpResponseForRequestIsSatelliteAllowedForCurrentLocation(
- boolean isSatelliteAllowed, @SatelliteManager.SatelliteResult int error) {
- SatelliteException exception = (error == SATELLITE_RESULT_SUCCESS)
- ? null : new SatelliteException(error);
- doAnswer(invocation -> {
- Message message = (Message) invocation.getArguments()[0];
- AsyncResult.forMessage(message, isSatelliteAllowed, exception);
- message.sendToTarget();
- return null;
- }).when(mMockSatelliteModemInterface)
- .requestIsSatelliteCommunicationAllowedForCurrentLocation(any(Message.class));
- }
-
- private void setUpNullResponseForRequestIsSatelliteAllowedForCurrentLocation(
- @SatelliteManager.SatelliteResult int error) {
- SatelliteException exception = (error == SATELLITE_RESULT_SUCCESS)
- ? null : new SatelliteException(error);
- doAnswer(invocation -> {
- Message message = (Message) invocation.getArguments()[0];
- AsyncResult.forMessage(message, null, exception);
- message.sendToTarget();
- return null;
- }).when(mMockSatelliteModemInterface)
- .requestIsSatelliteCommunicationAllowedForCurrentLocation(any(Message.class));
- }
-
private void setUpResponseForRequestTimeForNextSatelliteVisibility(
int satelliteVisibilityTime, @SatelliteManager.SatelliteResult int error) {
SatelliteException exception = (error == SATELLITE_RESULT_SUCCESS)
@@ -3563,24 +3503,6 @@
return true;
}
- private boolean waitForRequestIsSatelliteAllowedForCurrentLocationResult(
- int expectedNumberOfEvents) {
- for (int i = 0; i < expectedNumberOfEvents; i++) {
- try {
- if (!mSatelliteAllowedSemaphore.tryAcquire(TIMEOUT, TimeUnit.MILLISECONDS)) {
- loge("Timeout to receive "
- + "requestIsCommunicationAllowedForCurrentLocation()"
- + " callback");
- return false;
- }
- } catch (Exception ex) {
- loge("waitForRequestIsSatelliteSupportedResult: Got exception=" + ex);
- return false;
- }
- }
- return true;
- }
-
private boolean waitForRequestTimeForNextSatelliteVisibilityResult(
int expectedNumberOfEvents) {
for (int i = 0; i < expectedNumberOfEvents; i++) {