Merge "Improve Night Light suggestion criterion" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
981569f530
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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 =
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user