M module-apps/apps-common/ApplicationCommon.cpp => module-apps/apps-common/ApplicationCommon.cpp +12 -4
@@ 540,9 540,17 @@ namespace app
}
if (!isCurrentWindow(msg->getWindowName())) {
if (!windowsStack.isEmpty()) {
- const auto closeReason = msg->getReason() == SwitchReason::PhoneLock
- ? gui::Window::CloseReason::PhoneLock
- : gui::Window::CloseReason::WindowSwitch;
+ auto closeReason = gui::Window::CloseReason::WindowSwitch;
+ switch (msg->getReason()) {
+ case SwitchReason::PhoneLock:
+ closeReason = gui::Window::CloseReason::PhoneLock;
+ break;
+ case SwitchReason::Popup:
+ closeReason = gui::Window::CloseReason::Popup;
+ break;
+ default:
+ break;
+ }
getCurrentWindow()->onClose(closeReason);
}
setActiveWindow(msg->getWindowName());
@@ 919,7 927,7 @@ namespace app
std::make_unique<gui::AlarmPopupRequestParams>(popupParams));
}
else {
- switchWindow(gui::popup::resolveWindowName(id));
+ switchWindow(gui::popup::resolveWindowName(id), gui::ShowMode::GUI_SHOW_INIT, nullptr, SwitchReason::Popup);
}
}
M module-apps/apps-common/ApplicationCommon.hpp => module-apps/apps-common/ApplicationCommon.hpp +2 -1
@@ 81,7 81,8 @@ namespace app
enum class SwitchReason
{
SwitchRequest,
- PhoneLock
+ PhoneLock,
+ Popup
};
struct StartInBackground
M module-gui/gui/widgets/Window.hpp => module-gui/gui/widgets/Window.hpp +2 -1
@@ 39,7 39,8 @@ namespace gui
{
ApplicationClose,
WindowSwitch,
- PhoneLock
+ PhoneLock,
+ Popup
};
Window() = delete;
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp +3 -1
@@ 68,6 68,8 @@ namespace gui
void BellSettingsBedtimeToneWindow::onClose(CloseReason reason)
{
- presenter->eraseProviderData();
+ if (reason != CloseReason::Popup) {
+ presenter->eraseProviderData();
+ }
}
} /* namespace gui */
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsFrontlightWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsFrontlightWindow.cpp +4 -2
@@ 64,8 64,10 @@ namespace gui
window::bell_finished::defaultName,
BellFinishedWindowData::Factory::create("circle_success_big", window::name::bellSettingsAdvanced));
}
- void BellSettingsFrontlightWindow::onClose(Window::CloseReason)
+ void BellSettingsFrontlightWindow::onClose(Window::CloseReason reason)
{
- presenter->eraseProviderData();
+ if (reason != CloseReason::Popup) {
+ presenter->eraseProviderData();
+ }
}
} /* namespace gui */
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp +4 -2
@@ 71,8 71,10 @@ namespace gui
window::bell_finished::defaultName,
BellFinishedWindowData::Factory::create("circle_success_big", BellSettingsAlarmSettingsMenuWindow::name));
}
- void BellSettingsAlarmSettingsSnoozeWindow::onClose(Window::CloseReason)
+ void BellSettingsAlarmSettingsSnoozeWindow::onClose(Window::CloseReason reason)
{
- presenter->eraseProviderData();
+ if (reason != CloseReason::Popup) {
+ presenter->eraseProviderData();
+ }
}
} // namespace gui
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp +3 -1
@@ 72,6 72,8 @@ namespace gui
void BellSettingsAlarmSettingsWindow::onClose(CloseReason reason)
{
- presenter->eraseProviderData();
+ if (reason != CloseReason::Popup) {
+ presenter->eraseProviderData();
+ }
}
} /* namespace gui */
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsPrewakeUpWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsPrewakeUpWindow.cpp +3 -1
@@ 71,6 71,8 @@ namespace gui
void BellSettingsPrewakeUpWindow::onClose(CloseReason reason)
{
- presenter->eraseProviderData();
+ if (reason != CloseReason::Popup) {
+ presenter->eraseProviderData();
+ }
}
} /* namespace gui */