diff --git a/res/values/bools.xml b/res/values/bools.xml index 8bd11c78d53..a5043a2949e 100644 --- a/res/values/bools.xml +++ b/res/values/bools.xml @@ -168,6 +168,15 @@ true + + true + + + true + + + true + true diff --git a/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceController.java b/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceController.java index 6f16db6e368..4b2bdc05d80 100644 --- a/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceController.java +++ b/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.connecteddevice; import android.content.Context; import com.android.settings.core.BasePreferenceController; +import com.android.settings.R; public class TopLevelConnectedDevicesPreferenceController extends BasePreferenceController { @@ -29,7 +30,9 @@ public class TopLevelConnectedDevicesPreferenceController extends BasePreference @Override public int getAvailabilityStatus() { - return AVAILABLE_UNSEARCHABLE; + return mContext.getResources().getBoolean(R.bool.config_show_top_level_connected_devices) + ? AVAILABLE_UNSEARCHABLE + : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/src/com/android/settings/display/TopLevelDisplayPreferenceController.java b/src/com/android/settings/display/TopLevelDisplayPreferenceController.java index 88b87e0ba0b..ed85a4ab10a 100644 --- a/src/com/android/settings/display/TopLevelDisplayPreferenceController.java +++ b/src/com/android/settings/display/TopLevelDisplayPreferenceController.java @@ -29,7 +29,9 @@ public class TopLevelDisplayPreferenceController extends BasePreferenceControlle @Override public int getAvailabilityStatus() { - return AVAILABLE; + return mContext.getResources().getBoolean(R.bool.config_show_top_level_display) + ? AVAILABLE + : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java index 82058183e53..ce85be8daf6 100644 --- a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java +++ b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java @@ -48,7 +48,9 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle @Override public int getAvailabilityStatus() { - return AVAILABLE_UNSEARCHABLE; + return mContext.getResources().getBoolean(R.bool.config_show_top_level_battery) + ? AVAILABLE_UNSEARCHABLE + : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml index c5c552e54e1..101a6b813f4 100644 --- a/tests/robotests/res/values-mcc999/config.xml +++ b/tests/robotests/res/values-mcc999/config.xml @@ -58,6 +58,9 @@ false false false + false + false + false false false true diff --git a/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java index f6b18a31810..ab733701cdf 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java @@ -16,6 +16,9 @@ package com.android.settings.connecteddevice; +import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; +import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; + import static com.google.common.truth.Truth.assertThat; import android.content.Context; @@ -43,6 +46,17 @@ public class TopLevelConnectedDevicesPreferenceControllerTest { mController = new TopLevelConnectedDevicesPreferenceController(mContext, "test_key"); } + @Test + public void getAvailibilityStatus_availableByDefault() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); + } + + @Test + @Config(qualifiers = "mcc999") + public void getAvailabilityStatus_unsupportedWhenSet() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); + } + @Test @Config(shadows = ShadowAdvancedConnectedDeviceController.class) public void getSummary_shouldCallAdvancedConnectedDeviceController() { diff --git a/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java index 9ad05ce56e2..23d794c93c3 100644 --- a/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java @@ -17,12 +17,14 @@ package com.android.settings.display; import static com.android.settings.core.BasePreferenceController.AVAILABLE; +import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; 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; @@ -40,11 +42,13 @@ import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.List; + +import org.robolectric.annotation.Config; import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class TopLevelDisplayPreferenceControllerTest { - @Mock private Context mContext; @Mock private PackageManager mPackageManager; @@ -54,6 +58,7 @@ public class TopLevelDisplayPreferenceControllerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); + mContext = spy(RuntimeEnvironment.application); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mContext.getString(R.string.config_wallpaper_picker_package)).thenReturn("pkg"); when(mContext.getString(R.string.config_wallpaper_picker_class)).thenReturn("cls"); @@ -62,10 +67,16 @@ public class TopLevelDisplayPreferenceControllerTest { } @Test - public void getAvailability_alwaysAvailable() { + public void getAvailibilityStatus_availableByDefault() { assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } + @Test + @Config(qualifiers = "mcc999") + public void getAvailabilityStatus_unsupportedWhenSet() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); + } + @Test public void getSummary_hasWallpaper_shouldReturnWallpaperSummary() { final List resolveInfos = new ArrayList<>(); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java index e6efef7cc12..7568987da3a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java @@ -16,6 +16,8 @@ package com.android.settings.fuelgauge; +import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; +import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.android.settings.fuelgauge.TopLevelBatteryPreferenceController.getDashboardLabel; import static com.google.common.truth.Truth.assertThat; @@ -25,17 +27,30 @@ import android.content.Context; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.robolectric.annotation.Config; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class TopLevelBatteryPreferenceControllerTest { - private Context mContext; + private TopLevelBatteryPreferenceController mController; @Before public void setUp() { mContext = RuntimeEnvironment.application; + mController = new TopLevelBatteryPreferenceController(mContext, "test_key"); + } + + @Test + public void getAvailibilityStatus_availableByDefault() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); + } + + @Test + @Config(qualifiers = "mcc999") + public void getAvailabilityStatus_unsupportedWhenSet() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test