[Settings] configuration for hidding SIM provider UI

Hide SIM provider UI based on configuraion.

Bug: 240515161
Test: test cases and local testing
Change-Id: I1cb83787dc1ac1d61bb6bed6aa9c5e7a3ad6e69b
This commit is contained in:
Bonian Chen
2022-10-18 03:33:50 +00:00
parent d16201a375
commit 2f07595eb0
7 changed files with 25 additions and 4 deletions

View File

@@ -37,6 +37,7 @@
android:icon="@drawable/ic_calls_sms"
android:order="-20"
android:summary="@string/summary_placeholder"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:allowDividerBelow="true"
settings:keywords="@string/calls_and_sms"
settings:useAdminDisabledSummary="true" />
@@ -49,6 +50,7 @@
android:order="-15"
settings:keywords="@string/keywords_more_mobile_networks"
settings:userRestriction="no_config_mobile_networks"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:allowDividerAbove="true"
settings:useAdminDisabledSummary="true" />
@@ -66,6 +68,7 @@
android:persistent="false"
android:order="19"
settings:userRestriction="no_config_mobile_networks"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:useAdminDisabledSummary="true" />
<com.android.settingslib.RestrictedPreference

View File

@@ -46,6 +46,7 @@
android:key="provider_model_mobile_network"
android:title="@string/summary_placeholder"
android:layout="@layout/preference_category_no_label"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.network.NetworkMobileProviderController"/>
<com.android.settingslib.RestrictedSwitchPreference

View File

@@ -209,7 +209,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
@Override
public boolean isAvailable() {
return !Utils.isWifiOnly(mContext) && mUserManager.isAdminUser();
return SubscriptionUtil.isSimHardwareVisible(mContext) &&
!Utils.isWifiOnly(mContext) && mUserManager.isAdminUser();
}
@Override

View File

@@ -190,7 +190,8 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
@Override
public boolean isAvailable() {
return mUserManager.isAdminUser();
return SubscriptionUtil.isSimHardwareVisible(mContext) &&
mUserManager.isAdminUser();
}
@Override

View File

@@ -100,7 +100,8 @@ public class NetworkProviderCallsSmsFragment extends DashboardFragment {
@Override
protected boolean isPageSearchEnabled(Context context) {
return context.getSystemService(UserManager.class).isAdminUser();
return SubscriptionUtil.isSimHardwareVisible(context) &&
context.getSystemService(UserManager.class).isAdminUser();
}
};
}

View File

@@ -341,7 +341,18 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
}
}
/**
* Whether to show any UI which is SIM related.
*/
@VisibleForTesting
boolean showAnySubscriptionInfo(Context context) {
return (context != null) && SubscriptionUtil.isSimHardwareVisible(context);
}
private void addNetworkMobileProviderController() {
if (!showAnySubscriptionInfo(getContext())) {
return;
}
if (mNetworkMobileProviderController == null) {
mNetworkMobileProviderController = new NetworkMobileProviderController(
getContext(), PREF_KEY_PROVIDER_MOBILE_NETWORK);

View File

@@ -145,7 +145,10 @@ public class NetworkProviderSettingsTest {
@Before
public void setUp() {
mNetworkProviderSettings = spy(new NetworkProviderSettings());
mNetworkProviderSettings = spy(new NetworkProviderSettings() {
@Override
boolean showAnySubscriptionInfo(Context context) { return true; }
});
doReturn(mContext).when(mNetworkProviderSettings).getContext();
doReturn(mPreferenceManager).when(mNetworkProviderSettings).getPreferenceManager();
doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);