Authenticated confirmation before deletion of eSim

adds an authentication confirmation before deleting an eSim
this feature is turned on/off in the security page

Bug: 138861284
Test: mp settingsg
Change-Id: I32e0e3bff2091ec1097b3c37fa066d966e3373df
This commit is contained in:
Lee Chou
2020-01-21 18:02:30 +08:00
parent c799e9236b
commit 5a65e2d5dd
9 changed files with 147 additions and 22 deletions

View File

@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.euicc.EuiccManager;
@@ -34,6 +35,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.security.ConfirmSimDeletionPreferenceController;
import org.junit.After;
import org.junit.Before;
@@ -118,7 +120,11 @@ public class DeleteSimProfilePreferenceControllerTest {
public void onPreferenceClick_startsIntent() {
mController.init(SUB_ID, mFragment, REQUEST_CODE);
mController.displayPreference(mScreen);
mPreference.performClick();
// turn off confirmation before click
Settings.Global.putInt(mContext.getContentResolver(),
ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION, 0);
mController.handlePreferenceTreeClick(mPreference);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mFragment).startActivityForResult(intentCaptor.capture(), eq(REQUEST_CODE));

View File

@@ -26,6 +26,7 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.net.NetworkPolicyManager;
@@ -111,12 +112,12 @@ public class MobileNetworkSettingsTest {
public void onActivityResult_noActivity_noCrash() {
when(mFragment.getActivity()).thenReturn(null);
// this should not crash
mFragment.onActivityResult(REQUEST_CODE_DELETE_SUBSCRIPTION, 0, null);
mFragment.onActivityResult(REQUEST_CODE_DELETE_SUBSCRIPTION, Activity.RESULT_OK, null);
}
@Test
public void onActivityResult_deleteSubscription_activityFinishes() {
mFragment.onActivityResult(REQUEST_CODE_DELETE_SUBSCRIPTION, 0, null);
mFragment.onActivityResult(REQUEST_CODE_DELETE_SUBSCRIPTION, Activity.RESULT_OK, null);
verify(mActivity).finish();
}