From 69f6e76f2c58a8df0ffb4e92bbe7cf1f4761e9a7 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Tue, 18 Oct 2022 03:44:12 +0000 Subject: [PATCH] [Settings] configuration for hidding SIM remove UI Hide SIM remove UI based on configuraion. Bug: 240515161 Test: test cases and local testing Change-Id: Iea40b89733cc75a41f960fecb2ac24177a4cbd3d --- res/xml/reset_dashboard_fragment.xml | 1 + src/com/android/settings/MainClear.java | 11 ++++++++++- src/com/android/settings/ResetNetwork.java | 6 ++++++ .../settings/network/EraseEuiccDataController.java | 3 ++- .../src/com/android/settings/MainClearTest.java | 5 ++++- 5 files changed, 23 insertions(+), 3 deletions(-) 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 705dfa723a3..f706c785401 100644 --- a/src/com/android/settings/MainClear.java +++ b/src/com/android/settings/MainClear.java @@ -63,6 +63,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; @@ -375,6 +376,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. * @@ -384,7 +393,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);