| Index: components/arc/power/arc_power_bridge.cc
|
| diff --git a/components/arc/power/arc_power_bridge.cc b/components/arc/power/arc_power_bridge.cc
|
| index a9a47f52230fa89212c416b9dfca5a0d4cbbd55d..7d7842cc2ae6a91e614646fa6c80545f26e5602b 100644
|
| --- a/components/arc/power/arc_power_bridge.cc
|
| +++ b/components/arc/power/arc_power_bridge.cc
|
| @@ -17,7 +17,7 @@
|
| namespace arc {
|
|
|
| ArcPowerBridge::ArcPowerBridge(ArcBridgeService* bridge_service)
|
| - : ArcService(bridge_service), binding_(this) {
|
| + : ArcService(bridge_service), binding_(this), weak_ptr_factory_(this) {
|
| arc_bridge_service()->power()->AddObserver(this);
|
| }
|
|
|
| @@ -34,6 +34,11 @@ void ArcPowerBridge::OnInstanceReady() {
|
| ash::Shell::GetInstance()->display_configurator()->AddObserver(this);
|
| chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
|
| AddObserver(this);
|
| + chromeos::DBusThreadManager::Get()
|
| + ->GetPowerManagerClient()
|
| + ->GetScreenBrightnessPercent(
|
| + base::Bind(&ArcPowerBridge::UpdateAndroidScreenBrightness,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| void ArcPowerBridge::OnInstanceClosed() {
|
| @@ -63,6 +68,10 @@ void ArcPowerBridge::SuspendDone(const base::TimeDelta& sleep_duration) {
|
| power_instance->Resume();
|
| }
|
|
|
| +void ArcPowerBridge::BrightnessChanged(int level, bool user_initiated) {
|
| + UpdateAndroidScreenBrightness(static_cast<double>(level));
|
| +}
|
| +
|
| void ArcPowerBridge::OnPowerStateChanged(
|
| chromeos::DisplayPowerState power_state) {
|
| mojom::PowerInstance* power_instance = ARC_GET_INSTANCE_FOR_METHOD(
|
| @@ -126,6 +135,12 @@ void ArcPowerBridge::IsDisplayOn(const IsDisplayOnCallback& callback) {
|
| ash::Shell::GetInstance()->display_configurator()->IsDisplayOn());
|
| }
|
|
|
| +void ArcPowerBridge::OnScreenBrightnessUpdateRequest(double percent) {
|
| + chromeos::DBusThreadManager::Get()
|
| + ->GetPowerManagerClient()
|
| + ->SetScreenBrightnessPercent(percent, true);
|
| +}
|
| +
|
| void ArcPowerBridge::ReleaseAllDisplayWakeLocks() {
|
| if (!chromeos::PowerPolicyController::IsInitialized()) {
|
| LOG(WARNING) << "PowerPolicyController is not available";
|
| @@ -140,4 +155,12 @@ void ArcPowerBridge::ReleaseAllDisplayWakeLocks() {
|
| wake_locks_.clear();
|
| }
|
|
|
| +void ArcPowerBridge::UpdateAndroidScreenBrightness(double percent) {
|
| + mojom::PowerInstance* power_instance = ARC_GET_INSTANCE_FOR_METHOD(
|
| + arc_bridge_service()->power(), UpdateScreenBrightnessSettings);
|
| + if (!power_instance)
|
| + return;
|
| + power_instance->UpdateScreenBrightnessSettings(percent);
|
| +}
|
| +
|
| } // namespace arc
|
|
|