Commit 6b6b446d authored by Min Chen's avatar Min Chen Committed by Commit Bot

Parse power button position switch accroding to the updated format.

Bug: 818331
Change-Id: I811f3f12af9c75e9be2581d38e89093deb023c0a
Reviewed-on: https://chromium-review.googlesource.com/1050877
Commit-Queue: Min Chen <minch@chromium.org>
Reviewed-by: default avatarDan Erat <derat@chromium.org>
Reviewed-by: default avatarQiang Xu <warx@google.com>
Cr-Commit-Position: refs/heads/master@{#557246}
parent fbeba958
...@@ -90,13 +90,11 @@ constexpr base::TimeDelta PowerButtonController::kIgnoreRepeatedButtonUpDelay; ...@@ -90,13 +90,11 @@ constexpr base::TimeDelta PowerButtonController::kIgnoreRepeatedButtonUpDelay;
constexpr base::TimeDelta constexpr base::TimeDelta
PowerButtonController::kIgnorePowerButtonAfterResumeDelay; PowerButtonController::kIgnorePowerButtonAfterResumeDelay;
constexpr const char* PowerButtonController::kPositionField; constexpr const char* PowerButtonController::kEdgeField;
constexpr const char* PowerButtonController::kXField; constexpr const char* PowerButtonController::kLeftEdge;
constexpr const char* PowerButtonController::kYField; constexpr const char* PowerButtonController::kRightEdge;
constexpr const char* PowerButtonController::kLeftPosition; constexpr const char* PowerButtonController::kTopEdge;
constexpr const char* PowerButtonController::kRightPosition; constexpr const char* PowerButtonController::kBottomEdge;
constexpr const char* PowerButtonController::kTopPosition;
constexpr const char* PowerButtonController::kBottomPosition;
// Maintain active state of the given |widget|. Sets |widget| to always render // Maintain active state of the given |widget|. Sets |widget| to always render
// as active if it's not already initially configured that way. Resets the // as active if it's not already initially configured that way. Resets the
...@@ -558,42 +556,35 @@ void PowerButtonController::ParsePowerButtonPositionSwitch() { ...@@ -558,42 +556,35 @@ void PowerButtonController::ParsePowerButtonPositionSwitch() {
return; return;
} }
std::string str_power_button_position; std::string edge, position;
if (!position_info->GetString(kPositionField, &str_power_button_position)) { if (!position_info->GetString(kEdgeField, &edge) ||
LOG(ERROR) << kPositionField << " field is always needed if " !position_info->GetDouble(kPositionField,
<< switches::kAshPowerButtonPosition << " is set"; &power_button_offset_percentage_)) {
LOG(ERROR) << "Both " << kEdgeField << " field and " << kPositionField
<< " are always needed if " << switches::kAshPowerButtonPosition
<< " is set";
return; return;
} }
if (str_power_button_position == kLeftPosition) { if (edge == kLeftEdge) {
power_button_position_ = PowerButtonPosition::LEFT; power_button_position_ = PowerButtonPosition::LEFT;
} else if (str_power_button_position == kRightPosition) { } else if (edge == kRightEdge) {
power_button_position_ = PowerButtonPosition::RIGHT; power_button_position_ = PowerButtonPosition::RIGHT;
} else if (str_power_button_position == kTopPosition) { } else if (edge == kTopEdge) {
power_button_position_ = PowerButtonPosition::TOP; power_button_position_ = PowerButtonPosition::TOP;
} else if (str_power_button_position == kBottomPosition) { } else if (edge == kBottomEdge) {
power_button_position_ = PowerButtonPosition::BOTTOM; power_button_position_ = PowerButtonPosition::BOTTOM;
} else { } else {
LOG(ERROR) << "Invalid " << kPositionField << " field in " LOG(ERROR) << "Invalid " << kEdgeField << " field in "
<< switches::kAshPowerButtonPosition; << switches::kAshPowerButtonPosition;
return; return;
} }
if (power_button_position_ == PowerButtonPosition::LEFT || if (power_button_offset_percentage_ < 0 ||
power_button_position_ == PowerButtonPosition::RIGHT) { power_button_offset_percentage_ > 1.0f) {
if (!position_info->GetDouble(kYField, &power_button_offset_percentage_)) { LOG(ERROR) << "Invalid " << kPositionField << " field in "
LOG(ERROR) << kYField << " not set in " << switches::kAshPowerButtonPosition;
<< switches::kAshPowerButtonPosition; power_button_position_ = PowerButtonPosition::NONE;
power_button_position_ = PowerButtonPosition::NONE;
return;
}
} else {
if (!position_info->GetDouble(kXField, &power_button_offset_percentage_)) {
LOG(ERROR) << kXField << " not set in "
<< switches::kAshPowerButtonPosition;
power_button_position_ = PowerButtonPosition::NONE;
return;
}
} }
} }
......
...@@ -78,15 +78,14 @@ class ASH_EXPORT PowerButtonController ...@@ -78,15 +78,14 @@ class ASH_EXPORT PowerButtonController
// Value of switches::kAshPowerButtonPosition stored in JSON format. These // Value of switches::kAshPowerButtonPosition stored in JSON format. These
// are the field names of the flag. // are the field names of the flag.
static constexpr const char* kEdgeField = "edge";
static constexpr const char* kPositionField = "position"; static constexpr const char* kPositionField = "position";
static constexpr const char* kXField = "x";
static constexpr const char* kYField = "y"; // Value of |kEdgeField|.
static constexpr const char* kLeftEdge = "left";
// Value of |kPositionField|. static constexpr const char* kRightEdge = "right";
static constexpr const char* kLeftPosition = "left"; static constexpr const char* kTopEdge = "top";
static constexpr const char* kRightPosition = "right"; static constexpr const char* kBottomEdge = "bottom";
static constexpr const char* kTopPosition = "top";
static constexpr const char* kBottomPosition = "bottom";
explicit PowerButtonController( explicit PowerButtonController(
BacklightsForcedOffSetter* backlights_forced_off_setter); BacklightsForcedOffSetter* backlights_forced_off_setter);
......
...@@ -1024,31 +1024,26 @@ class PowerButtonControllerWithPositionTest ...@@ -1024,31 +1024,26 @@ class PowerButtonControllerWithPositionTest
base::DictionaryValue position_info; base::DictionaryValue position_info;
switch (power_button_position_) { switch (power_button_position_) {
case PowerButtonPosition::LEFT: case PowerButtonPosition::LEFT:
position_info.SetString(PowerButtonController::kPositionField, position_info.SetString(PowerButtonController::kEdgeField,
PowerButtonController::kLeftPosition); PowerButtonController::kLeftEdge);
break; break;
case PowerButtonPosition::RIGHT: case PowerButtonPosition::RIGHT:
position_info.SetString(PowerButtonController::kPositionField, position_info.SetString(PowerButtonController::kEdgeField,
PowerButtonController::kRightPosition); PowerButtonController::kRightEdge);
break; break;
case PowerButtonPosition::TOP: case PowerButtonPosition::TOP:
position_info.SetString(PowerButtonController::kPositionField, position_info.SetString(PowerButtonController::kEdgeField,
PowerButtonController::kTopPosition); PowerButtonController::kTopEdge);
break; break;
case PowerButtonPosition::BOTTOM: case PowerButtonPosition::BOTTOM:
position_info.SetString(PowerButtonController::kPositionField, position_info.SetString(PowerButtonController::kEdgeField,
PowerButtonController::kBottomPosition); PowerButtonController::kBottomEdge);
break; break;
default: default:
return; return;
} }
if (IsLeftOrRightPosition()) { position_info.SetDouble(PowerButtonController::kPositionField,
position_info.SetDouble(PowerButtonController::kYField, kPowerButtonPercentage);
kPowerButtonPercentage);
} else {
position_info.SetDouble(PowerButtonController::kXField,
kPowerButtonPercentage);
}
std::string json_position_info; std::string json_position_info;
base::JSONWriter::Write(position_info, &json_position_info); base::JSONWriter::Write(position_info, &json_position_info);
......
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