Add checkbox for erase esim under network reset screen
This CL add a checkbox letting user decide when they reset the network configurations under System > Reset options > Reset Wi-Fi, mobile & Bluetooth, whether they want to reset eSIM together or not. If the user choose to reset eSIM togather, EuiccManager#eraseSubscriptions will be called and all the eSIM profiles will be removed. Bug: 62961867 Test: E2E & make RunSettingsRoboTests Change-Id: I533756b12c0474e8e58cc6fe60a38c119365cee2
This commit is contained in:
@@ -18,20 +18,28 @@ package com.android.settings;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.app.Activity;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.Global;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.euicc.EuiccManager;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.telephony.PhoneConstants;
|
||||
@@ -64,6 +72,8 @@ public class ResetNetwork extends InstrumentedPreferenceFragment {
|
||||
private View mContentView;
|
||||
private Spinner mSubscriptionSpinner;
|
||||
private Button mInitiateButton;
|
||||
private View mEsimContainer;
|
||||
private CheckBox mEsimCheckbox;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@@ -107,6 +117,7 @@ public class ResetNetwork extends InstrumentedPreferenceFragment {
|
||||
SubscriptionInfo subscription = mSubscriptions.get(selectedIndex);
|
||||
args.putInt(PhoneConstants.SUBSCRIPTION_KEY, subscription.getSubscriptionId());
|
||||
}
|
||||
args.putBoolean(MasterClear.ERASE_ESIMS_EXTRA, mEsimCheckbox.isChecked());
|
||||
((SettingsActivity) getActivity()).startPreferencePanel(
|
||||
this, ResetNetworkConfirm.class.getName(),
|
||||
args, R.string.reset_network_confirm_title, null, null, 0);
|
||||
@@ -141,6 +152,8 @@ public class ResetNetwork extends InstrumentedPreferenceFragment {
|
||||
*/
|
||||
private void establishInitialState() {
|
||||
mSubscriptionSpinner = (Spinner) mContentView.findViewById(R.id.reset_network_subscription);
|
||||
mEsimContainer = mContentView.findViewById(R.id.erase_esim_container);
|
||||
mEsimCheckbox = mContentView.findViewById(R.id.erase_esim);
|
||||
|
||||
mSubscriptions = SubscriptionManager.from(getActivity()).getActiveSubscriptionInfoList();
|
||||
if (mSubscriptions != null && mSubscriptions.size() > 0) {
|
||||
@@ -192,6 +205,30 @@ public class ResetNetwork extends InstrumentedPreferenceFragment {
|
||||
}
|
||||
mInitiateButton = (Button) mContentView.findViewById(R.id.initiate_reset_network);
|
||||
mInitiateButton.setOnClickListener(mInitiateListener);
|
||||
if (showEuiccSettings(getContext())) {
|
||||
mEsimContainer.setVisibility(View.VISIBLE);
|
||||
TextView title = mContentView.findViewById(R.id.erase_esim_title);
|
||||
title.setText(R.string.reset_esim_title);
|
||||
mEsimContainer.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mEsimCheckbox.toggle();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
mEsimCheckbox.setChecked(false /* checked */);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean showEuiccSettings(Context context) {
|
||||
EuiccManager euiccManager =
|
||||
(EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
|
||||
if (!euiccManager.isEnabled()) {
|
||||
return false;
|
||||
}
|
||||
ContentResolver resolver = context.getContentResolver();
|
||||
return Settings.Global.getInt(resolver, Global.EUICC_PROVISIONED, 0) != 0
|
||||
|| Settings.Global.getInt(resolver, Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user