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

View File

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

View File

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

View File

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

View File

@@ -100,7 +100,8 @@ public class NetworkProviderCallsSmsFragment extends DashboardFragment {
@Override @Override
protected boolean isPageSearchEnabled(Context context) { 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() { private void addNetworkMobileProviderController() {
if (!showAnySubscriptionInfo(getContext())) {
return;
}
if (mNetworkMobileProviderController == null) { if (mNetworkMobileProviderController == null) {
mNetworkMobileProviderController = new NetworkMobileProviderController( mNetworkMobileProviderController = new NetworkMobileProviderController(
getContext(), PREF_KEY_PROVIDER_MOBILE_NETWORK); getContext(), PREF_KEY_PROVIDER_MOBILE_NETWORK);

View File

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