M module-apps/application-call/ApplicationCall.cpp => module-apps/application-call/ApplicationCall.cpp +3 -0
@@ 41,6 41,7 @@ namespace app
});
statusBarManager->enableIndicators(
{Indicator::Signal, Indicator::Time, Indicator::Battery, Indicator::SimCard});
+
addActionReceiver(manager::actions::Call, [this](auto &&data) {
if (auto msg = dynamic_cast<app::CallSwitchData *>(data.get()); msg != nullptr) {
handleCallEvent(msg->getPhoneNumber().getEntered(), ExternalRequest::True);
@@ 159,6 160,7 @@ namespace app
connect(typeid(cellular::CallEndedNotification), [&](sys::Message *request) {
callModel->setState(app::call::CallState::Ended);
+ switchWindow(app::window::name_call);
return sys::MessageNone{};
});
@@ 166,6 168,7 @@ namespace app
auto message = static_cast<cellular::CallStartedNotification *>(request);
callModel->setPhoneNumber(message->getNumber());
callModel->setState(app::call::CallState::Outgoing);
+ switchWindow(app::window::name_call);
return sys::MessageNone{};
});
M module-apps/application-call/presenter/CallPresenter.cpp => module-apps/application-call/presenter/CallPresenter.cpp +5 -0
@@ 171,4 171,9 @@ namespace app::call
{
return model->getPhoneNumber();
}
+
+ void CallWindowContract::Presenter::handleDelayedViewClose()
+ {
+ model->setState(CallState::None);
+ }
} // namespace app::call
M module-apps/application-call/presenter/CallPresenter.hpp => module-apps/application-call/presenter/CallPresenter.hpp +2 -0
@@ 51,6 51,8 @@ namespace app::call
void sendSms(const UTF8 &smsBody);
utils::PhoneNumber getPhoneNumber();
+ void handleDelayedViewClose();
+
private:
std::shared_ptr<app::call::AbstractCallModel> model;
UTF8 getCallerId();
M module-apps/application-call/windows/CallWindow.cpp => module-apps/application-call/windows/CallWindow.cpp +2 -1
@@ 201,8 201,9 @@ namespace gui
{
timerCallback = [this](Item &, sys::Timer &timer) {
LOG_DEBUG("Delayed exit timer callback");
- app::manager::Controller::switchBack(application);
+ presenter->handleDelayedViewClose();
application->popCurrentWindow();
+ app::manager::Controller::switchBack(application);
return true;
};
delayedExitTimer =
M module-apps/application-phonebook/models/PhonebookModel.cpp => module-apps/application-phonebook/models/PhonebookModel.cpp +0 -1
@@ 198,7 198,6 @@ void PhonebookModel::activateContactSelectCallback()
std::unique_ptr<PhonebookSearchRequest> data = std::make_unique<PhonebookSearchRequest>();
data->result = item->contact;
data->setDescription("PhonebookSearchRequest");
-
return app::manager::Controller::switchBack(
application,
std::make_unique<app::manager::SwitchBackRequest>(application->GetName(), std::move(data)));