Merge "[Wi-Fi] Fix failed test cases"
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index bfffce0..c19b948 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -276,24 +276,14 @@
<item>Require all non-trusted certificate statuses</item>
</string-array>
- <!-- Wi-Fi AP band settings. Either Auto, 2.4GHz or 5GHz. -->
+ <!-- Wi-Fi AP band settings. Either 2.4GHz or 5GHz prefer. -->
<!-- Note that adding/removing/moving the items will need wifi settings code change. -->
- <string-array translatable="false" name="wifi_ap_band_config_full">
- <item>1</item>
- <item>2</item>
- </string-array>
-
- <string-array translatable="false" name="wifi_ap_band_summary_full">
- <item>@string/wifi_ap_choose_2G</item>
- <item>@string/wifi_ap_choose_5G</item>
- </string-array>
-
- <string-array translatable="false" name="wifi_ap_band_dual_mode">
+ <string-array translatable="false" name="wifi_ap_band">
<item>1</item>
<item>3</item>
</string-array>
- <string-array translatable="false" name="wifi_ap_band_dual_mode_summary">
+ <string-array translatable="false" name="wifi_ap_band_summary">
<item>@string/wifi_ap_choose_2G</item>
<item>@string/wifi_ap_prefer_5G</item>
</string-array>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 618aead..eb13876 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -9138,6 +9138,8 @@
<string name="app_permissions">Permission manager</string>
<!-- Summary of permissions currently granted to apps [CHAR LIMIT=60] -->
<string name="app_permissions_summary">Apps using <xliff:g id="apps" example="location">%1$s</xliff:g></string>
+ <!-- Summary of permissions currently granted to apps [CHAR LIMIT=60] -->
+ <string name="app_permissions_summary_more">Apps using <xliff:g id="apps" example="location">%1$s</xliff:g>, and more</string>
<!-- Label for tap to wake setting [CHAR LIMIT=30] -->
<string name="tap_to_wake">Tap to wake</string>
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
index 0a3bba7..4458ea4 100644
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
@@ -33,7 +33,7 @@
public class AppPermissionsPreferenceController extends BasePreferenceController {
private static final String TAG = "AppPermissionPrefCtrl";
- private static int NUM_PACKAGE_TO_CHECK = 3;
+ private static final int NUM_PACKAGE_TO_CHECK = 4;
@VisibleForTesting
static int NUM_PERMISSIONS_TO_SHOW = 3;
@@ -78,7 +78,7 @@
void queryPermissionSummary() {
final List<PackageInfo> installedPackages =
mPackageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
- // Here we only get the first three apps and check their permissions.
+ // Here we only get the first four apps and check their permissions.
final List<PackageInfo> packagesWithPermission = installedPackages.stream()
.filter(pInfo -> pInfo.permissions != null)
.limit(NUM_PACKAGE_TO_CHECK)
@@ -102,10 +102,21 @@
final List<CharSequence> permissionsToShow = mPermissionGroups.stream()
.limit(NUM_PERMISSIONS_TO_SHOW)
.collect(Collectors.toList());
- final CharSequence summary = !permissionsToShow.isEmpty()
- ? mContext.getString(R.string.app_permissions_summary,
- ListFormatter.getInstance().format(permissionsToShow).toLowerCase())
- : mContext.getString(R.string.runtime_permissions_summary_no_permissions_granted);
+ final boolean isMoreShowed = mPermissionGroups.size() > NUM_PERMISSIONS_TO_SHOW;
+ CharSequence summary;
+
+ if (!permissionsToShow.isEmpty()) {
+ if (isMoreShowed) {
+ summary = mContext.getString(R.string.app_permissions_summary_more,
+ ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+ } else {
+ summary = mContext.getString(R.string.app_permissions_summary,
+ ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+ }
+ } else {
+ summary = mContext.getString(
+ R.string.runtime_permissions_summary_no_permissions_granted);
+ }
mPreference.setSummary(summary);
}
}
\ No newline at end of file
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
index 8e6158b..08d6ca4 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
@@ -737,7 +737,7 @@
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setMessage(getContext().getString(R.string.storage_detail_dialog_system,
- Build.VERSION.RELEASE))
+ Build.VERSION.RELEASE_OR_CODENAME))
.setPositiveButton(android.R.string.ok, null)
.create();
}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java
index 3f93303..d6cf442 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java
@@ -75,7 +75,7 @@
@Override
public CharSequence getSummary() {
- return Build.VERSION.RELEASE;
+ return Build.VERSION.RELEASE_OR_CODENAME;
}
@Override
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java
index a63c206..eefa1f9 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java
@@ -34,6 +34,6 @@
@Override
public CharSequence getSummary() {
- return Build.VERSION.RELEASE;
+ return Build.VERSION.RELEASE_OR_CODENAME;
}
}
diff --git a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java
index d2310c3..170c699 100644
--- a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java
+++ b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java
@@ -24,12 +24,16 @@
import android.os.Bundle;
import android.service.notification.ConditionProviderService;
import android.util.Log;
+import android.view.View;
import android.widget.Toast;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
@@ -108,6 +112,12 @@
}
@Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ Utils.setActionBarShadowAnimation(getActivity(), getSettingsLifecycle(), getListView());
+ }
+
+ @Override
public int getHelpResource() {
return R.string.help_uri_interruptions;
}
diff --git a/src/com/android/settings/system/SystemUpdatePreferenceController.java b/src/com/android/settings/system/SystemUpdatePreferenceController.java
index 38a88b9..92819d6 100644
--- a/src/com/android/settings/system/SystemUpdatePreferenceController.java
+++ b/src/com/android/settings/system/SystemUpdatePreferenceController.java
@@ -89,7 +89,7 @@
@Override
public CharSequence getSummary() {
CharSequence summary = mContext.getString(R.string.android_version_summary,
- Build.VERSION.RELEASE);
+ Build.VERSION.RELEASE_OR_CODENAME);
final FutureTask<Bundle> bundleFutureTask = new FutureTask<>(
// Put the API call in a future to avoid StrictMode violation.
() -> mUpdateManager.retrieveSystemUpdateInfo());
diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
index f931fa4..e0a9c26 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -16,20 +16,25 @@
package com.android.settings.users;
import android.content.Context;
+import android.os.UserHandle;
import android.provider.Settings;
import androidx.preference.Preference;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.RestrictedSwitchPreference;
public class AddUserWhenLockedPreferenceController extends TogglePreferenceController {
private final UserCapabilities mUserCaps;
+ private final LockPatternUtils mLockPatternUtils;
- public AddUserWhenLockedPreferenceController(Context context, String key) {
+ public AddUserWhenLockedPreferenceController(
+ Context context, String key, LockPatternUtils lockPatternUtils) {
super(context, key);
mUserCaps = UserCapabilities.create(context);
+ mLockPatternUtils = lockPatternUtils;
}
@Override
@@ -53,6 +58,8 @@
return DISABLED_FOR_USER;
} else if (mUserCaps.disallowAddUser() || mUserCaps.disallowAddUserSetByAdmin()) {
return DISABLED_FOR_USER;
+ } else if (!mLockPatternUtils.isSecure(UserHandle.myUserId())) {
+ return CONDITIONALLY_UNAVAILABLE;
} else {
return mUserCaps.mUserSwitcherEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
}
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index cd305e9..70af899 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -240,7 +240,7 @@
}
mAddUserWhenLockedPreferenceController = new AddUserWhenLockedPreferenceController(
- activity, KEY_ADD_USER_WHEN_LOCKED);
+ activity, KEY_ADD_USER_WHEN_LOCKED, new LockPatternUtils(getPrefContext()));
mMultiUserFooterPreferenceController = new MultiUserFooterPreferenceController(activity,
KEY_MULTIUSER_FOOTER);
@@ -1290,7 +1290,8 @@
boolean suppressAllPage) {
final List<String> niks = super.getNonIndexableKeysFromXml(context, xmlResId,
suppressAllPage);
- new AddUserWhenLockedPreferenceController(context, KEY_ADD_USER_WHEN_LOCKED)
+ new AddUserWhenLockedPreferenceController(
+ context, KEY_ADD_USER_WHEN_LOCKED, new LockPatternUtils(context))
.updateNonIndexableKeys(niks);
new AutoSyncDataPreferenceController(context, null /* parent */)
.updateNonIndexableKeys(niks);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
index 3a571d7..8a4be10 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
@@ -39,12 +39,10 @@
private String[] mBandEntries;
private String[] mBandSummaries;
private int mBandIndex;
- private boolean isDualMode;
public WifiTetherApBandPreferenceController(Context context,
OnTetherConfigUpdateListener listener) {
super(context, listener);
- isDualMode = mWifiManager.isStaApConcurrencySupported();
updatePreferenceEntries();
}
@@ -106,16 +104,12 @@
private int validateSelection(int band) {
// unsupported states:
- // 1: no dual mode means we can't have multiband - default to 5GHZ
+ // 1: BAND_5GHZ only - include 2GHZ since some of countries doesn't support 5G hotspot
// 2: no 5 GHZ support means we can't have BAND_5GHZ - default to 2GHZ
- // 3: With Dual mode support we can't have BAND_5GHZ only - include 2GHZ
- if (!isDualMode
- && ((band & SoftApConfiguration.BAND_5GHZ) != 0)
- && ((band & SoftApConfiguration.BAND_2GHZ) != 0)) {
- return SoftApConfiguration.BAND_5GHZ;
- } else if (!is5GhzBandSupported() && SoftApConfiguration.BAND_5GHZ == band) {
- return SoftApConfiguration.BAND_2GHZ;
- } else if (isDualMode && SoftApConfiguration.BAND_5GHZ == band) {
+ if (SoftApConfiguration.BAND_5GHZ == band) {
+ if (!is5GhzBandSupported()) {
+ return SoftApConfiguration.BAND_2GHZ;
+ }
return SoftApConfiguration.BAND_5GHZ | SoftApConfiguration.BAND_2GHZ;
}
@@ -125,13 +119,8 @@
@VisibleForTesting
void updatePreferenceEntries() {
Resources res = mContext.getResources();
- int entriesRes = R.array.wifi_ap_band_config_full;
- int summariesRes = R.array.wifi_ap_band_summary_full;
- // change the list options if this is a dual mode device
- if (isDualMode) {
- entriesRes = R.array.wifi_ap_band_dual_mode;
- summariesRes = R.array.wifi_ap_band_dual_mode_summary;
- }
+ int entriesRes = R.array.wifi_ap_band;
+ int summariesRes = R.array.wifi_ap_band_summary;
mBandEntries = res.getStringArray(entriesRes);
mBandSummaries = res.getStringArray(summariesRes);
}
diff --git a/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
index f0fdc9c..dfa9383 100644
--- a/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
@@ -16,8 +16,6 @@
package com.android.settings.applications;
-import static com.android.settings.applications.AppPermissionsPreferenceController.NUM_PERMISSIONS_TO_SHOW;
-
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
@@ -75,7 +73,7 @@
public void updateSummary_noGrantedPermission_shouldSetNoPermissionGrantedSummary() {
doNothing().when(mController).queryPermissionSummary();
mController.updateState(mPreference);
- mController.mNumPackageChecked = 2;
+ mController.mNumPackageChecked = 3;
mController.updateSummary(new ArrayList<>());
@@ -84,14 +82,14 @@
}
@Test
- public void updateSummary_hasPermissionGroups_shouldSetPermissionAsSummary() {
+ public void updateSummary_hasOnePermission_shouldSetPermissionAsSummary() {
doNothing().when(mController).queryPermissionSummary();
mController.updateState(mPreference);
final String permission = "location";
final ArrayList<CharSequence> labels = new ArrayList<>();
labels.add(permission);
final String summary = "Apps using " + permission;
- mController.mNumPackageChecked = 2;
+ mController.mNumPackageChecked = 3;
mController.updateSummary(labels);
@@ -99,6 +97,41 @@
}
@Test
+ public void updateSummary_hasThreePermissions_shouldShowThreePermissionAsSummary() {
+ doNothing().when(mController).queryPermissionSummary();
+ mController.updateState(mPreference);
+ mController.mNumPackageChecked = 3;
+ final List<CharSequence> labels = new ArrayList<>();
+ labels.add("Phone");
+ labels.add("SMS");
+ labels.add("Microphone");
+
+ mController.updateSummary(labels);
+
+ final String summary = "Apps using microphone, sms, and phone";
+ assertThat(mPreference.getSummary()).isEqualTo(summary);
+ }
+
+ @Test
+ public void updateSummary_hasFivePermissions_shouldShowThreePermissionsAndMoreAsSummary() {
+ doNothing().when(mController).queryPermissionSummary();
+ mController.updateState(mPreference);
+ mController.mNumPackageChecked = 3;
+ final List<CharSequence> labels = new ArrayList<>();
+ labels.add("Phone");
+ labels.add("SMS");
+ labels.add("Microphone");
+ labels.add("Contacts");
+ labels.add("Camera");
+ labels.add("Location");
+
+ mController.updateSummary(labels);
+
+ final String summary = "Apps using microphone, contacts, and sms, and more";
+ assertThat(mPreference.getSummary()).isEqualTo(summary);
+ }
+
+ @Test
public void updateSummary_notReachCallbackCount_shouldNotSetSummary() {
doNothing().when(mController).queryPermissionSummary();
mController.updateState(mPreference);
@@ -110,29 +143,4 @@
verify(mPreference, never()).setSummary(anyString());
}
-
- @Test
- public void updateSummary_hasFiveItems_shouldShowCertainNumItems() {
- doNothing().when(mController).queryPermissionSummary();
- mController.updateState(mPreference);
- mController.mNumPackageChecked = 2;
-
- mController.updateSummary(getPermissionGroupsSet());
-
- final CharSequence summary = mPreference.getSummary();
- final int items = summary.toString().split(",").length;
- assertThat(items).isEqualTo(NUM_PERMISSIONS_TO_SHOW);
- }
-
- private List<CharSequence> getPermissionGroupsSet() {
- final List<CharSequence> labels = new ArrayList<>();
- labels.add("Phone");
- labels.add("SMS");
- labels.add("Microphone");
- labels.add("Contacts");
- labels.add("Camera");
- labels.add("Location");
-
- return labels;
- }
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceControllerTest.java
index a3606e8..9fca65d 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceControllerTest.java
@@ -63,7 +63,7 @@
@Test
public void getSummary_shouldGetBuildVersion() {
- assertThat(mController.getSummary()).isEqualTo(Build.VERSION.RELEASE);
+ assertThat(mController.getSummary()).isEqualTo(Build.VERSION.RELEASE_OR_CODENAME);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java
index d000c91..903b88b 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java
@@ -65,6 +65,6 @@
public void updatePreference_shouldSetSummaryToBuildNumber() {
mController.updateState(mPreference);
- assertThat(mPreference.getSummary()).isEqualTo(Build.VERSION.RELEASE);
+ assertThat(mPreference.getSummary()).isEqualTo(Build.VERSION.RELEASE_OR_CODENAME);
}
}
diff --git a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
index fbd87c9..95c95bb 100644
--- a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
@@ -139,7 +139,7 @@
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.android_version_summary,
- Build.VERSION.RELEASE));
+ Build.VERSION.RELEASE_OR_CODENAME));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
index b27b636..cb5791e 100644
--- a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
@@ -18,6 +18,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -27,6 +28,8 @@
import androidx.preference.PreferenceScreen;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -51,13 +54,16 @@
private Context mContext;
private ShadowUserManager mUserManager;
private AddUserWhenLockedPreferenceController mController;
+ private LockPatternUtils mLockPatternUtils;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
+ mLockPatternUtils = mock(LockPatternUtils.class);
mUserManager = ShadowUserManager.getShadow();
- mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
+ mController = new AddUserWhenLockedPreferenceController(
+ mContext, "fake_key", mLockPatternUtils);
mUserManager.setSupportsMultipleUsers(true);
}
@@ -69,6 +75,7 @@
@Test
public void displayPref_NotAdmin_shouldNotDisplay() {
mUserManager.setIsAdminUser(false);
+ when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
when(preference.getKey()).thenReturn(mController.getPreferenceKey());
when(mScreen.findPreference(preference.getKey())).thenReturn(preference);
@@ -81,6 +88,7 @@
@Test
public void updateState_NotAdmin_shouldNotDisplayPreference() {
mUserManager.setIsAdminUser(false);
+ when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
mController.updateState(preference);
@@ -93,8 +101,9 @@
mUserManager.setIsAdminUser(true);
mUserManager.setUserSwitcherEnabled(true);
mUserManager.setSupportsMultipleUsers(true);
+ when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
final AddUserWhenLockedPreferenceController controller =
- new AddUserWhenLockedPreferenceController(mContext, "fake_key");
+ new AddUserWhenLockedPreferenceController(mContext, "fake_key", mLockPatternUtils);
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
controller.updateState(preference);
@@ -143,4 +152,40 @@
assertThat(Global.getInt(mContext.getContentResolver(), Global.ADD_USERS_WHEN_LOCKED, 0))
.isEqualTo(0);
}
+
+ @Test
+ public void updateState_insecureLockScreen_shouldNotDisplayPreference() {
+ mUserManager.setIsAdminUser(true);
+ mUserManager.setUserSwitcherEnabled(true);
+ mUserManager.setSupportsMultipleUsers(true);
+ when(mLockPatternUtils.isSecure(anyInt())).thenReturn(false);
+ final AddUserWhenLockedPreferenceController controller =
+ new AddUserWhenLockedPreferenceController(
+ mContext, "fake_key", mLockPatternUtils);
+ final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
+
+ controller.updateState(preference);
+
+ verify(preference).setVisible(false);
+ assertThat(controller.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void updateState_secureLockScreen_shouldDisplayPreference() {
+ mUserManager.setIsAdminUser(true);
+ mUserManager.setUserSwitcherEnabled(true);
+ mUserManager.setSupportsMultipleUsers(true);
+ when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
+ final AddUserWhenLockedPreferenceController controller =
+ new AddUserWhenLockedPreferenceController(
+ mContext, "fake_key", mLockPatternUtils);
+ final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
+
+ controller.updateState(preference);
+
+ verify(preference).setVisible(true);
+ assertThat(controller.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.AVAILABLE);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
index b5645b4..32cec68 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
@@ -81,7 +81,6 @@
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
when(mWifiManager.getSoftApConfiguration()).thenReturn(
new SoftApConfiguration.Builder().build());
- when(mWifiManager.isStaApConcurrencySupported()).thenReturn(false);
mController = new WifiTetherApBandPreferenceController(mContext, mListener);
}
@@ -90,9 +89,8 @@
public void display_5GhzSupported_shouldDisplayFullList() {
when(mWifiManager.getCountryCode()).thenReturn("US");
when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
- when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true);
- // Create a new instance to pick the proper value of isDualModeSupported()
+ // Create a new instance
mController = new WifiTetherApBandPreferenceController(mContext, mListener);
mController.displayPreference(mScreen);
@@ -126,38 +124,10 @@
}
@Test
- public void changePreference_noDualModeWith5G_shouldUpdateValue() {
+ public void changePreference_With5G_shouldUpdateValue() {
when(mWifiManager.getCountryCode()).thenReturn("US");
when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
- mController.displayPreference(mScreen);
-
- // 'Auto' option should be prevented from being set since
- // it is invalid for this configuration
- mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_5GHZ_INT);
- assertThat(mPreference.getSummary()).isEqualTo(FIVE_GHZ_STRING);
- verify(mListener, times(1)).onTetherConfigUpdated(mController);
-
- // set to 5 Ghz
- mController.onPreferenceChange(mPreference, VAL_5GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_5GHZ_INT);
- assertThat(mPreference.getSummary()).isEqualTo(FIVE_GHZ_STRING);
- verify(mListener, times(2)).onTetherConfigUpdated(mController);
-
- // set to 2 Ghz
- mController.onPreferenceChange(mPreference, VAL_2GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT);
- assertThat(mPreference.getSummary()).isEqualTo(TWO_GHZ_STRING);
- verify(mListener, times(3)).onTetherConfigUpdated(mController);
- }
-
- @Test
- public void changePreference_dualModeWith5G_shouldUpdateValue() {
- when(mWifiManager.getCountryCode()).thenReturn("US");
- when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
- when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true);
-
// Create a new instance to pick the proper value of isDualModeSupported()
mController = new WifiTetherApBandPreferenceController(mContext, mListener);