Merge "[Settings] configuration for hidding SIM lock UI"

This commit is contained in:
Bonian Chen
2022-10-21 13:29:18 +00:00
committed by Android (Google) Code Review
4 changed files with 33 additions and 3 deletions

View File

@@ -64,6 +64,7 @@
android:order="50" android:order="50"
android:key="sim_lock_settings" android:key="sim_lock_settings"
android:title="@string/sim_lock_settings_category" android:title="@string/sim_lock_settings_category"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.security.SimLockPreferenceController"> settings:controller="com.android.settings.security.SimLockPreferenceController">
<intent <intent
@@ -103,6 +104,7 @@
android:key="confirm_sim_deletion" android:key="confirm_sim_deletion"
android:title="@string/confirm_sim_deletion_title" android:title="@string/confirm_sim_deletion_title"
android:summary="@string/confirm_sim_deletion_description" android:summary="@string/confirm_sim_deletion_description"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" /> settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" />
<!-- work profile security section --> <!-- work profile security section -->

View File

@@ -174,8 +174,9 @@ public class IccLockSettings extends SettingsPreferenceFragment
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (Utils.isMonkeyRunning()) { if (Utils.isMonkeyRunning() ||
finish(); !SubscriptionUtil.isSimHardwareVisible(getContext())) {
finishFragment();
return; return;
} }

View File

@@ -28,6 +28,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.SubscriptionUtil;
import java.util.List; import java.util.List;
@@ -50,6 +51,10 @@ public class SimLockPreferenceController extends BasePreferenceController {
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
return UNSUPPORTED_ON_DEVICE;
}
final List<SubscriptionInfo> subInfoList = final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList(); mSubscriptionManager.getActiveSubscriptionInfoList();

View File

@@ -22,9 +22,11 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.os.UserManager; import android.os.UserManager;
import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager;
@@ -35,6 +37,7 @@ import android.telephony.TelephonyManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import org.junit.Before; import org.junit.Before;
@@ -66,6 +69,7 @@ public class SimLockPreferenceControllerTest {
private SimLockPreferenceController mController; private SimLockPreferenceController mController;
private Preference mPreference; private Preference mPreference;
private Context mContext; private Context mContext;
private Resources mResources;
@Before @Before
public void setUp() { public void setUp() {
@@ -76,15 +80,28 @@ public class SimLockPreferenceControllerTest {
shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager); shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager);
shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager); shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager); 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"); mController = new SimLockPreferenceController(mContext, "key");
mPreference = new Preference(mContext); mPreference = new Preference(mContext);
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); 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 @Test
public void isAvailable_notAdmin_false() { public void isAvailable_notAdmin_false() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(false); when(mUserManager.isAdminUser()).thenReturn(false);
assertThat(mController.getAvailabilityStatus()) assertThat(mController.getAvailabilityStatus())
@@ -93,6 +110,7 @@ public class SimLockPreferenceControllerTest {
@Test @Test
public void isAvailable_simIccNotReady_false() { public void isAvailable_simIccNotReady_false() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(true); when(mUserManager.isAdminUser()).thenReturn(true);
assertThat(mController.getAvailabilityStatus()) assertThat(mController.getAvailabilityStatus())
@@ -124,6 +142,7 @@ public class SimLockPreferenceControllerTest {
@Test @Test
public void displayPreference_simReady_enablePreference() { public void displayPreference_simReady_enablePreference() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
assertThat(mPreference.isEnabled()).isFalse(); assertThat(mPreference.isEnabled()).isFalse();
@@ -140,12 +159,14 @@ public class SimLockPreferenceControllerTest {
@Test @Test
public void getPreferenceKey_whenGivenValue_returnsGivenValue() { public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
mController = new SimLockPreferenceController(mContext, "key"); mController = new SimLockPreferenceController(mContext, "key");
assertThat(mController.getPreferenceKey()).isEqualTo("key"); assertThat(mController.getPreferenceKey()).isEqualTo("key");
} }
private void setupMockIcc() { private void setupMockIcc() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>(); final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class); SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info); subscriptionInfoList.add(info);
@@ -156,6 +177,7 @@ public class SimLockPreferenceControllerTest {
} }
private void setupMockSimReady() { private void setupMockSimReady() {
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>(); final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class); SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info); subscriptionInfoList.add(info);