[Settings][Back port] configuration for hidding SIM related UI
Add overriable configuration for hidding SIM related UI. Bug: 240515161 Test: test cases and local testing Merged-In: I8d7ddd18861a696830da39f040dfb14b9ed46726 Change-Id: I709a8007362b09dbb1ec1bd5d32c68d23ed0cfa9
This commit is contained in:
@@ -639,4 +639,8 @@
|
|||||||
|
|
||||||
<!-- Whether to enable the app battery usage list page feature. -->
|
<!-- Whether to enable the app battery usage list page feature. -->
|
||||||
<bool name="config_app_battery_usage_list_enabled">false</bool>
|
<bool name="config_app_battery_usage_list_enabled">false</bool>
|
||||||
|
|
||||||
|
<!-- Whether sim related information is visible to the end user. -->
|
||||||
|
<bool name="config_show_sim_info">true</bool>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -57,6 +57,7 @@
|
|||||||
android:order="3"
|
android:order="3"
|
||||||
android:title="@string/status_number"
|
android:title="@string/status_number"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||||
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
|
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
|
||||||
settings:enableCopying="true"/>
|
settings:enableCopying="true"/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
@@ -98,6 +99,7 @@
|
|||||||
android:title="@string/sim_status_title"
|
android:title="@string/sim_status_title"
|
||||||
settings:keywords="@string/keywords_sim_status"
|
settings:keywords="@string/keywords_sim_status"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||||
settings:enableCopying="true"/>
|
settings:enableCopying="true"/>
|
||||||
|
|
||||||
<!-- Model & hardware -->
|
<!-- Model & hardware -->
|
||||||
@@ -119,6 +121,7 @@
|
|||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:keywords="@string/keywords_imei_info"
|
settings:keywords="@string/keywords_imei_info"
|
||||||
settings:enableCopying="true"
|
settings:enableCopying="true"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||||
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
|
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
|
||||||
|
|
||||||
<!-- Android version -->
|
<!-- Android version -->
|
||||||
|
@@ -29,6 +29,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settingslib.DeviceInfoUtils;
|
import com.android.settingslib.DeviceInfoUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -51,7 +52,8 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return mTelephonyManager.isVoiceCapable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
|
return SubscriptionUtil.isSimHardwareVisible(mContext) ?
|
||||||
|
AVAILABLE : UNSUPPORTED_ON_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -79,6 +81,9 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
|||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
|
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||||
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||||
mPreferenceList.add(preference);
|
mPreferenceList.add(preference);
|
||||||
|
@@ -33,6 +33,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.deviceinfo.PhoneNumberSummaryPreference;
|
import com.android.settings.deviceinfo.PhoneNumberSummaryPreference;
|
||||||
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -63,6 +64,9 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
|||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
|
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||||
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||||
|
|
||||||
@@ -119,7 +123,8 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return mContext.getSystemService(UserManager.class).isAdminUser()
|
return SubscriptionUtil.isSimHardwareVisible(mContext) &&
|
||||||
|
mContext.getSystemService(UserManager.class).isAdminUser()
|
||||||
&& !Utils.isWifiOnly(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
|
&& !Utils.isWifiOnly(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -29,6 +29,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settingslib.deviceinfo.AbstractSimStatusImeiInfoPreferenceController;
|
import com.android.settingslib.deviceinfo.AbstractSimStatusImeiInfoPreferenceController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -59,9 +60,18 @@ public class SimStatusPreferenceController extends
|
|||||||
return KEY_SIM_STATUS;
|
return KEY_SIM_STATUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAvailable() {
|
||||||
|
return SubscriptionUtil.isSimHardwareVisible(mContext) &&
|
||||||
|
super.isAvailable();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
|
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||||
if (!isAvailable() || preference == null || !preference.isVisible()) {
|
if (!isAvailable() || preference == null || !preference.isVisible()) {
|
||||||
return;
|
return;
|
||||||
|
@@ -86,6 +86,14 @@ public class SubscriptionUtil {
|
|||||||
return subscriptions;
|
return subscriptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if SIM hardware is visible to the end user.
|
||||||
|
*/
|
||||||
|
public static boolean isSimHardwareVisible(Context context) {
|
||||||
|
return context.getResources()
|
||||||
|
.getBoolean(R.bool.config_show_sim_info);
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static boolean isInactiveInsertedPSim(UiccSlotInfo slotInfo) {
|
static boolean isInactiveInsertedPSim(UiccSlotInfo slotInfo) {
|
||||||
if (slotInfo == null) {
|
if (slotInfo == null) {
|
||||||
|
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
|
|||||||
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.UserManager;
|
import android.os.UserManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
|
||||||
@@ -69,12 +70,18 @@ public class ImeiInfoPreferenceControllerTest {
|
|||||||
private PreferenceCategory mCategory;
|
private PreferenceCategory mCategory;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private ImeiInfoPreferenceController mController;
|
private ImeiInfoPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
|
|
||||||
|
mResources = spy(mContext.getResources());
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
|
||||||
|
|
||||||
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
|
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
|
||||||
mController = spy(new ImeiInfoPreferenceController(mContext, "imei_info"));
|
mController = spy(new ImeiInfoPreferenceController(mContext, "imei_info"));
|
||||||
mController.setHost(mFragment);
|
mController.setHost(mFragment);
|
||||||
|
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
@@ -64,12 +65,18 @@ public class SimStatusPreferenceControllerTest {
|
|||||||
private PreferenceCategory mCategory;
|
private PreferenceCategory mCategory;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private SimStatusPreferenceController mController;
|
private SimStatusPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
|
|
||||||
|
mResources = spy(mContext.getResources());
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
|
||||||
|
|
||||||
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
|
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
|
||||||
mController = spy(new SimStatusPreferenceController(mContext, mFragment));
|
mController = spy(new SimStatusPreferenceController(mContext, mFragment));
|
||||||
doReturn(true).when(mController).isAvailable();
|
doReturn(true).when(mController).isAvailable();
|
||||||
|
@@ -25,11 +25,14 @@ 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.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
@@ -58,6 +61,8 @@ public class SubscriptionUtilTest {
|
|||||||
private SubscriptionManager mSubMgr;
|
private SubscriptionManager mSubMgr;
|
||||||
@Mock
|
@Mock
|
||||||
private TelephonyManager mTelMgr;
|
private TelephonyManager mTelMgr;
|
||||||
|
@Mock
|
||||||
|
private Resources mResources;
|
||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -443,4 +448,22 @@ public class SubscriptionUtilTest {
|
|||||||
public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() {
|
public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() {
|
||||||
assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse();
|
assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSimHardwareVisible_configAsInvisible_returnFalse() {
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_sim_info))
|
||||||
|
.thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(SubscriptionUtil.isSimHardwareVisible(mContext)).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSimHardwareVisible_configAsVisible_returnTrue() {
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_sim_info))
|
||||||
|
.thenReturn(true);
|
||||||
|
|
||||||
|
assertTrue(SubscriptionUtil.isSimHardwareVisible(mContext));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user