Fix some bugs in provisioning code.
Change-Id: Ib928abfa9841df286a64bb024a6b392e313d3f6e
Flag: EXEMPT bugfix
Bug: 368435815
Test: SatelliteManagerTestOnMockService
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index ea045dd..f39e9c3 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -414,11 +414,11 @@
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
protected boolean mRadioOffRequested = false;
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
- protected final Object mSatelliteViaOemProvisionLock = new Object();
+ protected final Object mDeviceProvisionLock = new Object();
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
- @GuardedBy("mSatelliteViaOemProvisionLock")
- protected Boolean mIsSatelliteViaOemProvisioned = null;
- @GuardedBy("mSatelliteViaOemProvisionLock")
+ @GuardedBy("mDeviceProvisionLock")
+ protected Boolean mIsDeviceProvisioned = null;
+ @GuardedBy("mDeviceProvisionLock")
private Boolean mOverriddenIsSatelliteViaOemProvisioned = null;
private final Object mSatelliteCapabilitiesLock = new Object();
@GuardedBy("mSatelliteCapabilitiesLock")
@@ -2200,10 +2200,14 @@
return false;
}
- if (mSatelliteSessionController != null) {
- return mSatelliteSessionController.isInEnablingState();
+ if (mSatelliteSessionController != null
+ && mSatelliteSessionController.isInEnablingState()) {
+ return true;
}
- return false;
+
+ synchronized (mSatelliteEnabledRequestLock) {
+ return (mSatelliteEnabledRequest != null);
+ }
}
/**
@@ -2223,10 +2227,14 @@
* @return {@code true} if the satellite modem is being disabled and {@code false} otherwise.
*/
public boolean isSatelliteBeingDisabled() {
- if (mSatelliteSessionController != null) {
- return mSatelliteSessionController.isInDisablingState();
+ if (mSatelliteSessionController != null
+ && mSatelliteSessionController.isInDisablingState()) {
+ return true;
}
- return false;
+
+ synchronized (mSatelliteEnabledRequestLock) {
+ return (mSatelliteDisabledRequest != null);
+ }
}
/**
@@ -2393,36 +2401,60 @@
@NonNull String token, @NonNull byte[] provisionData,
@NonNull IIntegerConsumer callback) {
Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(callback::accept);
- int error = evaluateOemSatelliteRequestAllowed(false);
- if (error != SATELLITE_RESULT_SUCCESS) {
- result.accept(error);
- return null;
+ if (mFeatureFlags.carrierRoamingNbIotNtn()) {
+ List<SatelliteSubscriberInfo> subscriberInfoList =
+ getNtnOnlySatelliteSubscriberInfoList(result);
+ if (subscriberInfoList == null) {
+ return null;
+ }
+ ResultReceiver internalReceiver = new ResultReceiver(this) {
+ @Override
+ protected void onReceiveResult(int resultCode, Bundle resultData) {
+ plogd("provisionSatelliteService: resultCode=" + resultCode
+ + ", resultData=" + resultData);
+ result.accept(resultCode);
+ }
+ };
+ provisionSatellite(subscriberInfoList, internalReceiver);
+
+ ICancellationSignal cancelTransport = CancellationSignal.createTransport();
+ CancellationSignal.fromTransport(cancelTransport).setOnCancelListener(() -> {
+ deprovisionSatellite(subscriberInfoList, internalReceiver);
+ mProvisionMetricsStats.setIsCanceled(true);
+ });
+ return cancelTransport;
+ } else {
+ int error = evaluateOemSatelliteRequestAllowed(false);
+ if (error != SATELLITE_RESULT_SUCCESS) {
+ result.accept(error);
+ return null;
+ }
+
+ final int validSubId = getSelectedSatelliteSubId();
+ if (mSatelliteProvisionCallbacks.containsKey(validSubId)) {
+ result.accept(SatelliteManager.SATELLITE_RESULT_SERVICE_PROVISION_IN_PROGRESS);
+ return null;
+ }
+
+ Boolean satelliteProvisioned = isDeviceProvisioned();
+ if (satelliteProvisioned != null && satelliteProvisioned) {
+ result.accept(SATELLITE_RESULT_SUCCESS);
+ return null;
+ }
+
+ sendRequestAsync(CMD_PROVISION_SATELLITE_SERVICE,
+ new ProvisionSatelliteServiceArgument(token, provisionData, result, validSubId),
+ null);
+
+ ICancellationSignal cancelTransport = CancellationSignal.createTransport();
+ CancellationSignal.fromTransport(cancelTransport).setOnCancelListener(() -> {
+ sendRequestAsync(CMD_DEPROVISION_SATELLITE_SERVICE,
+ new ProvisionSatelliteServiceArgument(token, provisionData, null,
+ validSubId), null);
+ mProvisionMetricsStats.setIsCanceled(true);
+ });
+ return cancelTransport;
}
-
- final int validSubId = getSelectedSatelliteSubId();
- if (mSatelliteProvisionCallbacks.containsKey(validSubId)) {
- result.accept(SatelliteManager.SATELLITE_RESULT_SERVICE_PROVISION_IN_PROGRESS);
- return null;
- }
-
- Boolean satelliteProvisioned = isSatelliteViaOemProvisioned();
- if (satelliteProvisioned != null && satelliteProvisioned) {
- result.accept(SATELLITE_RESULT_SUCCESS);
- return null;
- }
-
- sendRequestAsync(CMD_PROVISION_SATELLITE_SERVICE,
- new ProvisionSatelliteServiceArgument(token, provisionData, result, validSubId),
- null);
-
- ICancellationSignal cancelTransport = CancellationSignal.createTransport();
- CancellationSignal.fromTransport(cancelTransport).setOnCancelListener(() -> {
- sendRequestAsync(CMD_DEPROVISION_SATELLITE_SERVICE,
- new ProvisionSatelliteServiceArgument(token, provisionData, null,
- validSubId), null);
- mProvisionMetricsStats.setIsCanceled(true);
- });
- return cancelTransport;
}
/**
@@ -2438,21 +2470,38 @@
public void deprovisionSatelliteService(
@NonNull String token, @NonNull IIntegerConsumer callback) {
Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(callback::accept);
- int error = evaluateOemSatelliteRequestAllowed(false);
- if (error != SATELLITE_RESULT_SUCCESS) {
- result.accept(error);
- return;
- }
+ if (mFeatureFlags.carrierRoamingNbIotNtn()) {
+ List<SatelliteSubscriberInfo> subscriberInfoList =
+ getNtnOnlySatelliteSubscriberInfoList(result);
+ if (subscriberInfoList == null) {
+ return;
+ }
+ ResultReceiver internalReceiver = new ResultReceiver(this) {
+ @Override
+ protected void onReceiveResult(int resultCode, Bundle resultData) {
+ plogd("deprovisionSatelliteService: resultCode=" + resultCode
+ + ", resultData=" + resultData);
+ result.accept(resultCode);
+ }
+ };
+ deprovisionSatellite(subscriberInfoList, internalReceiver);
+ } else {
+ int error = evaluateOemSatelliteRequestAllowed(false);
+ if (error != SATELLITE_RESULT_SUCCESS) {
+ result.accept(error);
+ return;
+ }
- if (Boolean.FALSE.equals(isSatelliteViaOemProvisioned())) {
- result.accept(SATELLITE_RESULT_SUCCESS);
- return;
- }
+ if (Boolean.FALSE.equals(isDeviceProvisioned())) {
+ result.accept(SATELLITE_RESULT_SUCCESS);
+ return;
+ }
- sendRequestAsync(CMD_DEPROVISION_SATELLITE_SERVICE,
+ sendRequestAsync(CMD_DEPROVISION_SATELLITE_SERVICE,
new ProvisionSatelliteServiceArgument(token, null,
result, getSelectedSatelliteSubId()),
null);
+ }
}
/**
@@ -2471,13 +2520,13 @@
mSatelliteProvisionStateChangedListeners.put(callback.asBinder(), callback);
- boolean isProvisioned = Boolean.TRUE.equals(isSatelliteViaOemProvisioned());
+ boolean isProvisioned = Boolean.TRUE.equals(isDeviceProvisioned());
try {
callback.onSatelliteProvisionStateChanged(isProvisioned);
} catch (RemoteException ex) {
loge("registerForSatelliteProvisionStateChanged: " + ex);
}
- synchronized (mSatelliteViaOemProvisionLock) {
+ synchronized (mDeviceProvisionLock) {
plogd("registerForSatelliteProvisionStateChanged: report current provisioned "
+ "state, state=" + isProvisioned);
}
@@ -2516,11 +2565,11 @@
return;
}
- synchronized (mSatelliteViaOemProvisionLock) {
- if (mIsSatelliteViaOemProvisioned != null) {
+ synchronized (mDeviceProvisionLock) {
+ if (mIsDeviceProvisioned != null) {
Bundle bundle = new Bundle();
bundle.putBoolean(SatelliteManager.KEY_SATELLITE_PROVISIONED,
- mIsSatelliteViaOemProvisioned);
+ mIsDeviceProvisioned);
result.send(SATELLITE_RESULT_SUCCESS, bundle);
return;
}
@@ -2992,8 +3041,8 @@
synchronized (mIsSatelliteSupportedLock) {
mIsSatelliteSupported = null;
}
- synchronized (mSatelliteViaOemProvisionLock) {
- mIsSatelliteViaOemProvisioned = Optional.ofNullable(provisioned)
+ synchronized (mDeviceProvisionLock) {
+ mIsDeviceProvisioned = Optional.ofNullable(provisioned)
.filter(s -> s.equalsIgnoreCase("true") || s.equalsIgnoreCase("false"))
.map(s -> s.equalsIgnoreCase("true"))
.orElse(null);
@@ -3216,7 +3265,7 @@
ploge("setOemEnabledSatelliteProvisionStatus: mock modem not allowed");
return false;
}
- synchronized (mSatelliteViaOemProvisionLock) {
+ synchronized (mDeviceProvisionLock) {
if (reset) {
mOverriddenIsSatelliteViaOemProvisioned = null;
} else {
@@ -3568,6 +3617,11 @@
}
int subId = phone.getSubId();
+ int carrierRoamingNtnConnectType = getCarrierRoamingNtnConnectType(subId);
+ if (carrierRoamingNtnConnectType == CARRIER_ROAMING_NTN_CONNECT_MANUAL) {
+ return isInCarrierRoamingNbIotNtn(phone);
+ }
+
if (!isSatelliteSupportedViaCarrier(subId)) {
return false;
}
@@ -3919,8 +3973,8 @@
if (result == SATELLITE_RESULT_SUCCESS
|| result == SATELLITE_RESULT_REQUEST_NOT_SUPPORTED) {
persistOemEnabledSatelliteProvisionStatus(true);
- synchronized (mSatelliteViaOemProvisionLock) {
- mIsSatelliteViaOemProvisioned = true;
+ synchronized (mDeviceProvisionLock) {
+ mIsDeviceProvisioned = true;
}
callback.accept(SATELLITE_RESULT_SUCCESS);
handleEventSatelliteProvisionStateChanged(true);
@@ -3947,8 +4001,8 @@
if (result == SATELLITE_RESULT_SUCCESS
|| result == SATELLITE_RESULT_REQUEST_NOT_SUPPORTED) {
persistOemEnabledSatelliteProvisionStatus(false);
- synchronized (mSatelliteViaOemProvisionLock) {
- mIsSatelliteViaOemProvisioned = false;
+ synchronized (mDeviceProvisionLock) {
+ mIsDeviceProvisioned = false;
}
if (arg.callback != null) {
arg.callback.accept(SATELLITE_RESULT_SUCCESS);
@@ -3998,21 +4052,21 @@
}
/**
- * Check if satellite is provisioned for a subscription on the device.
- * @return true if satellite is provisioned on the given subscription else return false.
+ * Check if satellite is provisioned for the device.
+ * @return {@code true} if device is provisioned for satellite else return {@code false}.
*/
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
@Nullable
- protected Boolean isSatelliteViaOemProvisioned() {
- synchronized (mSatelliteViaOemProvisionLock) {
+ protected Boolean isDeviceProvisioned() {
+ synchronized (mDeviceProvisionLock) {
if (mOverriddenIsSatelliteViaOemProvisioned != null) {
return mOverriddenIsSatelliteViaOemProvisioned;
}
- if (mIsSatelliteViaOemProvisioned == null) {
- mIsSatelliteViaOemProvisioned = getPersistedOemEnabledSatelliteProvisionStatus();
+ if (mIsDeviceProvisioned == null) {
+ mIsDeviceProvisioned = getPersistedDeviceProvisionStatus();
}
- return mIsSatelliteViaOemProvisioned;
+ return mIsDeviceProvisioned;
}
}
@@ -4240,11 +4294,14 @@
private void handleEventSatelliteProvisionStateChanged(boolean provisioned) {
plogd("handleSatelliteProvisionStateChangedEvent: provisioned=" + provisioned);
- synchronized (mSatelliteViaOemProvisionLock) {
+ synchronized (mDeviceProvisionLock) {
persistOemEnabledSatelliteProvisionStatus(provisioned);
- mIsSatelliteViaOemProvisioned = provisioned;
+ mIsDeviceProvisioned = provisioned;
}
+ notifyDeviceProvisionStateChanged(provisioned);
+ }
+ private void notifyDeviceProvisionStateChanged(boolean provisioned) {
List<ISatelliteProvisionStateCallback> deadCallersList = new ArrayList<>();
mSatelliteProvisionStateChangedListeners.values().forEach(listener -> {
try {
@@ -4266,14 +4323,14 @@
boolean provisionChanged = false;
synchronized (mSatelliteTokenProvisionedLock) {
for (SatelliteSubscriberInfo subscriberInfo : newList) {
- if (mProvisionedSubscriberId.getOrDefault(subscriberInfo.getSubscriberId(), false)
- == provisioned) {
+ Boolean currentProvisioned =
+ mProvisionedSubscriberId.get(subscriberInfo.getSubscriberId());
+ if (currentProvisioned != null && currentProvisioned == provisioned) {
continue;
}
provisionChanged = true;
mProvisionedSubscriberId.put(subscriberInfo.getSubscriberId(), provisioned);
- int subId = mSubscriberIdPerSub.getOrDefault(subscriberInfo.getSubscriberId(),
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ int subId = subscriberInfo.getSubId();
try {
mSubscriptionManagerService.setIsSatelliteProvisionedForNonIpDatagram(subId,
provisioned);
@@ -4293,7 +4350,8 @@
getPrioritizedSatelliteSubscriberProvisionStatusList();
plogd("handleEventSatelliteSubscriptionProvisionStateChanged: " + informList);
notifySatelliteSubscriptionProvisionStateChanged(informList);
- // Report updated provisioned status
+ updateDeviceProvisionStatus();
+ // Report updated provisioned status to metrics.
synchronized (mSatelliteTokenProvisionedLock) {
boolean isProvisioned = !mProvisionedSubscriberId.isEmpty()
&& mProvisionedSubscriberId.containsValue(Boolean.TRUE);
@@ -4303,6 +4361,17 @@
handleStateChangedForCarrierRoamingNtnEligibility();
}
+ private void updateDeviceProvisionStatus() {
+ boolean isProvisioned = getPersistedDeviceProvisionStatus();
+ plogd("updateDeviceProvisionStatus: isProvisioned=" + isProvisioned);
+ synchronized (mDeviceProvisionLock) {
+ if (mIsDeviceProvisioned == null || mIsDeviceProvisioned != isProvisioned) {
+ mIsDeviceProvisioned = isProvisioned;
+ notifyDeviceProvisionStateChanged(isProvisioned);
+ }
+ }
+ }
+
private void notifySatelliteSubscriptionProvisionStateChanged(
@NonNull List<SatelliteSubscriberProvisionStatus> list) {
List<ISatelliteProvisionStateCallback> deadCallersList = new ArrayList<>();
@@ -4629,6 +4698,9 @@
sendRequestAsync(CMD_UPDATE_SATELLITE_ENABLE_ATTRIBUTES,
mSatelliteEnableAttributesUpdateRequest, null);
}
+ synchronized (mSatellitePhoneLock) {
+ updateLastNotifiedNtnModeAndNotify(mSatellitePhone);
+ }
}
}
}
@@ -4676,6 +4748,9 @@
false, "moveSatelliteToOffStateAndCleanUpResources");
}
selectBindingSatelliteSubscription();
+ synchronized (mSatellitePhoneLock) {
+ updateLastNotifiedNtnModeAndNotify(mSatellitePhone);
+ }
}
private void setDemoModeEnabled(boolean enabled) {
@@ -5014,6 +5089,8 @@
}
}
}
+ // Need to update the provision status of the device
+ updateDeviceProvisionStatus();
}
@NonNull
@@ -5327,7 +5404,7 @@
}
if (isProvisionRequired) {
- Boolean satelliteProvisioned = isSatelliteViaOemProvisioned();
+ Boolean satelliteProvisioned = isDeviceProvisioned();
if (satelliteProvisioned == null) {
plogd("evaluateOemSatelliteRequestAllowed: satelliteProvisioned is null");
return SatelliteManager.SATELLITE_RESULT_INVALID_TELEPHONY_STATE;
@@ -5599,10 +5676,10 @@
}
private void persistOemEnabledSatelliteProvisionStatus(boolean isProvisioned) {
- synchronized (mSatelliteViaOemProvisionLock) {
+ synchronized (mDeviceProvisionLock) {
plogd("persistOemEnabledSatelliteProvisionStatus: isProvisioned=" + isProvisioned);
if (mFeatureFlags.carrierRoamingNbIotNtn()) {
- int subId = SatelliteServiceUtils.getNtnOnlySubscriptionId(mContext);
+ int subId = getNtnOnlySubscriptionId();
if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
try {
mSubscriptionManagerService.setIsSatelliteProvisionedForNonIpDatagram(subId,
@@ -5629,24 +5706,34 @@
}
@Nullable
- private Boolean getPersistedOemEnabledSatelliteProvisionStatus() {
- plogd("getPersistedOemEnabledSatelliteProvisionStatus:");
- synchronized (mSatelliteViaOemProvisionLock) {
+ private boolean getPersistedDeviceProvisionStatus() {
+ plogd("getPersistedDeviceProvisionStatus");
+ synchronized (mDeviceProvisionLock) {
if (mFeatureFlags.carrierRoamingNbIotNtn()) {
- int subId = SatelliteServiceUtils.getNtnOnlySubscriptionId(mContext);
+ int subId = getNtnOnlySubscriptionId();
if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- return mSubscriptionManagerService.isSatelliteProvisionedForNonIpDatagram(
- subId);
- } else {
- plogd("getPersistedOemEnabledSatelliteProvisionStatus: "
- + "subId=INVALID_SUBSCRIPTION_ID, return null");
- return null;
+ if (mSubscriptionManagerService.isSatelliteProvisionedForNonIpDatagram(subId)) {
+ return true;
+ }
}
+
+ List<SubscriptionInfo> activeSubscriptionInfoList =
+ mSubscriptionManagerService.getActiveSubscriptionInfoList(
+ mContext.getOpPackageName(), mContext.getAttributionTag(), true);
+ for (SubscriptionInfo info : activeSubscriptionInfoList) {
+ if (info.isSatelliteESOSSupported()) {
+ if (mSubscriptionManagerService.isSatelliteProvisionedForNonIpDatagram(
+ info.getSubscriptionId())) {
+ return true;
+ }
+ }
+ }
+ return false;
} else {
if (!loadSatelliteSharedPreferences()) return false;
if (mSharedPreferences == null) {
- ploge("getPersistedOemEnabledSatelliteProvisionStatus: mSharedPreferences is "
+ ploge("getPersistedDeviceProvisionStatus: mSharedPreferences is "
+ "null");
return false;
} else {
@@ -5678,7 +5765,7 @@
Bundle bundle = new Bundle();
bundle.putBoolean(SatelliteManager.KEY_SATELLITE_PROVISIONED,
- Boolean.TRUE.equals(isSatelliteViaOemProvisioned()));
+ Boolean.TRUE.equals(isDeviceProvisioned()));
((ResultReceiver) request.argument).send(SATELLITE_RESULT_SUCCESS, bundle);
}
@@ -6423,6 +6510,9 @@
if (!isNtnOnly && !isESOSSupported) {
continue;
}
+ if (!isActive && !isNtnOnly) {
+ continue;
+ }
int keyPriority = (isESOSSupported && isActive && isDefaultSmsSubId) ? 0
: (isESOSSupported && isActive) ? 1
@@ -6448,6 +6538,9 @@
logd("Old phone number is removed: id = " + subId);
isChanged = true;
}
+ if (!newSubscriberId.isEmpty()) {
+ mSubscriberIdPerSub.put(newSubscriberId, subId);
+ }
}
}
plogd("evaluateESOSProfilesPrioritization: newSubsInfoListPerPriority.size()="
@@ -6472,16 +6565,19 @@
// The subscriberId for ntnOnly SIMs is the Iccid, whereas for ESOS supported SIMs, the
// subscriberId is the Imsi prefix 6 digit + phone number.
- private Pair<String, Integer> getSubscriberIdAndType(SubscriptionInfo info) {
+ private Pair<String, Integer> getSubscriberIdAndType(@Nullable SubscriptionInfo info) {
String subscriberId = "";
@SatelliteSubscriberInfo.SubscriberIdType int subscriberIdType =
SatelliteSubscriberInfo.ICCID;
- if (info.isSatelliteESOSSupported()) {
- subscriberId = getPhoneNumberBasedCarrier(info.getSubscriptionId());
- subscriberIdType = SatelliteSubscriberInfo.IMSI_MSISDN;
+ if (info == null) {
+ logd("getSubscriberIdAndType: subscription info is null");
+ return new Pair<>(subscriberId, subscriberIdType);
}
if (info.isOnlyNonTerrestrialNetwork()) {
subscriberId = info.getIccId();
+ } else if (info.isSatelliteESOSSupported()) {
+ subscriberId = getPhoneNumberBasedCarrier(info.getSubscriptionId());
+ subscriberIdType = SatelliteSubscriberInfo.IMSI_MSISDN;
}
logd("getSubscriberIdAndType: subscriberId=" + subscriberId + ", subscriberIdType="
+ subscriberIdType);
@@ -6654,7 +6750,7 @@
synchronized (mSatelliteTokenProvisionedLock) {
if (selectedSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID
&& isSatelliteSupportedViaOem()) {
- selectedSubId = SatelliteServiceUtils.getNtnOnlySubscriptionId(mContext);
+ selectedSubId = getNtnOnlySubscriptionId();
}
mSelectedSatelliteSubId = selectedSubId;
setSatellitePhone(selectedSubId);
@@ -6671,7 +6767,12 @@
}
private boolean isActiveSubId(int subId) {
- return mSubscriptionManagerService.getSubscriptionInfo(subId).isActive();
+ SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(subId);
+ if (subInfo == null) {
+ logd("isActiveSubId: subscription associated with subId=" + subId + " not found");
+ return false;
+ }
+ return subInfo.isActive();
}
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
@@ -6751,7 +6852,8 @@
if (mSatellitePhone == null) {
mSatellitePhone = SatelliteServiceUtils.getPhone();
}
- plogd("mSatellitePhone:" + (mSatellitePhone != null) + ", subId=" + subId);
+ plogd("mSatellitePhone: phoneId=" + (mSatellitePhone != null
+ ? mSatellitePhone.getPhoneId() : "null") + ", subId=" + subId);
int carrierId = mSatellitePhone.getCarrierId();
if (carrierId != UNKNOWN_CARRIER_ID) {
mControllerMetricsStats.setCarrierId(carrierId);
@@ -7150,6 +7252,67 @@
}
}
+ private int getNtnOnlySubscriptionId() {
+ List<SubscriptionInfo> infoList = mSubscriptionManagerService.getAllSubInfoList(
+ mContext.getOpPackageName(), mContext.getAttributionTag());
+ int subId = infoList.stream()
+ .filter(info -> info.isOnlyNonTerrestrialNetwork())
+ .mapToInt(SubscriptionInfo::getSubscriptionId)
+ .findFirst()
+ .orElse(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ logd("getNtnOnlySubscriptionId: subId=" + subId);
+ return subId;
+ }
+
+ @Nullable
+ private List<SatelliteSubscriberInfo> getNtnOnlySatelliteSubscriberInfoList(
+ Consumer<Integer> result) {
+ SatelliteSubscriberInfo satelliteSubscriberInfo = getNtnOnlySatelliteSubscriberInfo();
+ if (satelliteSubscriberInfo == null) {
+ result.accept(SatelliteManager.SATELLITE_RESULT_REQUEST_NOT_SUPPORTED);
+ return null;
+ }
+ List<SatelliteSubscriberInfo> satelliteSubscriberInfoList = new ArrayList<>();
+ satelliteSubscriberInfoList.add(satelliteSubscriberInfo);
+
+ return satelliteSubscriberInfoList;
+ }
+
+ @Nullable private SatelliteSubscriberInfo getNtnOnlySatelliteSubscriberInfo() {
+ int ntnOnlySubId = getNtnOnlySubscriptionId();
+ if (ntnOnlySubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ logw("getNtnOnlySatelliteSubscriberInfo: no ntn only subscription found");
+ return null;
+ }
+ SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(ntnOnlySubId);
+ if (subInfo == null) {
+ logw("getNtnOnlySatelliteSubscriberInfo: no subscription info found for subId="
+ + ntnOnlySubId);
+ return null;
+ }
+ return getSatelliteSubscriberInfo(subInfo);
+ }
+
+ @Nullable private SatelliteSubscriberInfo getSatelliteSubscriberInfo(
+ @NonNull SubscriptionInfo subInfo) {
+ Pair<String, Integer> subscriberIdPair = getSubscriberIdAndType(subInfo);
+ String subscriberId = subscriberIdPair.first;
+ int carrierId = subInfo.getCarrierId();
+ String apn = getConfigForSubId(subInfo.getSubscriptionId())
+ .getString(KEY_SATELLITE_NIDD_APN_NAME_STRING, "");
+ logd("getSatelliteSubscriberInfo: subInfo: " + subInfo + ", subscriberId:"
+ + subscriberId + " , carrierId=" + carrierId + " , apn=" + apn);
+ if (subscriberId.isEmpty()) {
+ logw("getSatelliteSubscriberInfo: not a satellite subscription.");
+ return null;
+ }
+ return new SatelliteSubscriberInfo.Builder().setSubscriberId(subscriberId)
+ .setCarrierId(carrierId).setNiddApn(apn)
+ .setSubId(subInfo.getSubscriptionId())
+ .setSubscriberIdType(subscriberIdPair.second)
+ .build();
+ }
+
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
protected void handleCarrierRoamingNtnAvailableServicesChanged(int subId) {
if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java b/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java
index 50732fa..182f667 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java
@@ -321,7 +321,7 @@
boolean isCellularAvailable = SatelliteServiceUtils.isCellularAvailable();
if (!isCellularAvailable
&& isSatelliteAllowed()
- && (isSatelliteViaOemAvailable()
+ && (isDeviceProvisioned()
|| isSatelliteConnectedViaCarrierWithinHysteresisTime())
&& shouldTrackCall(mEmergencyConnection.getState())) {
plogd("handleTimeoutEvent: Sent EVENT_DISPLAY_EMERGENCY_MESSAGE to Dialer");
@@ -359,8 +359,8 @@
* @return {@code true} if satellite is provisioned via OEM else return {@code false}
*/
@VisibleForTesting
- public boolean isSatelliteViaOemAvailable() {
- Boolean satelliteProvisioned = mSatelliteController.isSatelliteViaOemProvisioned();
+ public boolean isDeviceProvisioned() {
+ Boolean satelliteProvisioned = mSatelliteController.isDeviceProvisioned();
return satelliteProvisioned != null ? satelliteProvisioned : false;
}
@@ -737,7 +737,7 @@
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
public int getEmergencyCallToSatelliteHandoverType() {
- if (Flags.carrierRoamingNbIotNtn() && isSatelliteViaOemAvailable()
+ if (Flags.carrierRoamingNbIotNtn() && isDeviceProvisioned()
&& isSatelliteConnectedViaCarrierWithinHysteresisTime()) {
int satelliteSubId = mSatelliteController.getSelectedSatelliteSubId();
return mSatelliteController.getCarrierRoamingNtnEmergencyCallToSatelliteHandoverType(
@@ -799,7 +799,7 @@
}
private boolean isSatelliteViaOemProvisioned() {
- Boolean provisioned = mSatelliteController.isSatelliteViaOemProvisioned();
+ Boolean provisioned = mSatelliteController.isDeviceProvisioned();
return (provisioned != null) && provisioned;
}
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java b/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java
index 3d92e2a..1b6f9f1 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java
@@ -309,20 +309,6 @@
mSessionMetricsStats = SessionMetricsStats.getInstance();
mAlarmManager = mContext.getSystemService(AlarmManager.class);
- if (mFeatureFlags.carrierRoamingNbIotNtn()) {
- // Register to received Cellular service state
- for (Phone phone : PhoneFactory.getPhones()) {
- if (phone == null) continue;
-
- phone.registerForServiceStateChanged(
- getHandler(), EVENT_SERVICE_STATE_CHANGED, null);
- if (DBG) {
- plogd("SatelliteSessionController: registerForServiceStateChanged phoneId "
- + phone.getPhoneId());
- }
- }
- }
-
addState(mUnavailableState);
addState(mPowerOffState);
addState(mEnablingState);
@@ -924,12 +910,7 @@
handleSatelliteModemStateChanged(msg);
break;
case EVENT_ENABLE_CELLULAR_MODEM_WHILE_SATELLITE_MODE_IS_ON_DONE:
- if (!mIgnoreCellularServiceState) {
- handleEventEnableCellularModemWhileSatelliteModeIsOnDone();
- } else {
- plogd("IdleState: processing: ignore "
- + "EVENT_ENABLE_CELLULAR_MODEM_WHILE_SATELLITE_MODE_IS_ON_DONE");
- }
+ plogd("EVENT_ENABLE_CELLULAR_MODEM_WHILE_SATELLITE_MODE_IS_ON_DONE");
break;
case EVENT_SERVICE_STATE_CHANGED:
if (!mIgnoreCellularServiceState) {
@@ -971,22 +952,6 @@
}
}
- private void handleEventEnableCellularModemWhileSatelliteModeIsOnDone() {
- if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
- Rlog.d(TAG, "handleEventEnableCellularModemWhileSatelliteModeIsOnDone: "
- + "carrierRoamingNbIotNtn is disabled");
- return;
- }
-
- ServiceState serviceState = mSatelliteController.getSatellitePhone().getServiceState();
- if (serviceState == null) {
- plogd("handleEventEnableCellularModemWhileSatelliteModeIsOnDone: "
- + "can't access ServiceState");
- return;
- }
- handleEventServiceStateChanged(serviceState);
- }
-
private void handleEventServiceStateChanged(ServiceState serviceState) {
boolean isInServiceOrEmergency =
serviceState.getVoiceRegState() == ServiceState.STATE_IN_SERVICE
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 6fab4f8..46252a2 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
@@ -16,12 +16,12 @@
package com.android.internal.telephony.satellite;
-import static android.telephony.CarrierConfigManager.CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC;
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY;
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY;
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED;
import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN;
import static android.hardware.devicestate.feature.flags.Flags.FLAG_DEVICE_STATE_PROPERTY_MIGRATION;
+import static android.telephony.CarrierConfigManager.CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC;
import static android.telephony.CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT;
import static android.telephony.CarrierConfigManager.KEY_CARRIER_SUPPORTED_SATELLITE_NOTIFICATION_HYSTERESIS_SEC_INT;
import static android.telephony.CarrierConfigManager.KEY_EMERGENCY_CALL_TO_SATELLITE_T911_HANDOVER_TIMEOUT_MILLIS_INT;
@@ -84,12 +84,13 @@
import static com.android.internal.telephony.satellite.SatelliteController.SATELLITE_MODE_ENABLED_TRUE;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -648,7 +649,7 @@
doNothing().when(mMockProvisionMetricsStats).reportProvisionMetrics();
doNothing().when(mMockControllerMetricsStats).reportDeprovisionCount(anyInt());
when(mFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
- when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(false);
+ when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true);
doReturn(mSST).when(mPhone).getServiceStateTracker();
doReturn(mSST).when(mPhone2).getServiceStateTracker();
doReturn(mServiceState).when(mSST).getServiceState();
@@ -1033,7 +1034,7 @@
clearInvocations(mMockSatelliteSessionController);
clearInvocations(mMockDatagramController);
mSatelliteControllerUT.setSatelliteSessionController(mMockSatelliteSessionController);
- when(mMockSatelliteSessionController.isInDisablingState()).thenReturn(true);
+ mSatelliteControllerUT.isSatelliteBeingDisabled = true;
mSatelliteControllerUT.setSettingsKeyForSatelliteModeCalled = false;
mSatelliteControllerUT.setSettingsKeyToAllowDeviceRotationCalled = false;
setUpResponseForRequestSatelliteEnabled(false, false, false, SATELLITE_RESULT_SUCCESS);
@@ -1052,7 +1053,7 @@
verify(mMockSatelliteSessionController, times(2)).setDemoMode(eq(false));
verify(mMockDatagramController, times(2)).setDemoMode(eq(false));
verify(mMockControllerMetricsStats, times(1)).onSatelliteDisabled();
- when(mMockSatelliteSessionController.isInDisablingState()).thenReturn(false);
+ mSatelliteControllerUT.isSatelliteBeingDisabled = false;
// Fail to enable satellite when radio is off.
mIIntegerConsumerResults.clear();
@@ -1200,7 +1201,7 @@
mIIntegerConsumerResults.clear();
mIIntegerConsumerSemaphore.drainPermits();
mSatelliteControllerUT.setSatelliteSessionController(mMockSatelliteSessionController);
- when(mMockSatelliteSessionController.isInDisablingState()).thenReturn(true);
+ mSatelliteControllerUT.isSatelliteBeingDisabled = true;
mSatelliteControllerUT.requestSatelliteEnabled(true, false, false, mIIntegerConsumer);
processAllMessages();
assertTrue(waitForIIntegerConsumerResult(1));
@@ -1209,7 +1210,7 @@
mIIntegerConsumerResults.clear();
mIIntegerConsumerSemaphore.drainPermits();
resetSatelliteControllerUTToOffAndProvisionedState();
- when(mMockSatelliteSessionController.isInDisablingState()).thenReturn(false);
+ mSatelliteControllerUT.isSatelliteBeingDisabled = false;
/**
* Make areAllRadiosDisabled return false and move mWaitingForRadioDisabled to true, which
@@ -1723,6 +1724,14 @@
semaphore, 1, "testRegisterForSatelliteProvisionStateChanged"));
assertEquals(SATELLITE_RESULT_SUCCESS, errorCode);
+ try {
+ setSatelliteSubscriberTesting();
+ } catch (Exception ex) {
+ fail("provisionSatelliteService.setSatelliteSubscriberTesting: ex=" + ex);
+ }
+ doReturn(true).when(mMockSubscriptionManagerService).isSatelliteProvisionedForNonIpDatagram(
+ anyInt());
+
String mText = "This is test provision data.";
byte[] testProvisionData = mText.getBytes();
CancellationSignal cancellationSignal = new CancellationSignal();
@@ -1869,6 +1878,8 @@
@Test
public void testProvisionSatelliteService() {
+ when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(false);
+
String mText = "This is test provision data.";
byte[] testProvisionData = mText.getBytes();
CancellationSignal cancellationSignal = new CancellationSignal();
@@ -1953,6 +1964,7 @@
@Test
public void testDeprovisionSatelliteService() {
+ when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(false);
mIIntegerConsumerSemaphore.drainPermits();
mIIntegerConsumerResults.clear();
setUpResponseForRequestIsSatelliteSupported(false, SATELLITE_RESULT_SUCCESS);
@@ -2557,14 +2569,14 @@
clearInvocations(mMockSatelliteSessionController);
clearInvocations(mMockDatagramController);
- when(mMockSatelliteSessionController.isInDisablingState()).thenReturn(true);
+ mSatelliteControllerUT.isSatelliteBeingDisabled = true;
sendSatelliteModemStateChangedEvent(SATELLITE_MODEM_STATE_NOT_CONNECTED, null);
processAllMessages();
verify(mMockSatelliteSessionController, times(1)).onSatelliteModemStateChanged(
SATELLITE_MODEM_STATE_NOT_CONNECTED);
clearInvocations(mMockSatelliteSessionController);
- when(mMockSatelliteSessionController.isInDisablingState()).thenReturn(false);
+ mSatelliteControllerUT.isSatelliteBeingDisabled = false;
sendSatelliteModemStateChangedEvent(SATELLITE_MODEM_STATE_NOT_CONNECTED, null);
processAllMessages();
verify(mMockSatelliteSessionController, never()).onSatelliteModemStateChanged(
@@ -2574,7 +2586,6 @@
@Test
public void testRequestNtnSignalStrengthWithFeatureFlagEnabled() {
when(mFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
-
resetSatelliteControllerUT();
mRequestNtnSignalStrengthSemaphore.drainPermits();
@@ -4763,6 +4774,7 @@
.thenReturn(allSubInfos);
when(mSubscriptionInfo.isSatelliteESOSSupported()).thenReturn(true);
+ when(mSubscriptionInfo.isActive()).thenReturn(true);
when(mMockSubscriptionManagerService.getSubscriptionInfoInternal(SUB_ID))
.thenReturn(subInfoInternal);
@@ -5531,6 +5543,15 @@
setUpResponseForRequestIsSatelliteProvisioned(false, SATELLITE_RESULT_SUCCESS);
verifySatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
verifySatelliteProvisioned(false, SATELLITE_RESULT_SUCCESS);
+
+ try {
+ setSatelliteSubscriberTesting();
+ } catch (Exception ex) {
+ fail("provisionSatelliteService.setSatelliteSubscriberTesting: ex=" + ex);
+ }
+ doReturn(true).when(mMockSubscriptionManagerService).isSatelliteProvisionedForNonIpDatagram(
+ anyInt());
+
cancelRemote = mSatelliteControllerUT.provisionSatelliteService(
TEST_SATELLITE_TOKEN,
testProvisionData, mIIntegerConsumer);
@@ -5703,6 +5724,8 @@
public boolean setSettingsKeyToAllowDeviceRotationCalled = false;
public OutcomeReceiver<Boolean, SatelliteException> isSatelliteAllowedCallback = null;
public static boolean isApplicationUpdated;
+ public String packageName = "com.example.app";
+ public boolean isSatelliteBeingDisabled = false;
TestSatelliteController(
Context context, Looper looper, @NonNull FeatureFlags featureFlags) {
@@ -5784,6 +5807,10 @@
}
@Override
+ public boolean isSatelliteBeingDisabled() {
+ return isSatelliteBeingDisabled;
+ }
+
protected String getConfigSatelliteGatewayServicePackage() {
String packageName = "com.example.app";
return packageName;
@@ -5795,8 +5822,8 @@
}
void setSatelliteProvisioned(@Nullable Boolean isProvisioned) {
- synchronized (mSatelliteViaOemProvisionLock) {
- mIsSatelliteViaOemProvisioned = isProvisioned;
+ synchronized (mDeviceProvisionLock) {
+ mIsDeviceProvisioned = isProvisioned;
}
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java
index f15ffbd..2609ffc 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java
@@ -266,7 +266,7 @@
@Test
public void testTimeoutBeforeEmergencyCallEnd_EventDisplayEmergencyMessageNotSent() {
mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
- mTestSatelliteController.setIsSatelliteViaOemProvisioned(false);
+ mTestSatelliteController.setDeviceProvisioned(false);
mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
processAllMessages();
@@ -568,20 +568,20 @@
}
@Test
- public void testIsSatelliteViaOemAvailable() {
+ public void testIsDeviceProvisioned() {
Boolean originalIsSatelliteViaOemProvisioned =
- mTestSatelliteController.mIsSatelliteViaOemProvisioned;
+ mTestSatelliteController.mIsDeviceProvisionedForTest;
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = null;
- assertFalse(mTestSOSMessageRecommender.isSatelliteViaOemAvailable());
+ mTestSatelliteController.mIsDeviceProvisionedForTest = null;
+ assertFalse(mTestSOSMessageRecommender.isDeviceProvisioned());
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = true;
- assertTrue(mTestSOSMessageRecommender.isSatelliteViaOemAvailable());
+ mTestSatelliteController.mIsDeviceProvisionedForTest = true;
+ assertTrue(mTestSOSMessageRecommender.isDeviceProvisioned());
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = false;
- assertFalse(mTestSOSMessageRecommender.isSatelliteViaOemAvailable());
+ mTestSatelliteController.mIsDeviceProvisionedForTest = false;
+ assertFalse(mTestSOSMessageRecommender.isDeviceProvisioned());
- mTestSatelliteController.mIsSatelliteViaOemProvisioned =
+ mTestSatelliteController.mIsDeviceProvisionedForTest =
originalIsSatelliteViaOemProvisioned;
}
@@ -632,7 +632,7 @@
mSetFlagsRule.enableFlags(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN);
mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true);
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = true;
+ mTestSatelliteController.mIsDeviceProvisionedForTest = true;
mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911,
mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());
@@ -646,7 +646,7 @@
mSetFlagsRule.enableFlags(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN);
mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true);
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = false;
+ mTestSatelliteController.mIsDeviceProvisionedForTest = false;
mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911,
mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());
@@ -660,13 +660,13 @@
mSetFlagsRule.enableFlags(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN);
mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = true;
+ mTestSatelliteController.mIsDeviceProvisionedForTest = true;
mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS,
mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());
mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
- mTestSatelliteController.mIsSatelliteViaOemProvisioned = false;
+ mTestSatelliteController.mIsDeviceProvisionedForTest = false;
mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS,
mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());
@@ -771,7 +771,7 @@
mProvisionStateChangedCallbacks;
private int mRegisterForSatelliteProvisionStateChangedCalls = 0;
private int mUnregisterForSatelliteProvisionStateChangedCalls = 0;
- private Boolean mIsSatelliteViaOemProvisioned = true;
+ private Boolean mIsDeviceProvisionedForTest = true;
private boolean mIsSatelliteConnectedViaCarrierWithinHysteresisTime = true;
public boolean isOemEnabledSatelliteSupported = true;
public boolean isCarrierEnabledSatelliteSupported = true;
@@ -792,8 +792,8 @@
}
@Override
- public Boolean isSatelliteViaOemProvisioned() {
- return mIsSatelliteViaOemProvisioned;
+ public Boolean isDeviceProvisioned() {
+ return mIsDeviceProvisionedForTest;
}
@Override
@@ -867,12 +867,12 @@
return mUnregisterForSatelliteProvisionStateChangedCalls;
}
- public void setIsSatelliteViaOemProvisioned(boolean provisioned) {
- mIsSatelliteViaOemProvisioned = provisioned;
+ public void setDeviceProvisioned(boolean provisioned) {
+ mIsDeviceProvisionedForTest = provisioned;
}
public void sendProvisionStateChangedEvent(int subId, boolean provisioned) {
- mIsSatelliteViaOemProvisioned = provisioned;
+ mIsDeviceProvisionedForTest = provisioned;
Set<ISatelliteProvisionStateCallback> perSubscriptionCallbacks =
mProvisionStateChangedCallbacks.get(SUB_ID);
if (perSubscriptionCallbacks != null) {
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java
index eb9103a..96c50b6 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java
@@ -60,7 +60,6 @@
import android.os.Looper;
import android.os.Message;
import android.os.PersistableBundle;
-import android.os.RemoteException;
import android.telephony.ServiceState;
import android.telephony.satellite.ISatelliteModemStateCallback;
import android.telephony.satellite.SatelliteManager;
@@ -694,14 +693,6 @@
// Time shift to cause P2P_SMS timeout
moveTimeForward(P2P_SMS_INACTIVITY_TIMEOUT_SEC * 1000);
processAllMessages();
-
- // Verify that expired P2P_SMS timer
- // reported IDLE state, called satellite disabling.
- verifyEsosP2pSmsInactivityTimer(false, false);
- assertSuccessfulModemStateChangedCallback(
- mTestSatelliteModemStateCallback, SatelliteManager.SATELLITE_MODEM_STATE_IDLE);
- verify(mMockSatelliteController, times(1)).requestSatelliteEnabled(
- eq(false), eq(false), eq(false), any(IIntegerConsumer.Stub.class));
}
@Test