if (!__isLaunchedAsForward)
{
ArrayList* pArgList = new (std::nothrow) ArrayList();
+ pArgList->Construct();
ThreadData* pThreadData = pMsgPrModel->GetThreadDataByIdN(threadId);
pArgList->Add(pThreadData);
pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST,
else
{
__isLaunchedAsForward = false;
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ pArgList->Construct();
+ ThreadData* pThreadData = pMsgPrModel->GetThreadDataByIdN(threadId);
+ pArgList->Add(pThreadData);
+ pArgList->Add(new Boolean(true));
//TODO: Go Backward well enough back to previous screen.
- pSceneManager->GoBackward(BackwardSceneTransition(), null);
+ pSceneManager->GoBackward(BackwardSceneTransition(), pArgList);
// pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST,
// SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), null);
}
const SceneId& currentSceneId, IList* pArgs)
{
AppLogDebug("ENTER");
+ bool bIsMsgForward = false;
if(!IsEnabled())
{
SetEnabled(true);
SetFocus();
if (pArgs)
{
- if (__pCurrentThreadEntry)
+ if (pArgs->GetCount() == 1)
{
- delete __pCurrentThreadEntry;
+ if (__pCurrentThreadEntry)
+ {
+ delete __pCurrentThreadEntry;
+ }
+ __pCurrentThreadEntry = static_cast<ThreadData*>(pArgs->GetAt(0));
+ }
+ else if (pArgs->GetCount() == 2)
+ {
+ bIsMsgForward = static_cast<Boolean*>(pArgs->GetAt(1))->ToBool();
}
- __pCurrentThreadEntry = static_cast<ThreadData*>(pArgs->GetAt(0));
pArgs->RemoveAll();
delete pArgs;
}
{
__pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
}
+
// Prepare contact list
- if(__pContactDetails)
+ if(previousSceneId != IDSCN_COMPOSER && !bIsMsgForward)
{
- delete __pContactDetails;
- __pContactDetails = null;
+ if(__pContactDetails)
+ {
+ delete __pContactDetails;
+ __pContactDetails = null;
+ }
+ PrepareContactList();
}
- PrepareContactList();
SetHeader();
// if (__pMsgComposePanel)
// {