ConvContactList *m_pContactsList;
ThreadId m_ThreadId;
bool m_IsMms; // Compose message type
+ bool m_DispIsMms; // Last displayed message type for user.
+ Ecore_Idler *m_NnotifyConvertMsgTypeIdler;
ConvList *m_pConvList;
AttachPanel m_AttachPanel;
DefferedCmd m_DefferedCmd;
, m_pContactsList(nullptr)
, m_ThreadId()
, m_IsMms(false)
+ , m_DispIsMms(false)
+ , m_NnotifyConvertMsgTypeIdler(nullptr)
, m_pConvList(nullptr)
, m_AttachPanel(getApp())
, m_pListener(nullptr)
if(m_pContactsList)
m_pContactsList->setListener(nullptr);
m_AttachPanel.setListener(nullptr);
+ if(m_NnotifyConvertMsgTypeIdler)
+ {
+ ecore_idler_del(m_NnotifyConvertMsgTypeIdler);
+ m_NnotifyConvertMsgTypeIdler = nullptr;
+ }
}
void Conversation::execCmd(const AppControlComposeRef &cmd)
void Conversation::notifyConvertMsgType()
{
- std::string notifText = m_IsMms ?
- msg("IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING") :
- (std::string)msg("IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING");
-
- notification_status_message_post(notifText.c_str());
+ if(!m_NnotifyConvertMsgTypeIdler)
+ {
+ m_NnotifyConvertMsgTypeIdler = ecore_idler_add
+ (
+ [](void *data)->Eina_Bool
+ {
+ auto *self =(Conversation*)data;
+ self->m_NnotifyConvertMsgTypeIdler = nullptr;
+ if(self->m_DispIsMms != self->m_IsMms)
+ {
+ self->m_DispIsMms = self->m_IsMms;
+ std::string notifText = self->m_IsMms ?
+ msg("IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING") :
+ (std::string)msg("IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING");
+ notification_status_message_post(notifText.c_str());
+ }
+ return false; // Delete idler
+ },
+ this
+ );
+ }
}
void Conversation::convertMsgTypeHandler()