tizen2.1 code merge
authorAmith Kumar Mahale <amith.m@samsung.com>
Thu, 6 Jun 2013 09:31:12 +0000 (15:01 +0530)
committerAmith Kumar Mahale <amith.m@samsung.com>
Thu, 6 Jun 2013 09:31:12 +0000 (15:01 +0530)
Change-Id: I774060ede242e0d9558c64bed40c3bd9d3a2ced9
Signed-off-by: Amith Kumar Mahale <amith.m@samsung.com>
18 files changed:
inc/CallActiveCallForm.h
inc/CallEndCallForm.h
inc/CallTypes.h
manifest.xml
res/eng-GB.xml
res/screen-size-normal/IDL_CONFCALL_FORM.xml
res/screen-size-normal/IDL_MULTIPLE_CALL_FORM.xml
src/CallActiveCallForm.cpp
src/CallApp.cpp
src/CallAppFrame.cpp
src/CallBaseForm.cpp
src/CallConfCallerListForm.cpp
src/CallEndCallForm.cpp
src/CallIncomingCallForm.cpp
src/CallOptionPopup.cpp
src/CallPresentationModel.cpp
src/CallTelephonyManager.cpp
src/CallTypes.cpp

index f98d864..4584155 100644 (file)
@@ -52,6 +52,7 @@ public:
        virtual ~ActiveCallForm(void);
        //From BaseForm
        virtual void Initialize(void);
+       void SetSwapInProgress(bool progress);
 
 public:
        virtual result OnInitializing(void);
@@ -125,6 +126,8 @@ private:
        virtual int GetItemCount(void);
        //Method to show thumbnail image
        void ShowThumbnailImage(const Tizen::Graphics::Bitmap* pPhotoId,Tizen::Base::String& photoLabel);
+       //Check if swap in progress
+       bool IsSwapInProgress(void);
 
 private:
        //Start time for Active call
@@ -141,6 +144,7 @@ private:
        Tizen::Base::String __DtmfString;
        AppCallInfo* __pActiveCallInfo;
        AppCallInfo* __pHeldCallInfo;
+       bool            __isSwapInProgress;
 };
 
 #endif  //_PHN_ACTIVE_CALL_FORM_H_
index 395d554..1bd8c62 100644 (file)
@@ -42,6 +42,7 @@ class EndCallForm
        , public Tizen::Ui::Scenes::ISceneEventListener
        , public Tizen::Base::Runtime::ITimerEventListener
        , public Tizen::App::IAppControlResponseListener
+       , public Tizen::Social::IAddressbookChangeEventListener
        , public IAppStateChangeListener
        , public Tizen::Ui::IOrientationEventListener
 {
@@ -86,6 +87,10 @@ public:
        void ShowViewContactButton(void);
        //Used to set the Viewcontact button state in the end call form
        void ShowAddContactButton(void);
+       // Called by AddressBook to notify when contacts are changed.
+       virtual void OnContactsChanged(const Tizen::Base::Collection::IList& contactChangeInfoList);
+       // Called by AddressBook to notify when categories are changed.
+       virtual void OnCategoriesChanged(const Tizen::Base::Collection::IList& categoryChangeInfoList) {};
        //Called when App comes to foreground
        virtual void OnForeground(void);
        //Called when App goes to background
@@ -95,6 +100,8 @@ public:
        //From IOrientationEventListener
        virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
 
+       void UpdatePersonDetail(void);
+
 private:
        //initialise the end call panel
        void InitializeCallButtonsPanel(void);
@@ -119,6 +126,7 @@ private:
        Tizen::Base::String* __pContactNumber;
        //Timer used to show End call scene for 3 sec
        Tizen::Base::Runtime::Timer* __pEndCallEventTimer;
+       Tizen::Social::Addressbook* __pAddressBook;
        Tizen::Ui::Controls::Label* __pSmallPhotoLabel;
        bool __isMsgAppControlLaunched;
        bool __isContactAppControlLaunched;
index ce7f5b9..1ad4d8b 100644 (file)
@@ -181,6 +181,7 @@ extern const wchar_t* IDS_VIEW_CONTACT;
 extern const wchar_t* IDS_INVALID_NUMBER;
 extern const wchar_t* IDS_NUMBER_UNKNOWN;
 extern const wchar_t* IDS_GPRS_NUMBER;
+extern const wchar_t* IDS_CONFERENCE_CALL_STRING;
 //Panel
 extern const wchar_t* PANEL_DIALER;
 extern const wchar_t* PANEL_LOGS;
index 856f6f0..8ce0d0f 100644 (file)
@@ -4,6 +4,7 @@
     <Version>1.0.0</Version>
     <Type>C++App</Type>
     <Requirements>
+        <Feature Name="http://tizen.org/feature/platform.core.cpu.arch.armv7">true</Feature>
         <Feature Name="http://tizen.org/feature/platform.core.cpu.arch.x86">true</Feature>
         <Feature Name="http://tizen.org/feature/platform.core.fpu.arch.vfpv3">true</Feature>
     </Requirements>
@@ -15,8 +16,8 @@
             <Privilege>http://tizen.org/privilege/power</Privilege>
             <Privilege>http://tizen.org/privilege/appusage</Privilege>
             <Privilege>http://tizen.org/privilege/lockmanager</Privilege>
-            <Privilege>http://tizen.org/privilege/messaging.write</Privilege>
             <Privilege>http://tizen.org/privilege/telephony</Privilege>
+            <Privilege>http://tizen.org/privilege/messaging.write</Privilege>
             <Privilege>http://tizen.org/privilege/vibrator</Privilege>
             <Privilege>http://tizen.org/privilege/contact.read</Privilege>
         </Privileges>
index 821e4ad..2f1fb4d 100644 (file)
     <text id="IDS_SETTINGS_DELETE_NUMBER_TITLE_STRING">Select number</text>
     <text id="IDS_MESSAGE_SELECTED">%d Message Selected</text>
     <text id="IDS_NOT_ASSIGNED_STR">Not assigned</text>
-    <text id="IDS_MATCHCRITERIA_START_STRING">Start with</text>
+    <text id="IDS_MATCHCRITERIA_START_STRING">Starts with</text>
     <text id="IDS_VOICE_CALL_BTN_NAME">Voice call</text>
     <text id="IDS_INVALID_ARGS_ERROR_MSG">Invalid Parameters Passed.</text>
     <text id="IDS_SETTING_STATUS_TONES_HLP_STRING">Edit alerts that sound during calls</text>
index 84677f9..444af5a 100644 (file)
@@ -4,7 +4,7 @@
 -->
 <!DOCTYPE Scene SYSTEM "UIForm.dtd">
 
-<Scene Bversion="2.0.0.201304041646" Dversion="20120315">
+<Scene Bversion="2.0.0.201305162056" Dversion="20120315">
     <LogicalCoordinate>720</LogicalCoordinate>
     <Form id="IDL_CONFCALL_FORM">
         <property backgroundColor="#000000" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic:4Dir" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
     <Label id="IDC_CONFCALL_BIGPHOTO_LABEL" parent="IDL_CONFCALL_FORM">
         <property accessibilityHint="" backgroundBitmapPath="C01-1_call_group_caller ID_720x720.png" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_TOP"/>
         <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="720.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_CONFCALL_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="500.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_CONFCALL_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="0.0" y="0.0"/>
-        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="660.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_CONFCALL_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="IDL_CONFCALL_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="560.0" x="0.0" y="0.0"/>
+        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="699.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_CONFCALL_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="IDL_CONFCALL_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="560.0" x="0.0" y="0.0"/>
     </Label>
     <Label id="IDC_BACKGROUND_LABEL" parent="IDL_CONFCALL_FORM">
         <property accessibilityHint="" backgroundBitmapPath="C01-1_Incoming call_BG_01.png" backgroundColor="#000000" backgroundColorOpacity="50" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_TOP"/>
         <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="160.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_CONFCALL_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="0.0" y="0.0"/>
-        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="160.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_CONFCALL_BIGPHOTO_LABEL" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_RIGHT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_CONFCALL_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="560.0" y="0.0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="199.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_CONFCALL_BIGPHOTO_LABEL" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_RIGHT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_CONFCALL_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="560.0" y="0.0"/>
     </Label>
     <Button id="IDC_CONF_CALL_MORE_BUTTON" parent="IDL_CONFCALL_FORM">
         <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="C01-1_button_more.png" normalBitmapPath="" normalColor="#FFFFFF" normalColorOpacity="0" normalTextColor="" pressedBGBitmapPath="C01-1_button_more_press.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33.0" verticalAlign="ALIGN_MIDDLE"/>
     <Button id="IDC_HOLD_BUTTON" parent="IDL_CONFCALL_FORM">
         <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="C01-1_button_hold_01.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="C01-1_button_hold_01_press.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33.0" verticalAlign="ALIGN_MIDDLE"/>
         <layout bottomRelation="IDC_CONFCALL_BIGPHOTO_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10.0" marginLeft="0.0" marginRight="20.0" marginTop="0.0" mode="Portrait" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="78.0" x="622.0" y="636.0"/>
-        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10.0" marginLeft="0.0" marginRight="20.0" marginTop="0.0" mode="Landscape" rightRelation="IDC_CONFCALL_BIGPHOTO_LABEL" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="78.0" x="462.0" y="576.0"/>
+        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10.0" marginLeft="0.0" marginRight="20.0" marginTop="0.0" mode="Landscape" rightRelation="IDC_CONFCALL_BIGPHOTO_LABEL" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="78.0" x="462.0" y="615.0"/>
     </Button>
     <Label id="IDC_HOLD_LABEL" parent="IDL_CONFCALL_FORM">
         <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" leftMargin="16" text="" textColor="#FFFFFF" textSize="36.0" textStyle="LABEL_TEXT_STYLE_BOLD" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
         <layout bottomRelation="IDC_CONFCALL_BIGPHOTO_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="IDC_HOLD_BUTTON" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_LEFT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="170.0" x="452.0" y="636.0"/>
-        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="52.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10.0" marginLeft="0.0" marginRight="114.0" marginTop="0.0" mode="Landscape" rightRelation="IDC_CONFCALL_BIGPHOTO_LABEL" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="229.0" x="217.0" y="598.0"/>
+        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="52.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10.0" marginLeft="0.0" marginRight="114.0" marginTop="0.0" mode="Landscape" rightRelation="IDC_CONFCALL_BIGPHOTO_LABEL" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="229.0" x="217.0" y="637.0"/>
     </Label>
     <Label id="IDC_KEY_BG_LABEL" parent="IDL_CONFCALL_FORM">
         <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_TOP"/>
         <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="500.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_CONFCALL_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDC_CONFCALL_BIGPHOTO_LABEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="0.0" y="720.0"/>
-        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="500.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_CONFCALL_BIGPHOTO_LABEL" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_RIGHT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDC_BACKGROUND_LABEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="560.0" y="160.0"/>
+        <layout bottomRelation="IDL_CONFCALL_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="500.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_CONFCALL_BIGPHOTO_LABEL" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_RIGHT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="IDL_CONFCALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDC_BACKGROUND_LABEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="560.0" y="199.0"/>
     </Label>
 </Scene>
index 09bc765..1e2c2a9 100644 (file)
@@ -3,7 +3,8 @@
        This XML file was automatically generated by UiBuilder - do not modify by hand.
 -->
 <!DOCTYPE Scene SYSTEM "UIForm.dtd">
-<Scene Bversion="2.0.0.201304261605" Dversion="20120315">
+
+<Scene Bversion="2.0.0.201305162056" Dversion="20120315">
     <LogicalCoordinate>720</LogicalCoordinate>
     <Form id="IDL_MULTIPLE_CALL_FORM">
         <property backgroundColor="#000000" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic:4Dir" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
@@ -43,7 +44,7 @@
     <Label id="IDC_CALLER1_TIME_LABEL" parent="IDL_MULTIPLE_CALL_FORM">
         <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="#FFFFFF" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" leftMargin="16" text="00:01:24" textColor="#8BF632" textSize="30.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
         <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="46.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_NUMBER1_LABEL" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_RIGHT" marginBottom="0.0" marginLeft="0.0" marginRight="24.0" marginTop="6.0" mode="Portrait" rightRelation="IDL_MULTIPLE_CALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="184.0" x="512.0" y="99.0"/>
-        <layout bottomRelation="IDC_BACKGROUND_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="85.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16.0" marginLeft="0.0" marginRight="24.0" marginTop="6.0" mode="Landscape" rightRelation="IDL_MULTIPLE_CALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDC_VOICE_CALL_ICON_LABEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="184.0" x="1072.0" y="98.0"/>
+        <layout bottomRelation="IDC_BACKGROUND_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="53.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="48.0" marginLeft="0.0" marginRight="24.0" marginTop="6.0" mode="Landscape" rightRelation="IDL_MULTIPLE_CALL_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDC_VOICE_CALL_ICON_LABEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="184.0" x="1072.0" y="98.0"/>
     </Label>
     <Label id="IDC_CALLER2_PHOTO_LABEL" parent="IDL_MULTIPLE_CALL_FORM">
         <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="#FFFFFF" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_TOP"/>
index a0cdaaa..5e40ede 100644 (file)
@@ -109,6 +109,7 @@ ActiveCallForm::ActiveCallForm(FormType formType)
        __pSmallPhotoLabel = null;
        __pActiveCallInfo = null;
        __pHeldCallInfo = null;
+       __isSwapInProgress = false;
 }
 
 ActiveCallForm::~ActiveCallForm(void)
@@ -729,8 +730,12 @@ ActiveCallForm::OnActionPerformed(const Control& source, int actionId)
 
        case IDA_SWAP_CALLS:
        {
-               AppAssert(__formType == FORMTYPE_MULTIPLECALLS);
-               __pCallPresentor->SwapCalls();
+               if(IsSwapInProgress() == false)
+               {
+                       AppAssert(__formType == FORMTYPE_MULTIPLECALLS);
+                       __pCallPresentor->SwapCalls();
+                       SetSwapInProgress(true);
+               }
        }
        break;
 
@@ -842,6 +847,18 @@ ActiveCallForm::OnActionPerformed(const Control& source, int actionId)
        }
 }
 
+bool
+ActiveCallForm::IsSwapInProgress(void)
+{
+       return __isSwapInProgress;
+}
+
+void
+ActiveCallForm::SetSwapInProgress(bool progress)
+{
+       __isSwapInProgress = progress;
+}
+
 void
 ActiveCallForm::SetTextToDTMFTextField(const String& dtmfStr)
 {
@@ -1794,7 +1811,8 @@ ActiveCallForm::OnListViewItemStateChanged(ListView& listView, int index, int el
 {
        //Goto conference call list form
        SceneManager* pSceneManager = SceneManager::GetInstance();
-       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALLLIST), null);
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALLLIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                        SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), null);
 }
 
 void
index e571bb0..e790d96 100644 (file)
@@ -330,17 +330,25 @@ CallApp::HandleIncomingCallAppControlRequest(RequestId reqId,const IMap* pArgsMa
 
        //Fetch incoming call details
        CallPresentationModel* pCallPresentor = CallPresentationModel::GetInstance();
+       //Check if there is already a dial call present .This can happen in some
+       //race conditions N_SE-39531
+       if(pCallPresentor->IsIncomingorDialingCallPresent())
+       {
+               int incomingHandle;
+               Integer::Parse(callHandle,incomingHandle);
+               pCallPresentor->RejectCall(incomingHandle,false,contactNumber);
+               AppLog("Cancelled already an incoming call present");
+               appControlResult = APP_CTRL_RESULT_CANCELED;
+               AppControlProviderManager::GetInstance()->SendAppControlResult(reqId, appControlResult, null);
+               return;
+       }
+
        AppCallInfo* pIncomingCall = pCallPresentor->FetchIncomingCallDetailsN(callHandle, contactNumber);
        if(pIncomingCall != null)
        {
                bool isCallRejected = pCallPresentor->CheckIncomingCallToBeRejected(pIncomingCall);
                if(isCallRejected == false)
                {
-                       //Abort any AppControl Request running already to show incoming call screen
-                       if (pCallPresentor->IsAppControlRunning() == true)
-                       {
-                               pCallPresentor->AbortAppControlRequest();
-                       }
                        //save app launch argument list
                        __pLaunchArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
                        __pLaunchArgs->Construct(1);
@@ -352,9 +360,12 @@ CallApp::HandleIncomingCallAppControlRequest(RequestId reqId,const IMap* pArgsMa
                        else
                        {
                                //App already initialized, goto incoming call form
-                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_INCOMINGCALL), __pLaunchArgs);
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_INCOMINGCALL, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                                                SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), __pLaunchArgs);
                                __pLaunchArgs = null;
                        }
+
+
                }
                else
                {
@@ -477,7 +488,17 @@ CallApp::HandleDialCallAppControlRequest(RequestId reqId,const IMap* pArgsMap,co
                                AppControlProviderManager::GetInstance()->SendAppControlResult(reqId, appControlResult, null);
                                return;
                        }
+
                        CallPresentationModel* pCallPresentor = CallPresentationModel::GetInstance();
+                       //Check if there is already an incoming call
+                       //this can  happen in some race conditions N_SE-39531
+                       if(pCallPresentor->IsIncomingorDialingCallPresent() == true)
+                       {
+                               AppLog("Cancelled already an incoming call present");
+                               appControlResult = APP_CTRL_RESULT_CANCELED;
+                               AppControlProviderManager::GetInstance()->SendAppControlResult(reqId, appControlResult, null);
+                               return;
+                       }
                        int currentActiveCallCount = pCallPresentor->GetCurrentCallCount();
                        if(currentActiveCallCount <= 1)
                        {
@@ -507,7 +528,8 @@ CallApp::HandleDialCallAppControlRequest(RequestId reqId,const IMap* pArgsMap,co
                                else
                                {
                                        AppLog("Outgoing call");
-                                       pSceneManager->GoForward( ForwardSceneTransition( nextScene), __pLaunchArgs);
+                                       pSceneManager->GoForward( ForwardSceneTransition( nextScene, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                                                        SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), __pLaunchArgs);
                                }
                                appControlResult = APP_CTRL_RESULT_SUCCEEDED;
                        }
@@ -558,12 +580,12 @@ CallApp::SetTopMostWindow(bool bTopMost)
        {
                GetAppFrame()->GetFrame()->SetZOrderGroup(WINDOW_Z_ORDER_GROUP_HIGHEST);
                AppManager::GetInstance()->AddActiveAppEventListener(*this);
-               if(PowerManager::IsScreenOn() == false)
+               /*if(PowerManager::IsScreenOn() == false)
                {
                        AppLogDebug("TurnScreenOn");
                        res = PowerManager::TurnScreenOn();
                        AppLogDebug("TurnScreenOn %d",res);
-               }
+               }*/
 
        }
        else
index d2dd77c..cb62a42 100644 (file)
@@ -51,7 +51,7 @@ CallAppFrame::OnInitializing(void)
                //goto next scene
                SceneManager* pSceneManager = SceneManager::GetInstance();
                r = pSceneManager->GoForward( ForwardSceneTransition(pPhoneApp->GetInitialScene(),
-                               SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY),
+                               SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY),
                                pPhoneApp->GetAppLaunchArguments());
        }
        AppLogDebug("Exit %d",r);
index 66426bd..966b1bb 100644 (file)
@@ -125,18 +125,21 @@ BaseForm::HandleCallConnected(IListT<AppCallInfo>& pCallList)
                        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;
@@ -173,7 +176,8 @@ BaseForm::HandleCallConnected(IListT<AppCallInfo>& pCallList)
                        *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;
@@ -186,11 +190,13 @@ BaseForm::HandleCallConnected(IListT<AppCallInfo>& pCallList)
 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:
@@ -249,9 +255,11 @@ BaseForm::HandleCallDisconnected(bool isLastCall, IListT<AppCallInfo>& pCurrentA
                        {
                                //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 (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
                                {
@@ -265,12 +273,14 @@ BaseForm::HandleCallDisconnected(bool isLastCall, IListT<AppCallInfo>& pCurrentA
                                {
                                        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);
                                        }
                                }
                        }
@@ -278,12 +288,37 @@ BaseForm::HandleCallDisconnected(bool isLastCall, IListT<AppCallInfo>& pCurrentA
                else
                {
                        //multiple active calls are present.
-                       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);
                }
        }
        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();
+               }
+
        }
 }
 
@@ -303,7 +338,8 @@ BaseForm::HandleConferenceCall(AppCallInfo& pCallInfo)
        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
@@ -320,7 +356,8 @@ BaseForm::HandleIncomingCall(AppCallInfo& pCallInfo)
        *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
@@ -336,6 +373,8 @@ BaseForm::HandleCallSwapOccured(IListT<AppCallInfo>& pCallList)
        {
                //update calls state
                pActiveCallForm->UpdateMultipleCallScreen(pCallList);
+               pActiveCallForm->SetSwapInProgress(false);
+
        }
 }
 
index cdeaeb4..d047ea8 100644 (file)
@@ -258,12 +258,14 @@ ConfCallerListForm::OnActionPerformed(const Control& source, int actionId)
                if (noOfCalls == 1)
                {
                        //single active call - goto active 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
                {
                        //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);
                }
                pCallList->RemoveAll();
                delete pCallList;
@@ -637,12 +639,14 @@ ConfCallerListForm::OnFormBackRequested(Form& source)
        if (noOfCalls == 1)
        {
                //single active call - goto active 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
        {
                //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);
        }
        pCallList->RemoveAll();
        delete pCallList;
index 0dffa99..54e025a 100644 (file)
@@ -28,6 +28,7 @@
 #include "CallPresentationModel.h"
 #include "CallSceneRegister.h"
 #include "CallTypes.h"
+#include "CallAppControlRequestMgr.h"
 
 using namespace Tizen::App;
 using namespace Tizen::Base;
@@ -71,6 +72,7 @@ EndCallForm::EndCallForm(void)
        __pSmallPhotoLabel = null;
        __isMsgAppControlLaunched = false;
        __isContactAppControlLaunched = false;
+       __pAddressBook = null;
 }
 
 EndCallForm::~EndCallForm(void)
@@ -85,6 +87,11 @@ EndCallForm::~EndCallForm(void)
        {
                __pSmallPhotoLabel = null;
        }
+       if (__pAddressBook != null)
+       {
+               delete __pAddressBook;
+               __pAddressBook = null;
+       }
 }
 
 void
@@ -156,6 +163,11 @@ EndCallForm::OnTerminating(void)
 
        if (__pCallPresentor)
        {
+               //Abort any AppControl Request running already to show incoming call screen
+               if (__pCallPresentor->IsAppControlRunning() == true)
+               {
+                       __pCallPresentor->AbortAppControlRequest();
+               }
                __pCallPresentor = null;
        }
        return r;
@@ -171,6 +183,10 @@ EndCallForm::OnActionPerformed(const Control& source, int actionId)
        {
        case IDA_VOICE_CALL:
        {
+               if(CallAppControlRequestMgr::GetInstance()->IsAppControlRunning() == true)
+               {
+                       return;
+               }
                if (__isMsgAppControlLaunched == true)
                {
                        //AppControl already launched.
@@ -212,11 +228,13 @@ EndCallForm::OnActionPerformed(const Control& source, int actionId)
                        bool isEmergencyCall = __pCallPresentor->IsEmergencyNumber(*contactTxt, true);
                        if (isEmergencyCall)
                        {
-                               pSceneManager->GoForward( ForwardSceneTransition( IDSCN_SCENE_OUT_EMERGENCYCALL), pContact);
+                               pSceneManager->GoForward( ForwardSceneTransition( IDSCN_SCENE_OUT_EMERGENCYCALL,
+                                               SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pContact);
                        }
                        else
                        {
-                               pSceneManager->GoForward( ForwardSceneTransition(IDSCN_SCENE_OUTCALL), pContact);
+                               pSceneManager->GoForward( ForwardSceneTransition(IDSCN_SCENE_OUTCALL,
+                                               SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pContact);
                        }
                }
                else
@@ -343,13 +361,24 @@ EndCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& cu
 
                //contact number
                __pContactNumber = new (std::nothrow) String();
-               if(pEndCall->GetContactNumber().IsEmpty() == false)
+               if(pEndCall->IsConferenceCall() == false)
                {
-                       __pContactNumber->Append(pEndCall->GetContactNumber());
+                       if(pEndCall->GetContactNumber().IsEmpty() == false)
+                       {
+                               __pContactNumber->Append(pEndCall->GetContactNumber());
+                       }
+                       else
+                       {
+                               __pContactNumber->Append(AppUtility::GetResourceString(IDS_NUMBER_UNKNOWN));
+                       }
                }
                else
                {
-                       __pContactNumber->Append(AppUtility::GetResourceString(IDS_NUMBER_UNKNOWN));
+                       String count;
+                       count.Append(pEndCall->GetCallerListCount());
+                       count.Append(" ");
+                       count.Append(AppUtility::GetResourceString(IDS_PEOPLE_STR));
+                       __pContactNumber->Append(count);
                }
 
                //Fetch & show contact person details
@@ -380,13 +409,20 @@ EndCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& cu
 
                //Check if call is Emergency call or Hidden call,
                //then disable all button in Call button panel.
-               if (pEndCall->IsEmergency() == true || pEndCall->GetContactNumber().IsEmpty() == true)
+               if(pEndCall->IsConferenceCall() == false)
                {
-                       __pCallButtonsPanel->SetEndCallPanelState(false);
+                       if (pEndCall->IsEmergency() == true || pEndCall->GetContactNumber().IsEmpty() == true)
+                       {
+                               __pCallButtonsPanel->SetEndCallPanelState(false);
+                       }
+                       else
+                       {
+                               __pCallButtonsPanel->SetEndCallPanelState(true);
+                       }
                }
                else
                {
-                       __pCallButtonsPanel->SetEndCallPanelState(true);
+                       __pCallButtonsPanel->SetEndCallPanelState(false);
                }
 
                //check if we reached the end call form of an outgoing call then don't show add to contacts
@@ -424,6 +460,12 @@ EndCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& cu
        CallApp* pCallApp = static_cast<CallApp*>(CallApp::GetInstance());
        pCallApp->SetTopMostWindow(false);
        AddOrientationEventListener(*this);
+       __pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();
+       //Add address book listener to listen to contacts changed events
+       if(__pAddressBook != null)
+       {
+               __pAddressBook->SetAddressbookChangeEventListener(this);
+       }
 }
 
 void
@@ -442,6 +484,11 @@ EndCallForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& ne
        {
                __pSmallPhotoLabel->SetShowState(false);
        }
+       //remove contact change event listener
+       if(__pAddressBook != null)
+       {
+               __pAddressBook->SetAddressbookChangeEventListener(null);
+       }
        //remove itself as listener
        CallApp* pPhoneApp = static_cast<CallApp*>(CallApp::GetInstance());
        pPhoneApp->RemoveAppStateChangeListener(*this);
@@ -483,9 +530,21 @@ EndCallForm::ShowPersonDetails(const String& phoneNumber, const String& nameLblN
        Label* pNameLbl = static_cast<Label*>(GetControl(nameLblName));
        Label* pPhotoLbl = static_cast<Label*>(GetControl(photoLblName));
 
-       //fetch contact details based on phone number
-       String* pDisplayName = pCallInfo->FetchCallerNameN();
-       Bitmap* pPhotoBitmap = pCallInfo->FetchCallerPhotoN();
+       String* pDisplayName;
+       if(pCallInfo->IsConferenceCall() == false)
+       {
+               //fetch contact details based on phone number
+               pDisplayName = pCallInfo->FetchCallerNameN();
+       }
+       else
+       {
+               pDisplayName = new (std::nothrow) String(AppUtility::GetResourceString(IDS_CONFERENCE_CALL_STRING));
+       }
+       Bitmap* pPhotoBitmap = null;
+       if(pCallInfo->IsConferenceCall() == false)
+       {
+               pPhotoBitmap = pCallInfo->FetchCallerPhotoN();
+       }
 
        //passing an empty string to SetText fails in label,
        //if previously valid text has been set
@@ -528,7 +587,15 @@ EndCallForm::ShowPersonDetails(const String& phoneNumber, const String& nameLblN
        else
        {
                //Set Default Photo
-               Bitmap* pDefaultPhoto = AppUtility::GetBitmapFromResourcesN(IDB_END_CALL_DEFAULT_ICON,W_PHOTO_LABEL,H_PHOTO_LABEL);
+               Bitmap* pDefaultPhoto = null;
+               if(pCallInfo->IsConferenceCall() == false)
+               {
+                       pDefaultPhoto = AppUtility::GetBitmapFromResourcesN(IDB_END_CALL_DEFAULT_ICON,W_PHOTO_LABEL,H_PHOTO_LABEL);
+               }
+               else
+               {
+                       pDefaultPhoto = AppUtility::GetBitmapFromResourcesN(IDB_CONFERENCE_BG_ICON,W_CONFERENCE_PHOTO,H_CONFERENCE_PHOTO);
+               }
                if (pDefaultPhoto != null)
                {
                        pPhotoLbl->SetBackgroundBitmap(*pDefaultPhoto);
@@ -657,31 +724,7 @@ EndCallForm::OnForeground(void)
                {
                        __pEndCallEventTimer->Start(END_CALL_TIMER_VAL);
                }
-               if (__pContactNumber != null && __pContactNumber->IsEmpty() == false)
-               {
-                       AppCallInfo* ActiveCallInfo = new (std::nothrow) AppCallInfo();
-                       ActiveCallInfo->SetContactNumber(*__pContactNumber);
-                       Contact* pContact = __pCallPresentor->GetContactN(*__pContactNumber);
-                       if (pContact != null)
-                       {
-                               ActiveCallInfo->SetContactInfo(*pContact);
-                       }
-                       //before setting check if the contact is deleted
-                       if(pContact != null)
-                       {
-
-                               ShowViewContactButton();
-                               delete pContact;
-                               pContact = null;
-                       }
-                       else
-                       {
-                               ShowAddContactButton();
-                       }
-                       ShowPersonDetails(*__pContactNumber, IDC_CALLER1_LABEL, IDC_CALLER1_BIGPHOTO_LABEL,ActiveCallInfo);
-                       delete ActiveCallInfo;
-               }
-
+               UpdatePersonDetail();
                //notify app control completed
                __isContactAppControlLaunched = false;
                __pCallPresentor->AppControlRequestCompleted();
@@ -753,3 +796,39 @@ EndCallForm::OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::O
                }
        }
 }
+
+void
+EndCallForm::OnContactsChanged(const IList& contactChangeInfoList)
+{
+       UpdatePersonDetail();
+}
+
+void
+EndCallForm::UpdatePersonDetail()
+{
+       AppLog("Enter");
+       if (__pContactNumber != null && __pContactNumber->IsEmpty() == false)
+       {
+               AppCallInfo* ActiveCallInfo = new (std::nothrow) AppCallInfo();
+               ActiveCallInfo->SetContactNumber(*__pContactNumber);
+               Contact* pContact = __pCallPresentor->GetContactN(*__pContactNumber);
+               if (pContact != null)
+               {
+                       ActiveCallInfo->SetContactInfo(*pContact);
+               }
+               //before setting check if the contact is deleted
+               if(pContact != null)
+               {
+                       ShowViewContactButton();
+                       delete pContact;
+                       pContact = null;
+               }
+               else
+               {
+                       ShowAddContactButton();
+               }
+               ShowPersonDetails(*__pContactNumber, IDC_CALLER1_LABEL, IDC_CALLER1_BIGPHOTO_LABEL,ActiveCallInfo);
+               delete ActiveCallInfo;
+       }
+       AppLog("Exit");
+}
index 0262de7..103136a 100644 (file)
@@ -583,7 +583,7 @@ IncomingCallForm::ShowRejectMessagePanel(void)
                        pButtonReject->SetActionId(IDA_CANCEL_REJECT_CALL_MESSAGE_PANEL);
                        pButtonReject->AddActionEventListener(*this);
                        pButtonReject->SetEnabled(true);
-                       pButtonReject->SetFocus();
+                       //pButtonReject->SetFocus();
 
                        ShowRejectMessageFooter();
 
@@ -798,9 +798,10 @@ IncomingCallForm::OnSceneActivatedN(const SceneId& previousSceneId,        const SceneI
                pButtonRejectMessage->SetActionId(IDA_SHOW_REJECT_CALL_MESSAGE_PANEL);
                pButtonRejectMessage->AddActionEventListener(*this);
        }
+
        //This called here to handle the case when incoming call comes when
        // add call is in foreground.
-       __pCallPresentor->OnAppForeground();
+       //__pCallPresentor->OnAppForeground();
 
 }
 
@@ -1570,7 +1571,7 @@ void
 IncomingCallForm::OnForeground(void)
 {
        AppLogDebug("Enter");
-       __pCallPresentor->OnAppForeground();
+//     __pCallPresentor->OnAppForeground();
 }
 
 void
index 250c73a..36accc1 100644 (file)
@@ -93,7 +93,7 @@ CallOptionPopup::Initialize(void)
        TryReturn(r == E_SUCCESS, r, "CallOptionPopup::AddControl() failed");
 
        ListView* pListView = new (std::nothrow) ListView();
-       pListView->Construct(Rectangle(0, 0, W_POPUP, listHeight), true, SCROLL_STYLE_FADE_OUT);
+       pListView->Construct(Rectangle(0, 0, W_POPUP + HORIZONTAL_PADDING, listHeight), true, SCROLL_STYLE_FADE_OUT);
        pListView->AddListViewItemEventListener(*this);
        pListView->SetItemProvider(*this);
        r = AddControl(pListView);
index 298a3fc..890bddf 100644 (file)
@@ -564,7 +564,8 @@ CallPresentationModel::AddCall(const String& phoneNumber)
                {
                        nextScene = IDSCN_SCENE_OUT_EMERGENCYCALL;
                }
-               pSceneManager->GoForward( ForwardSceneTransition( nextScene), pLaunchArgs);
+               pSceneManager->GoForward( ForwardSceneTransition( nextScene,
+                               SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY,SCENE_DESTROY_OPTION_DESTROY), pLaunchArgs);
 
        }
 }
@@ -946,37 +947,31 @@ void
 CallPresentationModel::SendMessage(String& strMsg,String& recpientNum)
 {
        AppLogDebug("Enter");
+       result r;
        if(__pSmsManager == null)
        {
                __pSmsManager = new (std::nothrow) SmsManager();
+               result r = __pSmsManager->Construct(*this);
+               if (IsFailed(r) == true)
+               {
+                       delete __pSmsManager;
+                       __pSmsManager = null;
+                       return;
+               }
+
        }
-       result r = __pSmsManager->Construct(*this);
+       RecipientList recipient;
+       recipient.Add(RECIPIENT_TYPE_TO,recpientNum);
+       SmsMessage smsMessage;
+       r = smsMessage.SetText(strMsg);
        if (IsFailed(r) == false)
        {
-               RecipientList recipient;
-               recipient.Add(RECIPIENT_TYPE_TO,recpientNum);
-               SmsMessage smsMessage;
-               r = smsMessage.SetText(strMsg);
+               r = __pSmsManager->Send(smsMessage,recipient,true);
                if (IsFailed(r) == false)
                {
-                       r = __pSmsManager->Send(smsMessage,recipient,true);
-                       if (IsFailed(r) == true)
-                       {
-                               //todo: error message
-                       }
-                       else
-                       {
-                               __isMessageSendInProgress = true;
-                       }
+                       __isMessageSendInProgress = true;
                }
-               else
-               {
-                       //todo: error message
-               }
-       }
-       else
-       {
-               //todo: error message
+
        }
 
 }
index a4e8a10..0a98f23 100644 (file)
@@ -554,7 +554,7 @@ TelephonyManager::AcceptSecondCall(CallAnsweringOptions answerOptions, const int
                //Call connected successfully
                r = E_SUCCESS;
                //Add calls information to call log before deleting from active call list.
-               IListT<AppCallInfo>* pCallList = pEndCallsList->GetValuesN();
+               /*IListT<AppCallInfo>* pCallList = pEndCallsList->GetValuesN();
                if(pCallList != null)
                {
                        AppCallInfo endCallInfo;
@@ -563,7 +563,7 @@ TelephonyManager::AcceptSecondCall(CallAnsweringOptions answerOptions, const int
                                SaveCallInfoToLogsDb(endCallInfo);
                        }
                        delete pCallList;
-               }
+               }*/
                pEndCallsList->RemoveAll();
                delete pEndCallsList;
        }
@@ -612,7 +612,7 @@ TelephonyManager::AcceptMultipleCall(CallAnsweringOptions answerOptions, const i
                //Incoming Call connected successfully
                r = E_SUCCESS;
                //save to ended call to call logs db.
-               SaveCallInfoToLogsDb(callToBeEnded);
+               //SaveCallInfoToLogsDb(callToBeEnded);
        }
        break;
 
@@ -667,7 +667,7 @@ TelephonyManager::AcceptMultipleCall(CallAnsweringOptions answerOptions, const i
                        break;
                }
                //"Held" call successfully ended - Add call ended to call log database
-               SaveCallInfoToLogsDb(callToBeEnded);
+               //SaveCallInfoToLogsDb(callToBeEnded);
 
                //accept incoming call by Holding "Active" call using "TAPI_CALL_ANSWER_HOLD_AND_ACCEPT".
                res = tel_answer_call(__pTapiHandle, incomingCallHandle, TAPI_CALL_ANSWER_HOLD_AND_ACCEPT, &HandleCallbackResponse, this);
@@ -722,7 +722,7 @@ TelephonyManager::AcceptMultipleCall(CallAnsweringOptions answerOptions, const i
                IListT<AppCallInfo>* pCallList = pEndCallsList->GetValuesN();
                if(pCallList != null)
                {
-                       int callCount = pCallList->GetCount();
+/*                     int callCount = pCallList->GetCount();
                        for (int index = 0; index < callCount; index++)
                        {
                                AppCallInfo endCallInfo;
@@ -730,7 +730,7 @@ TelephonyManager::AcceptMultipleCall(CallAnsweringOptions answerOptions, const i
                                {
                                        SaveCallInfoToLogsDb(endCallInfo);
                                }
-                       }
+                       }*/
                        delete pCallList;
                        pCallList = null;
                }
@@ -1560,7 +1560,7 @@ TelephonyManager::HandleParticipantEndedFromConference(unsigned int participantC
                        conferenceCall.RemoveCallFromCallerList(index);
                        //update its status to individual call before saving to database
                        callToBeEnded.SetConference(false);
-                       SaveCallInfoToLogsDb(callToBeEnded);
+               //      SaveCallInfoToLogsDb(callToBeEnded);
                        isParticipantCallEnded = true;
                        break;
                }
@@ -1773,7 +1773,7 @@ TelephonyManager::HandleEndConferenceCallbackResponse(TapiHandle* pHandle, int c
                //remove the conference call handle from active call list to avoid any processing in HandleIdleCallback().
                pTelManager->__pActiveCallList->Remove(endConfCallInfo.GetCallHandle()->ToLong());
                //Save "End" Conf. call info to call log database
-               pTelManager->SaveCallInfoToLogsDb(endConfCallInfo);
+       //      pTelManager->SaveCallInfoToLogsDb(endConfCallInfo);
 
                //check if the ended call was the last call and show notification to user
                bool isLastCall = (pTelManager->__pActiveCallList->GetCount() == 0);
@@ -1784,7 +1784,9 @@ TelephonyManager::HandleEndConferenceCallbackResponse(TapiHandle* pHandle, int c
                        //stop sound session
                        pTelManager->__pSoundManager->StopSession();
                        //send empty call list to show dialer or call log screen
-                       pCallList = new (std::nothrow) ArrayListT<AppCallInfo>();
+                       pCallList =new (std::nothrow) ArrayListT<AppCallInfo>();
+                       pCallList->Construct(1);
+                       pCallList->Add(endConfCallInfo);
                }
                else
                {
@@ -1819,10 +1821,7 @@ TelephonyManager::HandleIdleCallBack(void* pData)
        //2) an "unconnected" dialed call is ended by caller or other party.
        //3) Any normal active calls(NOT conference calls) ended by user or by other party.
 
-       if(__pSoundManager->GetLastConferenceCall() == false)
-       {
-               __pSoundManager->SetDisconnectTone();
-       }
+
 
        TelCallStatusIdleNoti_t idleNotification;
        memcpy(&idleNotification, pData, sizeof(TelCallStatusIdleNoti_t));
@@ -1837,7 +1836,10 @@ TelephonyManager::HandleIdleCallBack(void* pData)
                AppLogDebug("EXIT - no calls exist");
                return;
        }
-
+       if(__pSoundManager->GetLastConferenceCall() == false)
+       {
+               __pSoundManager->SetDisconnectTone();
+       }
        //Check if ended call was among conference caller list,
        //then divert event to "HandleParticipantEndedFromConference()"
        AppCallInfo confCallInfo;
@@ -1906,9 +1908,11 @@ TelephonyManager::HandleIdleCallBack(void* pData)
                        __pIncomingCall = null;
                        //update missed status
                        endCallInfo.SetCalllogType(CALL_LOG_TYPE_VOICE_MISSED_UNSEEN);
+                       //save ended call to call log db.
+                       SaveCallInfoToLogsDb(endCallInfo);
                }
-               //save ended call to call log db.
-               SaveCallInfoToLogsDb(endCallInfo);
+               /*//save ended call to call log db.
+               SaveCallInfoToLogsDb(endCallInfo);*/
 
                //notify listener that call is disconnected.
                if (isLastCall == true)
@@ -1916,7 +1920,12 @@ TelephonyManager::HandleIdleCallBack(void* pData)
                        __pSoundManager->StopSession();
                        pCallList = new (std::nothrow) ArrayListT<AppCallInfo>();
                        pCallList->Construct(1);
-                       if (isMissedIncomingCallEnded == false)
+               //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
+                       //if (isMissedIncomingCallEnded == false)
                        {
                                //save to list to show EndCallForm
                                pCallList->Add(endCallInfo);
@@ -1965,7 +1974,7 @@ TelephonyManager::HandleEndNormalActiveCall(AppCallInfo& endCallInfo)
                }
 
                //Save "End" call info to call log database
-               SaveCallInfoToLogsDb(endCallInfo);
+               //SaveCallInfoToLogsDb(endCallInfo);
                //notify listener that call is disconnected.
                __pEventListener->HandleCallDisconnected(isLastCall, *pCallList);
                delete pCallList;
@@ -2023,6 +2032,7 @@ TelephonyManager::HandleDialingCallBack(void* pData)
        long long startTime = 0;
        SystemTime::GetTicks(startTime);
        __pDialedCall->SetCallNotificationTime(startTime);
+       SaveCallInfoToLogsDb(*__pDialedCall);
 }
 
 void
@@ -2174,6 +2184,10 @@ TelephonyManager::HandleCallConnected(unsigned int connectedCallHandle)
 
        //transfer ownership to Active calls list
        __pActiveCallList->Add(connectedCallHandle, *(pConnectedCall));
+       if (pConnectedCall->GetCalllogType() == CALL_LOG_TYPE_VOICE_INCOMING)
+       {
+               SaveCallInfoToLogsDb(*pConnectedCall);
+       }
        pConnectedCall = null;
 
        //notify listener that call is connected.
index 29039dc..8846999 100644 (file)
@@ -178,6 +178,7 @@ const wchar_t* IDS_VIEW_CONTACT = L"IDS_VIEW_CONTACT";
 const wchar_t* IDS_INVALID_NUMBER = L"IDS_INVALID_NUMBER";
 const wchar_t* IDS_NUMBER_UNKNOWN = L"IDS_NUMBER_UNKNOWN";
 const wchar_t* IDS_GPRS_NUMBER = L"IDS_GPRS_NUMBER";
+const wchar_t* IDS_CONFERENCE_CALL_STRING = L"IDS_CONFERENCE_CALL_STRING";
 //Panel
 const wchar_t* PANEL_DIALER = L"PanelDialer";
 const wchar_t* PANEL_LOGS = L"PanelLogs";