void addListener(IAppListener &l);
void removeListener(IAppListener &l);
bool isPause() const;
+ bool isTerminating() const;
void updateActiveNotifPolicy();
Window &getWindow();
std::list<IAppListener*> m_Listeners;
NaviFrameController *m_pNaviFrame;
bool m_IsPause;
+ bool m_IsTerminating;
bool m_NeedToCloseApp;
};
* @param[in] frame FrameController for pop
*/
void pop(FrameController &frame);
- using NaviFrameView::pop;
+
+ /**
+ * @brief Pops top item from Naviframe.
+ * @param[in] count of frames for pop.
+ */
+ void pop(int count);
/**
* @brief Executes app control command of default type.
, m_pSysSettingsManager(nullptr)
, m_pNaviFrame(nullptr)
, m_IsPause(true)
+ , m_IsTerminating(false)
, m_NeedToCloseApp(true)
{
MSG_ASSERT(!appInstance, "Previous instance of application is not null");
void App::exit()
{
// TODO: Temporary solution
+ m_IsTerminating = true;
terminate();
/*
if (m_NeedToCloseApp)
return m_IsPause;
}
+bool App::isTerminating() const
+{
+ return m_IsTerminating;
+}
+
void App::addTheme(const std::string &themePath)
{
std::string path = PathUtils::getResourcePath(themePath);
#include "ToastPopup.h"
#include <memory>
+#include <algorithm>
using namespace Msg;
}
}
+void NaviFrameController::pop(int count)
+{
+ for (int i = 0; i < count; ++i) {
+ auto *frame = getTopFrame();
+ if (frame)
+ pop(*frame);
+ }
+}
+
void NaviFrameController::destroy()
{
NaviFrameView::destroy();
bool read(Message &msg);
bool readBody(Message &msg);
bool readAddress(Message &msg);
+ void navigateAfterSent();
// Popup:
void showMaxCharactersPopup();
#include "MsgEngine.h"
#include "SystemSettingsManager.h"
#include "PopupManager.h"
+#include "ConvFrame.h"
using namespace Msg;
}
}
+void MsgBodyFrame::navigateAfterSent()
+{
+ // Close composer: BodyFrame, RecipFrame
+ getParent().pop(2);
+
+ if (!App::getInst().isTerminating()) {
+ // Navigate to ConvFrame
+ if (m_ThreadId.isValid()) {
+ auto *conv = new ConvFrame(getParent());
+ conv->setThreadId(m_ThreadId);
+ getParent().push(*conv);
+ }
+ }
+}
+
void MsgBodyFrame::showMaxCharactersPopup()
{
ToastPopup::toast(msgt("WDS_WIFI_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"));
MSG_LOG("Id = ", id);
MSG_LOG("Network status = ", networkStatus);
- if (m_pSendingPopup &&
- m_ReqtId == id &&
- networkStatus != Message::NS_Send_Pending &&
- networkStatus != Message::NS_Sending) {
+ if (m_pSendingPopup && m_ReqtId == id && networkStatus != Message::NS_Sending) {
if (networkStatus == Message::NS_Send_Success) {
m_pSendingPopup->setIcon(IconTextPopup::CheckIcon);
m_pSendingPopup->setText(msgt("WDS_WNOTI_TPOP_SENT_ABB"));
+ m_pSendingPopup->setTimeOut();
} else if (networkStatus == Message::NS_Send_Fail) {
m_pSendingPopup->setIcon(IconTextPopup::FailedIcon);
m_pSendingPopup->setText(msgt("WDS_MSG_TPOP_SENDING_FAILED_ABB"));
+ m_pSendingPopup->setTimeOut();
+ } else if (networkStatus != Message::NS_Send_Pending) {
+ m_pSendingPopup->destroy();
+ showSentWhenServiceBecomesAvailablePopup();
}
- m_pSendingPopup->setTimeOut();
+ navigateAfterSent();
}
}
break;
case Message::NS_Sending:
+ case Message::NS_Send_Pending:
setInfoStatus(ConvListViewItem::ProgressStatus);
break;
void showSelectPopup();
void navigateToConvFrame(ThreadId id);
+ void navigateToComposeFrame();
private:
// NaviFrameItem:
getParent().push(*frame);
}
+void MsgThreadFrame::navigateToComposeFrame()
+{
+ auto *recipFrame = new RecipFrame(getParent());
+ getParent().push(*recipFrame);
+}
+
void MsgThreadFrame::onAttached(ViewItem &item)
{
MSG_LOG("");
void MsgThreadFrame::onNewMessageClicked(MoreOption &obj)
{
MSG_LOG("");
- auto *recipFrame = new RecipFrame(getParent());
- getParent().push(*recipFrame);
+ navigateToComposeFrame();
}
void MsgThreadFrame::onDeleteClicked(MoreOption &obj)
void MsgThreadFrame::onComposeButtonClicked(ThreadList &list)
{
MSG_LOG("");
+ navigateToComposeFrame();
}
void MsgThreadFrame::onContactsButtonClicked(ThreadList &list)