diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java index 07ffb8a4dd2..d0c0b253baa 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java @@ -18,10 +18,8 @@ package com.android.settings.dashboard.suggestions; import android.app.ActivityManager; import android.content.ComponentName; -import android.content.ContentResolver; import android.content.Context; import android.content.SharedPreferences; -import android.provider.Settings.Secure; import android.service.settings.suggestions.Suggestion; import android.support.annotation.NonNull; import android.support.annotation.VisibleForTesting; @@ -31,6 +29,7 @@ import android.util.Pair; import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.Settings.NightDisplaySuggestionActivity; +import com.android.settings.display.NightDisplayPreferenceController; import com.android.settings.fingerprint.FingerprintEnrollSuggestionActivity; import com.android.settings.fingerprint.FingerprintSuggestionActivity; import com.android.settings.overlay.FeatureFactory; @@ -86,7 +85,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) { return WifiCallingSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(NightDisplaySuggestionActivity.class.getName())) { - return hasUsedNightDisplay(context); + return NightDisplayPreferenceController.isSuggestionComplete(context); } else if (className.equals(NewDeviceIntroSuggestionActivity.class.getName())) { return NewDeviceIntroSuggestionActivity.isSuggestionComplete(context); } @@ -134,11 +133,4 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider MetricsEvent.FIELD_SETTINGS_SMART_SUGGESTIONS_ENABLED, isSmartSuggestionEnabled ? 1 : 0)}; } - - @VisibleForTesting - boolean hasUsedNightDisplay(Context context) { - final ContentResolver cr = context.getContentResolver(); - return Secure.getInt(cr, Secure.NIGHT_DISPLAY_AUTO_MODE, 0) != 0 - || Secure.getString(cr, Secure.NIGHT_DISPLAY_LAST_ACTIVATED_TIME) != null; - } } diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java index 2761eca752a..5e8dfe01bd7 100644 --- a/src/com/android/settings/display/NightDisplayPreferenceController.java +++ b/src/com/android/settings/display/NightDisplayPreferenceController.java @@ -28,6 +28,11 @@ public class NightDisplayPreferenceController extends AbstractPreferenceControll super(context); } + public static boolean isSuggestionComplete(Context context) { + final ColorDisplayController controller = new ColorDisplayController(context); + return controller.getAutoMode() != ColorDisplayController.AUTO_MODE_DISABLED; + } + @Override public boolean isAvailable() { return ColorDisplayController.isAvailable(mContext); 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 f1fe249e296..bb68c0dd9c0 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java @@ -162,46 +162,6 @@ public class SuggestionFeatureProviderImplTest { assertThat(suggestions).hasSize(3); } - @Test - public void hasUsedNightDisplay_returnsFalse_byDefault() { - assertThat(mProvider.hasUsedNightDisplay(mContext)).isFalse(); - } - - @Test - public void hasUsedNightDisplay_returnsTrue_ifPreviouslyActivatedAndManual() { - Secure.putString(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_LAST_ACTIVATED_TIME, - LocalDateTime.now().toString()); - Secure.putInt(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_AUTO_MODE, 1); - assertThat(mProvider.hasUsedNightDisplay(mContext)).isTrue(); - } - - @Test - public void nightDisplaySuggestion_isCompleted_ifPreviouslyActivated() { - Secure.putString(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_LAST_ACTIVATED_TIME, - LocalDateTime.now().toString()); - final ComponentName componentName = - new ComponentName(mContext, NightDisplaySuggestionActivity.class); - assertThat(mProvider.isSuggestionComplete(mContext, componentName)).isTrue(); - } - - @Test - public void nightDisplaySuggestion_isCompleted_ifNonManualMode() { - Secure.putInt(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_AUTO_MODE, 1); - final ComponentName componentName = - new ComponentName(mContext, NightDisplaySuggestionActivity.class); - assertThat(mProvider.isSuggestionComplete(mContext, componentName)).isTrue(); - } - - @Test - public void nightDisplaySuggestion_isCompleted_ifPreviouslyCleared() { - Secure.putString(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_LAST_ACTIVATED_TIME, - null); - Secure.putInt(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_AUTO_MODE, 1); - final ComponentName componentName = - new ComponentName(mContext, NightDisplaySuggestionActivity.class); - assertThat(mProvider.isSuggestionComplete(mContext, componentName)).isTrue(); - } - @Test public void nightDisplaySuggestion_isNotCompleted_byDefault() { final ComponentName componentName = diff --git a/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java new file mode 100644 index 00000000000..3bc7d521eed --- /dev/null +++ b/tests/robotests/src/com/android/settings/display/NightDisplayPreferenceControllerTest.java @@ -0,0 +1,61 @@ +package com.android.settings.display; + +import static com.google.common.truth.Truth.assertThat; + +import android.app.Application; +import android.content.ComponentName; +import android.provider.Settings.Secure; +import com.android.internal.app.ColorDisplayController; +import com.android.settings.Settings.NightDisplaySuggestionActivity; +import com.android.settings.testutils.SettingsRobolectricTestRunner; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RuntimeEnvironment; + +@RunWith(SettingsRobolectricTestRunner.class) +public class NightDisplayPreferenceControllerTest { + + private NightDisplayPreferenceController mPreferenceController; + + @Before + public void setUp() { + mPreferenceController = new NightDisplayPreferenceController(RuntimeEnvironment.application); + } + + @After + public void tearDown() { + mPreferenceController = null; + } + + @Test + public void nightDisplaySuggestion_isNotCompleted_ifAutoModeDisabled() { + final Application context = RuntimeEnvironment.application; + Secure.putInt(context.getContentResolver(), + Secure.NIGHT_DISPLAY_AUTO_MODE, ColorDisplayController.AUTO_MODE_DISABLED); + final ComponentName componentName = + new ComponentName(context, NightDisplaySuggestionActivity.class); + assertThat(mPreferenceController.isSuggestionComplete(context)).isFalse(); + } + + @Test + public void nightDisplaySuggestion_isCompleted_ifAutoModeCustom() { + final Application context = RuntimeEnvironment.application; + Secure.putInt(context.getContentResolver(), + Secure.NIGHT_DISPLAY_AUTO_MODE, ColorDisplayController.AUTO_MODE_CUSTOM); + final ComponentName componentName = + new ComponentName(context, NightDisplaySuggestionActivity.class); + assertThat(mPreferenceController.isSuggestionComplete(context)).isTrue(); + } + + @Test + public void nightDisplaySuggestion_isCompleted_ifAutoModeTwilight() { + final Application context = RuntimeEnvironment.application; + Secure.putInt(context.getContentResolver(), + Secure.NIGHT_DISPLAY_AUTO_MODE, ColorDisplayController.AUTO_MODE_TWILIGHT); + final ComponentName componentName = + new ComponentName(context, NightDisplaySuggestionActivity.class); + assertThat(mPreferenceController.isSuggestionComplete(context)).isTrue(); + } +}