summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ResetNetwork.java
diff options
context:
space:
mode:
authorQingxi Li <qingxi@google.com>2018-01-05 10:52:42 -0800
committerQingxi Li <qingxi@google.com>2018-01-19 14:26:50 -0800
commit0caad2f3ba0f6236cfe0750a34f8cec585d014ce (patch)
tree20e8b7874e52018944250c4be17f2cac2efec033 /src/com/android/settings/ResetNetwork.java
parent18a9d7bad07f172c41a4496c8165e9ecc8999782 (diff)
downloadpackages_apps_Settings-0caad2f3ba0f6236cfe0750a34f8cec585d014ce.tar.gz
packages_apps_Settings-0caad2f3ba0f6236cfe0750a34f8cec585d014ce.tar.bz2
packages_apps_Settings-0caad2f3ba0f6236cfe0750a34f8cec585d014ce.zip
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
Diffstat (limited to 'src/com/android/settings/ResetNetwork.java')
-rw-r--r--src/com/android/settings/ResetNetwork.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 0f08c26288..f64f6dce93 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -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