Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69f6e76f authored by Bonian Chen's avatar Bonian Chen
Browse files

[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
parent d16201a3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@
    <Preference
        android:key="erase_euicc_data"
        android:title="@string/reset_esim_title"
        settings:isPreferenceVisible="@bool/config_show_sim_info"
        settings:controller="com.android.settings.network.EraseEuiccDataController" />

    <!-- Factory reset -->
+10 −1
Original line number Diff line number Diff line
@@ -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();
+6 −0
Original line number Diff line number Diff line
@@ -239,6 +239,9 @@ public class ResetNetwork extends InstrumentedFragment {
    }

    private List<SubscriptionInfo> 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()) {
+2 −1
Original line number Diff line number Diff line
@@ -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;
    }
+4 −1
Original line number Diff line number Diff line
@@ -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);