Skip to content

Commit

Permalink
Merge "[Settings][Back port] configuration for hidding SIM lock UI" i…
Browse files Browse the repository at this point in the history
…nto tm-qpr-dev
  • Loading branch information
Bonian Chen authored and Android (Google) Code Review committed Nov 7, 2022
2 parents 15f0cd6 + 6b8ea62 commit af96b1e
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 3 deletions.
2 changes: 2 additions & 0 deletions res/xml/security_advanced_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
android:order="50"
android:key="sim_lock_settings"
android:title="@string/sim_lock_settings_category"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.security.SimLockPreferenceController">

<intent
Expand Down Expand Up @@ -103,6 +104,7 @@
android:key="confirm_sim_deletion"
android:title="@string/confirm_sim_deletion_title"
android:summary="@string/confirm_sim_deletion_description"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" />

<!-- work profile security section -->
Expand Down
5 changes: 3 additions & 2 deletions src/com/android/settings/IccLockSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,9 @@ private String getSummary(Context context) {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (Utils.isMonkeyRunning()) {
finish();
if (Utils.isMonkeyRunning() ||
!SubscriptionUtil.isSimHardwareVisible(getContext())) {
finishFragment();
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import androidx.preference.PreferenceScreen;

import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.SubscriptionUtil;

import java.util.List;

Expand All @@ -50,6 +51,10 @@ public SimLockPreferenceController(Context context, String key) {

@Override
public int getAvailabilityStatus() {
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
return UNSUPPORTED_ON_DEVICE;
}

final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@

import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.res.Resources;
import android.os.PersistableBundle;
import android.os.UserManager;
import android.telephony.CarrierConfigManager;
Expand All @@ -35,6 +37,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;

import org.junit.Before;
Expand Down Expand Up @@ -66,6 +69,7 @@ public class SimLockPreferenceControllerTest {
private SimLockPreferenceController mController;
private Preference mPreference;
private Context mContext;
private Resources mResources;

@Before
public void setUp() {
Expand All @@ -76,15 +80,28 @@ public void setUp() {
shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager);
shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
mContext = RuntimeEnvironment.application;
mContext = spy(RuntimeEnvironment.application);

mResources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(mResources);

mController = new SimLockPreferenceController(mContext, "key");
mPreference = new Preference(mContext);
mPreference.setKey(mController.getPreferenceKey());
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}

@Test
public void isAvailable_notShowSimUi_false() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(false);

assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
}

@Test
public void isAvailable_notAdmin_false() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(false);

assertThat(mController.getAvailabilityStatus())
Expand All @@ -93,6 +110,7 @@ public void isAvailable_notAdmin_false() {

@Test
public void isAvailable_simIccNotReady_false() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(true);

assertThat(mController.getAvailabilityStatus())
Expand Down Expand Up @@ -124,6 +142,7 @@ public void isAvailable_true() {

@Test
public void displayPreference_simReady_enablePreference() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
mController.displayPreference(mScreen);

assertThat(mPreference.isEnabled()).isFalse();
Expand All @@ -140,12 +159,14 @@ public void displayPreference_simNotReady_disablePreference() {

@Test
public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
mController = new SimLockPreferenceController(mContext, "key");

assertThat(mController.getPreferenceKey()).isEqualTo("key");
}

private void setupMockIcc() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info);
Expand All @@ -156,6 +177,7 @@ private void setupMockIcc() {
}

private void setupMockSimReady() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info);
Expand Down

0 comments on commit af96b1e

Please sign in to comment.