From 4e9d52791bb6e805cc0a307d97bcd5b27e816e42 Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Wed, 2 May 2018 19:29:16 -0700 Subject: [PATCH] Make the night display suggestion depend on a flag. This allows it to be enabled/disabled on certain devices. Change-Id: I7b73bb866b05b92588e15ef7ffc2834cdde041ce Fixes: 78601616 Test: Settings robotest --- res/values/config.xml | 3 +++ .../NightDisplayPreferenceController.java | 7 +++++++ .../SuggestionFeatureProviderImplTest.java | 7 ------- .../NightDisplayPreferenceControllerTest.java | 20 +++++++++++++++++++ 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/res/values/config.xml b/res/values/config.xml index e3ec74f2636..e204b7fd7ec 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -131,4 +131,7 @@ + + true + diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java index 5e8dfe01bd7..0bbab935f8a 100644 --- a/src/com/android/settings/display/NightDisplayPreferenceController.java +++ b/src/com/android/settings/display/NightDisplayPreferenceController.java @@ -18,6 +18,7 @@ import android.content.Context; import com.android.internal.app.ColorDisplayController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settings.R; public class NightDisplayPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin { @@ -29,6 +30,12 @@ public class NightDisplayPreferenceController extends AbstractPreferenceControll } public static boolean isSuggestionComplete(Context context) { + final boolean isEnabled = context.getResources().getBoolean( + R.bool.config_night_light_suggestion_enabled); + // The suggestion is always complete if not enabled. + if (!isEnabled) { + return true; + } final ColorDisplayController controller = new ColorDisplayController(context); return controller.getAutoMode() != ColorDisplayController.AUTO_MODE_DISABLED; } diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java index bb68c0dd9c0..c62f63d20a9 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java @@ -162,13 +162,6 @@ public class SuggestionFeatureProviderImplTest { assertThat(suggestions).hasSize(3); } - @Test - public void nightDisplaySuggestion_isNotCompleted_byDefault() { - final ComponentName componentName = - new ComponentName(mContext, NightDisplaySuggestionActivity.class); - assertThat(mProvider.isSuggestionComplete(mContext, componentName)).isFalse(); - } - @Test public void testGetSmartSuggestionEnabledTaggedData_disabled() { assertThat(mProvider.getLoggingTaggedData(mContext)).asList().containsExactly( diff --git a/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java index 3bc7d521eed..7440f63d740 100644 --- a/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java @@ -6,15 +6,22 @@ import android.app.Application; import android.content.ComponentName; import android.provider.Settings.Secure; import com.android.internal.app.ColorDisplayController; +import com.android.settings.R; import com.android.settings.Settings.NightDisplaySuggestionActivity; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.SettingsShadowResources; + import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; @RunWith(SettingsRobolectricTestRunner.class) +@Config(shadows = { + SettingsShadowResources.class +}) public class NightDisplayPreferenceControllerTest { private NightDisplayPreferenceController mPreferenceController; @@ -27,6 +34,7 @@ public class NightDisplayPreferenceControllerTest { @After public void tearDown() { mPreferenceController = null; + SettingsShadowResources.reset(); } @Test @@ -58,4 +66,16 @@ public class NightDisplayPreferenceControllerTest { new ComponentName(context, NightDisplaySuggestionActivity.class); assertThat(mPreferenceController.isSuggestionComplete(context)).isTrue(); } + + @Test + public void nightDisplaySuggestion_isCompleted_ifDisabled() { + final Application context = RuntimeEnvironment.application; + Secure.putInt(context.getContentResolver(), + Secure.NIGHT_DISPLAY_AUTO_MODE, ColorDisplayController.AUTO_MODE_DISABLED); + SettingsShadowResources.overrideResource(R.bool.config_night_light_suggestion_enabled, false); + + final ComponentName componentName = + new ComponentName(context, NightDisplaySuggestionActivity.class); + assertThat(mPreferenceController.isSuggestionComplete(context)).isTrue(); + } }