Hide new Hotspot preferences if feature is disabled
- Hide new "Security" preference - Hide new "Speed and compatibility" preference Bug: 356898105 Flag: EXEMPT bugfix Test: Manual testing atest -c WifiTetherSettingsTest Change-Id: I734959ed511929bfcc9a314770a4acdf9a7e0b99
This commit is contained in:
@@ -371,12 +371,20 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
|
|||||||
|| !mWifiRestriction.isHotspotAvailable(context)) {
|
|| !mWifiRestriction.isHotspotAvailable(context)) {
|
||||||
keys.add(KEY_WIFI_TETHER_NETWORK_NAME);
|
keys.add(KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
keys.add(KEY_WIFI_TETHER_SECURITY);
|
keys.add(KEY_WIFI_TETHER_SECURITY);
|
||||||
|
keys.add(KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
keys.add(KEY_WIFI_TETHER_AUTO_OFF);
|
keys.add(KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
keys.add(KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
keys.add(KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
|
keys.add(KEY_WIFI_HOTSPOT_SPEED);
|
||||||
keys.add(KEY_INSTANT_HOTSPOT);
|
keys.add(KEY_INSTANT_HOTSPOT);
|
||||||
} else if (!mIsInstantHotspotEnabled) {
|
} else {
|
||||||
keys.add(KEY_INSTANT_HOTSPOT);
|
if (!isSpeedFeatureAvailable()) {
|
||||||
|
keys.add(KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
|
keys.add(KEY_WIFI_HOTSPOT_SPEED);
|
||||||
|
}
|
||||||
|
if (!mIsInstantHotspotEnabled) {
|
||||||
|
keys.add(KEY_INSTANT_HOTSPOT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove duplicate
|
// Remove duplicate
|
||||||
@@ -400,6 +408,12 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
|
|||||||
public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||||
return buildPreferenceControllers(context, null /* listener */);
|
return buildPreferenceControllers(context, null /* listener */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean isSpeedFeatureAvailable() {
|
||||||
|
return FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
|
||||||
|
.getWifiHotspotRepository().isSpeedFeatureAvailable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@@ -263,91 +263,114 @@ public class WifiTetherSettingsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getNonIndexableKeys_tetherAvailable_keysNotReturned() {
|
public void getNonIndexableKeys_tetherAvailable_keysNotReturned() {
|
||||||
when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
|
WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
|
||||||
when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
|
true /* isTetherAvailable */, true /* isHotspotAvailable */,
|
||||||
WifiTetherSettings.SearchIndexProvider searchIndexProvider =
|
true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
|
||||||
new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
|
|
||||||
true /* isInstantHotspotEnabled */);
|
|
||||||
|
|
||||||
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
||||||
|
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNonIndexableKeys_tetherNotAvailable_keysReturned() {
|
||||||
|
WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
|
||||||
|
false /* isTetherAvailable */, true /* isHotspotAvailable */,
|
||||||
|
true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
|
||||||
|
|
||||||
|
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
||||||
|
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNonIndexableKeys_hotspotNotAvailable_keysReturned() {
|
||||||
|
WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
|
||||||
|
true /* isTetherAvailable */, false /* isHotspotAvailable */,
|
||||||
|
true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
|
||||||
|
|
||||||
|
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
||||||
|
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNonIndexableKeys_tetherAndHotspotNotAvailable_keysReturned() {
|
||||||
|
WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
|
||||||
|
false /* isTetherAvailable */, false /* isHotspotAvailable */,
|
||||||
|
true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
|
||||||
|
|
||||||
|
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
||||||
|
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNonIndexableKeys_instantHotspotNotAvailableOnly_keysContainInstantHotspotOnly() {
|
||||||
|
WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
|
||||||
|
true /* isTetherAvailable */, true /* isHotspotAvailable */,
|
||||||
|
false /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
|
||||||
|
|
||||||
|
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
||||||
|
|
||||||
|
// doesNotContain
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
|
||||||
|
// contains
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNonIndexableKeys_speedFeatureNotAvailableOnly_keysContainInstantHotspotOnly() {
|
||||||
|
WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
|
||||||
|
true /* isTetherAvailable */, true /* isHotspotAvailable */,
|
||||||
|
true /* isInstantHotspotEnabled */, false /* isSpeedFeatureAvailable */);
|
||||||
|
|
||||||
|
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
||||||
|
|
||||||
|
// doesNotContain
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
||||||
}
|
// contains
|
||||||
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
|
||||||
@Test
|
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
|
||||||
public void getNonIndexableKeys_tetherNotAvailable_keysReturned() {
|
|
||||||
when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
|
|
||||||
when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
|
|
||||||
WifiTetherSettings.SearchIndexProvider searchIndexProvider =
|
|
||||||
new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
|
|
||||||
true /* isInstantHotspotEnabled */);
|
|
||||||
|
|
||||||
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
|
||||||
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getNonIndexableKeys_hotspotNotAvailable_keysReturned() {
|
|
||||||
when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
|
|
||||||
when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
|
|
||||||
WifiTetherSettings.SearchIndexProvider searchIndexProvider =
|
|
||||||
new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
|
|
||||||
true /* isInstantHotspotEnabled */);
|
|
||||||
|
|
||||||
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
|
||||||
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getNonIndexableKeys_tetherAndHotspotNotAvailable_keysReturned() {
|
|
||||||
when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
|
|
||||||
when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
|
|
||||||
WifiTetherSettings.SearchIndexProvider searchIndexProvider =
|
|
||||||
new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
|
|
||||||
true /* isInstantHotspotEnabled */);
|
|
||||||
|
|
||||||
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
|
||||||
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getNonIndexableKeys_instantHotspotNotAvailableOnly_keysContainInstantHotspotOnly() {
|
|
||||||
when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
|
|
||||||
when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
|
|
||||||
WifiTetherSettings.SearchIndexProvider searchIndexProvider =
|
|
||||||
new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
|
|
||||||
false /* isInstantHotspotEnabled */);
|
|
||||||
|
|
||||||
final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
|
|
||||||
|
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
|
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
|
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
|
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
|
|
||||||
assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
|
|
||||||
assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -506,6 +529,18 @@ public class WifiTetherSettingsTest {
|
|||||||
mSettings.onCreate(Bundle.EMPTY);
|
mSettings.onCreate(Bundle.EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private WifiTetherSettings.SearchIndexProvider createSearchIndexProvider(
|
||||||
|
boolean isTetherAvailable, boolean isHotspotAvailable, boolean isInstantHotspotEnabled,
|
||||||
|
boolean isSpeedFeatureAvailable) {
|
||||||
|
when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(isTetherAvailable);
|
||||||
|
when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(isHotspotAvailable);
|
||||||
|
WifiTetherSettings.SearchIndexProvider provider =
|
||||||
|
spy(new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
|
||||||
|
isInstantHotspotEnabled));
|
||||||
|
when(provider.isSpeedFeatureAvailable()).thenReturn(isSpeedFeatureAvailable);
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
|
|
||||||
@Implements(RestrictedDashboardFragment.class)
|
@Implements(RestrictedDashboardFragment.class)
|
||||||
public static final class ShadowRestrictedDashboardFragment {
|
public static final class ShadowRestrictedDashboardFragment {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user