diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index 9497c8fe7d7..25161a5a66d 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -37,6 +37,7 @@
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 2b0f01036ea..1434d7216a9 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -64,6 +64,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
+import com.android.settings.network.SubscriptionUtil;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.ConfirmLockPattern;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -381,6 +382,14 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis
mScrollView.getViewTreeObserver().addOnGlobalLayoutListener(this);
}
+ /**
+ * Whether to show any UI which is SIM related.
+ */
+ @VisibleForTesting
+ boolean showAnySubscriptionInfo(Context context) {
+ return (context != null) && SubscriptionUtil.isSimHardwareVisible(context);
+ }
+
/**
* Whether to show strings indicating that the eUICC will be wiped.
*
@@ -390,7 +399,7 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis
@VisibleForTesting
boolean showWipeEuicc() {
Context context = getContext();
- if (!isEuiccEnabled(context)) {
+ if (!showAnySubscriptionInfo(context) || !isEuiccEnabled(context)) {
return false;
}
ContentResolver cr = context.getContentResolver();
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 7e58c0b9808..224ba13b9dc 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -239,6 +239,9 @@ public class ResetNetwork extends InstrumentedFragment {
}
private List getActiveSubscriptionInfoList() {
+ if (!SubscriptionUtil.isSimHardwareVisible(getActivity())) {
+ return Collections.emptyList();
+ }
SubscriptionManager mgr = getActivity().getSystemService(SubscriptionManager.class);
if (mgr == null) {
Log.w(TAG, "No SubscriptionManager");
@@ -264,6 +267,9 @@ public class ResetNetwork extends InstrumentedFragment {
}
private boolean showEuiccSettings(Context context) {
+ if (!SubscriptionUtil.isSimHardwareVisible(context)) {
+ return false;
+ }
EuiccManager euiccManager =
(EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
if (!euiccManager.isEnabled()) {
diff --git a/src/com/android/settings/network/EraseEuiccDataController.java b/src/com/android/settings/network/EraseEuiccDataController.java
index b1f964b2190..091b6d7748c 100644
--- a/src/com/android/settings/network/EraseEuiccDataController.java
+++ b/src/com/android/settings/network/EraseEuiccDataController.java
@@ -51,7 +51,8 @@ public class EraseEuiccDataController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
- return mContext.getPackageManager().hasSystemFeature(
+ return SubscriptionUtil.isSimHardwareVisible(mContext) &&
+ mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TELEPHONY_EUICC) ? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index ec33fadfd02..9795092a657 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -102,7 +102,10 @@ public class MainClearTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mMainClear = spy(new MainClear());
+ mMainClear = spy(new MainClear() {
+ @Override
+ boolean showAnySubscriptionInfo(Context context) { return true; }
+ });
mActivity = Robolectric.setupActivity(FragmentActivity.class);
mShadowActivity = Shadows.shadowOf(mActivity);
UserManager userManager = mActivity.getSystemService(UserManager.class);