mirror of
https://github.com/InfiniTimeOrg/InfiniTime.git
synced 2024-12-28 12:14:58 +03:00
Close menu with button
This commit is contained in:
parent
18e3cc7038
commit
39157f2f19
@ -249,10 +249,10 @@ void DisplayApp::Refresh() {
|
||||
}
|
||||
} break;
|
||||
case Messages::ButtonPushed:
|
||||
if (currentApp == Apps::Clock) {
|
||||
PushMessageToSystemTask(System::Messages::GoToSleep);
|
||||
} else {
|
||||
if (!currentScreen->OnButtonPushed()) {
|
||||
if (!currentScreen->OnButtonPushed()) {
|
||||
if (currentApp == Apps::Clock) {
|
||||
PushMessageToSystemTask(System::Messages::GoToSleep);
|
||||
} else {
|
||||
LoadApp(returnToApp, returnDirection);
|
||||
brightnessController.Set(settingsController.GetBrightness());
|
||||
brightnessController.Backup();
|
||||
|
@ -54,6 +54,10 @@ bool Clock::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
|
||||
return screen->OnTouchEvent(event);
|
||||
}
|
||||
|
||||
bool Clock::OnButtonPushed() {
|
||||
return screen->OnButtonPushed();
|
||||
}
|
||||
|
||||
std::unique_ptr<Screen> Clock::WatchFaceDigitalScreen() {
|
||||
return std::make_unique<Screens::WatchFaceDigital>(app,
|
||||
dateTimeController,
|
||||
|
@ -32,6 +32,7 @@ namespace Pinetime {
|
||||
~Clock() override;
|
||||
|
||||
bool OnTouchEvent(TouchEvents event) override;
|
||||
bool OnButtonPushed() override;
|
||||
|
||||
private:
|
||||
Controllers::DateTime& dateTimeController;
|
||||
|
@ -316,6 +316,27 @@ bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void PineTimeStyle::CloseMenu() {
|
||||
settingsController.SaveSettings();
|
||||
lv_obj_set_hidden(btnNextTime, true);
|
||||
lv_obj_set_hidden(btnPrevTime, true);
|
||||
lv_obj_set_hidden(btnNextBar, true);
|
||||
lv_obj_set_hidden(btnPrevBar, true);
|
||||
lv_obj_set_hidden(btnNextBG, true);
|
||||
lv_obj_set_hidden(btnPrevBG, true);
|
||||
lv_obj_set_hidden(btnReset, true);
|
||||
lv_obj_set_hidden(btnRandom, true);
|
||||
lv_obj_set_hidden(btnClose, true);
|
||||
}
|
||||
|
||||
bool PineTimeStyle::OnButtonPushed() {
|
||||
if (!lv_obj_get_hidden(btnClose)) {
|
||||
CloseMenu();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void PineTimeStyle::SetBatteryIcon() {
|
||||
auto batteryPercent = batteryPercentRemaining.Get();
|
||||
lv_label_set_text(batteryIcon, BatteryIcon::GetBatteryIcon(batteryPercent));
|
||||
@ -532,16 +553,7 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) {
|
||||
lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG));
|
||||
}
|
||||
if (object == btnClose) {
|
||||
settingsController.SaveSettings();
|
||||
lv_obj_set_hidden(btnNextTime, true);
|
||||
lv_obj_set_hidden(btnPrevTime, true);
|
||||
lv_obj_set_hidden(btnNextBar, true);
|
||||
lv_obj_set_hidden(btnPrevBar, true);
|
||||
lv_obj_set_hidden(btnNextBG, true);
|
||||
lv_obj_set_hidden(btnPrevBG, true);
|
||||
lv_obj_set_hidden(btnReset, true);
|
||||
lv_obj_set_hidden(btnRandom, true);
|
||||
lv_obj_set_hidden(btnClose, true);
|
||||
CloseMenu();
|
||||
}
|
||||
if (object == btnSet) {
|
||||
lv_obj_set_hidden(btnSet, true);
|
||||
@ -579,4 +591,4 @@ Pinetime::Controllers::Settings::Colors PineTimeStyle::GetPrevious(Pinetime::Con
|
||||
prevColor = static_cast<Controllers::Settings::Colors>(16);
|
||||
}
|
||||
return prevColor;
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ namespace Pinetime {
|
||||
~PineTimeStyle() override;
|
||||
|
||||
bool OnTouchEvent(TouchEvents event) override;
|
||||
bool OnButtonPushed() override;
|
||||
|
||||
void Refresh() override;
|
||||
|
||||
@ -96,9 +97,10 @@ namespace Pinetime {
|
||||
Controllers::MotionController& motionController;
|
||||
|
||||
void SetBatteryIcon();
|
||||
void CloseMenu();
|
||||
|
||||
lv_task_t* taskRefresh;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user