Commit 3cec501c authored by Eric Ye's avatar Eric Ye Committed by Commit Bot

[Cast] Change screen power off API

Due to internal changes, it makes more sense to have display settings
manager own whether the screen should power off, so reverting the screen
off API to that state and adding a new call for setting whether it
should power off.

BUG=b/156411764
TEST=Build, flash to device, check behaviour

Change-Id: Ib395a96ef7385640ee0bd36e0907f96c73dcd85a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2316666Reviewed-by: default avatarAlex Gough <ajgo@chromium.org>
Reviewed-by: default avatarDaniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Eric Ye <ericye@google.com>
Cr-Commit-Position: refs/heads/master@{#791313}
parent c13abfc6
...@@ -59,6 +59,7 @@ DisplaySettingsManagerImpl::DisplaySettingsManagerImpl( ...@@ -59,6 +59,7 @@ DisplaySettingsManagerImpl::DisplaySettingsManagerImpl(
screen_on_(true), screen_on_(true),
#if defined(USE_AURA) #if defined(USE_AURA)
screen_power_on_(true), screen_power_on_(true),
allow_screen_power_off_(false),
#endif // defined(USE_AURA) #endif // defined(USE_AURA)
color_temperature_animation_(std::make_unique<ColorTemperatureAnimation>( color_temperature_animation_(std::make_unique<ColorTemperatureAnimation>(
window_manager_, window_manager_,
...@@ -189,13 +190,12 @@ void DisplaySettingsManagerImpl::OnDisplayOffTimeoutCompleted() { ...@@ -189,13 +190,12 @@ void DisplaySettingsManagerImpl::OnDisplayOffTimeoutCompleted() {
screen_power_on_ = false; screen_power_on_ = false;
} }
void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on, void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on) {
bool display_power) {
// Allow this to run if screen_on == screen_on_ == false IF // Allow this to run if screen_on == screen_on_ == false IF
// previously, the screen was turned off without powering off the screen // previously, the screen was turned off without powering off the screen
// and we want to power it off this time // and we want to power it off this time
if (screen_on == screen_on_ && if (screen_on == screen_on_ &&
!(!screen_on && !display_power && screen_power_on_)) { !(!screen_on && allow_screen_power_off_ && screen_power_on_)) {
return; return;
} }
...@@ -210,7 +210,7 @@ void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on, ...@@ -210,7 +210,7 @@ void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on,
} else { } else {
UpdateBrightness(kScreenOnOffDuration); UpdateBrightness(kScreenOnOffDuration);
window_manager_->SetTouchInputDisabled(!screen_on_); window_manager_->SetTouchInputDisabled(!screen_on_);
if (!screen_on && !display_power) { if (!screen_on && allow_screen_power_off_) {
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
...@@ -220,9 +220,12 @@ void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on, ...@@ -220,9 +220,12 @@ void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on,
} }
} }
} }
void DisplaySettingsManagerImpl::SetAllowScreenPowerOff(bool allow_power_off) {
allow_screen_power_off_ = allow_power_off;
}
#else #else
void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on, void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on) {
bool display_power) {
if (screen_on == screen_on_) { if (screen_on == screen_on_) {
return; return;
} }
...@@ -233,6 +236,7 @@ void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on, ...@@ -233,6 +236,7 @@ void DisplaySettingsManagerImpl::SetScreenOn(bool screen_on,
UpdateBrightness(kScreenOnOffDuration); UpdateBrightness(kScreenOnOffDuration);
window_manager_->SetTouchInputDisabled(!screen_on_); window_manager_->SetTouchInputDisabled(!screen_on_);
} }
void DisplaySettingsManagerImpl::SetAllowScreenPowerOff(bool allow_power_off) {}
#endif #endif
void DisplaySettingsManagerImpl::AddDisplaySettingsObserver( void DisplaySettingsManagerImpl::AddDisplaySettingsObserver(
......
...@@ -62,7 +62,8 @@ class DisplaySettingsManagerImpl : public DisplaySettingsManager, ...@@ -62,7 +62,8 @@ class DisplaySettingsManagerImpl : public DisplaySettingsManager,
void SetBrightness(float brightness) override; void SetBrightness(float brightness) override;
void SetBrightnessSmooth(float brightness, base::TimeDelta duration) override; void SetBrightnessSmooth(float brightness, base::TimeDelta duration) override;
void ResetBrightness() override; void ResetBrightness() override;
void SetScreenOn(bool screen_on, bool display_power) override; void SetScreenOn(bool screen_on) override;
void SetAllowScreenPowerOff(bool allow_power_off) override;
private: private:
// mojom::DisplaySettingsObserver implementation // mojom::DisplaySettingsObserver implementation
...@@ -87,6 +88,7 @@ class DisplaySettingsManagerImpl : public DisplaySettingsManager, ...@@ -87,6 +88,7 @@ class DisplaySettingsManagerImpl : public DisplaySettingsManager,
bool screen_on_; bool screen_on_;
#if defined(USE_AURA) #if defined(USE_AURA)
bool screen_power_on_; bool screen_power_on_;
bool allow_screen_power_off_;
#endif // defined(USE_AURA) #endif // defined(USE_AURA)
std::unique_ptr<ColorTemperatureAnimation> color_temperature_animation_; std::unique_ptr<ColorTemperatureAnimation> color_temperature_animation_;
......
...@@ -28,10 +28,10 @@ interface DisplaySettings { ...@@ -28,10 +28,10 @@ interface DisplaySettings {
// Sets whether screen should be on. If set to false, then screen will always // Sets whether screen should be on. If set to false, then screen will always
// be off and other settings will not be applied. // be off and other settings will not be applied.
// |display_on| is false, and |display_power| is false, power off the SetScreenOn(bool display_on);
// display. |display_power| is ignored if |display_on| is true (since
// display cannot turn on without display power) // Sets whether the screen should power off when SetScreenOn(false) is called.
SetScreenOn(bool display_on, bool display_power); SetAllowScreenPowerOff(bool allow_power_off);
// Adds an observer to DisplaySettings. // Adds an observer to DisplaySettings.
AddDisplaySettingsObserver(pending_remote<DisplaySettingsObserver> observer); AddDisplaySettingsObserver(pending_remote<DisplaySettingsObserver> observer);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment