diff options
Diffstat (limited to 'src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java')
-rw-r--r-- | src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java b/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java deleted file mode 100644 index b6b3608f03a..00000000000 --- a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.security; - -import android.app.KeyguardManager; -import android.app.settings.SettingsEnums; -import android.content.Context; -import android.os.UserManager; -import android.provider.Settings; - -import androidx.preference.Preference; -import androidx.preference.TwoStatePreference; - -import com.android.settings.R; -import com.android.settings.core.BasePreferenceController; -import com.android.settings.network.helper.ConfirmationSimDeletionPredicate; -import com.android.settings.network.telephony.MobileNetworkUtils; -import com.android.settings.overlay.FeatureFactory; -import com.android.settings.wifi.dpp.WifiDppUtils; -import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; - -/** Enable/disable user confirmation before deleting an eSim */ -public class ConfirmSimDeletionPreferenceController extends BasePreferenceController implements - Preference.OnPreferenceChangeListener{ - public static final String KEY_CONFIRM_SIM_DELETION = - ConfirmationSimDeletionPredicate.KEY_CONFIRM_SIM_DELETION; - private boolean mConfirmationDefaultOn; - private MetricsFeatureProvider mMetricsFeatureProvider; - private UserManager mUserManager; - private KeyguardManager mKeyguardManager; - - public ConfirmSimDeletionPreferenceController(Context context, String key) { - super(context, key); - mConfirmationDefaultOn = - context.getResources() - .getBoolean(R.bool.config_sim_deletion_confirmation_default_on); - mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); - - mUserManager = context.getSystemService(UserManager.class); - mKeyguardManager = mContext.getSystemService(KeyguardManager.class); - } - - @Override - public int getAvailabilityStatus() { - // hide if eSim is not supported on the device - return (!MobileNetworkUtils.isMobileNetworkUserRestricted(mContext)) && - MobileNetworkUtils.showEuiccSettings(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; - } - - private boolean getGlobalState() { - return Settings.Global.getInt( - mContext.getContentResolver(), - KEY_CONFIRM_SIM_DELETION, - mConfirmationDefaultOn ? 1 : 0) - == 1; - } - - public boolean isChecked() { - return getGlobalState(); - } - - public boolean setChecked(boolean isChecked) { - Settings.Global.putInt( - mContext.getContentResolver(), KEY_CONFIRM_SIM_DELETION, isChecked ? 1 : 0); - return true; - } - - // handle UI change - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - if (!preference.getKey().equals(getPreferenceKey())) { - return false; - } - if (!isChecked()) { - mMetricsFeatureProvider.action(mContext, - SettingsEnums.ACTION_CONFIRM_SIM_DELETION_ON); - setChecked(true); - return true; - } else { - // prevent disabling the feature until authorized - WifiDppUtils.showLockScreen(mContext, () -> { - mMetricsFeatureProvider.action(mContext, - SettingsEnums.ACTION_CONFIRM_SIM_DELETION_OFF); - // set data - setChecked(false); - // set UI - ((TwoStatePreference) preference).setChecked(false); - }); - return false; - } - } - - @Override - public void updateState(Preference preference) { - if (!mKeyguardManager.isKeyguardSecure() && mUserManager.isGuestUser()) { - preference.setEnabled(false); - if (preference instanceof TwoStatePreference) { - ((TwoStatePreference) preference).setChecked(false); - } - preference.setSummary(R.string.disabled_because_no_backup_security); - } else { - preference.setEnabled(true); - if (preference instanceof TwoStatePreference) { - ((TwoStatePreference) preference).setChecked(getGlobalState()); - } - preference.setSummary(R.string.confirm_sim_deletion_description); - } - } -} |