Use ColorDisplayManager for night display settings

Bug: 123352608
Test: make ROBOTEST_FILTER="(Night*)" RunSettingsRoboTests -j48
Change-Id: Id4ab9ca4a21243be5967d63db72212daefb3dcb9
This commit is contained in:
Christine Franks
2019-01-24 12:18:40 -08:00
parent 17e1190606
commit a21c6edcf6
9 changed files with 55 additions and 53 deletions

View File

@@ -26,14 +26,13 @@ import android.widget.Button;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.widget.LayoutPreference;
public class NightDisplayActivationPreferenceController extends TogglePreferenceController { public class NightDisplayActivationPreferenceController extends TogglePreferenceController {
private ColorDisplayController mController; private ColorDisplayManager mColorDisplayManager;
private NightDisplayTimeFormatter mTimeFormatter; private NightDisplayTimeFormatter mTimeFormatter;
private Button mTurnOffButton; private Button mTurnOffButton;
private Button mTurnOnButton; private Button mTurnOnButton;
@@ -41,14 +40,15 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
private final OnClickListener mListener = new OnClickListener() { private final OnClickListener mListener = new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
mController.setActivated(!mController.isActivated()); mColorDisplayManager.setNightDisplayActivated(!mColorDisplayManager.isNightDisplayActivated());
updateStateInternal(); updateStateInternal();
} }
}; };
public NightDisplayActivationPreferenceController(Context context, String key) { public NightDisplayActivationPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mController = new ColorDisplayController(context);
mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
mTimeFormatter = new NightDisplayTimeFormatter(context); mTimeFormatter = new NightDisplayTimeFormatter(context);
} }
@@ -83,17 +83,17 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
@Override @Override
public boolean isChecked() { public boolean isChecked() {
return mController.isActivated(); return mColorDisplayManager.isNightDisplayActivated();
} }
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
return mController.setActivated(isChecked); return mColorDisplayManager.setNightDisplayActivated(isChecked);
} }
@Override @Override
public CharSequence getSummary() { public CharSequence getSummary() {
return mTimeFormatter.getAutoModeTimeSummary(mContext, mController); return mTimeFormatter.getAutoModeTimeSummary(mContext, mColorDisplayManager);
} }
private void updateStateInternal() { private void updateStateInternal() {
@@ -101,8 +101,8 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
return; return;
} }
final boolean isActivated = mController.isActivated(); final boolean isActivated = mColorDisplayManager.isNightDisplayActivated();
final int autoMode = mController.getAutoMode(); final int autoMode = mColorDisplayManager.getNightDisplayAutoMode();
String buttonText; String buttonText;
if (autoMode == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME) { if (autoMode == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME) {
@@ -110,8 +110,8 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
? R.string.night_display_activation_off_custom ? R.string.night_display_activation_off_custom
: R.string.night_display_activation_on_custom, : R.string.night_display_activation_on_custom,
mTimeFormatter.getFormattedTimeString(isActivated mTimeFormatter.getFormattedTimeString(isActivated
? mController.getCustomStartTime() ? mColorDisplayManager.getNightDisplayCustomStartTime()
: mController.getCustomEndTime())); : mColorDisplayManager.getNightDisplayCustomEndTime()));
} else if (autoMode == ColorDisplayManager.AUTO_MODE_TWILIGHT) { } else if (autoMode == ColorDisplayManager.AUTO_MODE_TWILIGHT) {
buttonText = mContext.getString(isActivated buttonText = mContext.getString(isActivated
? R.string.night_display_activation_off_twilight ? R.string.night_display_activation_off_twilight

View File

@@ -30,11 +30,11 @@ public class NightDisplayAutoModePreferenceController extends BasePreferenceCont
implements Preference.OnPreferenceChangeListener { implements Preference.OnPreferenceChangeListener {
private DropDownPreference mPreference; private DropDownPreference mPreference;
private ColorDisplayManager mManager; private ColorDisplayManager mColorDisplayManager;
public NightDisplayAutoModePreferenceController(Context context, String key) { public NightDisplayAutoModePreferenceController(Context context, String key) {
super(context, key); super(context, key);
mManager = context.getSystemService(ColorDisplayManager.class); mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
} }
@Override @Override
@@ -63,11 +63,11 @@ public class NightDisplayAutoModePreferenceController extends BasePreferenceCont
@Override @Override
public final void updateState(Preference preference) { public final void updateState(Preference preference) {
mPreference.setValue(String.valueOf(mManager.getNightDisplayAutoMode())); mPreference.setValue(String.valueOf(mColorDisplayManager.getNightDisplayAutoMode()));
} }
@Override @Override
public final boolean onPreferenceChange(Preference preference, Object newValue) { public final boolean onPreferenceChange(Preference preference, Object newValue) {
return mManager.setNightDisplayAutoMode(Integer.parseInt((String) newValue)); return mColorDisplayManager.setNightDisplayAutoMode(Integer.parseInt((String) newValue));
} }
} }

View File

@@ -19,18 +19,17 @@ package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
public class NightDisplayCustomEndTimePreferenceController extends BasePreferenceController { public class NightDisplayCustomEndTimePreferenceController extends BasePreferenceController {
private ColorDisplayController mController; private ColorDisplayManager mColorDisplayManager;
private NightDisplayTimeFormatter mTimeFormatter; private NightDisplayTimeFormatter mTimeFormatter;
public NightDisplayCustomEndTimePreferenceController(Context context, String key) { public NightDisplayCustomEndTimePreferenceController(Context context, String key) {
super(context, key); super(context, key);
mController = new ColorDisplayController(context); mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
mTimeFormatter = new NightDisplayTimeFormatter(context); mTimeFormatter = new NightDisplayTimeFormatter(context);
} }
@@ -43,8 +42,9 @@ public class NightDisplayCustomEndTimePreferenceController extends BasePreferenc
@Override @Override
public final void updateState(Preference preference) { public final void updateState(Preference preference) {
preference preference
.setVisible(mController.getAutoMode() == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME); .setVisible(mColorDisplayManager.getNightDisplayAutoMode()
== ColorDisplayManager.AUTO_MODE_CUSTOM_TIME);
preference.setSummary(mTimeFormatter.getFormattedTimeString( preference.setSummary(mTimeFormatter.getFormattedTimeString(
mController.getCustomEndTime())); mColorDisplayManager.getNightDisplayCustomEndTime()));
} }
} }

View File

@@ -19,18 +19,17 @@ package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
public class NightDisplayCustomStartTimePreferenceController extends BasePreferenceController { public class NightDisplayCustomStartTimePreferenceController extends BasePreferenceController {
private ColorDisplayController mController; private ColorDisplayManager mColorDisplayManager;
private NightDisplayTimeFormatter mTimeFormatter; private NightDisplayTimeFormatter mTimeFormatter;
public NightDisplayCustomStartTimePreferenceController(Context context, String key) { public NightDisplayCustomStartTimePreferenceController(Context context, String key) {
super(context, key); super(context, key);
mController = new ColorDisplayController(context); mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
mTimeFormatter = new NightDisplayTimeFormatter(context); mTimeFormatter = new NightDisplayTimeFormatter(context);
} }
@@ -43,8 +42,9 @@ public class NightDisplayCustomStartTimePreferenceController extends BasePrefere
@Override @Override
public final void updateState(Preference preference) { public final void updateState(Preference preference) {
preference preference
.setVisible(mController.getAutoMode() == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME); .setVisible(mColorDisplayManager.getNightDisplayAutoMode()
== ColorDisplayManager.AUTO_MODE_CUSTOM_TIME);
preference.setSummary(mTimeFormatter.getFormattedTimeString( preference.setSummary(mTimeFormatter.getFormattedTimeString(
mController.getCustomStartTime())); mColorDisplayManager.getNightDisplayCustomStartTime()));
} }
} }

View File

@@ -22,26 +22,24 @@ import android.text.TextUtils;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import androidx.annotation.VisibleForTesting;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.core.SliderPreferenceController; import com.android.settings.core.SliderPreferenceController;
import com.android.settings.widget.SeekBarPreference; import com.android.settings.widget.SeekBarPreference;
public class NightDisplayIntensityPreferenceController extends SliderPreferenceController { public class NightDisplayIntensityPreferenceController extends SliderPreferenceController {
private ColorDisplayController mController; private ColorDisplayManager mColorDisplayManager;
public NightDisplayIntensityPreferenceController(Context context, String key) { public NightDisplayIntensityPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mController = new ColorDisplayController(context); mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
} }
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (!ColorDisplayManager.isNightDisplayAvailable(mContext)) { if (!ColorDisplayManager.isNightDisplayAvailable(mContext)) {
return UNSUPPORTED_ON_DEVICE; return UNSUPPORTED_ON_DEVICE;
} else if (!mController.isActivated()) { } else if (!mColorDisplayManager.isNightDisplayActivated()) {
return DISABLED_DEPENDENT_SETTING; return DISABLED_DEPENDENT_SETTING;
} }
return AVAILABLE; return AVAILABLE;
@@ -63,22 +61,22 @@ public class NightDisplayIntensityPreferenceController extends SliderPreferenceC
@Override @Override
public final void updateState(Preference preference) { public final void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
preference.setEnabled(mController.isActivated()); preference.setEnabled(mColorDisplayManager.isNightDisplayActivated());
} }
@Override @Override
public int getSliderPosition() { public int getSliderPosition() {
return convertTemperature(mController.getColorTemperature()); return convertTemperature(mColorDisplayManager.getNightDisplayColorTemperature());
} }
@Override @Override
public boolean setSliderPosition(int position) { public boolean setSliderPosition(int position) {
return mController.setColorTemperature(convertTemperature(position)); return mColorDisplayManager.setNightDisplayColorTemperature(convertTemperature(position));
} }
@Override @Override
public int getMaxSteps() { public int getMaxSteps() {
return convertTemperature(mController.getMinimumColorTemperature()); return convertTemperature(ColorDisplayManager.getMinimumColorTemperature(mContext));
} }
/** /**
@@ -87,6 +85,6 @@ public class NightDisplayIntensityPreferenceController extends SliderPreferenceC
* adjustment status of the input. * adjustment status of the input.
*/ */
private int convertTemperature(int temperature) { private int convertTemperature(int temperature) {
return mController.getMaximumColorTemperature() - temperature; return ColorDisplayManager.getMaximumColorTemperature(mContext) - temperature;
} }
} }

View File

@@ -15,6 +15,7 @@
package com.android.settings.display; package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.hardware.display.ColorDisplayManager;
import android.util.AttributeSet; import android.util.AttributeSet;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
@@ -26,12 +27,14 @@ import java.time.LocalTime;
public class NightDisplayPreference extends SwitchPreference public class NightDisplayPreference extends SwitchPreference
implements ColorDisplayController.Callback { implements ColorDisplayController.Callback {
private ColorDisplayManager mColorDisplayManager;
private ColorDisplayController mController; private ColorDisplayController mController;
private NightDisplayTimeFormatter mTimeFormatter; private NightDisplayTimeFormatter mTimeFormatter;
public NightDisplayPreference(Context context, AttributeSet attrs) { public NightDisplayPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
mController = new ColorDisplayController(context); mController = new ColorDisplayController(context);
mTimeFormatter = new NightDisplayTimeFormatter(context); mTimeFormatter = new NightDisplayTimeFormatter(context);
} }
@@ -76,6 +79,6 @@ public class NightDisplayPreference extends SwitchPreference
} }
private void updateSummary() { private void updateSummary() {
setSummary(mTimeFormatter.getAutoModeTimeSummary(getContext(), mController)); setSummary(mTimeFormatter.getAutoModeTimeSummary(getContext(), mColorDisplayManager));
} }
} }

View File

@@ -16,7 +16,6 @@ package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
@@ -37,8 +36,8 @@ public class NightDisplayPreferenceController extends AbstractPreferenceControll
if (!isEnabled) { if (!isEnabled) {
return true; return true;
} }
final ColorDisplayController controller = new ColorDisplayController(context); final ColorDisplayManager manager = context.getSystemService(ColorDisplayManager.class);
return controller.getAutoMode() != ColorDisplayManager.AUTO_MODE_DISABLED; return manager.getNightDisplayAutoMode() != ColorDisplayManager.AUTO_MODE_DISABLED;
} }
@Override @Override

View File

@@ -50,6 +50,7 @@ public class NightDisplaySettings extends DashboardFragment
private static final int DIALOG_START_TIME = 0; private static final int DIALOG_START_TIME = 0;
private static final int DIALOG_END_TIME = 1; private static final int DIALOG_END_TIME = 1;
private ColorDisplayManager mColorDisplayManager;
private ColorDisplayController mController; private ColorDisplayController mController;
@Override @Override
@@ -57,6 +58,7 @@ public class NightDisplaySettings extends DashboardFragment
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
final Context context = getContext(); final Context context = getContext();
mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
mController = new ColorDisplayController(context); mController = new ColorDisplayController(context);
} }
@@ -93,9 +95,9 @@ public class NightDisplaySettings extends DashboardFragment
if (dialogId == DIALOG_START_TIME || dialogId == DIALOG_END_TIME) { if (dialogId == DIALOG_START_TIME || dialogId == DIALOG_END_TIME) {
final LocalTime initialTime; final LocalTime initialTime;
if (dialogId == DIALOG_START_TIME) { if (dialogId == DIALOG_START_TIME) {
initialTime = mController.getCustomStartTime(); initialTime = mColorDisplayManager.getNightDisplayCustomStartTime();
} else { } else {
initialTime = mController.getCustomEndTime(); initialTime = mColorDisplayManager.getNightDisplayCustomEndTime();
} }
final Context context = getContext(); final Context context = getContext();
@@ -103,9 +105,9 @@ public class NightDisplaySettings extends DashboardFragment
return new TimePickerDialog(context, (view, hourOfDay, minute) -> { return new TimePickerDialog(context, (view, hourOfDay, minute) -> {
final LocalTime time = LocalTime.of(hourOfDay, minute); final LocalTime time = LocalTime.of(hourOfDay, minute);
if (dialogId == DIALOG_START_TIME) { if (dialogId == DIALOG_START_TIME) {
mController.setCustomStartTime(time); mColorDisplayManager.setNightDisplayCustomStartTime(time);
} else { } else {
mController.setCustomEndTime(time); mColorDisplayManager.setNightDisplayCustomEndTime(time);
} }
}, initialTime.getHour(), initialTime.getMinute(), use24HourFormat); }, initialTime.getHour(), initialTime.getMinute(), use24HourFormat);
} }

View File

@@ -19,7 +19,6 @@ package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.R; import com.android.settings.R;
import java.text.DateFormat; import java.text.DateFormat;
@@ -46,22 +45,23 @@ public class NightDisplayTimeFormatter {
return mTimeFormatter.format(c.getTime()); return mTimeFormatter.format(c.getTime());
} }
public String getAutoModeTimeSummary(Context context, ColorDisplayController controller) { public String getAutoModeTimeSummary(Context context, ColorDisplayManager manager) {
final int summaryFormatResId = controller.isActivated() ? R.string.night_display_summary_on final int summaryFormatResId =
manager.isNightDisplayActivated() ? R.string.night_display_summary_on
: R.string.night_display_summary_off; : R.string.night_display_summary_off;
return context.getString(summaryFormatResId, getAutoModeSummary(context, controller)); return context.getString(summaryFormatResId, getAutoModeSummary(context, manager));
} }
private String getAutoModeSummary(Context context, ColorDisplayController controller) { private String getAutoModeSummary(Context context, ColorDisplayManager manager) {
final boolean isActivated = controller.isActivated(); final boolean isActivated = manager.isNightDisplayActivated();
final int autoMode = controller.getAutoMode(); final int autoMode = manager.getNightDisplayAutoMode();
if (autoMode == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME) { if (autoMode == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME) {
if (isActivated) { if (isActivated) {
return context.getString(R.string.night_display_summary_on_auto_mode_custom, return context.getString(R.string.night_display_summary_on_auto_mode_custom,
getFormattedTimeString(controller.getCustomEndTime())); getFormattedTimeString(manager.getNightDisplayCustomEndTime()));
} else { } else {
return context.getString(R.string.night_display_summary_off_auto_mode_custom, return context.getString(R.string.night_display_summary_off_auto_mode_custom,
getFormattedTimeString(controller.getCustomStartTime())); getFormattedTimeString(manager.getNightDisplayCustomStartTime()));
} }
} else if (autoMode == ColorDisplayManager.AUTO_MODE_TWILIGHT) { } else if (autoMode == ColorDisplayManager.AUTO_MODE_TWILIGHT) {
return context.getString(isActivated return context.getString(isActivated