//
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
-// Licensed under the Flora License, Version 1.0 (the License);
+// Licensed under the Flora License, Version 1.1 (the License);
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
if(pActiveCallInfo->IsConferenceCall() == true)
{
//single Conference call - goto active Conf. call form
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
else
{
//single active call - goto active call form
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ACTIVECALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ACTIVECALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
}
else if(noOfCalls == 2)
{
//goto multiple active call form
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_MULTIPLEACTIVECALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_MULTIPLEACTIVECALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
}
break;
*pCaller = callInfo;
pCallInfoList->Add(pCaller);
//single active call - goto active call form
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ACTIVE_EMERGENCYCALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ACTIVE_EMERGENCYCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
}
break;
void
BaseForm::HandleCallDisconnected(bool isLastCall, IListT<AppCallInfo>& pCurrentActiveCallList)
{
+ AppLogDebug("Enter");
if(__pCallPresentor->IsIncomingorDialingCallPresent() == true)
{
//This scenario will come, if this disconnected call is neither incoming nor dialing call.
//In this case, if there is any dialing call exists, then ignore.
//Else, if there is any incoming call exists, then update call option popup.
+ AppLogDebug("IsIncomingorDialingCallPresent %d",__formType);
switch (__formType)
{
case FORMTYPE_INCOMINGCALL:
pCallInfoList->Add(pCaller);
}
}
+
if (callCount == 1)
{
//fetch call info and add to list
if (isLastCall == true)
{
- //goto End Call form if single call. else terminate
- if (callInfo.IsConferenceCall() == false)
+ //list contains 1 last ended call to show EndCall screen.
+ //goto End Call form if single call was ended else terminate
+ // if (callInfo.IsConferenceCall() == false)
+ if (1)
{
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ENDCALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ENDCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
else
{
}
else
{
+ //list contains 1 active call
if (pCurrentActiveCallList.GetCount() == 1)
{
if (callInfo.IsConferenceCall() == true)
{
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
else
{
//goto Single Active Call form
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ACTIVECALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ACTIVECALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
}
}
}
else
{
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_MULTIPLEACTIVECALL), pCallInfoList);
+ //multiple active calls are present.
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_MULTIPLEACTIVECALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
}
else
{
- pPhoneApp->Terminate();
+ //This is done to show end call form in missed call case also
+ //this was done on request received from HQ to solve a bug in
+ //camera application. In which if a call comes when camera is
+ //running and user disconnects before the ui is shown the camera
+ //application hangs
+ ArrayList* pCallInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pCallInfoList->Construct(1);
+ AppCallInfo callInfo;
+ result r = pCurrentActiveCallList.GetAt(0, callInfo);
+ if (r == E_SUCCESS)
+ {
+ //copy call information to new instance
+ AppCallInfo* pCaller = new (std::nothrow) AppCallInfo();
+ *pCaller = callInfo;
+ pCallInfoList->Add(pCaller);
+ //multiple active calls are present.
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_ENDCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
+
+ }
+ else
+ {
+ pPhoneApp->Terminate();
+ }
+
}
}
pCallInfoList->Add(pConfInfo);
//Todo: create screens for single conf call and conf call with another held call
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
void
*pIncomingCall = pCallInfo;
pCallInfoList->Add(pIncomingCall);
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_INCOMINGCALL), pCallInfoList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_INCOMINGCALL,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pCallInfoList);
}
void
{
//update calls state
pActiveCallForm->UpdateMultipleCallScreen(pCallList);
+ pActiveCallForm->SetSwapInProgress(false);
+
}
}