Merge "[Settings][Back port] configuration for hidding SIM related UI" into tm-qpr-dev-plus-aosp
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1e45bf3..8334466 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1744,6 +1744,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.security.SecurityAdvancedSettings" />
+ <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+ android:value="@string/menu_key_security"/>
</activity>
<activity android:name="MonitoringCertInfoActivity"
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index a8bd35c..f8b7f00 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1216,6 +1216,20 @@
<item>90</item>
</string-array>
+ <!-- Options for screensaver "When to start" for devices that do not support screensavers
+ while on battery -->
+ <string-array name="when_to_start_screensaver_entries_no_battery" translatable="false">
+ <item>@string/screensaver_settings_summary_sleep</item>
+ <item>@string/screensaver_settings_summary_dock_and_charging</item>
+ </string-array>
+
+ <!-- Values for screensaver "When to start" for devices that do not support screensavers
+ while on battery -->
+ <string-array name="when_to_start_screensaver_values_no_battery" translatable="false">
+ <item>while_charging_only</item>
+ <item>while_docked_only</item>
+ </string-array>
+
<string-array name="when_to_start_screensaver_entries" translatable="false">
<item>@string/screensaver_settings_summary_sleep</item>
<item>@string/screensaver_settings_summary_dock</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a6cea86..a847571 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3371,6 +3371,8 @@
<string name="screensaver_settings_toggle_title">Use screen saver</string>
<!-- Display settings screen, summary fragment for screen saver options, activated when docked or asleep and charging [CHAR LIMIT=35] -->
<string name="screensaver_settings_summary_either_long">While charging or docked</string>
+ <!-- Display settings screen, summary fragment for screen saver options, actived while docked and charging [CHAR LIMIT=35] -->
+ <string name="screensaver_settings_summary_dock_and_charging">While docked and charging</string>
<!-- Display settings screen, summary fragment for screen saver options, activated when asleep and charging [CHAR LIMIT=35] -->
<string name="screensaver_settings_summary_sleep">While charging</string>
<!-- Display settings screen, summary fragment for screen saver options, activated when docked [CHAR LIMIT=35] -->
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index 07e797a..c9c576e 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -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
diff --git a/res/xml/network_provider_settings.xml b/res/xml/network_provider_settings.xml
index 92eca76..1921ece 100644
--- a/res/xml/network_provider_settings.xml
+++ b/res/xml/network_provider_settings.xml
@@ -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
diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index 9497c8f..25161a5 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -37,6 +37,7 @@
<Preference
android:key="erase_euicc_data"
android:title="@string/reset_esim_title"
+ settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.network.EraseEuiccDataController" />
<!-- Factory reset -->
diff --git a/res/xml/security_advanced_settings.xml b/res/xml/security_advanced_settings.xml
index 6d43fe7..b36fc73 100644
--- a/res/xml/security_advanced_settings.xml
+++ b/res/xml/security_advanced_settings.xml
@@ -64,6 +64,7 @@
android:order="50"
android:key="sim_lock_settings"
android:title="@string/sim_lock_settings_category"
+ settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.security.SimLockPreferenceController">
<intent
@@ -103,6 +104,7 @@
android:key="confirm_sim_deletion"
android:title="@string/confirm_sim_deletion_title"
android:summary="@string/confirm_sim_deletion_description"
+ settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" />
<!-- work profile security section -->
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 71eb0f2..8e54e31 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -174,8 +174,9 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (Utils.isMonkeyRunning()) {
- finish();
+ if (Utils.isMonkeyRunning() ||
+ !SubscriptionUtil.isSimHardwareVisible(getContext())) {
+ finishFragment();
return;
}
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 2b0f010..1434d72 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -64,6 +64,7 @@
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
+import com.android.settings.network.SubscriptionUtil;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.ConfirmLockPattern;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -382,6 +383,14 @@
}
/**
+ * Whether to show any UI which is SIM related.
+ */
+ @VisibleForTesting
+ boolean showAnySubscriptionInfo(Context context) {
+ return (context != null) && SubscriptionUtil.isSimHardwareVisible(context);
+ }
+
+ /**
* Whether to show strings indicating that the eUICC will be wiped.
*
* <p>We show the strings on any device which supports eUICC as long as the eUICC was ever
@@ -390,7 +399,7 @@
@VisibleForTesting
boolean showWipeEuicc() {
Context context = getContext();
- if (!isEuiccEnabled(context)) {
+ if (!showAnySubscriptionInfo(context) || !isEuiccEnabled(context)) {
return false;
}
ContentResolver cr = context.getContentResolver();
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 7e58c0b..1529a23 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -239,6 +239,9 @@
}
private List<SubscriptionInfo> getActiveSubscriptionInfoList() {
+ if (!SubscriptionUtil.isSimHardwareVisible(getActivity())) {
+ return Collections.emptyList();
+ }
SubscriptionManager mgr = getActivity().getSystemService(SubscriptionManager.class);
if (mgr == null) {
Log.w(TAG, "No SubscriptionManager");
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index f4c9eb2..ffe4593 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -20,6 +20,7 @@
import static android.net.ConnectivityManager.TETHERING_USB;
import static android.net.TetheringManager.TETHERING_ETHERNET;
+import static com.android.settings.wifi.WifiUtils.canShowWifiHotspot;
import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfUsbDataSignalingIsDisabled;
import android.app.Activity;
@@ -628,6 +629,9 @@
if (!TetherUtil.isTetherAvailable(context)) {
keys.add(KEY_TETHER_PREFS_SCREEN);
+ }
+
+ if (!canShowWifiHotspot(context) || !TetherUtil.isTetherAvailable(context)) {
keys.add(KEY_WIFI_TETHER);
}
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index 999e34d..fa15b5c 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -153,8 +153,11 @@
controlUri = null;
}
}
- use(SlicePreferenceController.class).setSliceUri(sliceEnabled ? controlUri : null);
- use(SlicePreferenceController.class).onStart();
+ final SlicePreferenceController slicePreferenceController = use(
+ SlicePreferenceController.class);
+ slicePreferenceController.setSliceUri(sliceEnabled ? controlUri : null);
+ slicePreferenceController.onStart();
+ slicePreferenceController.displayPreference(getPreferenceScreen());
}
private final ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener =
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index d92fb7f..70fbefc 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -60,6 +60,7 @@
import com.android.settings.development.bluetooth.BluetoothSampleRateDialogPreferenceController;
import com.android.settings.development.qstile.DevelopmentTiles;
import com.android.settings.development.storage.SharedDataPreferenceController;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.actionbar.SearchMenuController;
import com.android.settings.widget.SettingsMainSwitchBar;
@@ -308,6 +309,8 @@
DisableDevSettingsDialogFragment.show(this /* host */);
}
}
+ FeatureFactory.getFactory(
+ getContext()).getSearchFeatureProvider().sendPreIndexIntent(getContext());
}
}
@@ -369,12 +372,12 @@
final BluetoothLeAudioHwOffloadPreferenceController leAudioController =
getDevelopmentOptionsController(
- BluetoothLeAudioHwOffloadPreferenceController.class);
+ BluetoothLeAudioHwOffloadPreferenceController.class);
leAudioController.onRebootDialogConfirmed();
final BluetoothLeAudioPreferenceController leAudioFeatureController =
getDevelopmentOptionsController(
- BluetoothLeAudioPreferenceController.class);
+ BluetoothLeAudioPreferenceController.class);
leAudioFeatureController.onRebootDialogConfirmed();
}
@@ -386,12 +389,12 @@
final BluetoothLeAudioHwOffloadPreferenceController leAudioController =
getDevelopmentOptionsController(
- BluetoothLeAudioHwOffloadPreferenceController.class);
+ BluetoothLeAudioHwOffloadPreferenceController.class);
leAudioController.onRebootDialogCanceled();
final BluetoothLeAudioPreferenceController leAudioFeatureController =
getDevelopmentOptionsController(
- BluetoothLeAudioPreferenceController.class);
+ BluetoothLeAudioPreferenceController.class);
leAudioFeatureController.onRebootDialogCanceled();
}
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 7ddca79..6af58b5 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -240,6 +240,8 @@
mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on,
Toast.LENGTH_LONG);
mDevHitToast.show();
+
+ FeatureFactory.getFactory(mContext).getSearchFeatureProvider().sendPreIndexIntent(mContext);
}
@VisibleForTesting
diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java
index 1d12c1a..580211a 100644
--- a/src/com/android/settings/dream/DreamSettings.java
+++ b/src/com/android/settings/dream/DreamSettings.java
@@ -90,12 +90,14 @@
}
}
- static int getDreamSettingDescriptionResId(@WhenToDream int dreamSetting) {
+ static int getDreamSettingDescriptionResId(@WhenToDream int dreamSetting,
+ boolean enabledOnBattery) {
switch (dreamSetting) {
case WHILE_CHARGING:
return R.string.screensaver_settings_summary_sleep;
case WHILE_DOCKED:
- return R.string.screensaver_settings_summary_dock;
+ return enabledOnBattery ? R.string.screensaver_settings_summary_dock
+ : R.string.screensaver_settings_summary_dock_and_charging;
case EITHER:
return R.string.screensaver_settings_summary_either_long;
case NEVER:
diff --git a/src/com/android/settings/dream/WhenToDreamPicker.java b/src/com/android/settings/dream/WhenToDreamPicker.java
index 1c5e25e..13cdadf 100644
--- a/src/com/android/settings/dream/WhenToDreamPicker.java
+++ b/src/com/android/settings/dream/WhenToDreamPicker.java
@@ -32,12 +32,15 @@
private static final String TAG = "WhenToDreamPicker";
private DreamBackend mBackend;
+ private boolean mDreamsSupportedOnBattery;
@Override
public void onAttach(Context context) {
super.onAttach(context);
mBackend = DreamBackend.getInstance(context);
+ mDreamsSupportedOnBattery = getResources().getBoolean(
+ com.android.internal.R.bool.config_dreamsEnabledOnBattery);
}
@Override
@@ -69,11 +72,17 @@
}
private String[] entries() {
- return getResources().getStringArray(R.array.when_to_start_screensaver_entries);
+ if (mDreamsSupportedOnBattery) {
+ return getResources().getStringArray(R.array.when_to_start_screensaver_entries);
+ }
+ return getResources().getStringArray(R.array.when_to_start_screensaver_entries_no_battery);
}
private String[] keys() {
- return getResources().getStringArray(R.array.when_to_start_screensaver_values);
+ if (mDreamsSupportedOnBattery) {
+ return getResources().getStringArray(R.array.when_to_start_screensaver_values);
+ }
+ return getResources().getStringArray(R.array.when_to_start_screensaver_values_no_battery);
}
@Override
diff --git a/src/com/android/settings/dream/WhenToDreamPreferenceController.java b/src/com/android/settings/dream/WhenToDreamPreferenceController.java
index 02ae6a7..c3bae00 100644
--- a/src/com/android/settings/dream/WhenToDreamPreferenceController.java
+++ b/src/com/android/settings/dream/WhenToDreamPreferenceController.java
@@ -33,19 +33,24 @@
private static final String WHEN_TO_START = "when_to_start";
private final DreamBackend mBackend;
private final boolean mDreamsDisabledByAmbientModeSuppression;
+ private final boolean mDreamsEnabledOnBattery;
WhenToDreamPreferenceController(Context context) {
this(context, context.getResources().getBoolean(
- com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig));
+ com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig),
+ context.getResources().getBoolean(
+ com.android.internal.R.bool.config_dreamsEnabledOnBattery));
}
@VisibleForTesting
WhenToDreamPreferenceController(Context context,
- boolean dreamsDisabledByAmbientModeSuppression) {
+ boolean dreamsDisabledByAmbientModeSuppression,
+ boolean dreamsEnabledOnBattery) {
super(context);
mBackend = DreamBackend.getInstance(context);
mDreamsDisabledByAmbientModeSuppression = dreamsDisabledByAmbientModeSuppression;
+ mDreamsEnabledOnBattery = dreamsEnabledOnBattery;
}
@Override
@@ -57,7 +62,7 @@
preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
} else {
final int resId = DreamSettings.getDreamSettingDescriptionResId(
- mBackend.getWhenToDreamSetting());
+ mBackend.getWhenToDreamSetting(), mDreamsEnabledOnBattery);
preference.setSummary(resId);
}
}
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 8e14c5a..5c89fb3 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -65,6 +65,7 @@
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settingslib.Utils;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -479,12 +480,28 @@
final String menuKey = intent.getStringExtra(
EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY);
if (!TextUtils.isEmpty(menuKey)) {
- return menuKey;
+ return maybeRemapMenuKey(menuKey);
}
}
return getString(DEFAULT_HIGHLIGHT_MENU_KEY);
}
+ private String maybeRemapMenuKey(String menuKey) {
+ boolean isPrivacyOrSecurityMenuKey =
+ getString(R.string.menu_key_privacy).equals(menuKey)
+ || getString(R.string.menu_key_security).equals(menuKey);
+ boolean isSafetyCenterMenuKey = getString(R.string.menu_key_safety_center).equals(menuKey);
+
+ if (isPrivacyOrSecurityMenuKey && SafetyCenterManagerWrapper.get().isEnabled(this)) {
+ return getString(R.string.menu_key_safety_center);
+ }
+ if (isSafetyCenterMenuKey && !SafetyCenterManagerWrapper.get().isEnabled(this)) {
+ // We don't know if security or privacy, default to security as it is above.
+ return getString(R.string.menu_key_security);
+ }
+ return menuKey;
+ }
+
private void reloadHighlightMenuKey() {
mMainFragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY,
getHighlightMenuKey());
diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java
index 70530fc..8c122ef 100644
--- a/src/com/android/settings/homepage/TopLevelSettings.java
+++ b/src/com/android/settings/homepage/TopLevelSettings.java
@@ -43,6 +43,7 @@
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.support.SupportPreferenceController;
import com.android.settings.widget.HomepagePreference;
@@ -157,6 +158,8 @@
public void onStart() {
if (mFirstStarted) {
mFirstStarted = false;
+ FeatureFactory.getFactory(getContext()).getSearchFeatureProvider().sendPreIndexIntent(
+ getContext());
} else if (mIsEmbeddingActivityEnabled && isOnlyOneActivityInTask()
&& !SplitController.getInstance().isActivityEmbedded(getActivity())) {
// Set default highlight menu key for 1-pane homepage since it will show the placeholder
@@ -346,7 +349,9 @@
}
private interface PreferenceJob {
- default void init() {}
+ default void init() {
+ }
+
void doForEach(Preference preference);
}
diff --git a/src/com/android/settings/network/EraseEuiccDataController.java b/src/com/android/settings/network/EraseEuiccDataController.java
index b1f964b..091b6d7 100644
--- a/src/com/android/settings/network/EraseEuiccDataController.java
+++ b/src/com/android/settings/network/EraseEuiccDataController.java
@@ -51,7 +51,8 @@
@Override
public int getAvailabilityStatus() {
- return mContext.getPackageManager().hasSystemFeature(
+ return SubscriptionUtil.isSimHardwareVisible(mContext) &&
+ mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TELEPHONY_EUICC) ? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
diff --git a/src/com/android/settings/network/MobileNetworkListFragment.java b/src/com/android/settings/network/MobileNetworkListFragment.java
index 7881690..ea7031a 100644
--- a/src/com/android/settings/network/MobileNetworkListFragment.java
+++ b/src/com/android/settings/network/MobileNetworkListFragment.java
@@ -60,6 +60,10 @@
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
+ if (!SubscriptionUtil.isSimHardwareVisible(getContext())) {
+ finish();
+ return controllers;
+ }
NetworkProviderSimsCategoryController simCategoryPrefCtrl =
new NetworkProviderSimsCategoryController(context, KEY_PREFERENCE_CATEGORY_SIM,
@@ -88,7 +92,8 @@
@Override
protected boolean isPageSearchEnabled(Context context) {
- return context.getSystemService(UserManager.class).isAdminUser();
+ return SubscriptionUtil.isSimHardwareVisible(context) &&
+ context.getSystemService(UserManager.class).isAdminUser();
}
};
}
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index 1a85a7f..61dd079 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -206,7 +206,8 @@
@Override
public boolean isAvailable() {
- return !Utils.isWifiOnly(mContext) && mUserManager.isAdminUser();
+ return SubscriptionUtil.isSimHardwareVisible(mContext) &&
+ !Utils.isWifiOnly(mContext) && mUserManager.isAdminUser();
}
@Override
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.java b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
index c8b1c49..585c99e 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsController.java
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
@@ -190,7 +190,8 @@
@Override
public boolean isAvailable() {
- return mUserManager.isAdminUser();
+ return SubscriptionUtil.isSimHardwareVisible(mContext) &&
+ mUserManager.isAdminUser();
}
@Override
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java b/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
index aad9b10..b2cf74e 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
@@ -100,7 +100,8 @@
@Override
protected boolean isPageSearchEnabled(Context context) {
- return context.getSystemService(UserManager.class).isAdminUser();
+ return SubscriptionUtil.isSimHardwareVisible(context) &&
+ context.getSystemService(UserManager.class).isAdminUser();
}
};
}
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index c5295e6..19ebd36 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -342,7 +342,18 @@
}
}
+ /**
+ * 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);
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 94b6aaf..05e58e9 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -120,6 +120,10 @@
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+ if (!SubscriptionUtil.isSimHardwareVisible(context)) {
+ finish();
+ return Arrays.asList();
+ }
if (getArguments() == null) {
Intent intent = getIntent();
if (intent != null) {
@@ -398,7 +402,8 @@
/** suppress full page if user is not admin */
@Override
protected boolean isPageSearchEnabled(Context context) {
- return context.getSystemService(UserManager.class).isAdminUser();
+ return SubscriptionUtil.isSimHardwareVisible(context) &&
+ context.getSystemService(UserManager.class).isAdminUser();
}
};
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index e769a4e..8305c4a 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -263,6 +263,9 @@
* the user has enabled development mode.
*/
public static boolean showEuiccSettings(Context context) {
+ if (!SubscriptionUtil.isSimHardwareVisible(context)) {
+ return false;
+ }
long timeForAccess = SystemClock.elapsedRealtime();
try {
Boolean isShow = ((Future<Boolean>) ThreadUtils.postOnBackgroundThread(() -> {
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index 1785361..b14a4d7 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -72,6 +72,12 @@
}
/**
+ * Send the pre-index intent.
+ */
+ default void sendPreIndexIntent(Context context){
+ }
+
+ /**
* Initializes the search toolbar.
*/
default void initSearchToolbar(FragmentActivity activity, Toolbar toolbar, int pageId) {
diff --git a/src/com/android/settings/security/SimLockPreferenceController.java b/src/com/android/settings/security/SimLockPreferenceController.java
index 7cd0173..8429a9f 100644
--- a/src/com/android/settings/security/SimLockPreferenceController.java
+++ b/src/com/android/settings/security/SimLockPreferenceController.java
@@ -28,6 +28,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.SubscriptionUtil;
import java.util.List;
@@ -50,6 +51,10 @@
@Override
public int getAvailabilityStatus() {
+ if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
+ return UNSUPPORTED_ON_DEVICE;
+ }
+
final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList();
diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java
index 9c4f8f1..464ba9b 100644
--- a/src/com/android/settings/sim/SimDialogActivity.java
+++ b/src/com/android/settings/sim/SimDialogActivity.java
@@ -35,6 +35,7 @@
import androidx.fragment.app.FragmentManager;
import com.android.settings.R;
+import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.SubscriptionActionDialogActivity;
import java.util.List;
@@ -65,6 +66,11 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (!SubscriptionUtil.isSimHardwareVisible(this)) {
+ Log.d(TAG, "Not support on device without SIM.");
+ finish();
+ return;
+ }
SimDialogProhibitService.supportDismiss(this);
getWindow().addSystemFlags(
diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java
index 9d3f860..9b235ce 100644
--- a/src/com/android/settings/sim/SimSelectNotification.java
+++ b/src/com/android/settings/sim/SimSelectNotification.java
@@ -77,6 +77,10 @@
@Override
public void onReceive(Context context, Intent intent) {
+ if (!SubscriptionUtil.isSimHardwareVisible(context)) {
+ Log.w(TAG, "Received unexpected intent with null action.");
+ return;
+ }
String action = intent.getAction();
if (action == null) {
diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
index 217801e..070e65a 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
@@ -38,6 +38,7 @@
import com.android.settings.R;
import com.android.settings.core.SettingsBaseActivity;
+import com.android.settings.network.SubscriptionUtil;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
@@ -48,6 +49,7 @@
import java.util.concurrent.Executors;
public class SmartForwardingActivity extends SettingsBaseActivity {
+ static final String LOG_TAG = SmartForwardingActivity.class.toString();
final ListeningExecutorService service =
MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor());
@@ -55,6 +57,12 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (!SubscriptionUtil.isSimHardwareVisible(this)) {
+ Log.d(LOG_TAG, "Not support on device without SIM.");
+ finish();
+ return;
+ }
+
final Toolbar toolbar = findViewById(R.id.action_bar);
toolbar.setVisibility(View.VISIBLE);
setActionBar(toolbar);
@@ -166,4 +174,4 @@
.create();
mDialog.show();
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index bee265e..47dba76 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -41,6 +41,7 @@
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SettingsMainSwitchBar;
+import com.android.settings.wifi.WifiUtils;
import com.android.settingslib.TetherUtil;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
@@ -296,12 +297,12 @@
@Override
protected boolean isPageSearchEnabled(Context context) {
+ if (context == null || !WifiUtils.canShowWifiHotspot(context)) return false;
return !FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
}
@Override
- public List<AbstractPreferenceController> createPreferenceControllers(
- Context context) {
+ public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null /* listener */);
}
}
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index ec33fad..9795092 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -102,7 +102,10 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mMainClear = spy(new MainClear());
+ mMainClear = spy(new MainClear() {
+ @Override
+ boolean showAnySubscriptionInfo(Context context) { return true; }
+ });
mActivity = Robolectric.setupActivity(FragmentActivity.class);
mShadowActivity = Shadows.shadowOf(mActivity);
UserManager userManager = mActivity.getSystemService(UserManager.class);
diff --git a/tests/robotests/src/com/android/settings/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/TetherSettingsTest.java
index 71cb9d2..79814b3 100644
--- a/tests/robotests/src/com/android/settings/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/TetherSettingsTest.java
@@ -20,6 +20,8 @@
import static android.content.Intent.ACTION_MEDIA_UNSHARED;
import static android.hardware.usb.UsbManager.ACTION_USB_STATE;
+import static com.android.settings.wifi.WifiUtils.setCanShowWifiHotspotCached;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -93,6 +95,7 @@
any(String.class), anyInt(), any(UserHandle.class));
setupIsTetherAvailable(true);
+ setCanShowWifiHotspotCached(true);
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
@@ -124,6 +127,16 @@
}
@Test
+ public void getNonIndexableKeys_canNotShowWifiHotspot_containsWifiTether() {
+ setCanShowWifiHotspotCached(false);
+ setupIsTetherAvailable(true);
+
+ List<String> keys = TetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+
+ assertThat(keys).contains(TetherSettings.KEY_WIFI_TETHER);
+ }
+
+ @Test
public void testTetherNonIndexableKeys_usbNotAvailable_usbKeyReturned() {
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
diff --git a/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java b/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java
index a554564..c1cc6ae 100644
--- a/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java
@@ -29,33 +29,40 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
import java.util.Arrays;
import java.util.List;
-import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class DreamSettingsTest {
private static final List<String> KEYS = Arrays.asList(
- DreamSettings.WHILE_CHARGING_ONLY,
- DreamSettings.WHILE_DOCKED_ONLY,
- DreamSettings.EITHER_CHARGING_OR_DOCKED,
- DreamSettings.NEVER_DREAM
+ DreamSettings.WHILE_CHARGING_ONLY,
+ DreamSettings.WHILE_DOCKED_ONLY,
+ DreamSettings.EITHER_CHARGING_OR_DOCKED,
+ DreamSettings.NEVER_DREAM
);
private static final @WhenToDream int[] SETTINGS = {
- DreamBackend.WHILE_CHARGING,
- DreamBackend.WHILE_DOCKED,
- DreamBackend.EITHER,
- DreamBackend.NEVER,
+ DreamBackend.WHILE_CHARGING,
+ DreamBackend.WHILE_DOCKED,
+ DreamBackend.EITHER,
+ DreamBackend.NEVER,
};
private static final int[] RES_IDS = {
- R.string.screensaver_settings_summary_sleep,
- R.string.screensaver_settings_summary_dock,
- R.string.screensaver_settings_summary_either_long,
- R.string.screensaver_settings_summary_never
+ R.string.screensaver_settings_summary_sleep,
+ R.string.screensaver_settings_summary_dock,
+ R.string.screensaver_settings_summary_either_long,
+ R.string.screensaver_settings_summary_never
+ };
+
+ private static final int[] RES_IDS_NO_BATTERY = {
+ R.string.screensaver_settings_summary_sleep,
+ R.string.screensaver_settings_summary_dock_and_charging,
+ R.string.screensaver_settings_summary_either_long,
+ R.string.screensaver_settings_summary_never
};
@Test
@@ -81,11 +88,17 @@
@Test
public void getDreamSettingDescriptionResId() {
for (int i = 0; i < SETTINGS.length; i++) {
- assertThat(DreamSettings.getDreamSettingDescriptionResId(SETTINGS[i]))
+ assertThat(DreamSettings.getDreamSettingDescriptionResId(
+ SETTINGS[i], /* enabledOnBattery= */ false))
+ .isEqualTo(RES_IDS_NO_BATTERY[i]);
+ assertThat(DreamSettings.getDreamSettingDescriptionResId(
+ SETTINGS[i], /* enabledOnBattery= */ true))
.isEqualTo(RES_IDS[i]);
}
// Default
- assertThat(DreamSettings.getDreamSettingDescriptionResId(-1))
+ assertThat(DreamSettings.getDreamSettingDescriptionResId(-1, /* enabledOnBattery= */ false))
+ .isEqualTo(R.string.screensaver_settings_summary_never);
+ assertThat(DreamSettings.getDreamSettingDescriptionResId(-1, /* enabledOnBattery= */ true))
.isEqualTo(R.string.screensaver_settings_summary_never);
}
diff --git a/tests/robotests/src/com/android/settings/dream/WhenToDreamPickerTest.java b/tests/robotests/src/com/android/settings/dream/WhenToDreamPickerTest.java
index 16f8599..91ec299 100644
--- a/tests/robotests/src/com/android/settings/dream/WhenToDreamPickerTest.java
+++ b/tests/robotests/src/com/android/settings/dream/WhenToDreamPickerTest.java
@@ -28,6 +28,7 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settingslib.dream.DreamBackend;
import org.junit.Before;
@@ -37,9 +38,11 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = SettingsShadowResources.class)
public class WhenToDreamPickerTest {
private WhenToDreamPicker mPicker;
@@ -53,10 +56,15 @@
MockitoAnnotations.initMocks(this);
final Context context = spy(ApplicationProvider.getApplicationContext());
+ SettingsShadowResources.overrideResource(
+ com.android.internal.R.bool.config_dreamsEnabledOnBattery,
+ true);
+
when(context.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
FakeFeatureFactory.setupForTest();
- mPicker = new WhenToDreamPicker();
+ mPicker = spy(new WhenToDreamPicker());
+ when(mPicker.getContext()).thenReturn(context);
mPicker.onAttach(context);
ReflectionHelpers.setField(mPicker, "mBackend", mBackend);
diff --git a/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java
index 458c5c6..6e687bb 100644
--- a/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java
@@ -64,7 +64,7 @@
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext());
- mController = new WhenToDreamPreferenceController(mContext, true);
+ mController = new WhenToDreamPreferenceController(mContext, true, true);
ReflectionHelpers.setField(mController, "mBackend", mBackend);
when(mContext.getSystemService(PowerManager.class)).thenReturn(mPowerManager);
when(mPowerManager.isAmbientDisplaySuppressedForTokenByApp(anyString(), anyInt()))
@@ -88,7 +88,7 @@
final Preference mockPref = mock(Preference.class);
when(mockPref.getContext()).thenReturn(mContext);
when(mBackend.getWhenToDreamSetting()).thenReturn(testSetting);
- final int expectedResId = DreamSettings.getDreamSettingDescriptionResId(testSetting);
+ final int expectedResId = DreamSettings.getDreamSettingDescriptionResId(testSetting, true);
mController.updateState(mockPref);
verify(mockPref).setSummary(expectedResId);
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java
index fd2b520..2e04ea7 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java
@@ -21,8 +21,10 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.res.Resources;
import android.os.UserManager;
+import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
import org.junit.Before;
@@ -38,6 +40,8 @@
@Mock
private Context mContext;
@Mock
+ private Resources mResources;
+ @Mock
private UserManager mUserManager;
private MobileNetworkListFragment mFragment;
@@ -55,6 +59,9 @@
final BaseSearchIndexProvider provider =
(BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
+
final Object obj = ReflectionHelpers.callInstanceMethod(provider, "isPageSearchEnabled",
ReflectionHelpers.ClassParameter.from(Context.class, mContext));
final boolean isEnabled = (Boolean) obj;
@@ -69,6 +76,9 @@
final BaseSearchIndexProvider provider =
(BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
+
final Object obj = ReflectionHelpers.callInstanceMethod(provider, "isPageSearchEnabled",
ReflectionHelpers.ClassParameter.from(Context.class, mContext));
final boolean isEnabled = (Boolean) obj;
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index 3589184..b347ac0 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -147,7 +147,10 @@
@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);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 44611ce..3e219a4 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -29,6 +29,7 @@
import android.app.Activity;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
+import android.content.res.Resources;
import android.net.NetworkPolicyManager;
import android.os.Bundle;
import android.os.UserManager;
@@ -37,6 +38,7 @@
import androidx.fragment.app.FragmentActivity;
+import com.android.settings.R;
import com.android.settings.datausage.DataUsageSummaryPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
@@ -68,12 +70,18 @@
private FragmentActivity mActivity;
private Context mContext;
+ private Resources mResources;
private MobileNetworkSettings mFragment;
@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);
+
when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
diff --git a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
index ef5973c..f38cc49 100644
--- a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
@@ -22,9 +22,11 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.res.Resources;
import android.os.PersistableBundle;
import android.os.UserManager;
import android.telephony.CarrierConfigManager;
@@ -35,6 +37,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
+import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
@@ -66,6 +69,7 @@
private SimLockPreferenceController mController;
private Preference mPreference;
private Context mContext;
+ private Resources mResources;
@Before
public void setUp() {
@@ -76,7 +80,11 @@
shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager);
shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
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");
mPreference = new Preference(mContext);
mPreference.setKey(mController.getPreferenceKey());
@@ -84,7 +92,16 @@
}
@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
public void isAvailable_notAdmin_false() {
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(false);
assertThat(mController.getAvailabilityStatus())
@@ -93,6 +110,7 @@
@Test
public void isAvailable_simIccNotReady_false() {
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(true);
assertThat(mController.getAvailabilityStatus())
@@ -124,6 +142,7 @@
@Test
public void displayPreference_simReady_enablePreference() {
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
mController.displayPreference(mScreen);
assertThat(mPreference.isEnabled()).isFalse();
@@ -140,12 +159,14 @@
@Test
public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
mController = new SimLockPreferenceController(mContext, "key");
assertThat(mController.getPreferenceKey()).isEqualTo("key");
}
private void setupMockIcc() {
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info);
@@ -156,6 +177,7 @@
}
private void setupMockSimReady() {
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info);
diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
index b33e94b..e1b2b4e 100644
--- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
+++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
@@ -143,6 +143,7 @@
when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName);
when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
when(mResources.getText(R.string.enable_sending_mms_notification_title))
.thenReturn(mFakeNotificationTitle);
when(mResources.getText(R.string.enable_mms_notification_channel_title))
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index 6d3b879..7f8a06d 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -37,6 +37,7 @@
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.UserManager;
+import android.util.FeatureFlagUtils;
import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
@@ -44,6 +45,7 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
+import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
@@ -93,6 +95,7 @@
@Before
public void setUp() {
+ FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
setCanShowWifiHotspotCached(true);
doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
doReturn(mConnectivityManager)
@@ -218,6 +221,22 @@
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
}
+ @Test
+ public void isPageSearchEnabled_canShowWifiHotspot_returnTrue() {
+ setCanShowWifiHotspotCached(true);
+
+ assertThat(WifiTetherSettings.SEARCH_INDEX_DATA_PROVIDER.isPageSearchEnabled(mContext))
+ .isTrue();
+ }
+
+ @Test
+ public void isPageSearchEnabled_canNotShowWifiHotspot_returnFalse() {
+ setCanShowWifiHotspotCached(false);
+
+ assertThat(WifiTetherSettings.SEARCH_INDEX_DATA_PROVIDER.isPageSearchEnabled(mContext))
+ .isFalse();
+ }
+
private void spyWifiTetherSettings() {
mWifiTetherSettings = spy(new WifiTetherSettings(mWifiRestriction));
final FragmentActivity activity = mock(FragmentActivity.class);