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;
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;
} 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);
}
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;
- }
}
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);
}
@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 =
new ComponentName(mContext, NightDisplaySuggestionActivity.class);
--- /dev/null
+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();
+ }
+}