Merge "[Settings] configuration for hidding SIM related UI"
This commit is contained in:
@@ -617,4 +617,8 @@
|
||||
|
||||
<!-- Whether to enable the app battery usage list page feature. -->
|
||||
<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>
|
||||
|
@@ -57,6 +57,7 @@
|
||||
android:order="3"
|
||||
android:title="@string/status_number"
|
||||
android:summary="@string/summary_placeholder"
|
||||
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
|
||||
settings:enableCopying="true"/>
|
||||
</PreferenceCategory>
|
||||
@@ -98,6 +99,7 @@
|
||||
android:title="@string/sim_status_title"
|
||||
settings:keywords="@string/keywords_sim_status"
|
||||
android:summary="@string/summary_placeholder"
|
||||
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||
settings:enableCopying="true"/>
|
||||
|
||||
<!-- Model & hardware -->
|
||||
@@ -119,6 +121,7 @@
|
||||
android:summary="@string/summary_placeholder"
|
||||
settings:keywords="@string/keywords_imei_info"
|
||||
settings:enableCopying="true"
|
||||
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
|
||||
|
||||
<!-- Android version -->
|
||||
|
@@ -29,6 +29,7 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settingslib.DeviceInfoUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -51,7 +52,8 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return mTelephonyManager.isVoiceCapable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
|
||||
return SubscriptionUtil.isSimHardwareVisible(mContext) ?
|
||||
AVAILABLE : UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -79,6 +81,9 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
||||
return;
|
||||
}
|
||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||
mPreferenceList.add(preference);
|
||||
|
@@ -33,6 +33,7 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.deviceinfo.PhoneNumberSummaryPreference;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settingslib.Utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -63,6 +64,9 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
||||
return;
|
||||
}
|
||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||
final PreferenceCategory category = screen.findPreference(KEY_PREFERENCE_CATEGORY);
|
||||
|
||||
@@ -120,7 +124,8 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
||||
|
||||
@Override
|
||||
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;
|
||||
}
|
||||
|
||||
|
@@ -29,6 +29,7 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settingslib.deviceinfo.AbstractSimStatusImeiInfoPreferenceController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -59,9 +60,18 @@ public class SimStatusPreferenceController extends
|
||||
return KEY_SIM_STATUS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return SubscriptionUtil.isSimHardwareVisible(mContext) &&
|
||||
super.isAvailable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
||||
return;
|
||||
}
|
||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||
if (!isAvailable() || preference == null || !preference.isVisible()) {
|
||||
return;
|
||||
|
@@ -86,6 +86,14 @@ public class SubscriptionUtil {
|
||||
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
|
||||
static boolean isInactiveInsertedPSim(UiccSlotInfo slotInfo) {
|
||||
if (slotInfo == null) {
|
||||
|
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.UserManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
@@ -70,12 +71,18 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
private PreferenceCategory mCategory;
|
||||
|
||||
private Context mContext;
|
||||
private Resources mResources;
|
||||
private ImeiInfoPreferenceController mController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
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);
|
||||
mController = spy(new ImeiInfoPreferenceController(mContext, "imei_info"));
|
||||
mController.setHost(mFragment);
|
||||
|
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserManager;
|
||||
import android.content.res.Resources;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
@@ -64,12 +65,18 @@ public class SimStatusPreferenceControllerTest {
|
||||
private PreferenceCategory mCategory;
|
||||
|
||||
private Context mContext;
|
||||
private Resources mResources;
|
||||
private SimStatusPreferenceController mController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
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);
|
||||
mController = spy(new SimStatusPreferenceController(mContext, mFragment));
|
||||
doReturn(true).when(mController).isAvailable();
|
||||
|
@@ -25,11 +25,14 @@ import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
@@ -58,6 +61,8 @@ public class SubscriptionUtilTest {
|
||||
private SubscriptionManager mSubMgr;
|
||||
@Mock
|
||||
private TelephonyManager mTelMgr;
|
||||
@Mock
|
||||
private Resources mResources;
|
||||
|
||||
|
||||
@Before
|
||||
@@ -443,4 +448,22 @@ public class SubscriptionUtilTest {
|
||||
public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() {
|
||||
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