<option id="gnu.cpp.compiler.option.optimization.level.1679205774" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1016937387" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
<option id="sbi.gnu.cpp.compiler.option.1080100499" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
- <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+ <listOptionValue builtIn="false" value="mobile-3.0-device.core_llvm36.armel.core.app"/>
</option>
<option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.168454849" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/call-manager""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/email-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/msg-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
<listOptionValue builtIn="false" value=" -fPIE"/>
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-mthumb"/>
</option>
<option id="gnu.cpp.compiler.option.include.paths.579553451" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.107534150" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
<option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1399910668" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
<option id="sbi.gnu.c.compiler.option.376711470" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
- <listOptionValue builtIn="false" value="mobile-3.0-emulator.core_llvm36.i386.core.app"/>
+ <listOptionValue builtIn="false" value="mobile-3.0-device.core_llvm36.armel.core.app"/>
</option>
<option id="sbi.gnu.c.compiler.option.frameworks_inc.core.724287551" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/call-manager""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/email-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/msg-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
<listOptionValue builtIn="false" value=" -fPIE"/>
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-mthumb"/>
</option>
<option id="gnu.c.compiler.option.include.paths.367450361" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
- <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1302461488" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1302461488" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1788077149" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool id="org.tizen.nativecore.tool.fnmapgen.1210964854" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
</toolChain>
</folderInfo>
<sourceEntries>
- <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="inc"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="res"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry excluding="callui-view-incoming-lock.cxx" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/call-manager""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/email-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/msg-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/call-manager""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/email-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/msg-service""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/service-adaptor""/>
</platforms>
<package>
<blacklist/>
+ <resFallback autoGen="true"/>
</package>
</tproject>
#define CALLUI_KEY_VOLUMEUP "XF86AudioRaiseVolume"
#define CALLUI_KEY_VOLUMEDOWN "XF86AudioLowerVolume"
+#define CALLUI_REJ_MSG_MAX_LENGTH (210+1)
+#define CALLUI_REJ_MSG_MAX_COUNT 6
+
+#define CALLUI_SAFE_C_CAST(type, value) ((type)(ptrdiff_t)value)
+
+#undef FREE
+#define FREE(ptr) \
+ do {\
+ free(ptr);\
+ ptr = NULL;\
+ } while (0)
+
+#undef G_FREE
+#define G_FREE(ptr) \
+ do {\
+ g_free(ptr);\
+ ptr = NULL;\
+ } while (0)
+
+#undef DELETE_EVAS_OBJECT
+#define DELETE_EVAS_OBJECT(x) \
+ do { \
+ if (x != NULL) { \
+ evas_object_del(x); \
+ x = NULL; \
+ } \
+ } while (0)
+
typedef enum {
LOCK_TYPE_UNLOCK = 1,
typedef enum {
CALLUI_RESULT_OK,
CALLUI_RESULT_FAIL,
- CALLUI_RESULT_INVALID_PARAM
+ CALLUI_RESULT_INVALID_PARAM,
+ CALLUI_RESULT_ALLOCATION_FAIL
} callui_result_t;
/**
/**
* @brief create ending timer
- *
- * @param[in] vd View data
- *
+ * @param[in] appdata App data
*/
-void _callui_common_create_ending_timer(call_view_data_t *vd);
+void _callui_common_create_ending_timer(void *appdata);
/**
* @brief Delete ending timer
- *
+ * @param[in] appdata App data
*/
-void _callui_common_delete_ending_timer(void);
+void _callui_common_delete_ending_timer(void *appdata);
/**
* @brief Get sim name
* @return state
*
*/
-gboolean _callui_common_is_answering_mode_on(void);
+int _callui_common_is_answering_mode_on(void);
/**
* @brief state is powerkey mode on
* @return state
*
*/
-gboolean _callui_common_is_powerkey_mode_on(void);
+int _callui_common_is_powerkey_mode_on(void);
/**
* @brief Changed lcd state
*/
void _callui_common_exit_app();
+/**
+ * @brief Sends reject message to incoming call recipient
+ * @param[in] appdata application data
+ * @param[in] reject_msg reject message txt
+ * @return result CALLUI_RESULT_OK on success and error result otherwise
+ */
+int _callui_common_send_reject_msg(void *appdata, char *reject_msg);
+
+/**
+ * @brief Gets audio mode
+ * @return @c true when callui is on handsfree mode, otherwise false
+ */
+bool _callui_is_on_handsfree_mode();
+
+/**
+ * @brief Gets background state
+ * @return @c true when callui is on background, otherwise false
+ */
+bool _callui_is_on_background();
+
#endif //__CALLUI_COMMON_H_
* limitations under the License.
*
*/
+
+#include <dlog.h>
+
#ifndef __CALLUI_DEBUG_H__
#define __CALLUI_DEBUG_H__
*
* @param[in] appdata Application data
*
+ * @return CALLUI_RESULT_OK os success or error code otherwise
+ *
*/
-void _callui_keypad_create_layout(void *appdata);
+int _callui_keypad_create_layout(void *appdata);
/**
* @brief Delete keypad layout
*
*/
-#ifndef _CALLUI_VIEW_CALLEND_H_
-#define _CALLUI_VIEW_CALLEND_H_
+#ifndef __CALLUI_VIEW_CALLEND_H__
+#define __CALLUI_VIEW_CALLEND_H__
-#include "callui-view-manager.h"
+typedef struct _callui_view_callend *callui_view_callend_h;
/**
- * @brief Create end call layout
- *
- * @return End call view data
- *
- */
-call_view_data_t *_callui_view_callend_new();
-
-/**
- * @brief Get end call layout
- *
- * @param[in] vd View data
- *
- * @return End call layout
+ * @brief Creates Call End view instance
*
+ * @return View data handler
*/
-Evas_Object *_callui_view_callend_get_layout(call_view_data_t *vd);
+callui_view_callend_h _callui_view_callend_new();
-#endif //_CALLUI_VIEW_CALLEND_H_
+#endif /* __CALLUI_VIEW_CALLEND_H__ */
#ifndef __CALLUI_ONECALL_CIRCLE_VIEW_H_
#define __CALLUI_ONECALL_CIRCLE_VIEW_H_
-#include "callui.h"
-/**
- * @brief Reset accept/reject layout
- *
- * @param[in] data View data
- *
- */
-void _callui_view_circle_accept_reject_reset(void *data);
+#include <Elementary.h>
+
+#include "callui-view-incoming-call.h"
+#include "callui.h"
/**
* @brief Create reject layout
*
- * @param[in] ad Application data
- * @param[in] data View data
+ * @param[in] ad Application data
+ * @param[in] vd Incoming call lock view hander
+ * @param[in] parent Parent Evas_Object
*
- * @return Reject layout
+ * @return CALLUI_RESULT_OK on success or error code otherwise
*
*/
-Evas_Object *_callui_view_circle_create_reject_layout(callui_app_data_t *ad, void *data);
+int _callui_view_circle_create_reject_layout(callui_app_data_t *ad, callui_view_incoming_call_h vd, Evas_Object *parent);
/**
* @brief Create accept layout
*
- * @param[in] ad Application data
- * @param[in] data View data
+ * @param[in] ad Application data
+ * @param[in] vd Incoming call lock view hander
+ * @param[in] parent Parent Evas_Object
*
- * @return Accept layout
+ * @return CALLUI_RESULT_OK on success or error code otherwise
*
*/
-Evas_Object *_callui_view_circle_create_accept_layout(callui_app_data_t *ad, void *data);
+int _callui_view_circle_create_accept_layout(callui_app_data_t *ad, callui_view_incoming_call_h vd, Evas_Object *parent);
#endif
*
*/
-#ifndef __CALLUI_DIALING_VIEW_H_
-#define __CALLUI_DIALING_VIEW_H_
+#ifndef __CALLUI_DIALING_VIEW_H__
+#define __CALLUI_DIALING_VIEW_H__
-#include "callui-view-manager.h"
+typedef struct _callui_view_dialing *callui_view_dialing_h;
/**
- * @brief Create dialing view
- *
- * @return New dialing view data
+ * @brief Create dialing view instance
*
+ * @return View data handler
*/
-call_view_data_t *_callui_dialing_view_dialing_new();
+callui_view_dialing_h _callui_dialing_view_dialing_new();
-#endif //__CALLUI_DIALING_VIEW_H_
+#endif /* __CALLUI_DIALING_VIEW_H__ */
* @brief Create end call button
*
* @param[in] parent Parent object
+ * @param[in] cb_func Callback function
* @param[in] data App data
*
* @return layout
*
*/
-Evas_Object *_callui_create_end_call_button(Evas_Object *parent, void *data);
+Evas_Object *_callui_create_end_call_button(Evas_Object *parent, Evas_Smart_Cb cb_func, void *data);
/**
* @brief Destroy end call button
void _callui_destroy_end_call_button(Evas_Object *parent);
/**
- * @brief Create disabled voice call button
- *
- * @param[in] data View data
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_voicecall_button_disabled(void *data);
-
-/**
- * @brief Create disabled message button
- *
- * @param[in] data View data
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_message_button_disabled(void *data);
-
-/**
- * @brief Create view contact button
- *
- * @param[in] data View data
- * @param[in] ct_id Contact id
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_view_contact_button(void *data, int ct_id);
-
-/**
- * @brief Create contact button
- *
- * @param[in] data View data
- * @param[in] number Contact number
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_create_contacts_button(void *data, char *number);
-
-/**
- * @brief Update existing contact button
- *
- * @param[in] data View data
- * @param[in] number Contact number
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_update_existing_contact_button(void *data, char *number);
-
-/**
- * @brief Create voice call button
- *
- * @param[in] data View data
- * @param[in] number Contact number
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_voicecall_button(void *data, char *number);
-
-/**
- * @brief Create message button
- *
- * @param[in] data View data
- * @param[in] number Contact number
- *
- * @return layout
- *
- */
-Evas_Object *_callui_create_message_button(void *data, char *number);
-
-/**
* @brief Create bg layout
*
* @param[in] parent Parent layout
void _callui_set_background_layout(Evas_Object *parent);
/**
- * @brief Gets audio mode
- *
- * @return @c true when callui is on handsfree mode, otherwise false
- *
- */
-bool _callui_is_on_handsfree_mode();
-
-/**
- * @brief Gets background state
+ * @brief Create and set background layout
*
- * @return @c true when callui is on background, otherwise false
+ * @param[in] app_data Application data pointer
+ * @param[in] parent Parent object
+ * @param[in] part Part name in parent to be set reject message button
*
*/
-bool _callui_is_on_background();
+int _callui_create_reject_msg_button(void *app_data, Evas_Object *parent, char *part);
#endif //__CALLUI_VIEW_ELEMENTS_H_
*
*/
-#ifndef __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_
-#define __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_
+#ifndef __CALLUI_VIEW_INCOMING_CALL_NOTI_H__
+#define __CALLUI_VIEW_INCOMING_CALL_NOTI_H__
-#include "callui-view-manager.h"
+typedef struct _callui_view_incoming_call_noti *callui_view_incoming_call_noti_h;
/**
- * @brief Draw screen for active incoming call
- *
- * @param[in] ad Call ui app data
- * @param[in] vd Call view data
- *
- */
-void _callui_view_active_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd);
-
-/**
- * @brief Create layout for active incoming call
- *
- * @param[in] vd Call view data
- * @param[in] appdata app data
+ * @brief Creates incoming call active notification view instance
*
+ * @return View data handler
*/
-int _callui_view_active_incoming_call_oncreate(call_view_data_t *view_data, void *appdata);
+callui_view_incoming_call_noti_h _callui_view_incoming_call_noti_new();
-#endif /* __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_ */
+#endif /* __CALLUI_VIEW_INCOMING_CALL_NOTI_H__ */
*
*/
-#ifndef __CALLUI_VIEW_INCOMING_CALL_H_
-#define __CALLUI_VIEW_INCOMING_CALL_H_
+#ifndef __CALLUI_VIEW_INCOMING_LOCK_H__
+#define __CALLUI_VIEW_INCOMING_LOCK_H__
-#include "callui-view-manager.h"
-#include "callui.h"
+#include <Elementary.h>
+
+typedef struct _callui_view_incoming_call *callui_view_incoming_call_h;
+
+/**
+ * @brief Creates Incoming call view instance
+ *
+ * @return View data handler
+ */
+callui_view_incoming_call_h _callui_view_incoming_call_new();
+
+/**
+ * @brief Sets accept layout to Incoming call view
+ *
+ * @param[in] vd View data handler
+ * @param[in] layout Accept layout
+ *
+ * @return CALLUI_RESULT_OK on success or error code otherwise
+ */
+int _callui_view_incoming_call_set_accept_layout(callui_view_incoming_call_h vd, Evas_Object *layout);
/**
- * @brief Draw screen for incoming call
+ * @brief Gets accept layout from Incoming call view
*
- * @param[in] ad Call ui app data
- * @param[in] vd Call view data
+ * @param[in] vd View data handler
*
+ * @return Accept layout
*/
-void _callui_view_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd);
+Evas_Object *_callui_view_incoming_call_get_accept_layout(callui_view_incoming_call_h vd);
/**
- * @brief Create layout for incoming call
+ * @brief Sets reject layout to Incoming call view
*
- * @param[in] vd Call view data
- * @param[in] appdata Application data
+ * @param[in] vd View data handler
+ * @param[in] layout Reject layout
*
+ * @return CALLUI_RESULT_OK on success or error code otherwise
*/
-int _callui_view_incoming_call_oncreate(call_view_data_t *view_data, void *appdata);
+int _callui_view_incoming_call_set_reject_layout(callui_view_incoming_call_h vd, Evas_Object *layout);
/**
- * @brief Destroy incoming call
+ * @brief Gets reject layout from Incoming call view
*
- * @param[in] data View data
+ * @param[in] vd View data handler
*
+ * @return Reject layout
*/
-void _callui_view_incoming_call_ondestroy(void *data);
+Evas_Object *_callui_view_incoming_call_get_reject_layout(callui_view_incoming_call_h vd);
-#endif /* __CALLUI_VIEW_INCOMING_CALL_H_ */
+#endif /* __CALLUI_VIEW_INCOMING_LOCK_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#ifndef __CALLUI_INCOMINGLOCK_VIEW_H_
-#define __CALLUI_INCOMINGLOCK_VIEW_H_
-
-#include "callui-view-manager.h"
-#include "callui.h"
-
-/**
- * @brief Create Incoming lock view
- *
- * @return View data
- *
- */
-call_view_data_t *_callui_view_incoming_lock_new();
-
-/**
- * @brief Incoming lock set accept layout
- *
- * @param[in] vd view data
- * @param[in] layout Accept layout
- *
- */
-void _callui_view_incoming_lock_set_accept_layout(call_view_data_t *vd, Evas_Object *layout);
-
-/**
- * @brief Incoming lock get accept layout
- *
- * @param[in] vd View data
- *
- * @return Accept layout
- *
- */
-Evas_Object *_callui_view_incoming_lock_get_accept_layout(call_view_data_t *vd);
-
-/**
- * @brief Incoming lock get reject layout
- *
- * @param[in] vd View data
- *
- * @return Reject layout
- *
- */
-Evas_Object *_callui_view_incoming_lock_get_reject_layout(call_view_data_t *vd);
-
-/**
- * @brief Incoming lock set reject layout
- *
- * @param[in] vd View data
- * @param[in] layout Reject layout
- *
- */
-void _callui_view_incoming_lock_set_reject_layout(call_view_data_t *vd, Evas_Object *layout);
-
-/**
- * @brief Send reject message
- *
- * @param[in] data View data
- * @param[in] call_data Call data
- *
- */
-void _callui_view_incoming_lock_view_send_reject_msg(void *data, call_data_t *call_data);
-
-/**
- * @brief Create item class
- *
- * @return Elm_Genlist_Item_Class
- *
- */
-Elm_Genlist_Item_Class * _callui_view_incoming_lock_create_item_class();
-
-/**
- * @brief Create reject message button
- *
- * @param[in] parent Parent object
- * @param[in] part Part to set button
- * @param[in] data View data
- *
- */
-void _callui_view_incoming_lock_create_reject_msg_button(Evas_Object *parent, char *part, void *data);
-
-/**
- * @brief Append item to genlist
- *
- * @param[in] msg_glist Message genlist
- * @param[in] itc_reject_msg Genlist item class
- * @param[in] index Item index
- *
- * @return Item
- *
- */
-Elm_Object_Item *_callui_view_incoming_lock_append_genlist_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index);
-
-#define CALLUI_REJECT_MSG_LENGTH_MAX (210+1)
-typedef struct {
- Evas_Object *contents;
- Evas_Object *caller_info;
- Evas_Object *dimming_ly;
-
- Evas_Object *lock_accept;
- Evas_Object *lock_reject;
-
- Evas_Object *ic;
- Evas_Object *lock_reject_with_msg;
- Evas_Object *reject_msg_gl;
- Evas_Object *msg_glist;
-
- int reject_with_msg_start_y;
- int reject_with_msg_cur_y;
-
- int msg_list_height;
-
- gboolean bmouse_down_pressed;
-
- Elm_Genlist_Item_Class *itc_reject_msg;
- Evas_Coord y_momentum;
- char reject_msg[CALLUI_REJECT_MSG_LENGTH_MAX];
-
-} incoming_lock_view_priv_t;
-
-#endif //__CALLUI_INCOMINGLOCK_VIEW_H_
#define MTLOCK_REJECT_MSG_TOP_VISIBLE_AREA_W (MTLOCK_REJECT_MSG_TEXT_HEIGHT+MTLOCK_REJECT_MSG_ARW_HEIGHT)
// TODO: need to check and correct if is needed
-#define MTLOCK_ACTIVE_CALL_HEIGHT 360
+#define MTLOCK_ACTIVE_NOTI_CALL_HEIGHT 360
#define ITEM_SIZE_H 120
typedef enum {
VIEW_TYPE_UNDEFINED = -1,
- VIEW_TYPE_DIALLING, /**< Dialling view*/
- VIEW_TYPE_INCOMING_LOCK, /**< Incoming lock view*/
- VIEW_TYPE_SINGLECALL, /**< Incoming single call view*/
- VIEW_TYPE_MULTICALL_SPLIT, /**< Multicall split view */
- VIEW_TYPE_MULTICALL_CONF, /**< Multicall conference view */
- VIEW_TYPE_MULTICALL_LIST, /**< Multicall list view */
- VIEW_TYPE_ENDCALL, /**< End call view */
- VIEW_TYPE_QUICKPANEL, /**< Quick panel view */
- VIEW_TYPE_MAX /**< Max view count*/
+ VIEW_TYPE_DIALLING, /**< Dialling view*/
+ VIEW_TYPE_INCOMING_CALL_NOTI, /**< Incoming active notification view*/
+ VIEW_TYPE_INCOMING_CALL, /**< Incoming lock view*/
+ VIEW_TYPE_SINGLECALL, /**< Incoming single call view*/
+ VIEW_TYPE_MULTICALL_SPLIT, /**< Multicall split view */
+ VIEW_TYPE_MULTICALL_CONF, /**< Multicall conference view */
+ VIEW_TYPE_MULTICALL_LIST, /**< Multicall list view */
+ VIEW_TYPE_ENDCALL, /**< End call view */
+ VIEW_TYPE_QUICKPANEL, /**< Quick panel view */
+ VIEW_TYPE_MAX /**< Max view count*/
} callui_view_type_e;
struct _view_data;
-typedef struct appdata callui_app_data_t;
typedef int (*create_cb) (struct _view_data *view_data, void *appdata);
typedef int (*update_cb) (struct _view_data *view_data);
typedef int (*destroy_cb) (struct _view_data *view_data);
-typedef struct _view_data {
- callui_view_type_e type; //CM_UI to do removed vcui_app_call_data_t *app_data;
+typedef struct appdata callui_app_data_t;
+struct _view_data {
create_cb onCreate;
update_cb onUpdate;
destroy_cb onDestroy;
-
- Evas_Object *layout;
callui_app_data_t *ad;
- void *priv;
-} call_view_data_t;
+ Evas_Object *contents;
+};
+typedef struct _view_data call_view_data_base_t;
typedef struct _callui_vm *callui_vm_h;
/**
* @brief Create view manager
+ *
* @return view manager handler
*/
callui_vm_h _callui_vm_create(callui_app_data_t *ad);
/**
* @brief Destroy view manager
+ *
* @param[in] vm View manager handler
*/
void _callui_vm_destroy(callui_vm_h vm);
/**
* @brief Change view
+ *
* @param[in] vm View manager handler
* @param[in] type View type
+ *
* @return result CALLUI_RESULT_OK on success
*/
int _callui_vm_change_view(callui_vm_h vm, callui_view_type_e type);
/**
* @brief Auto change view
+ *
* @param[in] vm View manager handler
+ *
* @return result CALLUI_RESULT_OK on success
*/
int _callui_vm_auto_change_view(callui_vm_h vm);
/**
* @brief Get top view type
+ *
* @param[in] vm View manager handler
+ *
* @return view type
*/
callui_view_type_e _callui_vm_get_cur_view_type(callui_vm_h vm);
*/
-#ifndef _CALLUI_VIEW_MULTI_CALL_CONF_H_
-#define _CALLUI_VIEW_MULTI_CALL_CONF_H_
+#ifndef __CALLUI_VIEW_MULTI_CALL_CONF_H__
+#define __CALLUI_VIEW_MULTI_CALL_CONF_H__
-#include "callui-view-manager.h"
+typedef struct _callui_view_mc_conf *callui_view_mc_conf_h;
/**
- * @brief Create multicall conf
+ * @brief Creates Multicall conference view instance
*
- * @return New multicall data
+ * @return View data handler
*
*/
-call_view_data_t *_callui_view_multi_call_conf_new();
+callui_view_mc_conf_h _callui_view_multi_call_conf_new();
-#endif /*_CALLUI_VIEW_MULTI_CALL_CONF_H_*/
+#endif /* __CALLUI_VIEW_MULTI_CALL_CONF_H__ */
*/
-#ifndef _CALLUI_VIEW_MULTI_CALL_LIST_H_
-#define _CALLUI_VIEW_MULTI_CALL_LIST_H_
+#ifndef __CALLUI_VIEW_MULTI_CALL_LIST_H__
+#define __CALLUI_VIEW_MULTI_CALL_LIST_H__
+
+typedef struct _callui_view_mc_list *callui_view_mc_list_h;
/**
- * @brief Create multicall list view
- *
- * @param[in] ad Application data
+ * @brief Creates Multicall list view instance
*
- * @return New multicall list data
+ * @return View data handler
*
*/
-call_view_data_t *_callui_view_multi_call_list_new(callui_app_data_t *ad);
-#endif
+callui_view_mc_list_h _callui_view_multi_call_list_new();
+
+#endif /* __CALLUI_VIEW_MULTI_CALL_LIST_H__ */
*/
-#ifndef _CALLUI_VIEW_MULTI_CALL_SPLIT_H_
-#define _CALLUI_VIEW_MULTI_CALL_SPLIT_H_
+#ifndef __CALLUI_VIEW_MULTI_CALL_SPLIT_H__
+#define __CALLUI_VIEW_MULTI_CALL_SPLIT_H__
-#include "callui-view-manager.h"
+typedef struct _callui_view_mc_split *callui_view_mc_split_h;
/**
- * @brief Creates multi call split view
+ * @brief Creates Multicall split view instance
*
- * @return New multi call split view data
+ * @return View data handler
*
*/
-call_view_data_t *_callui_view_multi_call_split_new();
+callui_view_mc_split_h _callui_view_multi_call_split_new();
-#endif //_CALLUI_VIEW_MULTI_CALL_SPLIT_H_
+#endif /* __CALLUI_VIEW_MULTI_CALL_SPLIT_H__ */
*
*/
-#ifndef __CALLUI_ONECALL_VIEW_H_
-#define __CALLUI_ONECALL_VIEW_H_
+#ifndef __CALLUI_ONECALL_VIEW_H__
+#define __CALLUI_ONECALL_VIEW_H__
-#include "callui-view-manager.h"
+typedef struct _call_view_single_call *call_view_single_call_h;
/**
- * @brief Create single call view
- *
- * @return New single call data
+ * @brief Create Single call view instance
*
+ * @return View data handler
*/
-call_view_data_t *_callui_view_single_call_new();
+call_view_single_call_h _callui_view_single_call_new();
-#endif //__CALLUI_ONECALL_VIEW_H_
+#endif /* __CALLUI_ONECALL_VIEW_H__ */
#ifndef __CALLUI_H_
#define __CALLUI_H_
-#include <dlog.h>
#include <efl_extension.h>
#include <call-manager.h>
#include <call-manager-extension.h>
#include "callui-lock-manager.h"
#include "callui-debug.h"
+#define ACTIVE_NOTIFICATION_AVAILABLE 1
+
#ifndef CALLUI_EXPORT_API
#define CALLUI_EXPORT_API __attribute__ ((visibility("default")))
#endif
#define GRP_LOCK_ACCEPT "lock_accept"
#define GRP_LOCK_REJECT "lock_reject"
#define GRP_LOCK_REJECT_WITH_MSG "lock_reject_with_msg"
+#define GRP_DIMMING_LAYOUT "dimming_ly"
+#define GRP_ENDCALL_MAIN_LAYOUT "main_end_call"
+#define GRP_ENDCALL_CALL_BACK_BTN "call_back"
+#define GRP_ENDCALL_MSG_BTN "message_button"
+#define GRP_ENDCALL_CREATE_CONT_BTN "create_contact_button"
#define CALLUI_DISPLAY_NAME_LENGTH_MAX (255+1) /**< Voiecall Display Name Max Length */
#define CALLUI_IMAGE_PATH_LENGTH_MAX (255+1) /**< Max File length for image */
call_data_t *active;
call_data_t *held;
- bool active_incoming;
+ bool incoming_noti;
bool waiting_dialing;
scale: 1;
description {
state: "default" 0.0;
- visible: 0;
rel1{ relative: 0.0 1.0; to: "caller_info_rect";}
rel2{ relative: 1.0 1.0;}
min: MTLOCK_ACCEPT_CIRCLE_RECT_WIDTH MTLOCK_ACCEPT_CIRCLE_RECT_HEIGHT;
color: 255 255 255 255;
align: 0.5 0.0;
}
- description {
- state: "show" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
}
part { name: "btn_area";
}
}
- part { name: PART_SWALLOW_KEYPAD;
+ part { name: "btn_region";
type: SWALLOW;
scale: 1;
description {
state: "default" 0.0;
visible: 0;
- rel1.relative: 0.0 1.0;
- rel2.relative: 1.0 2.0;
+ rel1 { relative: 0.0 0.0; to: "btn_area";}
+ rel2 { relative: 1.0 1.0; to: "btn_area";}
+ align: 0.5 0.0;
}
description {
state: "show" 0.0;
inherit: "default" 0.0;
visible: 1;
- rel1.relative: 0.0 0.0;
- rel2 {
- relative: 1.0 0.0;
- to_y: "end_btn_area";
- }
}
description {
state: "hide" 0.0;
}
}
- part { name: "btn_region";
+ part { name: PART_SWALLOW_KEYPAD;
type: SWALLOW;
scale: 1;
description {
state: "default" 0.0;
visible: 0;
- rel1 { relative: 0.0 0.0; to: "btn_area";}
- rel2 { relative: 1.0 1.0; to: "btn_area";}
- align: 0.5 0.0;
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 2.0;
}
description {
state: "show" 0.0;
inherit: "default" 0.0;
visible: 1;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ to_y: "end_btn_area";
+ }
}
description {
state: "hide" 0.0;
source: "KEYPAD_BTN";
action: STATE_SET "hide" 0.0;
target: "caller_info";
- target: "btn_region";
after: "show_entry";
after: "show_keypadbtn";
}
action: STATE_SET "default" 0.0;
transition: LINEAR 0.25;
target: PART_SWALLOW_KEYPAD;
- after: "show_six_btns";
after: "show_caller_info";
}
- program { name: "show_six_btns";
- action: STATE_SET "show" 0.0;
- target: "btn_region";
- }
program {
name: "show_caller_info";
target: "btn_region";
target: PART_SWALLOW_KEYPAD;
}
-
- program { name: "show_mt_circle_bg";
- signal: "mt_circle_bg_show";
- source: "mt_view";
- action: STATE_SET "show" 0.0;
- target: "circle_btn_area";
- }
-
- program { name: "hide_mt_circle_bg";
- signal: "mt_circle_bg_hide";
- source: "mt_view";
- action: STATE_SET "default" 0.0;
- target: "circle_btn_area";
- }
}
}
}
}
}//parts
-
- programs {
- program {
- name: "set_portrait";
- signal: "set_portrait";
- source: "multicall_list_layout";
- in: 0.0 0.0;
- action: STATE_SET "default" 0.0;
-
- target: "background";
- target: "swl_calllist";
- }
- }
}
}
group {
- name: "main_incoming_active_call";
+ name: "main_active_noti_call";
parts {
part { name: "screen_bg";
type: RECT;
program {
name: "show_image";
signal: "show_image";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "show" 0.0;
target: "caller_id_mask";
target: "caller_id_default";
program {
name: "hide_image";
signal: "hide_image";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "hide" 0.0;
target: "caller_id_mask";
target: "caller_id_default";
program {
name: "small_main_ly";
signal: "small_main_ly";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "small" 0.0;
target: "bg";
after: "hide_reject_msg";
program {
name: "show_reject_msg";
signal: "show_reject_msg";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "show" 0.0;
target: "swallow.reject_msg";
}
program {
name: "hide_reject_msg";
signal: "hide_reject_msg";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "hide" 0.0;
target: "swallow.reject_msg";
}
program {
name: "big_main_ly";
signal: "big_main_ly";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "big" 0.0;
target: "bg";
after: "show_reject_msg";
program {
name: "show_swipe_call";
signal: "show_swipe_call";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "show" 0.0;
target: "swallow.swipe_button";
}
program {
name: "hide_swipe_call";
signal: "hide_swipe_call";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "hide" 0.0;
target: "swallow.swipe_button";
after: "show_reject_msg";
program {
name: "big_buttons";
signal: "big_buttons";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "big" 0.0;
target: "swallow.call_button";
target: "swallow.end_call_button";
program {
name: "hide_swallow.rj_msg_button";
signal: "hide_swallow.rj_msg_button";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "hide" 0.0;
target: "swallow.rj_msg_button";
}
program {
name: "small_buttons";
signal: "small_buttons";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "small" 0.0;
target: "swallow.call_button";
target: "swallow.end_call_button";
program {
name: "show_swallow.rj_msg_button";
signal: "show_swallow.rj_msg_button";
- source: "main_incoming_active_call";
+ source: "main_active_noti_call";
action: STATE_SET "show" 0.0;
target: "swallow.rj_msg_button";
}
#include <system_settings.h>
#include <efl_util.h>
#include <app_common.h>
+#include <msg.h>
+#include <msg_transport.h>
#include <Ecore_Wayland.h>
#include "callui-common.h"
static Eina_Bool __callui_common_ending_timer_expired_cb(void *data)
{
dbg("__callui_common_ending_timer_expired_cb");
- callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(data, ECORE_CALLBACK_CANCEL);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
ad->ending_timer = NULL;
_callui_common_exit_app();
+
return ECORE_CALLBACK_CANCEL;
}
static Eina_Bool __callui_common_ending_timer_blink_cb(void *data)
{
dbg("__callui_common_ending_timer_blink_cb");
- callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(data, ECORE_CALLBACK_CANCEL);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
if ((ad->blink_cnt % 2) == 0) {
_callui_show_caller_info_status(ad, _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"));
ecore_timer_del(ad->ending_timer);
ad->ending_timer = NULL;
}
- ad->ending_timer = ecore_timer_add(2, __callui_common_ending_timer_expired_cb, NULL);
+ ad->ending_timer = ecore_timer_add(2, __callui_common_ending_timer_expired_cb, ad);
ad->blink_timer = NULL;
return ECORE_CALLBACK_CANCEL;
return ECORE_CALLBACK_RENEW;
}
-void _callui_common_create_ending_timer(call_view_data_t *vd)
+void _callui_common_create_ending_timer(void *appdata)
{
- CALLUI_RETURN_IF_FAIL(vd);
- callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(appdata);
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
ad->blink_cnt = 0;
if (ad->blink_timer) {
ecore_timer_del(ad->blink_timer);
ad->blink_timer = NULL;
}
- ad->blink_timer = ecore_timer_add(0.5, __callui_common_ending_timer_blink_cb, vd);
+ ad->blink_timer = ecore_timer_add(0.5, __callui_common_ending_timer_blink_cb, ad);
}
-void _callui_common_delete_ending_timer(void)
+void _callui_common_delete_ending_timer(void *appdata)
{
- callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(appdata);
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
if (ad->ending_timer) {
ecore_timer_del(ad->ending_timer);
ad->ending_timer = NULL;
char *_callui_common_get_sim_name(void *appdata)
{
- dbg("_callui_common_get_sim_name");
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, NULL);
callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
char *sim_name = NULL;
if (ad->sim_slot == CM_SIM_SLOT_1_E) {
sim_name = vconf_get_str(VCONFKEY_SETAPPL_SIM1_NAME);
void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state)
{
- int bPowerkeyMode = 0;
+ int powerkey_mode = 0;
char str_on[32];
char str_dim[32];
char str_holdkey[2];
char *ar[3];
- int ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode);
+ int ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &powerkey_mode);
if (ret < 0) {
err("vconf_get_int failed..[%d]\n", ret);
}
- dbg("set timeout : %d, powerkeymode : %d", state, bPowerkeyMode);
+ dbg("set timeout : %d, powerkeymode : %d", state, powerkey_mode);
if (state == LCD_TIMEOUT_SET) {
snprintf(str_on, sizeof(str_on), "%d", 10);
snprintf(str_dim, sizeof(str_dim), "%d", 20);
- snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", powerkey_mode);
} else if (state == LCD_TIMEOUT_UNSET) {
snprintf(str_on, sizeof(str_on), "%d", 0);
snprintf(str_dim, sizeof(str_dim), "%d", 0);
- snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", powerkey_mode);
} else if (state == LCD_TIMEOUT_LOCKSCREEN_SET) { /*After lock-screen comes in Connected state LCD goes to OFF in 5 secs*/
snprintf(str_on, sizeof(str_on), "%d", 5);
snprintf(str_dim, sizeof(str_dim), "%d", 0);
- snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", powerkey_mode);
} else if (state == LCD_TIMEOUT_KEYPAD_SET) {
snprintf(str_on, sizeof(str_on), "%d", 3);
snprintf(str_dim, sizeof(str_dim), "%d", 5);
- snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", powerkey_mode);
} else {
snprintf(str_on, sizeof(str_on), "%d", 0);
snprintf(str_dim, sizeof(str_dim), "%d", 0);
edje_object_part_text_set(_EDJ(caller_info), "txt_call_name", "");
edje_object_part_text_set(_EDJ(caller_info), "txt_phone_num", "");
}
-
- return;
}
gboolean _callui_common_is_extra_volume_available(void)
}
}
-gboolean _callui_common_is_answering_mode_on(void)
+int _callui_common_is_answering_mode_on(void)
{
- gboolean bAnswerMode = EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
+ int answerMode = 0;
+ int ret = 0;
- ret = vconf_get_bool(VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, &bAnswerMode);
- if (0 == ret) {
- dbg("bAnswerMode = [%d] \n", bAnswerMode);
+ ret = vconf_get_bool(VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, &answerMode);
+ if (!ret) {
+ dbg("answerMode = [%d] \n", answerMode);
} else {
dbg("vconf_get_int failed..[%d]\n", ret);
}
- return bAnswerMode;
+ return answerMode;
}
-gboolean _callui_common_is_powerkey_mode_on(void)
+int _callui_common_is_powerkey_mode_on(void)
{
- gboolean bPowerkeyMode = EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
+ int powerkey_mode = 0;
+ int ret = 0;
- ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode);
- if (0 == ret) {
- dbg("bPowerkeyMode = [%d] \n", bPowerkeyMode);
+ ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &powerkey_mode);
+ if (!ret) {
+ dbg("powerkey_mode = [%d] \n", powerkey_mode);
} else {
dbg("vconf_get_int failed..[%d]\n", ret);
}
-
- return bPowerkeyMode;
+ return powerkey_mode;
}
static void __callui_common_lock_state_cb (system_settings_key_e key, void *user_data)
{
ui_app_exit();
}
+
+static void ___callui_common_send_reject_msg_status_cb(msg_handle_t Handle, msg_struct_t pStatus, void *pUserParam)
+{
+ CALLUI_RETURN_IF_FAIL(pStatus != NULL);
+ int status = MSG_NETWORK_SEND_FAIL;
+
+ msg_get_int_value(pStatus, MSG_SENT_STATUS_NETWORK_STATUS_INT, &status);
+ dbg("status:[%d]", status);
+}
+
+int _callui_common_send_reject_msg(void *appdata, char *reject_msg)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(reject_msg, CALLUI_RESULT_INVALID_PARAM);
+
+ int res = CALLUI_RESULT_FAIL;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ call_data_t *call_data = ad->incom;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(call_data, CALLUI_RESULT_FAIL);
+
+ if (strlen(reject_msg) == 0) {
+ err("Is not reject with message case");
+ return res;
+ }
+
+ msg_handle_t msgHandle = NULL;
+ msg_error_t err = msg_open_msg_handle(&msgHandle);
+ if (err != MSG_SUCCESS) {
+ dbg("msg_open_msg_handle()- failed [%d]", err);
+ return res;
+ }
+
+ err = msg_reg_sent_status_callback(msgHandle, ___callui_common_send_reject_msg_status_cb, NULL);
+ if (err != MSG_SUCCESS) {
+ dbg("msg_reg_sent_status_callback()- failed [%d]", err);
+ msg_close_msg_handle(&msgHandle);
+ return res;
+ }
+
+ msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+ msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ msg_struct_t pReq = msg_create_struct(MSG_STRUCT_REQUEST_INFO);
+
+ /* Set message type to SMS reject*/
+ msg_set_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS_REJECT);
+
+ int slot_id = ad->sim_slot;
+ dbg("msg_sms_send_message() Sim slot [%d]", slot_id);
+ if (slot_id != -1) {
+ slot_id++;
+ msg_set_int_value(msgInfo, MSG_MESSAGE_SIM_INDEX_INT, slot_id);
+ }
+
+ /* No setting send option */
+ msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, FALSE);
+
+ /* Set message body */
+ if (msg_set_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, reject_msg, strlen(reject_msg)) != MSG_SUCCESS) {
+ err("msg_set_str_value() - failed");
+ } else {
+ /* Create address list*/
+ msg_struct_list_s *addr_list;
+ msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void **)&addr_list);
+ msg_struct_t addr_info = addr_list->msg_struct_info[0];
+ char *call_number = call_data->call_num;
+
+ /* Set message address */
+ msg_set_int_value(addr_info, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+ msg_set_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, call_number, strlen(call_number));
+ addr_list->nCount = 1;
+
+ /* Set message struct to Request*/
+ msg_set_struct_handle(pReq, MSG_REQUEST_MESSAGE_HND, msgInfo);
+ msg_set_struct_handle(pReq, MSG_REQUEST_SENDOPT_HND, sendOpt);
+
+ /* Send message */
+ err = msg_sms_send_message(msgHandle, pReq);
+ if (err != MSG_SUCCESS) {
+ err("msg_sms_send_message() - failed [%d]", err);
+ } else {
+ dbg("Sending...");
+ res = CALLUI_RESULT_OK;
+ }
+ }
+ msg_close_msg_handle(&msgHandle);
+ msg_release_struct(&pReq);
+ msg_release_struct(&msgInfo);
+ msg_release_struct(&sendOpt);
+
+ return res;
+}
+
+bool _callui_is_on_handsfree_mode()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ return (ad->speaker_status || ad->headset_status || ad->earphone_status);
+}
+
+bool _callui_is_on_background()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ return ad->on_background;
+}
return;
}
-static void __callui_keypad_create_gesture_layer(void *data)
+static int __callui_keypad_create_gesture_layer(callui_app_data_t *ad)
{
- dbg("..");
-
keypad_data_t *pkeypad_data = gkeypad_data;
Evas_Object *sweep_area = NULL;
- callui_app_data_t *ad = (callui_app_data_t *)data;
if (pkeypad_data->gesture_ly) {
- evas_object_del(pkeypad_data->gesture_ly);
- pkeypad_data->gesture_ly = NULL;
+ DELETE_EVAS_OBJECT(pkeypad_data->gesture_ly);
}
sweep_area = _callui_edje_object_part_get(pkeypad_data->keypad_ly, "sweep_area");
pkeypad_data->gesture_ly = elm_gesture_layer_add(pkeypad_data->keypad_ly);
if (FALSE == elm_gesture_layer_attach(pkeypad_data->gesture_ly, sweep_area)) {
err("elm_gesture_layer_attach failed !!");
- evas_object_del(pkeypad_data->gesture_ly);
+ DELETE_EVAS_OBJECT(pkeypad_data->gesture_ly);
+ return CALLUI_RESULT_ALLOCATION_FAIL;
} else {
evas_object_event_callback_add(sweep_area, EVAS_CALLBACK_MOUSE_DOWN, __callui_keypad_arrow_mouse_down_cb, ad);
evas_object_event_callback_add(sweep_area, EVAS_CALLBACK_MOUSE_UP, __callui_keypad_arrow_mouse_up_cb, ad);
elm_gesture_layer_cb_set(pkeypad_data->gesture_ly, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __callui_keypad_arrow_flick_gesture_event_cb, ad);
}
- return;
+ return CALLUI_RESULT_OK;
}
return en;
}
-static void __callui_keypad_create_entry(void *data)
+static int __callui_keypad_create_entry(callui_app_data_t *ad)
{
- dbg("..");
- keypad_data_t *pkeypad_data = gkeypad_data;
- callui_app_data_t *ad = (callui_app_data_t *)data;
- CALLUI_RETURN_IF_FAIL(ad != NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(gkeypad_data, CALLUI_RESULT_FAIL);
+
Evas_Object *current_ly = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- CALLUI_RETURN_IF_FAIL(current_ly != NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(current_ly, CALLUI_RESULT_FAIL);
- CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL);
+ keypad_data_t *pkeypad_data = gkeypad_data;
if (!pkeypad_data->entry) {
- dbg("..");
pkeypad_data->entry = __callui_keypad_create_single_line_scrolled_entry(ad->win_conformant);
+ if (!pkeypad_data->entry) {
+ err("Create entry failed");
+ return CALLUI_RESULT_ALLOCATION_FAIL;
+ }
memset(pkeypad_data->entry_disp_data, 0x0, sizeof(pkeypad_data->entry_disp_data));
pkeypad_data->data_len = 0;
elm_object_signal_callback_add(pkeypad_data->keypad_ly, "pad_down", "*", __callui_keypad_on_key_down, ad);
elm_object_signal_callback_add(pkeypad_data->keypad_ly, "pad_up", "*", __callui_keypad_on_key_up, ad);
-
- if (current_ly) {
- edje_object_part_swallow(_EDJ(current_ly), PART_SWALLOW_TEXTBLOCK_AREA, pkeypad_data->entry);
- }
+ edje_object_part_swallow(_EDJ(current_ly), PART_SWALLOW_TEXTBLOCK_AREA, pkeypad_data->entry);
}
+
+ return CALLUI_RESULT_OK;
}
static Eina_Bool __down_arrow_animation_timerout_cb(void *data)
}
}
-void _callui_keypad_create_layout(void *appdata)
+int _callui_keypad_create_layout(void *appdata)
{
- dbg("..");
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
callui_app_data_t *ad = (callui_app_data_t *)appdata;
- CALLUI_RETURN_IF_FAIL(ad);
+
Evas_Object *parent_ly = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- CALLUI_RETURN_IF_FAIL(parent_ly);
+ CALLUI_RETURN_VALUE_IF_FAIL(parent_ly, CALLUI_RESULT_FAIL);
_callui_keypad_delete_layout(ad);
+ int res = CALLUI_RESULT_FAIL;
keypad_data_t *pkeypad_data = __callui_keypad_memory_alloc();
- CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(pkeypad_data, CALLUI_RESULT_ALLOCATION_FAIL);
if (!pkeypad_data->keypad_ly) {
dbg("..");
pkeypad_data->keypad_ly = __callui_keypad_create_contents(ad, GRP_KEYPAD);
-
- __callui_keypad_create_gesture_layer(ad);
-
+ if (!pkeypad_data->keypad_ly) {
+ err("Create keypad_ly failed");
+ _callui_keypad_delete_layout(ad);
+ return CALLUI_RESULT_ALLOCATION_FAIL;
+ }
+ res = __callui_keypad_create_gesture_layer(ad);
+ if (res != CALLUI_RESULT_OK) {
+ err("Create gesture_layer failed");
+ _callui_keypad_delete_layout(ad);
+ return CALLUI_RESULT_ALLOCATION_FAIL;
+ }
elm_object_part_content_set(parent_ly, PART_SWALLOW_KEYPAD, pkeypad_data->keypad_ly);
}
- __callui_keypad_create_entry(ad);
- memset(pkeypad_data->entry_disp_data, '\0', KEYPAD_ENTRY_DISP_DATA_SIZE+1);
+ res = __callui_keypad_create_entry(ad);
+ if (res != CALLUI_RESULT_OK) {
+ err("Create entry failed");
+ _callui_keypad_delete_layout(ad);
+ return CALLUI_RESULT_ALLOCATION_FAIL;
+ }
+
+ memset(pkeypad_data->entry_disp_data, '\0', KEYPAD_ENTRY_DISP_DATA_SIZE + 1);
pkeypad_data->data_len = 0;
elm_entry_entry_set(pkeypad_data->entry, "");
elm_entry_cursor_end_set(pkeypad_data->entry);
+
+ return res;
}
void _callui_keypad_delete_layout(void *appdata)
#include "callui-lock-manager.h"
#include "callui-proximity-lock-manager.h"
#include "callui-view-lock-screen.h"
-#include "callui-view-elements.h"
+#include "callui-common.h"
lock_data_t *_callui_lock_manager_create()
{
+++ /dev/null
-/*
- * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "callui-view-incoming-lock.h"
-#include "callui-view-active-incoming-call.h"
-#include "callui-view-manager.h"
-#include "callui-view-layout.h"
-#include "callui-view-elements.h"
-#include "callui-common.h"
-#include <vconf.h>
-#include <app_control.h>
-
-#define DURING_ICON "call_button_icon_03.png"
-#define REJECT_ICON "call_button_icon_04.png"
-#define END_ICON "call_button_icon_01.png"
-#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
-
-static Eina_Bool __callui_view_active_incoming_call_effect_close_active(void *data);
-static void __callui_view_active_incoming_call_reject_msg_create_glist(void *data);
-typedef void (*button_cb)(void *data, Evas *evas, Evas_Object *obj, void *event_info);
-
-static void __callui_view_active_incoming_call_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
- if (data) {
- incoming_lock_view_priv_t *prev = (incoming_lock_view_priv_t *) data;
- ecore_idle_enterer_before_add(__callui_view_active_incoming_call_effect_close_active, prev);
- callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data");
- if (ad) {
- evas_object_resize(ad->win, 0, 0);
- }
- }
-}
-
-static Eina_Bool __callui_view_active_incoming_call_effect_close_active(void *data)
-{
- if (data) {
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) data;
- Evas_Object *screen_ly = NULL;
- Elm_Transit *transit = NULL;
- int xpos = 0;
- int ypos = 0;
- int width = 0;
- int height = 0;
- int transit_y = 0;
-
- screen_ly = priv->contents;
- transit = elm_transit_add();
- elm_transit_object_add(transit, screen_ly);
- evas_object_geometry_get(screen_ly, &xpos, &ypos, &width, &height);
- transit_y = -(height + ypos);
- elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- elm_transit_duration_set(transit, 0.5);
- evas_object_show(screen_ly);
- elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
- elm_transit_go(transit);
- }
- return ECORE_CALLBACK_CANCEL;
-}
-
-static void __callui_view_active_incoming_call_reject_message_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- if (data) {
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) vd->priv;
- callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data");
- if (ad) {
- evas_object_resize(ad->win, ad->root_w, ad->root_h);
- }
- __callui_view_active_incoming_call_reject_msg_create_glist(vd);
- elm_object_signal_emit(priv->contents, "big_main_ly", "main_incoming_active_call");
- }
-}
-
-static void __callui_view_active_incoming_call_reject_ms_back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- if (data) {
- incoming_lock_view_priv_t *prev = (incoming_lock_view_priv_t *) data;
- callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data");
- if (ad) {
- evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT));
- }
- elm_object_signal_emit(prev->contents, "small_main_ly", "main_incoming_active_call");
- evas_object_del(prev->msg_glist);
- }
-}
-
-static void __callui_view_active_incoming_call_reject_msg_create_glist(void *data)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_IF_FAIL(vd);
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- CALLUI_RETURN_IF_FAIL(priv);
- callui_app_data_t *ad = _callui_get_app_data();
- Elm_Object_Item *item = NULL;
- int msg_cnt = 0;
- int index = 0;
-
- if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
- warn("vconf_get_int failed.");
- }
-
- priv->reject_msg_gl = _callui_load_edj(ad->win, EDJ_NAME, "reject_msg_ly");
- elm_object_part_content_set(priv->contents, "swallow.reject_msg", priv->reject_msg_gl);
- priv->msg_glist = elm_genlist_add(priv->contents);
- CALLUI_RETURN_IF_FAIL(priv->msg_glist);
- //elm_genlist_realization_mode_set(priv->msg_glist, EINA_TRUE);
- evas_object_data_set(priv->reject_msg_gl, "app_data", ad);
- eext_object_event_callback_add(priv->reject_msg_gl, EEXT_CALLBACK_BACK, __callui_view_active_incoming_call_reject_ms_back_cb, (void *)priv);
-
- evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd);
- evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_object_part_content_set(priv->reject_msg_gl, "swallow.content", priv->msg_glist);
-
- priv->itc_reject_msg = _callui_view_incoming_lock_create_item_class();
-
- if (msg_cnt == 0) {
- index = -1;
- item = _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
- if (item) {
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
- } else {
- for (index = 0; index < msg_cnt; index++) {
- _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
- }
- }
- elm_genlist_item_class_free(priv->itc_reject_msg);
- priv->itc_reject_msg = NULL;
-
- _callui_view_incoming_lock_create_reject_msg_button(priv->reject_msg_gl, "swallow.button", data);
-
- elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE);
- evas_object_size_hint_min_set(priv->msg_glist, ad->root_w, 0);
- evas_object_size_hint_max_set(priv->msg_glist, ad->root_w, ELM_SCALE_SIZE(MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT * msg_cnt));
- evas_object_show(priv->reject_msg_gl);
- evas_object_show(priv->msg_glist);
-}
-
-static void __callui_view_active_incoming_call_app_control_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
- char *key = (char *) data;
- if (key == NULL) {
- return;
- }
- app_control_h app_control = NULL;
- if (app_control_create(&app_control) != APP_CONTROL_ERROR_NONE) {
- dbg("app_control_create() is failed");
- } else if (app_control_set_app_id(app_control, "org.tizen.call-ui") != APP_CONTROL_ERROR_NONE) {
- dbg("app_control_set_app_id() is failed");
- } else if (app_control_set_operation(app_control, key) != APP_CONTROL_ERROR_NONE) {
- dbg("app_control_set_operation() is failed");
- } else if (app_control_send_launch_request(app_control, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
- err("app_control_send_launch_request() is failed");
- }
-
- app_control_destroy(app_control);
-}
-
-int _callui_view_active_incoming_call_oncreate(call_view_data_t *view_data, void *appdata)
-{
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) view_data->priv;
-
- priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (priv->contents) {
- priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
- if (priv->caller_info) {
- evas_object_del(priv->caller_info);
- priv->caller_info = NULL;
- }
-
- Evas_Object *btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
- if (btn_ly) {
- evas_object_del(btn_ly);
- btn_ly = NULL;
- }
- evas_object_del(priv->contents);
- elm_win_alpha_set(ad->win, EINA_TRUE);
- priv->contents = NULL;
- }
- if (ad->main_ly) {
- evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT));
- priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (!priv->contents) {
- priv->contents = _callui_load_edj(ad->main_ly, EDJ_NAME, "main_incoming_active_call");
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
- }
- evas_object_show(priv->contents);
- evas_object_show(ad->main_ly);
- }
- return 0;
-}
-
-void _callui_view_active_incoming_call_create_button(callui_app_data_t *ad, char *icon_name, char *part, button_cb func, void * data, void * data_bt_cb)
-{
- incoming_lock_view_priv_t * priv = (incoming_lock_view_priv_t *)data;
- if (priv) {
- Evas_Object *button_call = elm_layout_add(priv->contents);
- if (button_call) {
- elm_layout_file_set(button_call, EDJ_NAME, "main_button_ly");
- Evas_Object *icon = elm_image_add(button_call);
- elm_image_file_set(icon, EDJ_NAME, icon_name);
- elm_object_part_content_set(button_call, "swallow.icon", icon);
- elm_object_part_content_set(priv->contents, part, button_call);
- evas_object_data_set(button_call, "app_data", ad);
- evas_object_event_callback_add(button_call, EVAS_CALLBACK_MOUSE_UP, func, data_bt_cb);
- }
- }
-}
-
-void _callui_view_active_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd)
-{
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- call_data_t *call_data = NULL;
-
- call_data = ad->incom;
- if (call_data == NULL) {
- err("call data is null");
- return;
- }
- elm_object_signal_emit(priv->contents, "small_main_ly", "main_incoming_active_call");
-
- _callui_view_active_incoming_call_create_button(ad, DURING_ICON, "swallow.call_button",
- __callui_view_active_incoming_call_app_control_cb, priv, (void *)APP_CONTROL_OPERATION_DURING_CALL);
- _callui_view_active_incoming_call_create_button(ad, REJECT_ICON, "swallow.rj_msg_button",
- __callui_view_active_incoming_call_reject_message_btn_cb, priv, (void *)vd);
- _callui_view_active_incoming_call_create_button(ad, END_ICON, "swallow.end_call_button",
- __callui_view_active_incoming_call_app_control_cb, priv, (void *)APP_CONTROL_OPERATION_END_CALL);
-
- Evas_Object *swipe_button = elm_layout_add(priv->contents);
- if (swipe_button) {
- elm_layout_file_set(swipe_button, EDJ_NAME, "swipe_call_button_ly");
- evas_object_event_callback_add(swipe_button, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_active_incoming_call_mouse_move_cb, (void *)priv);
- evas_object_data_set(swipe_button, "app_data", ad);
- }
- elm_object_part_content_set(priv->contents, "swallow.swipe_button", swipe_button);
-
- char *call_name = call_data->call_ct_info.call_disp_name;
- char *call_number = NULL;
- if (call_data->call_disp_num[0] != '\0') {
- call_number = call_data->call_disp_num;
- } else {
- call_number = call_data->call_num;
- }
- char *file_path = call_data->call_ct_info.caller_id_path;
-
- if (!(call_name && call_name[0] != '\0') && !(call_number && call_number[0] != '\0')) {
- elm_object_signal_emit(priv->contents, "big_buttons", "main_incoming_active_call");
- elm_object_part_text_set(priv->contents, "text.contact_name", _("IDS_CALL_BODY_UNKNOWN"));
- } else if (!(call_name && call_name[0] != '\0')) {
- elm_object_signal_emit(priv->contents, "small_buttons", "main_incoming_active_call");
- elm_object_part_text_set(priv->contents, "text.contact_name", call_number);
- } else {
- elm_object_signal_emit(priv->contents, "small_buttons", "main_incoming_active_call");
- elm_object_part_text_set(priv->contents, "text.contact_name", call_name);
- elm_object_part_text_set(priv->contents, "text.contact_number", call_number);
- }
-
- if (strcmp(file_path, "default") != 0) {
- _callui_show_caller_id(priv->contents, file_path);
- } else {
- elm_object_signal_emit(priv->contents, "show_image", "main_incoming_active_call");
- }
-}
*
*/
-#include "callui.h"
+#include <app_control.h>
+
#include "callui-view-callend.h"
+#include "callui.h"
#include "callui-view-elements.h"
#include "callui-common.h"
-#include <app_control.h>
-#define CALLUI_VIEW_CALLEND_LAYOUT_ID "ENDCALLVIEW"
-struct callui_endcall_view_priv {
- Evas_Object *contents;
- Evas_Object *caller_info;
- Evas_Object *caller_id;
- Evas_Object *btn_ly;
- Evas_Object *ic; /* small size call image */
- Eina_Bool bshowbutton;
+#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
+#define CONTACT_NUMBER_BUF_LEN 32
+
+struct _callui_view_callend {
+ call_view_data_base_t base_view;
+
Evas_Object *create_update_popup;
- char caller_id_path[CALLUI_IMAGE_PATH_LENGTH_MAX];
+
char call_number[CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX];
- int contact_person_id;
- int call_end_type;
- bool is_emergency_call;
};
-typedef struct callui_endcall_view_priv callui_endcall_view_priv_t;
+typedef struct _callui_view_callend _callui_view_callend_t;
-#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
-#define CONTACT_NUMBER_BUF_LEN 32
-#define BG_COLOR_ALPHA 120
+static int __callui_view_callend_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_callend_ondestroy(call_view_data_base_t *view_data);
+
+static int __create_main_content(callui_view_callend_h vd);
+static int __update_displayed_data(callui_view_callend_h vd);
+
+static void __call_back_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
-static int __callui_view_callend_oncreate(call_view_data_t *view_data, void *appdata);
-static int __callui_view_callend_onupdate(call_view_data_t *view_data);
-static int __callui_view_callend_onshow(call_view_data_t *view_data, void *appdata);
-static int __callui_view_callend_ondestroy(call_view_data_t *view_data);
-static void __callui_view_callend_create_screen(callui_app_data_t *ad, Evas_Object *eo, void *data);
-static Evas_Object *__callui_view_callend_create_contents(void *data, char *grp_name);
+static char *__vcui_endcall_get_item_text(void *data, Evas_Object *obj, const char *part);
-call_view_data_t *_callui_view_callend_new()
+static void __create_contact_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __update_contact_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __popup_back_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __add_contact_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __msg_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+
+callui_view_callend_h _callui_view_callend_new()
{
- call_view_data_t *callend_view = calloc(1, sizeof(call_view_data_t));
- callend_view->type = VIEW_TYPE_ENDCALL;
- callend_view->layout = NULL;
- callend_view->onCreate = __callui_view_callend_oncreate;
- callend_view->onUpdate = __callui_view_callend_onupdate;
- callend_view->onDestroy = __callui_view_callend_ondestroy;
-
- callend_view->priv = calloc(1, sizeof(callui_endcall_view_priv_t));
- if (!callend_view->priv) {
- err("ERROR!!!!!!!!!!!");
- }
+ callui_view_callend_h callend_view = calloc(1, sizeof(_callui_view_callend_t));
+ CALLUI_RETURN_NULL_IF_FAIL(callend_view);
+
+ callend_view->base_view.onCreate = __callui_view_callend_oncreate;
+ callend_view->base_view.onUpdate = NULL;
+ callend_view->base_view.onDestroy = __callui_view_callend_ondestroy;
return callend_view;
}
-static void __callui_endcall_voicecall_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static int __callui_view_callend_oncreate(call_view_data_base_t *view_data, void *appdata)
{
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_callend_h vd = (callui_view_callend_h)view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ vd->base_view.ad = ad;
+
+ _callui_common_win_set_noti_type(vd->base_view.ad, EINA_TRUE);
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ return __update_displayed_data(vd);
+}
+
+
+static int __callui_view_callend_ondestroy(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_callend_h vd = (callui_view_callend_h)view_data;
+
+ _callui_common_delete_ending_timer(vd->base_view.ad);
+
+ DELETE_EVAS_OBJECT(vd->create_update_popup);
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
+
+ free(vd);
+
+ return CALLUI_RESULT_OK;
+}
+
+static int __create_main_content(callui_view_callend_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_ENDCALL_MAIN_LAYOUT);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
+
+ return CALLUI_RESULT_OK;
+}
+
+static int __update_displayed_data(callui_view_callend_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ call_data_t *call_data = NULL;
+ if (ad->active) {
+ call_data = ad->active;
+ } else {
+ call_data = ad->held;
+ }
+ CALLUI_RETURN_VALUE_IF_FAIL(call_data, CALLUI_RESULT_FAIL);
+
+ char *file_path = call_data->call_ct_info.caller_id_path;
+ char *call_name = call_data->call_ct_info.call_disp_name;
+
+ if (call_data->call_disp_num[0] != '\0') {
+ strncpy(vd->call_number, call_data->call_disp_num, sizeof(vd->call_number));
+ } else {
+ strncpy(vd->call_number, call_data->call_num, sizeof(vd->call_number));
+ }
+
+ Evas_Object *button_call_back = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_CALL_BACK_BTN);
+ CALLUI_RETURN_VALUE_IF_FAIL(button_call_back, CALLUI_RESULT_ALLOCATION_FAIL);
+ evas_object_event_callback_add(button_call_back, EVAS_CALLBACK_MOUSE_UP, __call_back_btn_click_cb, vd);
+ elm_object_part_text_set(button_call_back, "end_btn_text", _("IDS_CALL_BUTTON_CALL"));
+ elm_object_part_content_set(vd->base_view.contents, "button_call_back", button_call_back);
+
+ Evas_Object *button_message = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_MSG_BTN);
+ CALLUI_RETURN_VALUE_IF_FAIL(button_message, CALLUI_RESULT_ALLOCATION_FAIL);
+ evas_object_event_callback_add(button_message, EVAS_CALLBACK_MOUSE_UP, __msg_btn_click_cb, vd);
+ elm_object_part_text_set(button_message, "end_btn_text", _("IDS_COM_BODY_MESSAGE"));
+ elm_object_part_content_set(vd->base_view.contents, "button_message_back", button_message);
- evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __callui_endcall_voicecall_btn_cb);
+ elm_object_part_text_set(vd->base_view.contents, "main_title_status", _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"));
- _callui_common_delete_ending_timer();
- ad->speaker_status = EINA_FALSE;
- ad->mute_status = EINA_FALSE;
- ad->extra_volume_status = EINA_FALSE;
- cm_dial_call(ad->cm_handle, data, CM_CALL_TYPE_VOICE, ad->sim_slot);
- return;
+ if (!(call_name && call_name[0] != '\0')) {
+ Evas_Object *button_create = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_CREATE_CONT_BTN);
+ CALLUI_RETURN_VALUE_IF_FAIL(button_create, CALLUI_RESULT_ALLOCATION_FAIL);
+ evas_object_event_callback_add(button_create, EVAS_CALLBACK_MOUSE_UP, __add_contact_btn_click_cb, vd);
+ elm_object_part_content_set(vd->base_view.contents, "swallow.create_contact", button_create);
+
+ elm_object_part_text_set(vd->base_view.contents, "contact_name", vd->call_number);
+ elm_object_part_text_set(vd->base_view.contents, "contact_number", _("IDS_COM_OPT_ADD_TO_CONTACTS"));
+ } else {
+ elm_object_part_text_set(vd->base_view.contents, "contact_name", call_name);
+ elm_object_part_text_set(vd->base_view.contents, "contact_number", vd->call_number);
+ }
+
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(vd->base_view.contents, file_path);
+ } else {
+ elm_object_signal_emit(vd->base_view.contents, "show_image", "main_end_call");
+ }
+
+ _callui_common_create_ending_timer(vd->base_view.ad);
+
+ evas_object_show(vd->base_view.contents);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return CALLUI_RESULT_OK;
}
-char *__vcui_endcall_get_item_text(void *data, Evas_Object *obj, const char *part)
+static void __call_back_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_view_callend_h vd = (callui_view_callend_h)data;
+
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __call_back_btn_click_cb);
+
+ _callui_common_delete_ending_timer(vd->base_view.ad);
+
+ vd->base_view.ad->speaker_status = EINA_FALSE;
+ vd->base_view.ad->mute_status = EINA_FALSE;
+ vd->base_view.ad->extra_volume_status = EINA_FALSE;
+
+ cm_dial_call(vd->base_view.ad->cm_handle,
+ vd->call_number,
+ CM_CALL_TYPE_VOICE,
+ vd->base_view.ad->sim_slot);
+}
+
+static char *__vcui_endcall_get_item_text(void *data, Evas_Object *obj, const char *part)
{
CALLUI_RETURN_VALUE_IF_FAIL(data, NULL);
if (!strcmp(part, "elm.text")) {
return strdup(data);
}
-
return NULL;
}
-static void __vcui_endcall_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __create_contact_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_view_callend_h vd = (callui_view_callend_h)data;
+
_callui_common_exit_app();
+
+ // TODO: Replace into launcher
app_control_h request;
app_control_create(&request);
app_control_set_operation(request, APP_CONTROL_OPERATION_ADD);
app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+ app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, vd->call_number);
- if (data) {
- app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, data);
- }
int err = app_control_send_launch_request(request, NULL, NULL);
if (err != APP_CONTROL_ERROR_NONE) {
dbg("app_control_send_launch_request() is failed");
app_control_destroy(request);
}
-static void __vcui_endcall_update_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __update_contact_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_view_callend_h vd = (callui_view_callend_h)data;
+
_callui_common_exit_app();
+
+ // TODO: Replace into launcher
app_control_h request;
app_control_create(&request);
app_control_set_operation(request, APP_CONTROL_OPERATION_EDIT);
app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+ app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, vd->call_number);
- if (data) {
- app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, data);
- }
int result = app_control_send_launch_request(request, NULL, NULL);
if (result != APP_CONTROL_ERROR_NONE) {
err("app_control_send_launch_request() failed (%d)", result);
app_control_destroy(request);
}
-static void __vcui_endcall_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+static void __popup_back_click_cb(void *data, Evas_Object *obj, void *event_info)
{
dbg("..");
callui_app_data_t *ad = (callui_app_data_t *)data;
}
}
-static void __vcui_endcall_create_popup_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static void __add_contact_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_view_callend_h vd = (callui_view_callend_h)data;
- if (ad->ending_timer) {
- ecore_timer_freeze(ad->ending_timer);
- } else if (ad->blink_timer) {
- ecore_timer_freeze(ad->blink_timer);
+ if (vd->base_view.ad->ending_timer) {
+ ecore_timer_freeze(vd->base_view.ad->ending_timer);
+ } else if (vd->base_view.ad->blink_timer) {
+ ecore_timer_freeze(vd->base_view.ad->blink_timer);
}
- callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)data;
- CALLUI_RETURN_IF_FAIL(priv);
+
Evas_Object *parent = elm_object_top_widget_get(obj);
CALLUI_RETURN_IF_FAIL(parent);
- priv->create_update_popup = elm_popup_add(parent);
- eext_object_event_callback_add(priv->create_update_popup, EEXT_CALLBACK_BACK, __vcui_endcall_popup_back_cb, ad);
- elm_popup_align_set(priv->create_update_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
- elm_object_part_text_set(priv->create_update_popup, "title,text", priv->call_number);
+ vd->create_update_popup = elm_popup_add(parent);
+ eext_object_event_callback_add(vd->create_update_popup, EEXT_CALLBACK_BACK, __popup_back_click_cb, vd->base_view.ad);
+
+ elm_popup_align_set(vd->create_update_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ elm_object_part_text_set(vd->create_update_popup, "title,text", vd->call_number);
- Evas_Object *genlist = elm_genlist_add(priv->create_update_popup);
+ Evas_Object *genlist = elm_genlist_add(vd->create_update_popup);
elm_genlist_homogeneous_set(genlist, EINA_TRUE);
elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
itc->item_style = "type1";
itc->func.text_get = __vcui_endcall_get_item_text;
- elm_genlist_item_append(genlist, itc, _("IDS_COM_OPT_CREATE_CONTACT"), NULL, ELM_GENLIST_ITEM_NONE, __vcui_endcall_create_contact_btn_cb, priv->call_number);
- elm_genlist_item_append(genlist, itc, "Update contact", NULL, ELM_GENLIST_ITEM_NONE, __vcui_endcall_update_contact_btn_cb, priv->call_number);
+ elm_genlist_item_append(genlist, itc, _("IDS_COM_OPT_CREATE_CONTACT"),
+ NULL, ELM_GENLIST_ITEM_NONE, __create_contact_btn_click_cb, vd);
+ elm_genlist_item_append(genlist, itc, "Update contact",
+ NULL, ELM_GENLIST_ITEM_NONE, __update_contact_btn_click_cb, vd);
elm_genlist_item_class_free(itc);
- elm_object_content_set(priv->create_update_popup, genlist);
- elm_popup_orient_set(priv->create_update_popup, ELM_POPUP_ORIENT_CENTER);
- evas_object_show(priv->create_update_popup);
+ elm_object_content_set(vd->create_update_popup, genlist);
+ elm_popup_orient_set(vd->create_update_popup, ELM_POPUP_ORIENT_CENTER);
+ evas_object_show(vd->create_update_popup);
}
-static void __vcui_endcall_msg_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static void __msg_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
- evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_msg_btn_cb);
- char *number = (char *)data;
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_view_callend_h vd = (callui_view_callend_h)data;
+
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __msg_btn_click_cb);
+
app_control_h request;
app_control_create(&request);
app_control_set_operation(request, APP_CONTROL_OPERATION_COMPOSE);
char str[CONTACT_NUMBER_BUF_LEN];
- snprintf(str, sizeof(str), "sms:%s", number);
+ snprintf(str, sizeof(str), "sms:%s", vd->call_number);
app_control_set_uri(request, str);
+
int result = app_control_send_launch_request(request, NULL, NULL);
if (result != APP_CONTROL_ERROR_NONE) {
err("app_control_send_launch_request() failed (%d)", result);
}
app_control_destroy(request);
}
-
-static void __callui_view_callend_create_screen(callui_app_data_t *ad, Evas_Object *eo, void *data)
-{
- dbg("..");
-
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_IF_FAIL(vd);
- callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv;
- CALLUI_RETURN_IF_FAIL(priv);
- call_data_t *call_data = NULL;
-
- if (ad->active) {
- call_data = ad->active;
- } else {
- call_data = ad->held;
- }
- CALLUI_RETURN_IF_FAIL(call_data);
-
- char *file_path = call_data->call_ct_info.caller_id_path;
- char *call_name = call_data->call_ct_info.call_disp_name;
-
- if (call_data->call_disp_num[0] != '\0') {
- strncpy(priv->call_number, call_data->call_disp_num, sizeof(priv->call_number));
- } else {
- strncpy(priv->call_number, call_data->call_num, sizeof(priv->call_number));
- }
- priv->contact_person_id = call_data->call_ct_info.person_id;
-
- Evas_Object *button_call_back = elm_layout_add(priv->contents);
- if (button_call_back) {
- elm_layout_file_set(button_call_back, EDJ_NAME, "call_back");
- evas_object_event_callback_add(button_call_back, EVAS_CALLBACK_MOUSE_UP, __callui_endcall_voicecall_btn_cb, (void *)priv->call_number);
- elm_object_part_text_set(button_call_back, "end_btn_text", _("IDS_CALL_BUTTON_CALL"));
- }
- elm_object_part_content_set(priv->contents, "button_call_back", button_call_back);
-
- Evas_Object *button_message = elm_layout_add(priv->contents);
- if (button_message) {
- elm_layout_file_set(button_message, EDJ_NAME, "message_button");
- evas_object_event_callback_add(button_message, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_msg_btn_cb, (void *)priv->call_number);
- elm_object_part_text_set(button_message, "end_btn_text", _("IDS_COM_BODY_MESSAGE"));
- }
- elm_object_part_content_set(priv->contents, "button_message_back", button_message);
- elm_object_part_text_set(priv->contents, "main_title_status", _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"));
-
- if (!(call_name && call_name[0] != '\0')) {
- Evas_Object *button_create = elm_layout_add(priv->contents);
- if (button_create) {
- elm_layout_file_set(button_create, EDJ_NAME, "create_contact_button");
- evas_object_event_callback_add(button_create, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_create_popup_cb, (void *)priv);
- elm_object_part_content_set(priv->contents, "swallow.create_contact", button_create);
- }
- elm_object_part_text_set(priv->contents, "contact_name", priv->call_number);
- elm_object_part_text_set(priv->contents, "contact_number", _("IDS_COM_OPT_ADD_TO_CONTACTS"));
- } else {
- elm_object_part_text_set(priv->contents, "contact_name", call_name);
- elm_object_part_text_set(priv->contents, "contact_number", priv->call_number);
- }
-
- if (strcmp(file_path, "default") != 0) {
- _callui_show_caller_id(priv->contents, file_path);
- } else {
- elm_object_signal_emit(priv->contents, "show_image", "main_end_call");
- }
- _callui_common_create_ending_timer(vd);
-}
-
-static Evas_Object *__callui_view_callend_create_contents(void *data, char *grp_name)
-{
- if (data == NULL) {
- err("ERROR");
- return NULL;
- }
- callui_app_data_t *ad = (callui_app_data_t *)data;
- Evas_Object *eo = NULL;
-
- eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grp_name);
-
- if (eo == NULL)
- return NULL;
-
- return eo;
-}
-
-static int __callui_view_callend_oncreate(call_view_data_t *view_data, void *data)
-{
- dbg("endcall view create");
- call_view_data_t *vd = view_data;
- callui_app_data_t *ad = (callui_app_data_t *)data;
- callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv;
- call_data_t *call_data = NULL;
-
- vd->ad = ad;
- priv->bshowbutton = FALSE; /* Init */
-
- if (ad->active) {
- call_data = ad->active;
- } else {
- call_data = ad->held;
- }
- CALLUI_RETURN_VALUE_IF_FAIL(call_data, -1);
-
- Evas_Object *contents = NULL;
- Evas_Object *caller_info = NULL;
- Evas_Object *btn_ly = NULL;
-
- contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (contents) {
- caller_info = elm_object_part_content_get(contents, "caller_info");
- if (caller_info) {
- evas_object_del(caller_info);
- caller_info = NULL;
- }
-
- btn_ly = elm_object_part_content_get(contents, "btn_region");
- if (btn_ly) {
- evas_object_del(btn_ly);
- btn_ly = NULL;
- }
- evas_object_del(contents);
- contents = NULL;
- }
-
- g_strlcpy(priv->caller_id_path, call_data->call_ct_info.caller_id_path, sizeof(priv->caller_id_path));
- if (ad->main_ly) {
- priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (!priv->contents) {
- priv->contents = __callui_view_callend_create_contents(ad, "main_end_call");
- _callui_set_object_data(priv->contents, CALLUI_END_TYPE_KEY, CALLUI_END_TYPE_SINGLE_CALL_END);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
- evas_object_name_set(priv->contents, CALLUI_VIEW_CALLEND_LAYOUT_ID);
- }
-
- __callui_view_callend_onshow(view_data, ad);
- }
- return 0;
-}
-
-static int __callui_view_callend_onupdate(call_view_data_t *view_data)
-{
- dbg("end call view update");
- return 0;
-}
-
-static int __callui_view_callend_onshow(call_view_data_t *view_data, void *appdata)
-{
- dbg("end call view show");
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)view_data->priv;
-
- __callui_view_callend_create_screen(ad, priv->contents, view_data);
-
- _callui_common_win_set_noti_type(ad, EINA_TRUE);
- evas_object_hide(ad->main_ly);
- evas_object_show(ad->main_ly);
- return 0;
-}
-
-static int __callui_view_callend_ondestroy(call_view_data_t *vd)
-{
- CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
-
- callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv;
-
- _callui_common_delete_ending_timer();
-
- if (priv != NULL) {
- if (priv->contents) {
- evas_object_del(priv->contents);
- priv->contents = NULL;
- }
-
- if (priv->caller_info) {
- evas_object_del(priv->caller_info);
- priv->caller_info = NULL;
- }
-
- if (priv->caller_id) {
- evas_object_del(priv->caller_id);
- priv->caller_id = NULL;
- }
-
- if (priv->create_update_popup) {
- dbg("create_update_popup");
- evas_object_del(priv->create_update_popup);
- }
- free(priv);
- priv = NULL;
- }
-
- return 0;
-}
-
-Evas_Object *_callui_view_callend_get_layout(call_view_data_t *vd)
-{
- dbg("..");
- callui_endcall_view_priv_t *priv = NULL;
-
- CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
- priv = (callui_endcall_view_priv_t *) vd->priv;
-
- CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL);
- return priv->contents;
-}
-
*
*/
-#include "callui-view-manager.h"
#include "callui-view-circle.h"
-#include "callui-view-incoming-lock.h"
#include "callui-view-elements.h"
#include "callui-view-layout.h"
#include "callui-common.h"
+#define CALLUI_CIRCLE_LAYOUT_DATA "VIEW_DATA"
+
static void __callui_view_circle_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void __callui_view_circle_multi_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void __callui_view_circle_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void __callui_view_circle_multi_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void __callui_view_circle_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
static void __callui_view_circle_multi_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
-static void __callui_view_circle_accept_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
-static void __callui_view_circle_accept_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
-static void __callui_view_circle_accept_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
-static void __callui_view_circle_reject_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
-static void __callui_view_circle_reject_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
-static void __callui_view_circle_reject_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_accept_down(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_accept_move(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_accept_up(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_reject_down(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_reject_move(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_reject_up(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y);
static int accept_touch_num = -1;
static int reject_touch_num = -1;
static Eina_Bool baccept_clicked;
static Eina_Bool breject_clicked;
-static void __callui_view_circle_handle_accept(call_view_data_t *vd, callui_app_data_t *ad)
+static void __callui_view_circle_handle_accept(callui_app_data_t *ad)
{
dbg("..");
- int ret = -1;
if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) {
_callui_common_unlock_swipe_lock();
}
- if (vd->type == VIEW_TYPE_INCOMING_LOCK) {
- if (ad->active == NULL) {
- dbg("No Call Or Held call - Accept");
+ if (ad->active == NULL) {
+ dbg("No Call Or Held call - Accept");
- ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
- if (ret != CM_ERROR_NONE) {
- err("cm_answer_call() is failed");
- return;
- }
- } else {
- dbg("Show popup - 2nd MT call - test volume popup");
- _callui_load_second_call_popup(ad);
- }
- }
-}
-
-static void __callui_view_circle_handle_reject(call_view_data_t *vd, callui_app_data_t *ad)
-{
- dbg("..");
- int ret = -1;
-
- if (vd->type == VIEW_TYPE_INCOMING_LOCK) {
- ret = cm_reject_call(ad->cm_handle);
+ int ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
if (ret != CM_ERROR_NONE) {
- err("cm_reject_call() is failed");
+ err("cm_answer_call() is failed");
+ return;
}
+ } else {
+ dbg("Show popup - 2nd MT call - test volume popup");
+ _callui_load_second_call_popup(ad);
}
- return;
-}
-
-static Evas_Object *__callui_view_circle_get_accept_layout(void *data)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- Evas_Object *layout = NULL;
- switch (vd->type) {
- case VIEW_TYPE_INCOMING_LOCK:
- {
- layout = _callui_view_incoming_lock_get_accept_layout(vd);
- }
- break;
- default:
- err("vd type is error");
- return NULL;
- }
- return layout;
-}
-
-static void __callui_view_circle_set_accept_layout(void *data, Evas_Object *layout)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- switch (vd->type) {
- case VIEW_TYPE_INCOMING_LOCK:
- {
- _callui_view_incoming_lock_set_accept_layout(vd, layout);
- }
- break;
- default:
- err("vd type is error");
- }
-}
-
-static Evas_Object *__callui_view_circle_get_reject_layout(void *data)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- Evas_Object *layout = NULL;
- switch (vd->type) {
- case VIEW_TYPE_INCOMING_LOCK:
- {
- layout = _callui_view_incoming_lock_get_reject_layout(vd);
- }
- break;
- default:
- err("code should never reach here");
- return NULL;
- }
- return layout;
}
-static void __callui_view_circle_set_reject_layout(void *data, Evas_Object *layout)
+static void __callui_view_circle_handle_reject(callui_app_data_t *ad)
{
- call_view_data_t *vd = (call_view_data_t *)data;
- switch (vd->type) {
- case VIEW_TYPE_INCOMING_LOCK:
- {
- _callui_view_incoming_lock_set_reject_layout(vd, layout);
- }
- break;
- default:
- err("vd type is error");
+ dbg("..");
+ int ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
}
}
return (Evas_Coord)sqrt((point_x-centre_x)*(point_x-centre_x) + (point_y-centre_y)*(point_y-centre_y));
}
-static void __callui_view_circle_accept_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+static void __callui_view_circle_accept_down(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y)
{
dbg("..");
- Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ Evas_Object *lock_accept = _callui_view_incoming_call_get_accept_layout(vd);
int point_distance = 0;
CALLUI_RETURN_IF_FAIL(data);
CALLUI_RETURN_IF_FAIL(event_info);
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_IF_FAIL(vd->ad);
-
Evas_Event_Mouse_Down *ev = event_info;
- callui_app_data_t *ad = vd->ad;
+ callui_app_data_t *ad = (callui_app_data_t*)data;
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_CIRCLE_LAYOUT_DATA);
if (-1 == accept_touch_num && -1 == reject_touch_num) {
__callui_view_circle_accept_down(vd, ad, ev->canvas.x, ev->canvas.y);
CALLUI_RETURN_IF_FAIL(data);
CALLUI_RETURN_IF_FAIL(event_info);
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_IF_FAIL(vd->ad);
-
Evas_Event_Multi_Down *ev = event_info;
- callui_app_data_t *ad = vd->ad;
+ callui_app_data_t *ad = (callui_app_data_t*)data;
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_CIRCLE_LAYOUT_DATA);
dbg("ev->device = %d, accept_touch_num = %d", ev->device, accept_touch_num);
if (-1 == accept_touch_num && -1 == reject_touch_num) {
}
-static void __callui_view_circle_accept_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+static void __callui_view_circle_accept_move(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y)
{
- Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ Evas_Object *lock_accept = _callui_view_incoming_call_get_accept_layout(vd);
Evas_Coord point_distance = 0;
CALLUI_RETURN_IF_FAIL(data);
CALLUI_RETURN_IF_FAIL(event_info);
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_IF_FAIL(vd->ad);
-
Evas_Event_Mouse_Move *ev = event_info;
- callui_app_data_t *ad = vd->ad;
+ callui_app_data_t *ad = (callui_app_data_t*)data;
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_CIRCLE_LAYOUT_DATA);
if (accept_touch_num == 0)
__callui_view_circle_accept_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y);
CALLUI_RETURN_IF_FAIL(data);
CALLUI_RETURN_IF_FAIL(event_info);
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_IF_FAIL(vd->ad);
-
Evas_Event_Multi_Move *ev = event_info;
- callui_app_data_t *ad = vd->ad;
+ callui_app_data_t *ad = (callui_app_data_t*)data;
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_CIRCLE_LAYOUT_DATA);
dbg("ev->device = %d, accept_touch_num = %d", ev->device, accept_touch_num);
if (vd) {
}
-static void __callui_view_circle_accept_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+static void __callui_view_circle_accept_up(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y)
{
dbg("..");
- Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ Evas_Object *lock_accept = _callui_view_incoming_call_get_accept_layout(vd);
Evas_Coord point_distance = 0;
if (baccept_clicked) {
evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height);
dbg("__callui_view_circle_handle_accept");
- __callui_view_circle_handle_accept(vd, ad);
+ __callui_view_circle_handle_accept(ad);
} else {
elm_object_signal_emit(lock_accept, "outer_circle,hide", "outer-circle");
}
CALLUI_RETURN_IF_FAIL(data);
CALLUI_RETURN_IF_FAIL(event_info);
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_IF_FAIL(vd->ad);
-
Evas_Event_Mouse_Up *ev = event_info;
- callui_app_data_t *ad = vd->ad;
+ callui_app_data_t *ad = (callui_app_data_t*)data;
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_CIRCLE_LAYOUT_DATA);
if (accept_touch_num == 0) {
__callui_view_circle_accept_up(vd, ad, ev->canvas.x, ev->canvas.y);
CALLUI_RETURN_IF_FAIL(data);
CALLUI_RETURN_IF_FAIL(event_info);
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_IF_FAIL(vd->ad);
-
Evas_Event_Multi_Up *ev = event_info;
- callui_app_data_t *ad = vd->ad;
+ callui_app_data_t *ad = (callui_app_data_t*)data;
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_CIRCLE_LAYOUT_DATA);
if (accept_touch_num == ev->device) {
__callui_view_circle_accept_up(vd, ad, ev->canvas.x, ev->canvas.y);
}
}
-static void __callui_view_circle_reject_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+static void __callui_view_circle_reject_down(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y)
{
dbg("..");
- Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ Evas_Object *lock_reject = _callui_view_incoming_call_get_reject_layout(vd);
int point_distance = 0;
point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y);
}
}
-static void __callui_view_circle_reject_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+static void __callui_view_circle_reject_move(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y)
{
- Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ Evas_Object *lock_reject = _callui_view_incoming_call_get_reject_layout(vd);
Evas_Coord point_distance = 0;
}
}
-static void __callui_view_circle_reject_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+static void __callui_view_circle_reject_up(callui_view_incoming_call_h vd, callui_app_data_t *ad, int x, int y)
{
dbg("..");
- Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ Evas_Object *lock_reject = _callui_view_incoming_call_get_reject_layout(vd);
Evas_Coord point_distance = 0;
if (breject_clicked) {
evas_object_move(circle_bg, reject_outer_circle_x, outer_circle_y);
evas_object_resize(circle_bg, outer_circle_width, outer_circle_height);
evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height);
- __callui_view_circle_handle_reject(vd, ad);
+ __callui_view_circle_handle_reject(ad);
} else {
elm_object_signal_emit(lock_reject, "outer_circle,hide", "outer-circle");
elm_object_signal_emit(lock_reject, "inner_circle,show", "inner-circle");
}
}
-void _callui_view_circle_accept_reject_reset(void *data)
+int _callui_view_circle_create_reject_layout(callui_app_data_t *ad, callui_view_incoming_call_h vd, Evas_Object *parent)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
- Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
-
- baccept_clicked = EINA_FALSE;
- breject_clicked = EINA_FALSE;
-
- elm_object_signal_emit(lock_reject, "inner_circle,show", "inner-circle");
- elm_object_signal_emit(lock_accept, "inner_circle,show", "inner-circle");
-
-}
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(parent, CALLUI_RESULT_INVALID_PARAM);
-Evas_Object *_callui_view_circle_create_reject_layout(callui_app_data_t *ad, void *data)
-{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ Evas_Object *lock_reject = _callui_view_incoming_call_get_reject_layout(vd);
Evas_Object *inner_circle = NULL;
Evas_Object *outer_circle = NULL;
+ int res = CALLUI_RESULT_FAIL;
int x = 0;
int y = 0;
int width = 0;
if (lock_reject != NULL) {
evas_object_del(lock_reject);
- __callui_view_circle_set_reject_layout(vd, NULL);
+ res = _callui_view_incoming_call_set_reject_layout(vd, NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, CALLUI_RESULT_FAIL);
}
- lock_reject = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_REJECT);
+ lock_reject = _callui_load_edj(parent, EDJ_NAME, GRP_LOCK_REJECT);
+ CALLUI_RETURN_VALUE_IF_FAIL(lock_reject, CALLUI_RESULT_ALLOCATION_FAIL);
evas_object_resize(lock_reject, ad->root_w, ad->root_h);
evas_object_move(lock_reject, 0, 0);
- __callui_view_circle_set_reject_layout(vd, lock_reject);
+ res = _callui_view_incoming_call_set_reject_layout(vd, lock_reject);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, CALLUI_RESULT_FAIL);
elm_object_signal_emit(lock_reject, "outer_circle,hide", "outer-circle");
elm_object_part_text_set(lock_reject, "reject_text", _("IDS_CALL_BUTTON_REJECT"));
- evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, vd);
- evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, vd);
- evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, vd);
- evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, vd);
- evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, vd);
- evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, vd);
+ evas_object_data_set(lock_reject, CALLUI_CIRCLE_LAYOUT_DATA, vd);
+
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, ad);
inner_circle = _callui_edje_object_part_get(lock_reject, "reject_inner_circle");
evas_object_geometry_get(inner_circle, &x, &y, &width, &height);
evas_object_show(lock_reject);
- return lock_reject;
+ return CALLUI_RESULT_OK;
}
-Evas_Object *_callui_view_circle_create_accept_layout(callui_app_data_t *ad, void *data)
+int _callui_view_circle_create_accept_layout(callui_app_data_t *ad, callui_view_incoming_call_h vd, Evas_Object *parent)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(parent, CALLUI_RESULT_INVALID_PARAM);
+
+ Evas_Object *lock_accept = _callui_view_incoming_call_get_accept_layout(vd);
Evas_Object *inner_circle = NULL;
Evas_Object *outer_circle = NULL;
+ int res = CALLUI_RESULT_FAIL;
int x = 0;
int y = 0;
int width = 0;
if (lock_accept != NULL) {
evas_object_del(lock_accept);
- __callui_view_circle_set_accept_layout(vd, NULL);
+ res = _callui_view_incoming_call_set_accept_layout(vd, NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, CALLUI_RESULT_FAIL);
}
- lock_accept = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_ACCEPT);
+ lock_accept = _callui_load_edj(parent, EDJ_NAME, GRP_LOCK_ACCEPT);
+ CALLUI_RETURN_VALUE_IF_FAIL(lock_accept, CALLUI_RESULT_ALLOCATION_FAIL);
evas_object_resize(lock_accept, ad->root_w, ad->root_h);
evas_object_move(lock_accept, 0, 0);
- __callui_view_circle_set_accept_layout(vd, lock_accept);
+ res = _callui_view_incoming_call_set_accept_layout(vd, lock_accept);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, CALLUI_RESULT_FAIL);
elm_object_signal_emit(lock_accept, "outer_circle,hide", "outer-circle");
+ evas_object_data_set(lock_accept, CALLUI_CIRCLE_LAYOUT_DATA, vd);
+
elm_object_part_text_set(lock_accept, "accept_text", _("IDS_CALL_BUTTON_ACCEPT"));
- evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, vd);
- evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, vd);
- evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, vd);
- evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, vd);
- evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, vd);
- evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, vd);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, ad);
inner_circle = _callui_edje_object_part_get(lock_accept, "accept_inner_circle");
evas_object_geometry_get(inner_circle, &x, &y, &width, &height);
dbg("Outer Circle X[%d] Y[%d] Radius[%d]", accept_outer_circle_x, outer_circle_y, outer_circle_radius);
evas_object_show(lock_accept);
- return lock_accept;
+ return CALLUI_RESULT_OK;
}
#include "callui-view-dialing.h"
#include "callui.h"
-#include "callui-view-manager.h"
#include "callui-view-elements.h"
#include "callui-keypad.h"
-#include "callui-view-quickpanel.h"
#include "callui-common.h"
-struct callui_view_dialing_priv {
- Evas_Object *contents;
+struct _callui_view_dialing {
+ call_view_data_base_t base_view;
+
Evas_Object *caller_info;
- Evas_Object *btn_ly;
- Evas_Object *ic;
- Eina_Bool bredial;
};
-typedef struct callui_view_dialing_priv callui_view_dialing_priv_t;
+typedef struct _callui_view_dialing _callui_view_dialing_t;
+
+static int __callui_view_dialing_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_dialing_onupdate(call_view_data_base_t *view_data);
+static int __callui_view_dialing_ondestroy(call_view_data_base_t *view_data);
-#define VIEW_DIALING_LAYOUT_ID "DIALVIEW"
+static int __create_main_content(callui_view_dialing_h vd);
-static int __callui_view_dialing_oncreate(call_view_data_t *view_data, void *appdata);
-static int __callui_view_dialing_onupdate(call_view_data_t *view_data);
-static int __callui_view_dialing_onshow(call_view_data_t *view_data, void *appdata);
-static int __callui_view_dialing_ondestroy(call_view_data_t *view_data);
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static int __update_displayed_data(callui_view_dialing_h vd);
-call_view_data_t *_callui_dialing_view_dialing_new()
+callui_view_dialing_h _callui_dialing_view_dialing_new()
{
- call_view_data_t *dialing_view = calloc(1, sizeof(call_view_data_t));
+ callui_view_dialing_h dialing_view = calloc(1, sizeof(_callui_view_dialing_t));
+ CALLUI_RETURN_NULL_IF_FAIL(dialing_view);
- dialing_view->type = VIEW_TYPE_DIALLING;
- dialing_view->layout = NULL;
- dialing_view->onCreate = __callui_view_dialing_oncreate;
- dialing_view->onUpdate = __callui_view_dialing_onupdate;
- dialing_view->onDestroy = __callui_view_dialing_ondestroy;
- dialing_view->priv = calloc(1, sizeof(callui_view_dialing_priv_t));
-
- if (!dialing_view->priv) {
- err("ERROR!!!!!!!!!!! ");
- }
+ dialing_view->base_view.onCreate = __callui_view_dialing_oncreate;
+ dialing_view->base_view.onUpdate = __callui_view_dialing_onupdate;
+ dialing_view->base_view.onDestroy = __callui_view_dialing_ondestroy;
return dialing_view;
}
-static Evas_Object *__callui_view_dialing_create_contents(void *data, char *grpname)
+static int __callui_view_dialing_oncreate(call_view_data_base_t *view_data, void *appdata)
{
- callui_app_data_t *ad = (callui_app_data_t *)data;
- Evas_Object *eo = NULL;
-
- /* load edje */
- eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname);
- if (eo == NULL) {
- err("__callui_view_dialing_create_contents ERROR");
- return NULL;
- }
- return eo;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_dialing_h vd = (callui_view_dialing_h)view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ vd->base_view.ad = ad;
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, CALLUI_RESULT_FAIL);
+
+ _callui_lock_manager_start(ad->lock_handle);
+
+ return __update_displayed_data(vd);
}
-static void __callui_view_dialing_draw_screen(callui_app_data_t *ad, Evas_Object *eo, void *data)
+static int __create_main_content(callui_view_dialing_h vd)
{
- dbg("__callui_view_dialing_draw_screen");
+ callui_app_data_t *ad = vd->base_view.ad;
- call_view_data_t *vd = (call_view_data_t *)data;
- callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)vd->priv;
- call_data_t *now_call_data = ad->active;
- CALLUI_RETURN_IF_FAIL(now_call_data);
- char *file_path = NULL;
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
+
+ Evas_Object *btn_layout = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_BUTTON_LAYOUT);
+ CALLUI_RETURN_VALUE_IF_FAIL(btn_layout, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "btn_region", btn_layout);
- if (now_call_data == NULL) {
- err("Now Data is NULL");
- return;
+ vd->caller_info = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_CALLER_INFO);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "caller_info", vd->caller_info);
+
+ int res = _callui_keypad_create_layout(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_end_call_button(vd->base_view.contents, __end_call_btn_click_cb, vd),
+ CALLUI_RESULT_ALLOCATION_FAIL);
+
+ return res;
+}
+
+static int __callui_view_dialing_onupdate(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ return __update_displayed_data((callui_view_dialing_h)view_data);
+}
+
+static int __callui_view_dialing_ondestroy(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_dialing_h vd = (callui_view_dialing_h)view_data;
+
+ _callui_keypad_delete_layout(vd->base_view.ad);
+
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
+
+ free(vd);
+
+ return CALLUI_RESULT_OK;
+}
+
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_view_dialing_h vd = (callui_view_dialing_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ if (ad->active) {
+ int ret = cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ }
}
+}
- file_path = now_call_data->call_ct_info.caller_id_path;
- sec_dbg("file_path: %s", file_path);
+static int __update_displayed_data(callui_view_dialing_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+ call_data_t *now_call_data = ad->active;
+ CALLUI_RETURN_VALUE_IF_FAIL(now_call_data, CALLUI_RESULT_FAIL);
+ char *file_path = now_call_data->call_ct_info.caller_id_path;
char *call_name = now_call_data->call_ct_info.call_disp_name;
char *disp_number = NULL;
+
if (strlen(now_call_data->call_disp_num) > 0) {
disp_number = now_call_data->call_disp_num;
} else {
disp_number = now_call_data->call_num;
}
- if (now_call_data->is_emergency == EINA_TRUE) {
+ if (now_call_data->is_emergency) {
call_name = _("IDS_COM_BODY_EMERGENCY_NUMBER");
disp_number = "";
}
if (strlen(call_name) == 0) {
_callui_show_caller_info_name(ad, disp_number);
- elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
} else if (now_call_data->is_emergency == EINA_TRUE) {
_callui_show_caller_info_name(ad, call_name);
- elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
} else {
_callui_show_caller_info_name(ad, call_name);
_callui_show_caller_info_number(ad, disp_number);
- elm_object_signal_emit(priv->caller_info, "2line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "2line", "caller_name");
}
_callui_show_caller_info_status(ad, _("IDS_CALL_POP_DIALLING"));
- _callui_create_top_first_button(ad);
- _callui_create_top_second_button(ad);
- _callui_create_top_third_button(ad);
- _callui_create_bottom_first_button_disabled(ad);
- _callui_create_bottom_second_button_disabled(ad);
- _callui_create_bottom_third_button_disabled(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_first_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_second_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_third_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_first_button_disabled(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_second_button_disabled(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_third_button_disabled(ad), CALLUI_RESULT_FAIL);
- elm_object_signal_emit(priv->contents, "SHOW_EFFECT", "ALLBTN");
-
- /*_vcui_elements_check_keypad_n_hide(vd);*/
- _callui_create_end_call_button(priv->contents, vd);
-
- evas_object_show(eo);
+ elm_object_signal_emit(vd->base_view.contents, "SHOW_EFFECT", "ALLBTN");
if (now_call_data->is_emergency == EINA_TRUE) {
- elm_object_signal_emit(priv->caller_info, "set_emergency_mode", "");
+ elm_object_signal_emit(vd->caller_info, "set_emergency_mode", "");
} else {
if (strcmp(file_path, "default") != 0) {
- _callui_show_caller_id(priv->caller_info, file_path);
- }
- }
- /*evas_event_callback_add(evas_object_evas_get(eo),
- EVAS_CALLBACK_RENDER_POST, __vcui_view_dialing_post_render_cb, vd);*/
-}
-
-static int __callui_view_dialing_oncreate(call_view_data_t *view_data, void *appdata)
-{
- dbg("dialling view create!!");
- callui_app_data_t *ad = (callui_app_data_t *) appdata;
- callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)view_data->priv;
-
- view_data->ad = ad;
-
- if (ad->main_ly) {
- priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (!priv->contents) {
- priv->contents = __callui_view_dialing_create_contents(ad, GRP_MAIN_LY);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
- }
-
- priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
- if (!priv->btn_ly) {
- priv->btn_ly = __callui_view_dialing_create_contents(ad, GRP_BUTTON_LAYOUT);
- elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
- }
-
- priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
- if (!priv->caller_info) {
- priv->caller_info = __callui_view_dialing_create_contents(ad, GRP_CALLER_INFO);
- elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+ _callui_show_caller_id(vd->caller_info, file_path);
}
- evas_object_name_set(priv->contents, VIEW_DIALING_LAYOUT_ID);
- dbg("[========== DIALVIEW: priv->contents Addr : [%p] ==========]", priv->contents);
-
- /*create keypad layout*/
- _callui_keypad_create_layout(ad);
}
- __callui_view_dialing_onshow(view_data, ad);
- _callui_lock_manager_start(ad->lock_handle);
- return 0;
-}
-
-static int __callui_view_dialing_onupdate(call_view_data_t *view_data)
-{
- return 0;
-}
-
-static int __callui_view_dialing_onshow(call_view_data_t *view_data, void *appdata)
-{
- dbg("dialling view show");
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
-
- callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)view_data->priv;
-
- __callui_view_dialing_draw_screen(ad, priv->contents, view_data);
+ evas_object_show(vd->base_view.contents);
evas_object_hide(ad->main_ly);
evas_object_show(ad->main_ly);
- return 0;
-}
-
-static int __callui_view_dialing_ondestroy(call_view_data_t *vd)
-{
- dbg("dialling view destroy");
-
- callui_app_data_t *ad = _callui_get_app_data();
- callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)vd->priv;
-
- if (priv != NULL) {
- /*Delete keypad layout */
- _callui_keypad_delete_layout(ad);
- elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN");
- _callui_common_reset_main_ly_text_fields(priv->contents);
- free(priv);
- priv = NULL;
- }
-
- return 0;
+ return CALLUI_RESULT_OK;
}
#include <vconf.h>
#include <vconf-keys.h>
#include <bluetooth.h>
+#include <app_control.h>
+#include <notification.h>
#include "callui-view-elements.h"
#include "callui-view-manager.h"
#include "callui-view-dialing.h"
#include "callui-view-single-call.h"
#include "callui-view-callend.h"
-#include "callui-view-incoming-lock.h"
#include "callui-view-multi-call-split.h"
#include "callui-view-layout.h"
#include "callui-common.h"
#include "callui-keypad.h"
#include "callui-view-multi-call-conf.h"
-#include "callui-view-incoming-lock.h"
#include "callui-view-quickpanel.h"
#include "callui-view-caller-info-defines.h"
#include "callui-proximity-lock-manager.h"
-#include <app_control.h>
-#include <notification.h>
#define POPUP_LIST_W 300
#define POPUP_LIST_ITEM_H 120
char option_msg[512];
} second_call_popup_data_t;
-static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __vcui_update_existing_contact_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __vcui_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info);
static void __callui_unload_more_option(callui_app_data_t *ad);
const char *group_thumbnail[] = {
return btn;
}
-static void __callui_end_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_IF_FAIL(vd != NULL);
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad != NULL);
- int ret = -1;
-
- dbg("vd->type:[%d]", vd->type);
-
- switch (vd->type) {
- case VIEW_TYPE_DIALLING:
- {
- if (ad->active)
- ret = cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
- }
- break;
- case VIEW_TYPE_SINGLECALL:
- {
- ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
- }
- break;
- case VIEW_TYPE_MULTICALL_SPLIT:
- {
- ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS);
- }
- break;
- case VIEW_TYPE_MULTICALL_CONF:
- case VIEW_TYPE_MULTICALL_LIST:
- {
- ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
- }
- break;
- default:
- err("ERROR - wrong vd type:[%d]", vd->type);
- break;
- }
-
- if (ret != CM_ERROR_NONE) {
- err("cm_end_call() is failed");
- }
- return;
-}
-
-Evas_Object *_callui_create_end_call_button(Evas_Object *parent, void *data)
+Evas_Object *_callui_create_end_call_button(Evas_Object *parent, Evas_Smart_Cb cb_func, void *data)
{
CALLUI_RETURN_VALUE_IF_FAIL(parent != NULL, NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(cb_func != NULL, NULL);
Evas_Object *btn = elm_object_part_content_get(parent, PART_END_BTN);
if (!btn) {
elm_image_file_set(icon, EDJ_NAME, "call_button_icon_01.png");
elm_object_part_content_set(btn, "elm.swallow.content", icon);
elm_object_part_content_set(parent, PART_END_BTN, btn);
+
+ evas_object_smart_callback_add(btn, "clicked", cb_func, data);
}
- evas_object_smart_callback_del(btn, "clicked", __callui_end_btn_cb);
- evas_object_smart_callback_add(btn, "clicked", __callui_end_btn_cb, data);
evas_object_show(btn);
return btn;
return;
}
-Evas_Object *_callui_create_voicecall_button_disabled(void *data)
-{
- Evas_Object *btn = NULL;
- Evas_Object *layout = NULL;
-
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
- Evas_Object *icon = NULL;
-
- layout = _callui_view_callend_get_layout(vd);
-
- btn = elm_button_add(layout);
- elm_object_style_set(btn, "call_icon_only");
- icon = elm_image_add(btn);
- elm_image_file_set(icon, EDJ_NAME, "call_button_icon_03.png");
- elm_object_part_content_set(btn, "elm.swallow.content", icon);
-
- elm_object_part_content_set(layout, "three_btn_voicecall", btn);
- elm_object_disabled_set(btn, EINA_TRUE);
- evas_object_show(btn);
-
- return btn;
-}
-
-static void __callui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- dbg("__vcui_voicecall_btn_cb..");
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
- char *call_number = (char *)data;
- CALLUI_RETURN_IF_FAIL(call_number);
-
- evas_object_smart_callback_del(obj, "clicked", __callui_voicecall_btn_cb);
-
- _callui_common_delete_ending_timer();
- ad->speaker_status = EINA_FALSE;
- ad->mute_status = EINA_FALSE;
- ad->extra_volume_status = EINA_FALSE;
- cm_dial_call(ad->cm_handle, call_number, CM_CALL_TYPE_VOICE, ad->sim_slot);
- g_free(call_number);
- return;
-}
-
-Evas_Object *_callui_create_voicecall_button(void *data, char *number)
-{
- Evas_Object *btn = NULL;
- Evas_Object *layout = NULL;
-
- call_view_data_t *vd = NULL;
-
- CALLUI_RETURN_VALUE_IF_FAIL((vd = (call_view_data_t *)data) != NULL, NULL);
- Evas_Object *icon = NULL;
- layout = _callui_view_callend_get_layout(vd);
-
- btn = elm_button_add(layout);
- elm_object_style_set(btn, "call_icon_only");
- icon = elm_image_add(btn);
- elm_image_file_set(icon, EDJ_NAME, "call_button_icon_03.png");
- elm_object_part_content_set(btn, "elm.swallow.content", icon);
-
- elm_object_part_content_set(layout, "three_btn_voicecall", btn);
-
- evas_object_smart_callback_del(btn, "clicked", __callui_voicecall_btn_cb);
- evas_object_smart_callback_add(btn, "clicked", __callui_voicecall_btn_cb, g_strdup(number));
-
- evas_object_show(btn);
- return btn;
-}
-
-Evas_Object *_callui_create_message_button_disabled(void *data)
-{
- Evas_Object *btn = NULL;
- Evas_Object *layout = NULL;
-
- call_view_data_t *vd = (call_view_data_t *)data;
-
- CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
- Evas_Object *icon = NULL;
-
- switch (vd->type) {
- case VIEW_TYPE_ENDCALL:
- {
- layout = _callui_view_callend_get_layout(vd);
- }
- break;
- default:
- err("ERROR - wrong vd type:[%d]", vd->type);
- return NULL;
- }
-
- btn = elm_button_add(layout);
- elm_object_style_set(btn, "call_icon_only");
- icon = elm_image_add(btn);
- elm_image_file_set(icon, EDJ_NAME, "call_button_icon_04.png");
- elm_object_part_content_set(btn, "elm.swallow.content", icon);
-
- elm_object_part_content_set(layout, "three_btn_message", btn);
- elm_object_disabled_set(btn, EINA_TRUE);
- evas_object_show(btn);
-
- return btn;
-}
-
-static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- char *number = (char *)data;
- app_control_h request;
- app_control_create(&request);
- app_control_set_operation(request, APP_CONTROL_OPERATION_COMPOSE);
- char str[CONTACT_NUMBER_BUF_LEN];
- snprintf(str, sizeof(str), "%s%s", "sms:", number);
- app_control_set_uri(request, str);
- int result = app_control_send_launch_request(request, NULL, NULL);
- if (result != APP_CONTROL_ERROR_NONE) {
- err("app_control_send_launch_request() failed (%d)", result);
- }
- free(number);
- app_control_destroy(request);
-
-
-}
-
-static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- char *contact_id = (char *)data;
- app_control_h request;
- app_control_create(&request);
- app_control_set_operation(request, APP_CONTROL_OPERATION_VIEW);
- app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
- app_control_add_extra_data(request, APP_CONTROL_DATA_ID, contact_id);
-
- int result = app_control_send_launch_request(request, NULL, NULL);
- if (result != APP_CONTROL_ERROR_NONE) {
- err("app_control_send_launch_request() failed (%d)", result);
- }
- free(contact_id);
- app_control_destroy(request);
-}
-
-Evas_Object *_callui_create_view_contact_button(void *data, int ct_id)
-{
- Evas_Object *btn;
- Evas_Object *layout;
- Evas_Object *sw;
-
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
-
- switch (vd->type) {
- case VIEW_TYPE_ENDCALL:
- {
- layout = _callui_view_callend_get_layout(vd);
- }
- break;
- default:
- err("ERROR - wrong vd type:[%d]", vd->type);
- return NULL;
- }
-
- sw = edje_object_part_swallow_get(_EDJ(layout), "btn_view_contacts");
- if (sw) {
- btn = sw;
- } else {
- btn = elm_button_add(layout);
- elm_object_part_content_set(layout, "btn_view_contacts", btn);
- }
-
- elm_object_style_set(btn, "style_call_end_view_contact_button");
- elm_object_text_set(btn, _("IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"));
- char str[CONTACT_ID_BUF_LEN];
- sprintf(str, "%d", ct_id);
- evas_object_smart_callback_add(btn, "clicked", __vcui_view_contact_btn_cb, (void *)strdup(str));
-
- return btn;
-}
-
-Evas_Object *_callui_create_create_contacts_button(void *data, char *number)
-{
-
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
-
- Evas_Object *btn = NULL;
- Evas_Object *layout = NULL;
- Evas_Object *sw = NULL;
-
- switch (vd->type) {
- case VIEW_TYPE_ENDCALL:
- {
- layout = _callui_view_callend_get_layout(vd);
- }
- break;
- default:
- err("ERROR - wrong vd type:[%d]", vd->type);
- return NULL;
- }
-
- sw = edje_object_part_swallow_get(_EDJ(layout), "btn_create_contacts");
- if (sw) {
- btn = sw;
- } else {
- btn = elm_button_add(layout);
- elm_object_part_content_set(layout, "btn_create_contacts", btn);
- }
-
- info("Going to set style");
- elm_object_style_set(btn, "style_call_end_create_contact_button");
-
- elm_object_text_set(btn, _("IDS_COM_OPT_CREATE_CONTACT"));
- evas_object_smart_callback_add(btn, "clicked", __vcui_create_contact_btn_cb, (void *)strdup(number));
-
- return btn;
-}
-
-static void __vcui_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- dbg("_vcui_create_contact_btn_cb");
- char *number = (char *)data;
- app_control_h request;
- app_control_create(&request);
- app_control_set_operation(request, APP_CONTROL_OPERATION_ADD);
- app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
-
- if (number) {
- app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, number);
- }
- app_control_send_launch_request(request, NULL, NULL);
- free(number);
- app_control_destroy(request);
-}
-
-static void __vcui_update_existing_contact_btn_cb(void *data,
- Evas_Object *obj, void *event_info)
-{
- dbg("__vcui_update_existing_contact_btn_cb");
- char * number = (char *)data;
- app_control_h request;
- app_control_create(&request);
- app_control_set_operation(request, APP_CONTROL_OPERATION_EDIT);
- app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
-
- if (number) {
- app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, number);
- }
- app_control_send_launch_request(request, NULL, NULL);
- free(number);
- app_control_destroy(request);
-}
-
-Evas_Object *_callui_create_update_existing_contact_button(void *data, char *number)
-{
- Evas_Object *btn;
- Evas_Object *layout;
- Evas_Object *sw;
-
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
-
- switch (vd->type) {
- case VIEW_TYPE_ENDCALL:
- {
- layout = _callui_view_callend_get_layout(vd);
- }
- break;
- default:
- err("ERROR - wrong vd type:[%d]", vd->type);
- return NULL;
- }
-
- sw = edje_object_part_swallow_get(_EDJ(layout), "btn_update");
- if (sw) {
- btn = sw;
- } else {
- btn = elm_button_add(layout);
- elm_object_part_content_set(layout, "btn_update", btn);
- }
-
- elm_object_style_set(btn, "style_call_end_update_contact_button");
- elm_object_text_set(btn, _("IDS_CALL_BUTTON_UPDATE_EXISTING"));
- evas_object_smart_callback_add(btn, "clicked",
- __vcui_update_existing_contact_btn_cb, (void *)strdup(number));
-
- return btn;
-}
-
-Evas_Object *_callui_create_message_button(void *data, char *number)
-{
- Evas_Object *btn = NULL;
- Evas_Object *layout = NULL;
-
- call_view_data_t *vd = NULL;
- CALLUI_RETURN_VALUE_IF_FAIL((vd = (call_view_data_t *)data) != NULL, NULL);
-
- Evas_Object *icon = NULL;
- switch (vd->type) {
- case VIEW_TYPE_ENDCALL:
- {
- layout = _callui_view_callend_get_layout(vd);
- }
- break;
- default:
- err("ERROR - wrong vd type:[%d]", vd->type);
- return NULL;
- }
-
- btn = elm_button_add(layout);
- elm_object_style_set(btn, "call_icon_only");
- icon = elm_image_add(btn);
- elm_image_file_set(icon, EDJ_NAME, "call_button_icon_04.png");
- elm_object_part_content_set(btn, "elm.swallow.content", icon);
-
- elm_object_part_content_set(layout, "three_btn_message", btn);
- evas_object_smart_callback_add(btn, "clicked", __vcui_msg_btn_cb, (void *)strdup(number));
-
- evas_object_show(btn);
- return btn;
-}
-
/* Creates thumbnail */
Evas_Object *_callui_create_thumbnail(Evas_Object *parent, const char *path, thumbnail_type type)
{
void _callui_load_more_option(void *data)
{
- dbg("..");
- callui_app_data_t *ad = _callui_get_app_data();
- call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ bool is_lcd_locked = false;
- bool is_lcd_locked = FALSE;
if (_callui_proximity_lock_manager_is_supported()) {
is_lcd_locked = _callui_lock_manager_is_lcd_off(ad->lock_handle);
} else {
is_lcd_locked = _callui_lock_manager_is_started(ad->lock_handle);
}
- if (is_lcd_locked == TRUE) {
+ if (is_lcd_locked) {
dbg( "Lock screen active. Do not show popup.");
return;
}
if (ad->ctxpopup == NULL) {
- Evas_Object *ctxpopup = NULL;
-
- ctxpopup = elm_ctxpopup_add(ad->main_ly);
+ Evas_Object *ctxpopup = elm_ctxpopup_add(ad->main_ly);
elm_object_style_set(ctxpopup, "more/default");
elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
evas_object_smart_callback_add(ctxpopup, "dismissed", __callui_more_option_dismissed_cb, ad);
eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL);
/* Hold/Resume */
- if (vd->type != VIEW_TYPE_MULTICALL_SPLIT) {
+ if (_callui_vm_get_cur_view_type(ad->view_manager_handle) != VIEW_TYPE_MULTICALL_SPLIT) {
if (ad->active != NULL) {
elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_HOLD"), NULL, __callui_hold_btn_cb, ad);
- } else {/* CALL_HOLD */
+ } else {
elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_RESUME_ABB"), NULL, __callui_unhold_btn_cb, ad);
}
}
-
- /* SIM Service */
-/* if (__vcui_view_popup_is_sim_available() == EINA_TRUE) {
- ctx_it = elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_OPT_SIM_SERVICES"),
- NULL, __vcui_view_popup_sim_service_cb, vd);
- }
-*/
elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP,
ELM_CTXPOPUP_DIRECTION_UNKNOWN,
ELM_CTXPOPUP_DIRECTION_UNKNOWN,
callui_app_data_t *ad = (callui_app_data_t*) data;
__callui_unload_second_call_popup(ad);
- _callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_INCOMING_LOCK);
+ _callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_INCOMING_CALL);
return;
}
return;
}
-bool _callui_is_on_handsfree_mode()
+static void __callui_create_new_msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- callui_app_data_t *ad = _callui_get_app_data();
- return (ad->speaker_status || ad->headset_status || ad->earphone_status);
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ CALLUI_RETURN_IF_FAIL(ad->incom);
+
+ call_data_t *call_data = ad->incom;
+ char *tel_number = call_data->call_num;
+
+ _callui_common_launch_msg_composer(ad, tel_number);
+
+ int ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
+ }
}
-bool _callui_is_on_background()
+int _callui_create_reject_msg_button(void *app_data, Evas_Object *parent, char *part)
{
- callui_app_data_t *ad = _callui_get_app_data();
- return ad->on_background;
+ Evas_Object *msg_button = elm_button_add(parent);
+ CALLUI_RETURN_VALUE_IF_FAIL(msg_button, CALLUI_RESULT_ALLOCATION_FAIL);
+
+ elm_object_style_set(msg_button, "default");
+ elm_object_text_set(msg_button, _("IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"));
+ evas_object_smart_callback_add(msg_button, "clicked", __callui_create_new_msg_btn_click_cb, app_data);
+ elm_object_part_content_set(parent, part, msg_button);
+ evas_object_show(msg_button);
+
+ return CALLUI_RESULT_OK;
}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <vconf.h>
+#include <app_control.h>
+#include <Elementary.h>
+
+#include "callui-view-incoming-call-noti.h"
+#include "callui.h"
+#include "callui-view-manager.h"
+#include "callui-view-layout.h"
+#include "callui-view-elements.h"
+#include "callui-common.h"
+
+#define CALLUI_DURING_ICON "call_button_icon_03.png"
+#define CALLUI_REJECT_ICON "call_button_icon_04.png"
+#define CALLUI_END_ICON "call_button_icon_01.png"
+
+#define CALLUI_REJ_MSG_GENLIST_DATA "VIEW_DATA"
+
+struct _callui_view_incoming_call_noti {
+ call_view_data_base_t base_view;
+
+ Evas_Object *reject_msg_layout;
+ Evas_Object *reject_msg_genlist;
+
+ Elm_Genlist_Item_Class *reject_msg_itc;
+ char reject_msg[CALLUI_REJ_MSG_MAX_LENGTH];
+};
+
+typedef struct _callui_view_incoming_call_noti _callui_view_incoming_call_noti_t;
+
+static int __callui_view_incoming_call_noti_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_incoming_call_noti_onupdate(call_view_data_base_t *view_data);
+static int __callui_view_incoming_call_noti_ondestroy(call_view_data_base_t *view_data);
+
+static int __create_main_content(callui_view_incoming_call_noti_h vd);
+static int __update_displayed_data(callui_view_incoming_call_noti_h vd);
+
+static void __reject_msg_genlist_item_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __reject_msg_layout_back_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __reject_msg_genlist_add(callui_view_incoming_call_noti_h vd);
+static char *__reject_msg_genlist_item_txt_cb(void *data, Evas_Object *obj, const char *part);
+static void __reject_msg_genlist_init_item_class(callui_view_incoming_call_noti_h vd);
+static void __reject_msg_genlist_deinit_item_class(callui_view_incoming_call_noti_h vd);
+static Elm_Object_Item *__reject_msg_genlist_append_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index);
+static int __reject_msg_genlist_fill(callui_view_incoming_call_noti_h vd);
+
+static void __swipe_layout_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static Eina_Bool __reject_msg_close_effect_activated_cb(void *data);
+static void __show_reject_msg_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+
+static void __create_reject_msg_content(callui_view_incoming_call_noti_h vd);
+
+static void __launch_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+
+static int __create_main_content(callui_view_incoming_call_noti_h vd);
+static int __create_custom_button(char *icon_name, char *part, Evas_Object_Event_Cb func, void *data, void *data_bt_cb);
+
+callui_view_incoming_call_noti_h _callui_view_incoming_call_noti_new()
+{
+ callui_view_incoming_call_noti_h incoming_call_noti = calloc(1, sizeof(_callui_view_incoming_call_noti_t));
+ CALLUI_RETURN_NULL_IF_FAIL(incoming_call_noti);
+
+ incoming_call_noti->base_view.onCreate = __callui_view_incoming_call_noti_oncreate;
+ incoming_call_noti->base_view.onUpdate = __callui_view_incoming_call_noti_onupdate;
+ incoming_call_noti->base_view.onDestroy = __callui_view_incoming_call_noti_ondestroy;
+
+ return incoming_call_noti;
+}
+
+static int __callui_view_incoming_call_noti_oncreate(call_view_data_base_t *view_data, void *appdata)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ vd->base_view.ad = ad;
+
+ // TODO: need to remove this logic from here
+ evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_NOTI_CALL_HEIGHT));
+ _callui_common_win_set_noti_type(ad, EINA_TRUE);
+
+ if (elm_win_keygrab_set(ad->win, CALLUI_KEY_SELECT, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST)) {
+ dbg("KEY_SELECT key grab failed");
+ }
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ return __update_displayed_data(vd);
+}
+
+static int __callui_view_incoming_call_noti_onupdate(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ return __update_displayed_data((callui_view_incoming_call_noti_h)view_data);
+}
+
+static int __callui_view_incoming_call_noti_ondestroy(call_view_data_base_t *view_data)
+{
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)view_data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ // TODO: need to replace from view
+#ifdef _DBUS_DVC_LSD_TIMEOUT_
+ /* Set LCD timeout for call state */
+ /* LCD is alwasy on during incoming call screen */
+ if (ad->speaker_status == EINA_TRUE) {
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
+ }
+#endif
+
+ if (ad->second_call_popup) {
+ evas_object_del(ad->second_call_popup);
+ ad->second_call_popup = NULL;
+ }
+
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
+
+ _callui_common_win_set_noti_type(ad, EINA_FALSE);
+
+ evas_object_resize(ad->win, ad->root_w, ad->root_h);
+
+ elm_win_keygrab_unset(ad->win, CALLUI_KEY_SELECT, 0, 0);
+
+ free(vd);
+
+ return CALLUI_RESULT_OK;
+}
+
+static void __reject_msg_genlist_item_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ int index = CALLUI_SAFE_C_CAST(int, data);
+ dbg("index: %d", index);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)evas_object_data_get(obj, CALLUI_REJ_MSG_GENLIST_DATA);
+ CALLUI_RETURN_IF_FAIL(vd);
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ if (index != -1) {
+ char *ret_str = _callui_common_get_reject_msg_by_index(index);
+ if (ret_str) {
+ char *reject_msg = elm_entry_markup_to_utf8(ret_str); /*send utf8 text to MSG */
+ if (reject_msg != NULL) {
+ snprintf(vd->reject_msg, sizeof(vd->reject_msg), "%s", reject_msg);
+ free(reject_msg);
+ }
+ free(ret_str);
+ }
+
+ int ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
+ } else {
+ _callui_common_send_reject_msg(ad, vd->reject_msg);
+ }
+ }
+}
+
+static void __swipe_layout_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ ecore_idle_enterer_before_add(__reject_msg_close_effect_activated_cb, vd);
+
+ evas_object_resize(ad->win, 0, 0);
+}
+
+static Eina_Bool __reject_msg_close_effect_activated_cb(void *data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(data, ECORE_CALLBACK_CANCEL);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)data;
+
+ Evas_Object *screen_ly = NULL;
+ Elm_Transit *transit = NULL;
+ int xpos = 0;
+ int ypos = 0;
+ int width = 0;
+ int height = 0;
+ int transit_y = 0;
+
+ screen_ly = vd->base_view.contents;
+ transit = elm_transit_add();
+ elm_transit_object_add(transit, screen_ly);
+ evas_object_geometry_get(screen_ly, &xpos, &ypos, &width, &height);
+ transit_y = -(height + ypos);
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ elm_transit_duration_set(transit, 0.5);
+ evas_object_show(screen_ly);
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
+ elm_transit_go(transit);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void __show_reject_msg_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ evas_object_resize(ad->win, ad->root_w, ad->root_h);
+
+ __create_reject_msg_content(vd);
+
+ elm_object_signal_emit(vd->base_view.contents, "big_main_ly", "main_active_noti_call");
+}
+
+static void __reject_msg_layout_back_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_NOTI_CALL_HEIGHT));
+
+ elm_object_signal_emit(vd->base_view.contents, "small_main_ly", "main_active_noti_call");
+ evas_object_del(vd->reject_msg_genlist);
+}
+
+static void __reject_msg_genlist_add(callui_view_incoming_call_noti_h vd)
+{
+ if (vd->reject_msg_genlist) {
+ evas_object_del(vd->reject_msg_genlist);
+ vd->reject_msg_genlist = NULL;
+ }
+
+ vd->reject_msg_genlist = elm_genlist_add(vd->base_view.contents);
+ CALLUI_RETURN_IF_FAIL(vd->reject_msg_genlist);
+ eext_object_event_callback_add(vd->reject_msg_layout, EEXT_CALLBACK_BACK, __reject_msg_layout_back_click_cb, vd);
+ evas_object_data_set(vd->reject_msg_genlist, CALLUI_REJ_MSG_GENLIST_DATA, vd);
+
+ evas_object_size_hint_weight_set(vd->reject_msg_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(vd->reject_msg_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_object_part_content_set(vd->reject_msg_layout, "swallow.content", vd->reject_msg_genlist);
+}
+
+static char *__reject_msg_genlist_item_txt_cb(void *data, Evas_Object *obj, const char *part)
+{
+ int index = CALLUI_SAFE_C_CAST(int, data);
+ char *msg_str = NULL;
+
+ if (!strcmp(part, "elm.text")) {
+ if (index != -1) {
+ msg_str = _callui_common_get_reject_msg_by_index(index);
+ sec_dbg("msg_str(%s)", msg_str);
+ return msg_str; /* Send markup text to draw the genlist */
+ } else {
+ warn("invalid index: %d", index);
+ msg_str = _("IDS_CALL_BODY_NO_MESSAGES");
+ return strdup(msg_str);
+ }
+ }
+ return NULL;
+}
+
+static void __reject_msg_genlist_init_item_class(callui_view_incoming_call_noti_h vd)
+{
+ Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new();
+ CALLUI_RETURN_IF_FAIL(item_class);
+
+ item_class->item_style = "type1";
+ item_class->func.text_get = __reject_msg_genlist_item_txt_cb;
+ item_class->func.content_get = NULL;
+ item_class->func.state_get = NULL;
+ item_class->func.del = NULL;
+ vd->reject_msg_itc = item_class;
+}
+
+static void __reject_msg_genlist_deinit_item_class(callui_view_incoming_call_noti_h vd)
+{
+ elm_genlist_item_class_free(vd->reject_msg_itc);
+ vd->reject_msg_itc = NULL;
+}
+
+static Elm_Object_Item *__reject_msg_genlist_append_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index)
+{
+ Elm_Object_Item *item = NULL;
+ item = elm_genlist_item_append(msg_glist, itc_reject_msg,
+ CALLUI_SAFE_C_CAST(void *, index), NULL, ELM_GENLIST_ITEM_NONE,
+ __reject_msg_genlist_item_click_cb, CALLUI_SAFE_C_CAST(void *, index));
+ return item;
+}
+
+static int __reject_msg_genlist_fill(callui_view_incoming_call_noti_h vd)
+{
+ int msg_cnt = 0;
+ if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
+ warn("vconf_get_int failed.");
+ }
+ dbg("msg_cnt: %d", msg_cnt);
+
+ int index = 0;
+ if (msg_cnt == 0) {
+ index = -1;
+ Elm_Object_Item * item = __reject_msg_genlist_append_item(vd->reject_msg_genlist, vd->reject_msg_itc, index);
+ if (item) {
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+ } else {
+ for (index = 0; index < msg_cnt; index++) {
+ __reject_msg_genlist_append_item(vd->reject_msg_genlist, vd->reject_msg_itc, index);
+ }
+ }
+ return msg_cnt;
+}
+
+static void __create_reject_msg_content(callui_view_incoming_call_noti_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ vd->reject_msg_layout = _callui_load_edj(vd->base_view.contents, EDJ_NAME, "reject_msg_ly");
+ elm_object_part_content_set(vd->base_view.contents, "swallow.reject_msg", vd->reject_msg_layout);
+
+ // TODO: possibly can be replaced in common part. Need investigate
+ __reject_msg_genlist_add(vd);
+ __reject_msg_genlist_init_item_class(vd);
+ int msg_cnt = __reject_msg_genlist_fill(vd);
+ __reject_msg_genlist_deinit_item_class(vd);
+
+ _callui_create_reject_msg_button(ad, vd->reject_msg_layout, "swallow.button");
+
+ elm_object_tree_focus_allow_set(vd->reject_msg_genlist, EINA_FALSE);
+ evas_object_size_hint_min_set(vd->reject_msg_genlist, ad->root_w, 0);
+ evas_object_size_hint_max_set(vd->reject_msg_genlist, ad->root_w, ELM_SCALE_SIZE(MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT * msg_cnt));
+ evas_object_show(vd->reject_msg_layout);
+ evas_object_show(vd->reject_msg_genlist);
+}
+
+static void __launch_btn_click_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ char *key = (char *) data;
+ if (key == NULL) {
+ return;
+ }
+
+ //TODO: replace to separate launcher
+ app_control_h app_control = NULL;
+ if (app_control_create(&app_control) != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_create() is failed");
+ } else if (app_control_set_app_id(app_control, "org.tizen.call-ui") != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_set_app_id() is failed");
+ } else if (app_control_set_operation(app_control, key) != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_set_operation() is failed");
+ } else if (app_control_send_launch_request(app_control, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() is failed");
+ }
+
+ app_control_destroy(app_control);
+}
+
+static int __create_main_content(callui_view_incoming_call_noti_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, "main_active_noti_call");
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
+
+ int res = __create_custom_button(CALLUI_DURING_ICON, "swallow.call_button",
+ __launch_btn_click_cb, vd, (void *)APP_CONTROL_OPERATION_DURING_CALL);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ res = __create_custom_button(CALLUI_REJECT_ICON, "swallow.rj_msg_button",
+ __show_reject_msg_btn_click_cb, vd, (void *)vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ res = __create_custom_button(CALLUI_END_ICON, "swallow.end_call_button",
+ __launch_btn_click_cb, vd, (void *)APP_CONTROL_OPERATION_END_CALL);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ Evas_Object *swipe_layout = elm_layout_add(vd->base_view.contents);
+ CALLUI_RETURN_VALUE_IF_FAIL(swipe_layout, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_layout_file_set(swipe_layout, EDJ_NAME, "swipe_call_button_ly");
+ evas_object_event_callback_add(swipe_layout, EVAS_CALLBACK_MOUSE_MOVE, __swipe_layout_mouse_move_cb, vd);
+ elm_object_part_content_set(vd->base_view.contents, "swallow.swipe_button", swipe_layout);
+
+ return res;
+}
+
+static int __create_custom_button(char *icon_name, char *part, Evas_Object_Event_Cb func, void * data, void * data_bt_cb)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_incoming_call_noti_h vd = (callui_view_incoming_call_noti_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ Evas_Object *button_call = elm_layout_add(vd->base_view.contents);
+ CALLUI_RETURN_VALUE_IF_FAIL(button_call, CALLUI_RESULT_ALLOCATION_FAIL);
+
+ elm_layout_file_set(button_call, EDJ_NAME, "main_button_ly");
+ Evas_Object *icon = elm_image_add(button_call);
+ CALLUI_RETURN_VALUE_IF_FAIL(icon, CALLUI_RESULT_ALLOCATION_FAIL);
+
+ elm_image_file_set(icon, EDJ_NAME, icon_name);
+ elm_object_part_content_set(button_call, "swallow.icon", icon);
+ elm_object_part_content_set(vd->base_view.contents, part, button_call);
+ evas_object_data_set(button_call, "app_data", ad);
+ evas_object_event_callback_add(button_call, EVAS_CALLBACK_MOUSE_UP, func, data_bt_cb);
+
+ return CALLUI_RESULT_OK;
+}
+
+static int __update_displayed_data(callui_view_incoming_call_noti_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(ad->incom, CALLUI_RESULT_FAIL);
+ call_data_t *call_data = ad->incom;
+
+ elm_object_signal_emit(vd->base_view.contents, "small_main_ly", "main_active_noti_call");
+
+ char *call_name = call_data->call_ct_info.call_disp_name;
+ char *call_number = NULL;
+ if (call_data->call_disp_num[0] != '\0') {
+ call_number = call_data->call_disp_num;
+ } else {
+ call_number = call_data->call_num;
+ }
+ char *file_path = call_data->call_ct_info.caller_id_path;
+
+ if (!(call_name && call_name[0] != '\0') && !(call_number && call_number[0] != '\0')) {
+ elm_object_signal_emit(vd->base_view.contents, "big_buttons", "main_active_noti_call");
+ elm_object_part_text_set(vd->base_view.contents, "text.contact_name", _("IDS_CALL_BODY_UNKNOWN"));
+ } else if (!(call_name && call_name[0] != '\0')) {
+ elm_object_signal_emit(vd->base_view.contents, "small_buttons", "main_active_noti_call");
+ elm_object_part_text_set(vd->base_view.contents, "text.contact_name", call_number);
+ } else {
+ elm_object_signal_emit(vd->base_view.contents, "small_buttons", "main_active_noti_call");
+ elm_object_part_text_set(vd->base_view.contents, "text.contact_name", call_name);
+ elm_object_part_text_set(vd->base_view.contents, "text.contact_number", call_number);
+ }
+
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(vd->base_view.contents, file_path);
+ } else {
+ elm_object_signal_emit(vd->base_view.contents, "show_image", "main_active_noti_call");
+ }
+
+ evas_object_show(vd->base_view.contents);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return CALLUI_RESULT_OK;
+}
*
*/
-#include "callui-view-manager.h"
-#include "callui-view-circle.h"
+#include <vconf.h>
+#include <Elementary.h>
+
#include "callui-view-incoming-call.h"
-#include "callui-view-incoming-lock.h"
+#include "callui.h"
#include "callui-view-layout.h"
#include "callui-view-elements.h"
-#include <vconf.h>
+#include "callui-view-manager.h"
+#include "callui-view-circle.h"
#include "callui-common.h"
-#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
-#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key"
-#define VIEW_INCOMING_LOCK_LAYOUT_ID "INCOMINGLOCKVIEW"
-#define MAX_MSG_COUNT 6
-
-static Evas_Object *__callui_view_incoming_call_create_reject_msg_layout(void *data);
-static Eina_Bool __callui_view_incoming_lock_reject_msg_available(callui_app_data_t *ad, char *call_num);
+#define CALLUI_REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
+#define CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key"
#define SCALE_SIZE(x, h) (((x) * (h)) / MAIN_SCREEN_H)
-static Evas_Object *__callui_view_incoming_call_create_contents(void *data, char *grpname)
+struct _callui_view_incoming_call {
+ call_view_data_base_t base_view;
+
+ Evas_Object *caller_info;
+
+ Evas_Object *lock_accept;
+ Evas_Object *lock_reject;
+
+ Evas_Object *dimming_ly;
+
+ Evas_Object *reject_msg_layout;
+ Evas_Object *reject_msg_glayer;
+ Evas_Object *reject_msg_genlist;
+
+ int reject_msg_start_y;
+ int reject_msg_cur_y;
+
+ int reject_msg_height;
+
+ Eina_Bool is_mouse_down_pressed;
+
+ Elm_Genlist_Item_Class *reject_msg_itc;
+ Evas_Coord momentum_y;
+ char reject_msg[CALLUI_REJ_MSG_MAX_LENGTH];
+};
+typedef struct _callui_view_incoming_call _callui_view_incoming_call_t;
+
+static int __callui_view_incoming_call_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_incoming_call_onupdate(call_view_data_base_t *view_data);
+static int __callui_view_incoming_call_ondestroy(call_view_data_base_t *view_data);
+
+static int __create_main_content(callui_view_incoming_call_h vd);
+static int __update_displayed_data(callui_view_incoming_call_h vd);
+
+static char *__callui_view_incoming_call_reject_msg_gl_label_get_msg(void *data, Evas_Object *obj, const char *part);
+static void __reject_msg_gl_sel_msg(void *data, Evas_Object *obj, void *event_info);
+
+static void __reject_msg_genlist_create(callui_view_incoming_call_h vd);
+static void __reject_msg_genlist_init_item_class(callui_view_incoming_call_h vd);
+static void __reject_msg_genlist_deinit_item_class(callui_view_incoming_call_h vd);
+static int __reject_msg_genlist_fill(callui_view_incoming_call_h vd);
+static Elm_Object_Item *__reject_msg_genlist_append_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index);
+
+static void __reject_msg_list_param_reset(callui_view_incoming_call_h vd);
+static void __reject_screen_transit_complete_cb(void *data, Elm_Transit *transit);
+static Eina_Bool __reject_msg_show_sliding_effect(void *data);
+static Evas_Event_Flags __reject_msg_flick_gesture_move_event_cb(void *data, void *event_info);
+static void __reject_msg_create_gesture_layer(callui_view_incoming_call_h vd);
+
+static void __reject_msg_bg_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __reject_msg_bg_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __reject_msg_bg_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+
+static void __reject_msg_list_height_update(callui_view_incoming_call_h vd);
+static void __reject_msg_create_genlist(callui_view_incoming_call_h vd);
+static Eina_Bool __reject_msg_check_tel_num(char *call_num);
+static Evas_Object *__create_reject_msg_layout(callui_view_incoming_call_h vd);
+
+callui_view_incoming_call_h _callui_view_incoming_call_new()
+{
+ debug_enter();
+
+ callui_view_incoming_call_h incoming_lock_view = calloc(1, sizeof(_callui_view_incoming_call_t));
+ CALLUI_RETURN_NULL_IF_FAIL(incoming_lock_view);
+
+ incoming_lock_view->base_view.onCreate = __callui_view_incoming_call_oncreate;
+ incoming_lock_view->base_view.onUpdate = __callui_view_incoming_call_onupdate;
+ incoming_lock_view->base_view.onDestroy = __callui_view_incoming_call_ondestroy;
+
+ return incoming_lock_view;
+}
+
+static int __callui_view_incoming_call_oncreate(call_view_data_base_t *view_data, void *appdata)
{
- if (data == NULL) {
- err("ERROR");
- return NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ vd->base_view.ad = ad;
+
+ evas_object_pointer_mode_set(ad->win, EVAS_OBJECT_POINTER_MODE_NOGRAB);
+
+ if (_callui_lock_manager_is_started(ad->lock_handle)) {
+ _callui_lock_manager_force_stop(ad->lock_handle);
}
- callui_app_data_t *ad = (callui_app_data_t *)data;
- Evas_Object *eo;
- /* load edje */
- eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname);
- if (eo == NULL)
- return NULL;
+ if (elm_win_keygrab_set(ad->win, CALLUI_KEY_SELECT, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST)) {
+ dbg("KEY_SELECT key grab failed");
+ }
+ _callui_common_win_set_noti_type(ad, EINA_TRUE);
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
- return eo;
+ return __update_displayed_data(vd);
}
-static void __reject_msg_list_param_reset(void *data)
+static int __callui_view_incoming_call_onupdate(call_view_data_base_t *view_data)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
-
- priv->y_momentum = 0;
- priv->reject_with_msg_start_y = 0;
- priv->reject_with_msg_cur_y = 0;
- priv->bmouse_down_pressed = EINA_FALSE;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)view_data;
+
+ return __update_displayed_data(vd);
}
-static void __reject_screen_transit_complete_cb(void *data, Elm_Transit *transit)
+static int __callui_view_incoming_call_ondestroy(call_view_data_base_t *view_data)
+{
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)view_data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ // TODO: need to replace from view
+#ifdef _DBUS_DVC_LSD_TIMEOUT_
+ /* Set LCD timeout for call state */
+ /* LCD is alwasy on during incoming call screen */
+ if (ad->speaker_status == EINA_TRUE) {
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
+ }
+#endif
+
+ if (ad->second_call_popup) {
+ evas_object_del(ad->second_call_popup);
+ ad->second_call_popup = NULL;
+ }
+
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
+
+ _callui_common_win_set_noti_type(ad, EINA_FALSE);
+
+ elm_win_keygrab_unset(ad->win, CALLUI_KEY_SELECT, 0, 0);
+
+ free(vd);
+
+ return CALLUI_RESULT_OK;
+}
+
+static char *__callui_view_incoming_call_reject_msg_gl_label_get_msg(void *data, Evas_Object *obj, const char *part)
+{
+ int index = CALLUI_SAFE_C_CAST(int, data);
+ char *msg_str = NULL;
+
+ if (!strcmp(part, "elm.text")) {
+ if (index != -1) {
+ msg_str = _callui_common_get_reject_msg_by_index(index);
+ sec_dbg("msg_str(%s)", msg_str);
+ return msg_str; /* Send markup text to draw the genlist */
+ } else {
+ warn("invalid index: %d", index);
+ msg_str = _("IDS_CALL_BODY_NO_MESSAGES");
+ return strdup(msg_str);
+ }
+ }
+ return NULL;
+}
+
+static void __reject_msg_gl_sel_msg(void *data, Evas_Object *obj, void *event_info)
+{
+ int index = CALLUI_SAFE_C_CAST(int, data);
+ dbg("index: %d", index);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)evas_object_data_get(obj, CALLUI_REJ_MSG_GENLIST_DATA);
+ CALLUI_RETURN_IF_FAIL(vd);
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ if (index != -1) {
+ char *ret_str = _callui_common_get_reject_msg_by_index(index);
+ if (ret_str) {
+ char *reject_msg = elm_entry_markup_to_utf8(ret_str); /*send utf8 text to MSG */
+ if (reject_msg != NULL) {
+ snprintf(vd->reject_msg, sizeof(vd->reject_msg), "%s", reject_msg);
+ free(reject_msg);
+ }
+ free(ret_str);
+ }
+
+ int ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
+ } else {
+ _callui_common_send_reject_msg(ad, vd->reject_msg);
+ }
+ }
+}
+
+static void __reject_msg_genlist_create(callui_view_incoming_call_h vd)
+{
+ if (vd->reject_msg_genlist) {
+ evas_object_del(vd->reject_msg_genlist);
+ vd->reject_msg_genlist = NULL;
+ }
+
+ vd->reject_msg_genlist = elm_genlist_add(vd->reject_msg_layout);
+ elm_genlist_homogeneous_set(vd->reject_msg_genlist, EINA_TRUE);
+ elm_genlist_mode_set(vd->reject_msg_genlist, ELM_LIST_COMPRESS);
+ elm_scroller_content_min_limit(vd->reject_msg_genlist, EINA_FALSE, EINA_TRUE);
+ CALLUI_RETURN_IF_FAIL(vd->reject_msg_genlist);
+
+ evas_object_data_set(vd->reject_msg_genlist, CALLUI_REJ_MSG_GENLIST_DATA, vd);
+ evas_object_size_hint_weight_set(vd->reject_msg_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(vd->reject_msg_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(vd->reject_msg_layout, "swl_msglist", vd->reject_msg_genlist);
+}
+
+static void __reject_msg_genlist_init_item_class(callui_view_incoming_call_h vd)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
-
- if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
- elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE);
- elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg");
- evas_object_hide(priv->dimming_ly);
+ Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new();
+ CALLUI_RETURN_IF_FAIL(item_class);
+
+ item_class->item_style = "type1";
+ item_class->func.text_get = __callui_view_incoming_call_reject_msg_gl_label_get_msg;
+ item_class->func.content_get = NULL;
+ item_class->func.state_get = NULL;
+ item_class->func.del = NULL;
+ vd->reject_msg_itc = item_class;
+}
+
+static void __reject_msg_genlist_deinit_item_class(callui_view_incoming_call_h vd)
+{
+ elm_genlist_item_class_free(vd->reject_msg_itc);
+ vd->reject_msg_itc = NULL;
+}
+
+static Elm_Object_Item *__reject_msg_genlist_append_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index)
+{
+ Elm_Object_Item *item = NULL;
+ item = elm_genlist_item_append(msg_glist, itc_reject_msg,
+ CALLUI_SAFE_C_CAST(void *, index), NULL, ELM_GENLIST_ITEM_NONE,
+ __reject_msg_gl_sel_msg, CALLUI_SAFE_C_CAST(void *, index));
+ return item;
+}
+
+static int __reject_msg_genlist_fill(callui_view_incoming_call_h vd)
+{
+ int msg_cnt = 0;
+ if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
+ warn("vconf_get_int failed.");
+ }
+ dbg("msg_cnt: %d", msg_cnt);
+
+ int index = 0;
+ if (msg_cnt == 0) {
+ index = -1;
+ Elm_Object_Item * item = __reject_msg_genlist_append_item(vd->reject_msg_genlist, vd->reject_msg_itc, index);
+ if (item) {
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
} else {
- elm_object_tree_focus_allow_set(priv->msg_glist, EINA_TRUE);
- elm_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg");
- evas_object_show(priv->dimming_ly);
+ for (index = 0; index < msg_cnt; index++) {
+ __reject_msg_genlist_append_item(vd->reject_msg_genlist, vd->reject_msg_itc, index);
+ }
}
+ return msg_cnt;
+}
- __reject_msg_list_param_reset(vd);
+Evas_Object *_callui_view_incoming_call_get_accept_layout(callui_view_incoming_call_h vd)
+{
+ CALLUI_RETURN_NULL_IF_FAIL(vd);
+ return vd->lock_accept;
+}
+
+int _callui_view_incoming_call_set_accept_layout(callui_view_incoming_call_h vd, Evas_Object *layout)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, CALLUI_RESULT_INVALID_PARAM);
+
+ vd->lock_accept = layout;
+ return CALLUI_RESULT_OK;
+}
+
+Evas_Object *_callui_view_incoming_call_get_reject_layout(callui_view_incoming_call_h vd)
+{
+ CALLUI_RETURN_NULL_IF_FAIL(vd);
+ return vd->lock_reject;
+}
+
+int _callui_view_incoming_call_set_reject_layout(callui_view_incoming_call_h vd, Evas_Object *layout)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, CALLUI_RESULT_INVALID_PARAM);
+
+ vd->lock_reject = layout;
+ return CALLUI_RESULT_OK;
+}
+
+static void __reject_msg_list_param_reset(callui_view_incoming_call_h vd)
+{
+ vd->momentum_y = 0;
+ vd->reject_msg_start_y = 0;
+ vd->reject_msg_cur_y = 0;
+ vd->is_mouse_down_pressed = EINA_FALSE;
+}
- return;
+static void __reject_screen_transit_complete_cb(void *data, Elm_Transit *transit)
+{
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)data;
+
+ if (EINA_FALSE == evas_object_data_get(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ elm_object_tree_focus_allow_set(vd->reject_msg_genlist, EINA_FALSE);
+ elm_object_signal_emit(vd->reject_msg_layout, "show-up-arrow", "reject_msg");
+ evas_object_hide(vd->dimming_ly);
+ } else {
+ elm_object_tree_focus_allow_set(vd->reject_msg_genlist, EINA_TRUE);
+ elm_object_signal_emit(vd->reject_msg_layout, "show-down-arrow", "reject_msg");
+ evas_object_show(vd->dimming_ly);
+ }
+ __reject_msg_list_param_reset(vd);
}
-static Eina_Bool __rej_msg_show_sliding_effect(void *data)
+static Eina_Bool __reject_msg_show_sliding_effect(void *data)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_VALUE_IF_FAIL(data, ECORE_CALLBACK_CANCEL);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)data;
Evas_Object *screen_ly;
Elm_Transit *transit;
int xpos = 0;
int transit_y = 0;
int max_height_limit = 0;
- screen_ly = priv->lock_reject_with_msg;
+ screen_ly = vd->reject_msg_layout;
transit = elm_transit_add();
elm_transit_object_add(transit, screen_ly);
- evas_object_geometry_get(priv->lock_reject_with_msg, &xpos, &ypos, &width, &height);
+ evas_object_geometry_get(vd->reject_msg_layout, &xpos, &ypos, &width, &height);
dbg("reject_w_msg dimensions ---> x[%d] y[%d] w[%d] h[%d]", xpos, ypos, width, height);
- dbg("priv->y_momentum: %d", priv->y_momentum);
+ dbg("vd->y_momentum: %d", vd->momentum_y);
/*Max height possible*/
- max_height_limit = (priv->msg_list_height);
+ max_height_limit = (vd->reject_msg_height);
dbg("max_height_limit: %d", max_height_limit);
- if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ if (EINA_FALSE == evas_object_data_get(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY)) {
dbg("Close list... Check if opening is feasible");
- if (priv->y_momentum) {
+ if (vd->momentum_y) {
dbg("Momentum...");
- if (priv->y_momentum < -500) {
+ if (vd->momentum_y < -500) {
dbg("Huge Momentum... Move the layout");
/*effect to pull up the window.*/
transit_y = -(max_height_limit + ypos);
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
} else {
dbg("Small Momentum..");
transit_y = -ypos;
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
} else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
dbg("Movement G.T. HALF the height..");
transit_y = -(max_height_limit + ypos);
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
}
}
}
transit_y = -ypos;
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
} else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
dbg("Movement G.T. HALF the height..");
transit_y = -(max_height_limit + ypos);
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
}
}
}
} else {
dbg("Open list... Check if closing is feasible");
- if (priv->y_momentum) {
+ if (vd->momentum_y) {
dbg("Momentum...");
- if (priv->y_momentum > 500) {
+ if (vd->momentum_y > 500) {
dbg("Huge Momentum... Move the layout");
/*effect to pull down the window.*/
transit_y = -ypos;
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
} else {
dbg("Small Momentum..");
transit_y = -ypos;
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
} else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
dbg("Movement G.T. 80 percent of the height..");
transit_y = -(max_height_limit + ypos);
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
}
}
}
transit_y = -ypos;
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
} else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
dbg("Movement G.T. 80 percent of the height..");
transit_y = -(max_height_limit + ypos);
elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
}
}
}
elm_transit_del_cb_set(transit, __reject_screen_transit_complete_cb, vd);
- if (priv->y_momentum < 0)
- priv->y_momentum = -priv->y_momentum;
+ if (vd->momentum_y < 0)
+ vd->momentum_y = -vd->momentum_y;
- if (priv->y_momentum < 1500) {
+ if (vd->momentum_y < 1500) {
elm_transit_duration_set(transit, 0.5);
- } else if (priv->y_momentum >= 1500 && priv->y_momentum < 3000) {
+ } else if (vd->momentum_y >= 1500 && vd->momentum_y < 3000) {
elm_transit_duration_set(transit, 0.4);
- } else if (priv->y_momentum >= 3000 && priv->y_momentum < 4500) {
+ } else if (vd->momentum_y >= 3000 && vd->momentum_y < 4500) {
elm_transit_duration_set(transit, 0.3);
- } else if (priv->y_momentum >= 4500) {
+ } else if (vd->momentum_y >= 4500) {
elm_transit_duration_set(transit, 0.2);
}
evas_object_show(screen_ly); /*It must be called before elm_transit_go(). transit policy*/
return ECORE_CALLBACK_CANCEL;
}
-static void __callui_view_incoming_call_reject_with_msg_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static void __reject_msg_bg_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)data;
- if (priv->bmouse_down_pressed) {
- ecore_idle_enterer_before_add(__rej_msg_show_sliding_effect, vd);
+ if (vd->is_mouse_down_pressed) {
+ ecore_idle_enterer_before_add(__reject_msg_show_sliding_effect, vd);
} else {
dbg("mouse down was NOT pressed - DONT handle up event");
}
static Evas_Event_Flags __reject_msg_flick_gesture_move_event_cb(void *data, void *event_info)
{
- dbg("Flick_Gesture Move");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_VALUE_IF_FAIL(data, EVAS_EVENT_FLAG_NONE);
+ CALLUI_RETURN_VALUE_IF_FAIL(event_info, EVAS_EVENT_FLAG_NONE);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)data;
Elm_Gesture_Line_Info *info = (Elm_Gesture_Line_Info *)event_info;
dbg("*********************************************");
dbg("info->momentum.y1 = %d, info->momentum.y2 = %d", info->momentum.y1, info->momentum.y2);
dbg("*********************************************");
- priv->y_momentum = info->momentum.my;
+ vd->momentum_y = info->momentum.my;
return EVAS_EVENT_FLAG_NONE;
}
-static void __reject_msg_create_gesture_layer(void *data)
+static void __reject_msg_create_gesture_layer(callui_view_incoming_call_h vd)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- Evas_Object *rej_msg_bg = NULL;
-
- rej_msg_bg = _callui_edje_object_part_get(priv->lock_reject_with_msg, "reject_msg_bg");
- if (priv->reject_msg_gl) {
- evas_object_del(priv->reject_msg_gl);
- priv->reject_msg_gl = NULL;
+ Evas_Object *reject_msg_bg = _callui_edje_object_part_get(vd->reject_msg_layout, "reject_msg_bg");
+ if (vd->reject_msg_glayer) {
+ evas_object_del(vd->reject_msg_glayer);
+ vd->reject_msg_glayer = NULL;
}
- priv->reject_msg_gl = elm_gesture_layer_add(priv->lock_reject_with_msg);
- if (FALSE == elm_gesture_layer_attach(priv->reject_msg_gl, rej_msg_bg)) {
+ vd->reject_msg_glayer = elm_gesture_layer_add(vd->reject_msg_layout);
+ if (FALSE == elm_gesture_layer_attach(vd->reject_msg_glayer, reject_msg_bg)) {
dbg("elm_gesture_layer_attach failed !!");
- evas_object_del(priv->reject_msg_gl);
- priv->reject_msg_gl = NULL;
+ evas_object_del(vd->reject_msg_glayer);
+ vd->reject_msg_glayer = NULL;
} else {
- elm_gesture_layer_cb_set(priv->reject_msg_gl, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __reject_msg_flick_gesture_move_event_cb, vd);
+ elm_gesture_layer_cb_set(vd->reject_msg_glayer, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __reject_msg_flick_gesture_move_event_cb, vd);
}
}
-static void __callui_view_incoming_call_reject_with_msg_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static void __reject_msg_bg_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- Evas_Event_Mouse_Move *ev = event_info;
+ CALLUI_RETURN_IF_FAIL(data);
+ CALLUI_RETURN_IF_FAIL(event_info);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)data;
+ Evas_Event_Mouse_Down *ev = event_info;
- priv->reject_with_msg_start_y = ev->cur.canvas.y;
- priv->bmouse_down_pressed = EINA_TRUE;
+ vd->reject_msg_start_y = ev->canvas.y;
+ vd->is_mouse_down_pressed = EINA_TRUE;
}
-static void __callui_view_incoming_call_reject_with_msg_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static void __reject_msg_bg_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(data);
+ CALLUI_RETURN_IF_FAIL(event_info);
+
+ callui_view_incoming_call_h vd = (callui_view_incoming_call_h)data;
Evas_Event_Mouse_Move *ev = event_info;
+
int diff_y = 0;
int max_height_limit = 0;
/*Max height possible*/
- max_height_limit = priv->msg_list_height;
+ max_height_limit = vd->reject_msg_height;
dbg("max_height_limit: %d", max_height_limit);
- if (!priv->bmouse_down_pressed) {
+ if (!vd->is_mouse_down_pressed) {
dbg("mouse down was NOT pressed - DONT handle move event");
return;
}
dbg("mouse down was pressed - handle move event");
- priv->reject_with_msg_cur_y = ev->cur.canvas.y;
+ vd->reject_msg_cur_y = ev->cur.canvas.y;
- diff_y = priv->reject_with_msg_cur_y - priv->reject_with_msg_start_y;
+ diff_y = vd->reject_msg_cur_y - vd->reject_msg_start_y;
dbg("diff_y [<<< %d >>>>]", diff_y);
- if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
- elm_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg");
+ if (EINA_FALSE == evas_object_data_get(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ elm_object_signal_emit(vd->reject_msg_layout, "show-down-arrow", "reject_msg");
if ((diff_y > -max_height_limit) && (diff_y <= 0)) {
/*Lies between 0 and msg-list layout height*/
- evas_object_move(priv->lock_reject_with_msg, 0, diff_y);
+ evas_object_move(vd->reject_msg_layout, 0, diff_y);
} else if (diff_y <= -max_height_limit) {
/*Special case - Move the max distance - msg-list height*/
- evas_object_move(priv->lock_reject_with_msg, 0, -max_height_limit);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ evas_object_move(vd->reject_msg_layout, 0, -max_height_limit);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
__reject_screen_transit_complete_cb(vd, NULL);
}
} else {
if ((diff_y >= 0) && (diff_y < max_height_limit)) {
/*Lies between 0 and msg-list layout height*/
- evas_object_move(priv->lock_reject_with_msg, 0, -(max_height_limit - diff_y));
+ evas_object_move(vd->reject_msg_layout, 0, -(max_height_limit - diff_y));
} else if (diff_y >= max_height_limit) {
/*Special case - Move the max distance - msg-list height*/
- evas_object_move(priv->lock_reject_with_msg, 0, 0);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_move(vd->reject_msg_layout, 0, 0);
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
__reject_screen_transit_complete_cb(vd, NULL);
}
}
}
-static void __reject_msg_list_height_update(void *data)
+static void __reject_msg_list_height_update(callui_view_incoming_call_h vd)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
-
int msg_cnt = 0;
if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
warn("vconf_get_int failed.");
msg_cnt = 1;
int win_h = 0;
- callui_app_data_t *ad = _callui_get_app_data();
+ callui_app_data_t *ad = vd->base_view.ad;
elm_win_screen_size_get(ad->win, NULL, NULL, NULL, &win_h);
- priv->msg_list_height = SCALE_SIZE((REJ_MSG_LIST_CREATE_MSG_BTN_H + ((ITEM_SIZE_H) * msg_cnt)), win_h);/* bottom btn height + (genlist item height * msg count) */
- if (priv->msg_list_height > (SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h))) {
- priv->msg_list_height = SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h);
+ vd->reject_msg_height = SCALE_SIZE((REJ_MSG_LIST_CREATE_MSG_BTN_H + ((ITEM_SIZE_H) * msg_cnt)), win_h);/* bottom btn height + (genlist item height * msg count) */
+ if (vd->reject_msg_height > (SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h))) {
+ vd->reject_msg_height = SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h);
}
}
-static void __reject_msg_create_glist(void *data)
+static void __reject_msg_create_genlist(callui_view_incoming_call_h vd)
{
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_IF_FAIL(vd);
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- CALLUI_RETURN_IF_FAIL(priv);
- Elm_Object_Item *item = NULL;
int msg_cnt = 0;
- int index = 0;
+ callui_app_data_t *ad = vd->base_view.ad;
- /* msg count from setting */
- if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
- warn("vconf_get_int failed.");
- }
- dbg("msg_cnt: %d", msg_cnt);
-
- /* create gen list */
- if (priv->msg_glist) {
- evas_object_del(priv->msg_glist);
- priv->msg_glist = NULL;
- }
+ __reject_msg_genlist_create(vd);
+ __reject_msg_genlist_init_item_class(vd);
+ msg_cnt = __reject_msg_genlist_fill(vd);
+ __reject_msg_genlist_deinit_item_class(vd);
- priv->msg_glist = elm_genlist_add(priv->lock_reject_with_msg);
- elm_genlist_homogeneous_set(priv->msg_glist, EINA_TRUE);
- elm_genlist_mode_set(priv->msg_glist, ELM_LIST_COMPRESS);
- elm_scroller_content_min_limit(priv->msg_glist, EINA_FALSE, EINA_TRUE);
- CALLUI_RETURN_IF_FAIL(priv->msg_glist);
- //elm_genlist_realization_mode_set(priv->msg_glist, EINA_TRUE);
+ _callui_create_reject_msg_button(ad, vd->reject_msg_layout, "bottom_btn");
- evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd);
- evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_object_part_content_set(priv->lock_reject_with_msg, "swl_msglist", priv->msg_glist);
-
- priv->itc_reject_msg = _callui_view_incoming_lock_create_item_class();
-
- if (msg_cnt == 0) {
- index = -1;
- item = _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
- if (item) {
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
- } else {
- for (index = 0; index < msg_cnt; index++) {
- _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
- }
- }
- elm_genlist_item_class_free(priv->itc_reject_msg);
- priv->itc_reject_msg = NULL;
-
- _callui_view_incoming_lock_create_reject_msg_button(priv->lock_reject_with_msg, "bottom_btn", data);
-
- /*Adjust the list height*/
__reject_msg_list_height_update(vd);
+
if (msg_cnt < 2)
- elm_object_signal_emit(priv->lock_reject_with_msg, "set_1item_list", "");
- else if (msg_cnt <= MAX_MSG_COUNT) {
- char signal[16] = {0,};
+ elm_object_signal_emit(vd->reject_msg_layout, "set_1item_list", "");
+ else if (msg_cnt <= CALLUI_REJ_MSG_MAX_COUNT) {
+ char signal[16] = { 0 };
snprintf(signal, 16, "set_%ditems_list", msg_cnt);
- elm_object_signal_emit(priv->lock_reject_with_msg, signal, "");
+ elm_object_signal_emit(vd->reject_msg_layout, signal, "");
}
- elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE);
+ elm_object_tree_focus_allow_set(vd->reject_msg_genlist, EINA_FALSE);
}
-void _callui_view_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd)
+static int __update_displayed_data(callui_view_incoming_call_h vd)
{
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
-
- char *file_path = NULL;
- call_data_t *call_data = NULL;
+ callui_app_data_t *ad = vd->base_view.ad;
- call_data = ad->incom;
- if (call_data == NULL) {
- err("call data is null");
- return;
- }
+ CALLUI_RETURN_VALUE_IF_FAIL(ad->incom, CALLUI_RESULT_FAIL);
- file_path = call_data->call_ct_info.caller_id_path;
+ call_data_t *call_data = ad->incom;
+ char *file_path = call_data->call_ct_info.caller_id_path;
- sec_dbg("file_path: %s", file_path);
if (strcmp(file_path, "default") != 0) {
- _callui_show_caller_id(priv->caller_info, file_path);
+ _callui_show_caller_id(vd->caller_info, file_path);
}
char *call_name = call_data->call_ct_info.call_disp_name;
}
if (strlen(call_name) == 0) {
_callui_show_caller_info_name(ad, call_number);
- elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
} else {
_callui_show_caller_info_name(ad, call_name);
_callui_show_caller_info_number(ad, call_number);
- elm_object_signal_emit(priv->caller_info, "2line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "2line", "caller_name");
}
- _callui_show_caller_info_status(ad, _("IDS_CALL_BODY_INCOMING_CALL"));
-
- _callui_view_circle_create_accept_layout(ad, vd);
- _callui_view_circle_create_reject_layout(ad, vd);
+ if (__reject_msg_check_tel_num(call_number)) {
+ __create_reject_msg_layout(vd);
+ }
- priv->dimming_ly = __callui_view_incoming_call_create_contents(ad, "dimming_ly");
- evas_object_resize(priv->dimming_ly, ad->root_w, ad->root_h);
- evas_object_move(priv->dimming_ly, 0, 0);
+ evas_object_show(vd->base_view.contents);
- if (__callui_view_incoming_lock_reject_msg_available(ad, call_number)) {
- __callui_view_incoming_call_create_reject_msg_layout(vd);
- }
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
- evas_object_show(priv->contents);
+ return CALLUI_RESULT_OK;
}
-static Eina_Bool __callui_view_incoming_lock_reject_msg_available(callui_app_data_t *ad, char *call_num)
+static Eina_Bool __reject_msg_check_tel_num(char *call_num)
{
- CALLUI_RETURN_VALUE_IF_FAIL(ad, EINA_FALSE);
CALLUI_RETURN_VALUE_IF_FAIL(call_num, EINA_FALSE);
if (strlen(call_num) <= 0) {
return EINA_TRUE;
}
-static void __callui_view_incoming_lock_reject_msg_close(void *data)
+static Evas_Object *__create_reject_msg_layout(callui_view_incoming_call_h vd)
{
- CALLUI_RETURN_IF_FAIL(data != NULL);
- dbg("..");
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
-
- if (EINA_FALSE != evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
- evas_object_move(priv->lock_reject_with_msg, 0, 0);
- elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow-landscape", "reject_msg");
- evas_object_hide(priv->dimming_ly);
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
- }
-}
+ callui_app_data_t *ad = vd->base_view.ad;
-static void __callui_view_incoming_call_hw_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
- Evas_Event_Mouse_Up *ev = event_info;
- if (ev->button == 3) {
- /* Handle mouse right button event */
- __callui_view_incoming_lock_reject_msg_close(data);
+ if (vd->reject_msg_layout != NULL) {
+ evas_object_del(vd->reject_msg_layout);
+ vd->reject_msg_layout = NULL;
}
-}
+ vd->reject_msg_layout = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_LOCK_REJECT_WITH_MSG);
-void _callui_view_incoming_call_ondestroy(void *data)
-{
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)data;
- callui_app_data_t *ad = _callui_get_app_data();
- if (priv->lock_reject_with_msg) {
- evas_object_event_callback_del(priv->lock_reject_with_msg, EVAS_CALLBACK_MOUSE_UP,
- __callui_view_incoming_call_hw_mouse_up_cb);
- evas_object_event_callback_del(ad->win_conformant, EVAS_CALLBACK_MOUSE_UP,
- __callui_view_incoming_call_hw_mouse_up_cb);
-
- evas_object_del(priv->lock_reject_with_msg);
- priv->lock_reject_with_msg = NULL;
- evas_object_del(priv->dimming_ly);
- priv->dimming_ly = NULL;
- }
-}
-
-static Evas_Object *__callui_view_incoming_call_create_reject_msg_layout(void *data)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- callui_app_data_t *ad = _callui_get_app_data();
- Evas_Object *rej_msg_bg = NULL;
-
- if (priv->lock_reject_with_msg != NULL) {
- evas_object_event_callback_del(priv->lock_reject_with_msg,
- EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb);
- evas_object_event_callback_del(ad->win_conformant,
- EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb);
-
- evas_object_del(priv->lock_reject_with_msg);
- priv->lock_reject_with_msg = NULL;
- }
- priv->lock_reject_with_msg = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_REJECT_WITH_MSG);
-
- evas_object_resize(priv->lock_reject_with_msg, ad->root_w, ad->root_h);
+ evas_object_resize(vd->reject_msg_layout, ad->root_w, ad->root_h);
__reject_msg_create_gesture_layer(vd);
- rej_msg_bg = _callui_edje_object_part_get(priv->lock_reject_with_msg, "reject_msg_bg");
- evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_incoming_call_reject_with_msg_mouse_down_cb, vd);
- evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_incoming_call_reject_with_msg_mouse_move_cb, vd);
- evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_reject_with_msg_mouse_up_cb, vd);
+ Evas_Object *reject_msg_bg = _callui_edje_object_part_get(vd->reject_msg_layout, "reject_msg_bg");
+ evas_object_event_callback_add(reject_msg_bg, EVAS_CALLBACK_MOUSE_DOWN, __reject_msg_bg_mouse_down_cb, vd);
+ evas_object_event_callback_add(reject_msg_bg, EVAS_CALLBACK_MOUSE_MOVE, __reject_msg_bg_mouse_move_cb, vd);
+ evas_object_event_callback_add(reject_msg_bg, EVAS_CALLBACK_MOUSE_UP, __reject_msg_bg_mouse_up_cb, vd);
- elm_object_part_text_set(priv->lock_reject_with_msg, "reject_msg_text", _("IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"));
+ elm_object_part_text_set(vd->reject_msg_layout, "reject_msg_text", _("IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"));
- elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg");
- evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
- evas_object_hide(priv->dimming_ly);
+ elm_object_signal_emit(vd->reject_msg_layout, "show-up-arrow", "reject_msg");
+ evas_object_data_set(vd->reject_msg_layout, CALLUI_REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ evas_object_hide(vd->dimming_ly);
__reject_msg_list_param_reset(vd);
- evas_object_event_callback_add(ad->win_conformant, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb, vd);
- evas_object_event_callback_add(priv->lock_reject_with_msg, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb, vd);
+ evas_object_show(vd->reject_msg_layout);
- evas_object_show(priv->lock_reject_with_msg);
+ __reject_msg_create_genlist(vd);
- __reject_msg_create_glist(vd);
- return priv->lock_reject_with_msg;
+ return vd->reject_msg_layout;
}
-int _callui_view_incoming_call_oncreate(call_view_data_t *view_data, void *appdata)
+static int __create_main_content(callui_view_incoming_call_h vd)
{
- dbg("mt-lock view create!!");
+ callui_app_data_t *ad = vd->base_view.ad;
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- dbg(" active %p", ad->active);
- dbg(" incoming %p", ad->incom);
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) view_data->priv;
-
- evas_object_resize(ad->win, ad->root_w, ad->root_h);
- evas_object_pointer_mode_set(ad->win, EVAS_OBJECT_POINTER_MODE_NOGRAB);
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
- if (ad->main_ly) {
- priv->contents = __callui_view_incoming_call_create_contents(ad, GRP_MAIN_LY);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+ vd->caller_info = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_CALLER_INFO);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "caller_info", vd->caller_info);
- priv->caller_info = __callui_view_incoming_call_create_contents(ad, GRP_CALLER_INFO);
- elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+ _callui_show_caller_info_status(ad, _("IDS_CALL_BODY_INCOMING_CALL"));
- elm_object_signal_emit(priv->contents, "mt_circle_bg_show", "mt_view");
- evas_object_name_set(priv->caller_info, VIEW_INCOMING_LOCK_LAYOUT_ID);
- }
+ int res = _callui_view_circle_create_accept_layout(ad, vd, vd->base_view.contents);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+ res = _callui_view_circle_create_reject_layout(ad, vd, vd->base_view.contents);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
- if (_callui_lock_manager_is_started(ad->lock_handle)) {
- _callui_lock_manager_force_stop(ad->lock_handle);
- }
+ vd->dimming_ly = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_DIMMING_LAYOUT);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->dimming_ly, CALLUI_RESULT_ALLOCATION_FAIL);
+ evas_object_resize(vd->dimming_ly, ad->root_w, ad->root_h);
+ evas_object_move(vd->dimming_ly, 0, 0);
- return 0;
+ return res;
}
+++ /dev/null
-/*
- * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <msg.h>
-#include <msg_transport.h>
-#include <vconf.h>
-#include <notification.h>
-#include <Elementary.h>
-
-#include "callui.h"
-#include "callui-view-layout.h"
-#include "callui-view-elements.h"
-#include "callui-view-active-incoming-call.h"
-#include "callui-view-incoming-call.h"
-#include "callui-view-incoming-lock.h"
-#include "callui-common.h"
-#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key"
-#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
-
-#define SAFE_C_CAST(type, value) ((type)(ptrdiff_t)value)
-
-static int __callui_view_incoming_lock_oncreate(call_view_data_t *view_data, void *appdata);
-static int __callui_view_incoming_lock_onupdate(call_view_data_t *view_data);
-static int __callui_view_incoming_lock_onshow(call_view_data_t *view_data, void *appdata);
-static int __callui_view_incoming_lock_ondestroy(call_view_data_t *view_data);
-
-call_view_data_t *_callui_view_incoming_lock_new()
-{
- call_view_data_t *incoming_lock_view = calloc(1, sizeof(call_view_data_t));
-
- incoming_lock_view->type = VIEW_TYPE_INCOMING_LOCK;
- incoming_lock_view->layout = NULL;
- incoming_lock_view->onCreate = __callui_view_incoming_lock_oncreate;
- incoming_lock_view->onUpdate = __callui_view_incoming_lock_onupdate;
- incoming_lock_view->onDestroy = __callui_view_incoming_lock_ondestroy;
- incoming_lock_view->priv = calloc(1, sizeof(incoming_lock_view_priv_t));
-
- if (!incoming_lock_view->priv) {
- err("ERROR!!!!!!!!!!!");
- }
-
- return incoming_lock_view;
-}
-
-static void __send_reject_msg_status_cb(msg_handle_t Handle, msg_struct_t pStatus, void *pUserParam)
-{
- CALLUI_RETURN_IF_FAIL(pStatus != NULL);
- int status = MSG_NETWORK_SEND_FAIL;
-
- msg_get_int_value(pStatus, MSG_SENT_STATUS_NETWORK_STATUS_INT, &status);
- dbg("status:[%d]", status);
-}
-
-void _callui_view_incoming_lock_view_send_reject_msg(void *data, call_data_t *call_data)
-{
- CALLUI_RETURN_IF_FAIL(data != NULL);
- CALLUI_RETURN_IF_FAIL(call_data != NULL);
- dbg("..");
- call_view_data_t *vd = data;
- callui_app_data_t *ad = _callui_get_app_data();
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- int slot_id;
-
- msg_error_t err = MSG_SUCCESS;
- msg_handle_t msgHandle = NULL;
-
- if (strlen(priv->reject_msg) == 0) {
- warn("Is not reject with message case");
- return;
- }
-
- err = msg_open_msg_handle(&msgHandle);
- if (err != MSG_SUCCESS) {
- dbg("msg_open_msg_handle()- failed [%d]", err);
- return;
- }
-
- err = msg_reg_sent_status_callback(msgHandle, &__send_reject_msg_status_cb, NULL);
- if (err != MSG_SUCCESS) {
- dbg("msg_reg_sent_status_callback()- failed [%d]", err);
- msg_close_msg_handle(&msgHandle);
- return;
- }
- msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
- msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
- msg_struct_t pReq = msg_create_struct(MSG_STRUCT_REQUEST_INFO);
-
- /* Set message type to SMS reject*/
- msg_set_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS_REJECT);
-
- slot_id = ad->sim_slot;
- dbg("msg_sms_send_message() Sim slot [%d]", slot_id);
- if (slot_id != -1) {
- slot_id++;
- msg_set_int_value(msgInfo, MSG_MESSAGE_SIM_INDEX_INT, slot_id);
- }
-
- /* No setting send option */
- msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, FALSE);
-
- /* Set message body */
- if (msg_set_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, priv->reject_msg, strlen(priv->reject_msg)) != MSG_SUCCESS) {
- err("msg_set_str_value() - failed");
- } else {
- /* Create address list*/
- msg_struct_list_s *addr_list;
- msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void **)&addr_list);
- msg_struct_t addr_info = addr_list->msg_struct_info[0];
- char *call_number = call_data->call_num;
-
- /* Set message address */
- msg_set_int_value(addr_info, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
- msg_set_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, call_number, strlen(call_number));
- addr_list->nCount = 1;
-
- /* Set message struct to Request*/
- msg_set_struct_handle(pReq, MSG_REQUEST_MESSAGE_HND, msgInfo);
- msg_set_struct_handle(pReq, MSG_REQUEST_SENDOPT_HND, sendOpt);
-
- /* Send message */
- err = msg_sms_send_message(msgHandle, pReq);
- if (err != MSG_SUCCESS) {
- err("msg_sms_send_message() - failed [%d]", err);
- } else {
- dbg("Sending...");
- }
- }
- msg_close_msg_handle(&msgHandle);
- msg_release_struct(&pReq);
- msg_release_struct(&msgInfo);
- msg_release_struct(&sendOpt);
-
- return;
-}
-
-static int __callui_view_incoming_lock_oncreate(call_view_data_t *view_data, void *appdata)
-{
-
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- view_data->ad = ad;
-
- if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK && ad->held == NULL
- && ad->active == NULL && ad->incom != NULL && ad->active_incoming == false) {
-
- // TODO commented the active notification, because cannot change window size
- //_callui_view_active_incoming_call_oncreate(view_data, appdata);
-
- _callui_view_incoming_call_oncreate(view_data, appdata);
- } else {
- _callui_view_incoming_call_oncreate(view_data, appdata);
- }
- __callui_view_incoming_lock_onshow(view_data, ad);
- _callui_common_win_set_noti_type(ad, EINA_TRUE);
- return 0;
-}
-
-static int __callui_view_incoming_lock_onupdate(call_view_data_t *view_data)
-{
- dbg("mt-lock view update!!");
- callui_app_data_t *ad = _callui_get_app_data();
- __callui_view_incoming_lock_onshow(view_data, ad);
- return 0;
-}
-
-static int __callui_view_incoming_lock_onshow(call_view_data_t *view_data, void *appdata)
-{
- dbg("mt-lock view show!!");
- callui_app_data_t *ad = (callui_app_data_t *) appdata;
- int result = 0;
- if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK && ad->active == NULL
- && ad->held == NULL && ad->incom != NULL && ad->active_incoming == false) {
-
- // TODO commented the active notification, because cannot change window size
- /* create active incoming call */
- //_callui_view_active_incoming_call_draw_screen(ad, view_data);
-
- _callui_view_incoming_call_draw_screen(ad, view_data);
- } else {
- /* create incoming call */
- _callui_view_incoming_call_draw_screen(ad, view_data);
- }
-
- ad->active_incoming = true;
- evas_object_show(ad->main_ly);
- result = elm_win_keygrab_set(ad->win, CALLUI_KEY_SELECT, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
- if (result) {
- dbg("KEY_SELECT key grab failed");
- }
-
- return 0;
-}
-
-static char *__callui_view_incoming_lock_reject_msg_gl_label_get_msg(void *data, Evas_Object *obj, const char *part)
-{
- CALLUI_RETURN_NULL_IF_FAIL(part);
- call_view_data_t *vd = (call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA);
- CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
-
- int index = SAFE_C_CAST(int, data);
- char *msg_str = NULL;
-
- if (!strcmp(part, "elm.text")) {
- if (index != -1) {
- msg_str = _callui_common_get_reject_msg_by_index(index);
- sec_dbg("msg_str(%s)", msg_str);
- return msg_str; /*Send markup text to draw the genlist */
- } else {
- warn("invalid index: %d", index);
- msg_str = _("IDS_CALL_BODY_NO_MESSAGES");
- return strdup(msg_str);
- }
- }
- return NULL;
-}
-
-static void __reject_msg_gl_sel_msg(void *data, Evas_Object *obj, void *event_info)
-{
- dbg("..");
- int index = SAFE_C_CAST(int, data);
- int ret = -1;
- dbg("index: %d", index);
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
-
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
-
- if (index != -1) {
- char *reject_msg = NULL;
- char *ret_str = NULL;
- call_view_data_t *vd = (call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA);
- CALLUI_RETURN_IF_FAIL(vd);
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
- CALLUI_RETURN_IF_FAIL(priv);
-
- ret_str = _callui_common_get_reject_msg_by_index(index);
- if (ret_str) {
- reject_msg = elm_entry_markup_to_utf8(ret_str); /*send utf8 text to MSG */
- if (reject_msg != NULL) {
- snprintf(priv->reject_msg, sizeof(priv->reject_msg), "%s", reject_msg);
- sec_dbg("priv->reject_msg(%s)", priv->reject_msg);
- free(reject_msg);
- }
- free(ret_str);
- }
-
- ret = cm_reject_call(ad->cm_handle);
- if (ret != CM_ERROR_NONE) {
- err("cm_reject_call() is failed");
- } else {
- _callui_view_incoming_lock_view_send_reject_msg(vd, ad->incom);
- }
- }
-
- return;
-}
-
-Elm_Object_Item *_callui_view_incoming_lock_append_genlist_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index)
-{
- Elm_Object_Item *item = NULL;
- item = elm_genlist_item_append(msg_glist, itc_reject_msg,
- SAFE_C_CAST(void *, index), NULL, ELM_GENLIST_ITEM_NONE,
- __reject_msg_gl_sel_msg, SAFE_C_CAST(void *, index));
- return item;
-}
-
-Elm_Genlist_Item_Class *_callui_view_incoming_lock_create_item_class()
-{
- Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new();
- CALLUI_RETURN_VALUE_IF_FAIL(item_class, NULL);
-
- item_class->item_style = "type1";
- item_class->func.text_get = __callui_view_incoming_lock_reject_msg_gl_label_get_msg;
- item_class->func.content_get = NULL;
- item_class->func.state_get = NULL;
- item_class->func.del = NULL;
- return item_class;
-}
-
-static void __callui_view_incoming_lock_create_new_msg_cb(void *data, Evas_Object *obj, void *event_info)
-{
- CALLUI_RETURN_IF_FAIL(data != NULL);
- callui_app_data_t *ad = _callui_get_app_data();
- char *tel_number = NULL;
- int ret = -1;
- call_data_t *call_data = NULL;
-
- call_data = ad->incom;
- if (call_data != NULL) {
- tel_number = call_data->call_num;
- _callui_common_launch_msg_composer(ad, tel_number);
- ret = cm_reject_call(ad->cm_handle);
- if (ret != CM_ERROR_NONE) {
- err("cm_reject_call() is failed");
- }
- }
-}
-
-void _callui_view_incoming_lock_create_reject_msg_button(Evas_Object *parent, char *part, void *data)
-{
- Evas_Object *msg_button = elm_button_add(parent);
- CALLUI_RETURN_IF_FAIL(msg_button);
- elm_object_style_set(msg_button, "default");
- elm_object_text_set(msg_button, _("IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"));
- evas_object_smart_callback_add(msg_button, "clicked", __callui_view_incoming_lock_create_new_msg_cb, data);
- elm_object_part_content_set(parent, part, msg_button);
- evas_object_show(msg_button);
-}
-
-static int __callui_view_incoming_lock_ondestroy(call_view_data_t *vd)
-{
- dbg("mt-lock view destroy!!");
- callui_app_data_t *ad = _callui_get_app_data();
- incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
-
-#ifdef _DBUS_DVC_LSD_TIMEOUT_
- /* Set LCD timeout for call state */
- /* LCD is alwasy on during incoming call screen */
- if (ad->speaker_status == EINA_TRUE) {
- _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
- }
-#endif
-
- _callui_common_win_set_noti_type(ad, EINA_FALSE);
- if (priv != NULL) {
- if (priv->lock_accept) {
- evas_object_del(priv->lock_accept);
- priv->lock_accept = NULL;
- }
- if (priv->lock_reject) {
- evas_object_del(priv->lock_reject);
- priv->lock_reject = NULL;
- }
-
- if (ad->second_call_popup) {
- evas_object_del(ad->second_call_popup);
- ad->second_call_popup = NULL;
- }
-
- if (priv->itc_reject_msg) {
- priv->itc_reject_msg->func.text_get = NULL;
- priv->itc_reject_msg->func.content_get = NULL;
- priv->itc_reject_msg->func.state_get = NULL;
- priv->itc_reject_msg->func.del = NULL;
- elm_genlist_item_class_free(priv->itc_reject_msg);
- priv->itc_reject_msg = NULL;
- }
-
- if (priv->msg_glist) {
- elm_genlist_clear(priv->msg_glist);
- evas_object_del(priv->msg_glist);
- priv->msg_glist = NULL;
- }
-
- if (priv->reject_msg_gl) {
- evas_object_del(priv->reject_msg_gl);
- priv->reject_msg_gl = NULL;
- }
-
- _callui_view_incoming_call_ondestroy(priv);
-
- elm_object_signal_emit(priv->contents, "mt_circle_bg_hide", "mt_view");
- _callui_common_reset_main_ly_text_fields(priv->contents);
-
- if (ad->main_ly) {
- priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (priv->contents) {
- evas_object_del(priv->contents);
- priv->contents = NULL;
- }
- }
-
- if (priv->dimming_ly) {
- evas_object_del(priv->dimming_ly);
- priv->dimming_ly = NULL;
- }
-
- if (ad->win) {
- evas_object_resize(ad->win, ad->root_w, ad->root_h);
- }
-
- free(priv);
- priv = NULL;
- }
- elm_win_keygrab_unset(ad->win, CALLUI_KEY_SELECT, 0, 0);
-
- return 0;
-}
-
-Evas_Object *_callui_view_incoming_lock_get_accept_layout(call_view_data_t *vd)
-{
- incoming_lock_view_priv_t *priv = NULL;
-
- CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
- priv = (incoming_lock_view_priv_t *) vd->priv;
-
- CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL);
- return priv->lock_accept;
-}
-
-void _callui_view_incoming_lock_set_accept_layout(call_view_data_t *vd, Evas_Object *layout)
-{
- incoming_lock_view_priv_t *priv = NULL;
-
- CALLUI_RETURN_IF_FAIL(vd);
- priv = (incoming_lock_view_priv_t *) vd->priv;
-
- CALLUI_RETURN_IF_FAIL(priv);
- priv->lock_accept = layout;
-}
-
-Evas_Object *_callui_view_incoming_lock_get_reject_layout(call_view_data_t *vd)
-{
- incoming_lock_view_priv_t *priv = NULL;
-
- CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
- priv = (incoming_lock_view_priv_t *) vd->priv;
-
- CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL);
- return priv->lock_reject;
-}
-
-void _callui_view_incoming_lock_set_reject_layout(call_view_data_t *vd, Evas_Object *layout)
-{
- incoming_lock_view_priv_t *priv = NULL;
-
- CALLUI_RETURN_IF_FAIL(vd);
- priv = (incoming_lock_view_priv_t *) vd->priv;
-
- CALLUI_RETURN_IF_FAIL(priv);
- priv->lock_reject = layout;
-}
priv->no_lock_timer = NULL;
- if (_callui_vm_get_cur_view_type(ad->view_manager_handle) >= VIEW_TYPE_MULTICALL_LIST) {
+ callui_view_type_e type = _callui_vm_get_cur_view_type(ad->view_manager_handle);
+ if (type >= VIEW_TYPE_MULTICALL_LIST) {
return ECORE_CALLBACK_CANCEL;
- }
-
- if (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_INCOMING_LOCK) {
+ } else if (type == VIEW_TYPE_INCOMING_CALL || type == VIEW_TYPE_INCOMING_CALL_NOTI) {
return ECORE_CALLBACK_RENEW;
}
#include "callui-view-dialing.h"
#include "callui-view-single-call.h"
#include "callui-view-callend.h"
-#include "callui-view-incoming-lock.h"
+#include "callui-view-incoming-call-noti.h"
+#include "callui-view-incoming-call.h"
#include "callui-view-multi-call-split.h"
#include "callui-view-multi-call-conf.h"
#include "callui-view-multi-call-list.h"
#include "callui-view-quickpanel.h"
#include "callui-common.h"
-typedef call_view_data_t *(*new_view_data_cb) ();
+typedef call_view_data_base_t *(*new_view_data_cb) ();
struct _callui_vm {
- new_view_data_cb func_new[VIEW_TYPE_MAX];
- call_view_data_t *cur_view;
+ call_view_data_base_t *cur_view;
callui_view_type_e cur_view_type;
callui_app_data_t *ad;
};
static int __callui_vm_destroy_cur_view(callui_vm_h vm);
static int __callui_vm_create_update_view(callui_vm_h vm, callui_view_type_e type);
-static void __callui_vm_init_view_reg_func(callui_vm_h vm,
- callui_view_type_e view_type,
- call_view_data_t *(*view_new) ());
-static void __callui_vm_init_view_reg_func(callui_vm_h vm, callui_view_type_e view_type, call_view_data_t *(*view_new) ())
+static call_view_data_base_t *_allocate_view(callui_view_type_e view_type)
{
- vm->func_new[view_type] = view_new;
+ debug_enter();
+
+ switch (view_type)
+ {
+ case VIEW_TYPE_DIALLING:
+ return (call_view_data_base_t *)_callui_dialing_view_dialing_new();
+ case VIEW_TYPE_INCOMING_CALL_NOTI:
+ return (call_view_data_base_t *)_callui_view_incoming_call_noti_new();
+ case VIEW_TYPE_INCOMING_CALL:
+ return (call_view_data_base_t *)_callui_view_incoming_call_new();
+ case VIEW_TYPE_SINGLECALL:
+ return (call_view_data_base_t *)_callui_view_single_call_new();
+ case VIEW_TYPE_MULTICALL_SPLIT:
+ return (call_view_data_base_t *)_callui_view_multi_call_split_new();
+ case VIEW_TYPE_MULTICALL_CONF:
+ return (call_view_data_base_t *)_callui_view_multi_call_conf_new();
+ case VIEW_TYPE_MULTICALL_LIST:
+ return (call_view_data_base_t *)_callui_view_multi_call_list_new();
+ case VIEW_TYPE_ENDCALL:
+ return (call_view_data_base_t *)_callui_view_callend_new();
+ default:
+ return NULL;
+ }
+ return NULL;
}
callui_vm_h _callui_vm_create(callui_app_data_t *ad)
CALLUI_RETURN_VALUE_IF_FAIL(vm, NULL);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_DIALLING, _callui_dialing_view_dialing_new);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_INCOMING_LOCK, _callui_view_incoming_lock_new);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_SINGLECALL, _callui_view_single_call_new);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_MULTICALL_SPLIT, _callui_view_multi_call_split_new);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_MULTICALL_CONF, _callui_view_multi_call_conf_new);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_MULTICALL_LIST, _callui_view_multi_call_list_new);
- __callui_vm_init_view_reg_func(vm, VIEW_TYPE_ENDCALL, _callui_view_callend_new);
-
vm->cur_view_type = VIEW_TYPE_UNDEFINED;
vm->ad = ad;
static int __callui_vm_destroy_cur_view(callui_vm_h vm)
{
- int res;
- call_view_data_t *view = vm->cur_view;
+ int res = CALLUI_RESULT_FAIL;
+
+ call_view_data_base_t *view = vm->cur_view;
+
CALLUI_RETURN_VALUE_IF_FAIL(view, CALLUI_RESULT_FAIL);
CALLUI_RETURN_VALUE_IF_FAIL(view->onDestroy, CALLUI_RESULT_FAIL);
res = view->onDestroy(view);
}
- free(vm->cur_view);
vm->cur_view = NULL;
vm->cur_view_type = VIEW_TYPE_UNDEFINED;
static int __callui_vm_create_update_view(callui_vm_h vm, callui_view_type_e type)
{
- call_view_data_t *view = vm->cur_view;
+ call_view_data_base_t *view = vm->cur_view;
int res;
if (!view) {
dbg("Try create new view [%d]", type);
- CALLUI_RETURN_VALUE_IF_FAIL(vm->func_new[type], CALLUI_RESULT_FAIL);
- view = vm->func_new[type]();
+ view = _allocate_view(type);
CALLUI_RETURN_VALUE_IF_FAIL(view, CALLUI_RESULT_FAIL);
if (!view->onCreate) {
free(view);
return CALLUI_RESULT_FAIL;
}
+
res = view->onCreate(view, vm->ad);
+
if (res != CALLUI_RESULT_OK) {
err("onCreate callback failed! res[%d]", res);
free(view);
callui_view_type_e last_view_type = vm->cur_view_type;
if ((last_view_type != VIEW_TYPE_UNDEFINED) && (last_view_type != type)) {
- dbg("hide & destroy [%d]", last_view_type);
+ dbg("destroy [%d]", last_view_type);
res = __callui_vm_destroy_cur_view(vm);
CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
}
vm->cur_view_type = type;
- if (type == VIEW_TYPE_DIALLING || type == VIEW_TYPE_INCOMING_LOCK) {
+ if (type == VIEW_TYPE_DIALLING || type == VIEW_TYPE_INCOMING_CALL) {
elm_win_activate(vm->ad->win);
}
+ if (type == VIEW_TYPE_INCOMING_CALL_NOTI) {
+ vm->ad->incoming_noti = true;
+ }
+
if (type != VIEW_TYPE_ENDCALL) {
// TODO: temp solution. Need to be replaced in future
_callui_qp_mc_update(vm->ad->qp_minicontrol);
int res;
if (ad->incom) {
- res = _callui_vm_change_view(vm, VIEW_TYPE_INCOMING_LOCK);
+
+ callui_view_type_e type = VIEW_TYPE_INCOMING_CALL;
+
+#ifdef ACTIVE_NOTIFICATION_AVAILABLE
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK &&
+ ad->active == NULL &&
+ ad->held == NULL &&
+ ad->incoming_noti == false) {
+ type = VIEW_TYPE_INCOMING_CALL_NOTI;
+ }
+#endif
+ res =_callui_vm_change_view(ad->view_manager_handle, type);
} else if (ad->active) {
if (CM_CALL_STATE_DIALING == ad->active->call_state) {
res = _callui_vm_change_view(vm, VIEW_TYPE_DIALLING);
*
*/
+#include <Elementary.h>
+#include "callui-view-multi-call-conf.h"
#include "callui.h"
#include "callui-common.h"
#include "callui-view-elements.h"
-#include "callui-view-multi-call-conf.h"
#include "callui-view-layout.h"
#include "callui-keypad.h"
-#define CALLUI_VIEW_MULTICALL_CONF_LAYOUT_ID "MULTIVIEWCONF"
-typedef struct {
- Evas_Object *contents;
+#define CALLUI_BUF_MEMBER_SIZE 512
+#define CALLUI_BUF_STATUS_SIZE 129
+
+struct _callui_view_mc_conf {
+ call_view_data_base_t base_view;
+
Evas_Object *caller_info;
- Evas_Object *btn_ly;
- Evas_Object *manage_calls_ly;
- Eina_Bool is_held;
-} callui_view_multi_call_conf_priv_t;
+} callui_view_mc_list;
-static int __callui_view_multi_call_conf_oncreate(call_view_data_t *view_data, void *appdata);
-static int __callui_view_multi_call_conf_onupdate(call_view_data_t *view_data);
-static int __callui_view_multi_call_conf_onshow(call_view_data_t *view_data, void *appdata);
-static int __callui_view_multi_call_conf_ondestroy(call_view_data_t *view_data);
+typedef struct _callui_view_mc_conf _callui_view_mc_conf_t;
-call_view_data_t *_callui_view_multi_call_conf_new()
+static int __callui_view_multi_call_conf_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_multi_call_conf_onupdate(call_view_data_base_t *view_data);
+static int __callui_view_multi_call_conf_ondestroy(call_view_data_base_t *view_data);
+
+static int __create_main_content(callui_view_mc_conf_h vd);
+static int __update_displayed_data(callui_view_mc_conf_h vd);
+
+static void __manage_calls_btn_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source);
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+
+callui_view_mc_conf_h _callui_view_multi_call_conf_new()
{
- call_view_data_t *multi_call_conf_view = calloc(1, sizeof(call_view_data_t));
- multi_call_conf_view->type = VIEW_TYPE_MULTICALL_CONF;
- multi_call_conf_view->layout = NULL;
- multi_call_conf_view->onCreate = __callui_view_multi_call_conf_oncreate;
- multi_call_conf_view->onUpdate = __callui_view_multi_call_conf_onupdate;
- multi_call_conf_view->onDestroy = __callui_view_multi_call_conf_ondestroy;
-
- multi_call_conf_view->priv = calloc(1, sizeof(callui_view_multi_call_conf_priv_t));
- if (!multi_call_conf_view->priv) {
- err("ERROR!!!!!!!!!!! ");
- }
- return multi_call_conf_view;
+ debug_enter();
+
+ callui_view_mc_conf_h mc_list_conf = calloc(1, sizeof(_callui_view_mc_conf_t));
+ CALLUI_RETURN_NULL_IF_FAIL(mc_list_conf);
+
+ mc_list_conf->base_view.onCreate = __callui_view_multi_call_conf_oncreate;
+ mc_list_conf->base_view.onUpdate = __callui_view_multi_call_conf_onupdate;
+ mc_list_conf->base_view.onDestroy = __callui_view_multi_call_conf_ondestroy;
+
+ return mc_list_conf;
}
-static void __callui_view_manage_btn_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+static int __create_main_content(callui_view_mc_conf_h vd)
{
- dbg("..");
- callui_app_data_t *ad = _callui_get_app_data();
- _callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_MULTICALL_LIST);
- return;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ /* Main Layout */
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
+
+ // TODO: replace this into view manager in nearest future
+ eext_object_event_callback_add(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb, ad);
+
+ /* Caller info layout */
+ vd->caller_info = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_CALLER_INFO);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "caller_info", vd->caller_info);
+
+ /* Manage button Layout */
+ Evas_Object *manage_calls_ly = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_MANAGE_CALLS);
+ CALLUI_RETURN_VALUE_IF_FAIL(manage_calls_ly, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->caller_info, "manage_calls_icon_swallow", manage_calls_ly);
+ edje_object_signal_callback_add(_EDJ(manage_calls_ly), "mouse,clicked,1", "btn", __manage_calls_btn_clicked_cb, vd);
+
+ Evas_Object *btn_layout = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_BUTTON_LAYOUT);
+ CALLUI_RETURN_VALUE_IF_FAIL(btn_layout, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "btn_region", btn_layout);
+
+ /*create keypad layout*/
+ int res = _callui_keypad_create_layout(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ CALLUI_RETURN_VALUE_IF_FAIL(
+ _callui_create_end_call_button(vd->base_view.contents, __end_call_btn_click_cb, vd),
+ CALLUI_RESULT_ALLOCATION_FAIL);
+
+ return res;
+}
+
+static int __callui_view_multi_call_conf_oncreate(call_view_data_base_t *view_data, void *appdata)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_conf_h vd = (callui_view_mc_conf_h)view_data;
+ view_data->ad = (callui_app_data_t *)appdata;
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ return __update_displayed_data(vd);
}
-static void __callui_view_multi_call_conf_draw_screen(Evas_Object *eo, void *data)
+static int __callui_view_multi_call_conf_onupdate(call_view_data_base_t *view_data)
{
- dbg("..");
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_conf_h vd = (callui_view_mc_conf_h)view_data;
- call_view_data_t *vd = (call_view_data_t *)data;
- callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)vd->priv;
- callui_app_data_t *ad = _callui_get_app_data();
- char buf[512] = { 0, };
+ return __update_displayed_data(vd);
+}
+
+static int __update_displayed_data(callui_view_mc_conf_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ char buf[CALLUI_BUF_MEMBER_SIZE] = { 0 };
+ char status_txt[CALLUI_BUF_STATUS_SIZE] = { 0 };
call_data_t *call_data = NULL;
- char status_txt[128 + 1] = { '\0', };
+ Eina_Bool is_held;
if (ad->active) {
call_data = ad->active;
- priv->is_held = EINA_FALSE;
+ is_held = EINA_FALSE;
} else if (ad->held) {
call_data = ad->held;
- priv->is_held = EINA_TRUE;
- } else {
- err("call data is null");
- return;
+ is_held = EINA_TRUE;
}
+ CALLUI_RETURN_VALUE_IF_FAIL(call_data, CALLUI_RESULT_FAIL);
- if (priv->is_held == EINA_TRUE) {
+ if (is_held) {
snprintf(status_txt, sizeof(status_txt), _("IDS_CALL_BODY_ON_HOLD_ABB"));
_callui_show_caller_info_status(ad, status_txt);
- elm_object_signal_emit(priv->caller_info, "set-hold-state", "call-screen");
+ elm_object_signal_emit(vd->caller_info, "set-hold-state", "call-screen");
} else {
- /*****deciding the call status according the sim name******/
- elm_object_signal_emit(priv->caller_info, "set-unhold-state", "call-screen");
+ elm_object_signal_emit(vd->caller_info, "set-unhold-state", "call-screen");
}
- elm_object_part_content_unset(priv->caller_info, "manage_calls_icon_swallow");
- elm_object_part_content_set(priv->caller_info, "manage_calls_icon_swallow", priv->manage_calls_ly);
- evas_object_show(priv->manage_calls_ly);
- edje_object_signal_callback_del(_EDJ(priv->manage_calls_ly), "mouse,clicked,1", "btn", __callui_view_manage_btn_clicked_cb);
- edje_object_signal_callback_add(_EDJ(priv->manage_calls_ly), "mouse,clicked,1", "btn", __callui_view_manage_btn_clicked_cb, priv);
-
- elm_object_signal_emit(priv->caller_info, "set_conference_mode", "");
+ elm_object_signal_emit(vd->caller_info, "set_conference_mode", "");
_callui_show_caller_info_name(ad, _("IDS_CALL_BODY_CONFERENCE"));
- char * status = _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB");
- snprintf(buf, 512, status, call_data->member_count);
+ char *status = _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB");
+ snprintf(buf, CALLUI_BUF_MEMBER_SIZE, status, call_data->member_count);
_callui_show_caller_info_number(ad, buf);
- if (priv->is_held == EINA_TRUE) {
- _callui_create_top_second_button_disabled(ad);
- _callui_create_bottom_second_button_disabled(ad);
+ if (is_held) {
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_second_button_disabled(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_second_button_disabled(ad), CALLUI_RESULT_FAIL);
} else {
- /*Delete keypad layout - before creating the keypad button again
- * Since layout are created again in update_cb
- * to handle rotation use-case*/
- if (_callui_keypad_get_show_status() == EINA_TRUE) {
+ if (_callui_keypad_get_show_status()) {
_callui_keypad_hide_layout(ad);
}
-
- _callui_create_top_second_button(ad);
- _callui_create_bottom_second_button(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_second_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_second_button(ad), CALLUI_RESULT_FAIL);
}
- _callui_create_top_third_button(ad);
- _callui_create_bottom_first_button(ad);
-
- _callui_create_top_first_button(ad);
- _callui_create_bottom_third_button(ad);
- elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN");
- _callui_create_end_call_button(priv->contents, vd);
- evas_object_show(eo);
-}
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_third_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_first_button(ad), CALLUI_RESULT_FAIL);
-static Evas_Object *__callui_view_multi_call_conf_create_contents(void *data, char *group)
-{
- if (data == NULL) {
- err("ERROR");
- return NULL;
- }
- callui_app_data_t *ad = (callui_app_data_t *)data;
- Evas_Object *eo;
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_first_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_third_button(ad), CALLUI_RESULT_FAIL);
- /* load edje */
- eo = _callui_load_edj(ad->main_ly, EDJ_NAME, group);
- if (eo == NULL)
- return NULL;
+ elm_object_signal_emit(vd->base_view.contents, "SHOW_NO_EFFECT", "ALLBTN");
- return eo;
-}
+ evas_object_show(vd->base_view.contents);
-static void __callui_view_multi_call_conf_more_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_IF_FAIL(vd != NULL);
- _callui_load_more_option(vd);
- return;
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return CALLUI_RESULT_OK;
}
-static int __callui_view_multi_call_conf_oncreate(call_view_data_t *view_data, void *appdata)
+static int __callui_view_multi_call_conf_ondestroy(call_view_data_base_t *view_data)
{
- callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)view_data->priv;
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
- view_data->ad = ad;
+ callui_view_mc_conf_h vd = (callui_view_mc_conf_h)view_data;
+ callui_app_data_t *ad = vd->base_view.ad;
- if (ad->main_ly) {
- /* Create Main Layout */
- priv->contents = __callui_view_multi_call_conf_create_contents(ad, GRP_MAIN_LY);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
-
- if (priv->contents) {
- eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb);
- }
- eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb, view_data);
+ if (ad->ctxpopup) {
+ elm_ctxpopup_dismiss(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+ }
- priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
- if (!priv->caller_info) {
- priv->caller_info = __callui_view_multi_call_conf_create_contents(ad, GRP_CALLER_INFO);
- elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
- }
+ _callui_keypad_delete_layout(ad);
- /* Manage button Layout */
- priv->manage_calls_ly = elm_object_part_content_get(priv->caller_info, "manage_calls_icon_swallow");
- if (!priv->manage_calls_ly) {
- priv->manage_calls_ly = __callui_view_multi_call_conf_create_contents(ad, GRP_MANAGE_CALLS);
- }
+ eext_object_event_callback_del(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb);
- priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
- if (!priv->btn_ly) {
- priv->btn_ly = __callui_view_multi_call_conf_create_contents(ad, GRP_BUTTON_LAYOUT);
- elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
- }
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
- evas_object_name_set(priv->contents, CALLUI_VIEW_MULTICALL_CONF_LAYOUT_ID);
- dbg("[========== MULTIVIEWCONF: priv->contents Addr : [%p] ==========]", priv->contents);
+ free(vd);
- /*create keypad layout*/
- _callui_keypad_create_layout(ad);
- } else {
- err("ERROR");
- return -1;
- }
-
- __callui_view_multi_call_conf_onshow(view_data, NULL);
- return 0;
+ return CALLUI_RESULT_OK;
}
-static int __callui_view_multi_call_conf_onupdate(call_view_data_t *view_data)
+static void __manage_calls_btn_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source)
{
- dbg("multicall-conf view update");
+ callui_view_mc_conf_h vd = (callui_view_mc_conf_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
- __callui_view_multi_call_conf_onshow(view_data, NULL);
- return 0;
+ _callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_MULTICALL_LIST);
+ return;
}
-static int __callui_view_multi_call_conf_onshow(call_view_data_t *view_data, void *appdata)
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- dbg("multicall-conf view show");
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_view_mc_conf_h vd = (callui_view_mc_conf_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
- callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)view_data->priv;
- callui_app_data_t *ad = _callui_get_app_data();
-
- __callui_view_multi_call_conf_draw_screen(priv->contents, view_data);
-
- evas_object_hide(ad->main_ly);
- evas_object_show(ad->main_ly);
-
- return 0;
+ int ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ }
}
-static int __callui_view_multi_call_conf_ondestroy(call_view_data_t *vd)
+static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
- CALLUI_RETURN_VALUE_IF_FAIL(vd->ad, -1);
-
- callui_app_data_t *ad = vd->ad;
-
- callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)vd->priv;
-
- if (priv != NULL) {
- if (ad->ctxpopup) {
- elm_ctxpopup_dismiss(ad->ctxpopup);
- ad->ctxpopup = NULL;
- }
-
- _callui_show_caller_info_number(ad, ""); /*reset the number text*/
-
- /*Delete keypad layout*/
- _callui_keypad_delete_layout(ad);
-
- if (priv->contents) {
- eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb);
- _callui_common_reset_main_ly_text_fields(priv->contents);
- }
- elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN");
-
- if (priv->manage_calls_ly) {
- elm_object_part_content_unset(priv->caller_info, "manage_calls_icon_swallow");
- edje_object_part_unswallow(_EDJ(priv->caller_info), priv->manage_calls_ly);
- evas_object_del(priv->manage_calls_ly);
- priv->manage_calls_ly = NULL;
- }
-
- free(priv);
- priv = NULL;
- }
-
- return 0;
+ _callui_load_more_option(data);
}
*
*/
-#include "callui-common.h"
+#include <Elementary.h>
+
+#include "callui-view-multi-call-list.h"
#include "callui.h"
+#include "callui-common.h"
#include "callui-view-elements.h"
-#include "callui-view-multi-call-list.h"
#include "callui-view-layout.h"
-static Elm_Genlist_Item_Class *itc_call;
-#define CALLUI_VIEW_MULTICALL_LIST_LAYOUT_ID "MULTIVIEWLIST"
-typedef struct {
- Evas_Object *contents;
- Evas_Object *ic;
- Evas_Object *multibox_gl;
+#define CALLUI_APP_DATA_NAME "multi_call_app_data"
+struct _callui_view_mc_list {
+ call_view_data_base_t base_view;
+
+ Evas_Object *call_genlist;
GSList *call_list;
-} callui_view_multi_call_list_priv_t;
+ Elm_Genlist_Item_Class *call_genlist_itc;
+};
+typedef struct _callui_view_mc_list _callui_view_mc_list_t;
+
+static int __callui_view_multi_call_list_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_multi_call_list_onupdate(call_view_data_base_t *view_data);
+static int __callui_view_multi_call_list_ondestroy(call_view_data_base_t *view_data);
+
+static int __create_main_content(callui_view_mc_list_h vd);
+static int __update_displayed_data(callui_view_mc_list_h vd);
+
+static void __caller_genlist_init_item_class(callui_view_mc_list_h vd);
+static void __caller_genlist_deinit_item_class(callui_view_mc_list_h vd);
+
+static int __caller_genlist_add(callui_view_mc_list_h vd);
+static void __caller_genlist_clear(callui_view_mc_list_h vd);
+static void __caller_genlist_fill(callui_view_mc_list_h vd);
+
+static Evas_Object *__caller_genlist_content_cb(void *data, Evas_Object *obj, const char *part);
+static char *__caller_genlist_txt_cb(void *data, Evas_Object *obj, const char *part);
+
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __split_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void __back_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __list_free_cb(gpointer data);
+
+callui_view_mc_list_h _callui_view_multi_call_list_new()
+{
+ callui_view_mc_list_h mc_list_view = calloc(1, sizeof(_callui_view_mc_list_t));
+ CALLUI_RETURN_NULL_IF_FAIL(mc_list_view);
+
+ mc_list_view->base_view.onCreate = __callui_view_multi_call_list_oncreate;
+ mc_list_view->base_view.onUpdate = __callui_view_multi_call_list_onupdate;
+ mc_list_view->base_view.onDestroy = __callui_view_multi_call_list_ondestroy;
+
+ return mc_list_view;
+}
+
+static int __callui_view_multi_call_list_oncreate(call_view_data_base_t *view_data, void *appdata)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_list_h vd = (callui_view_mc_list_h)view_data;
+ view_data->ad = (callui_app_data_t *)appdata;
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ return __update_displayed_data(vd);
+}
+
+static int __callui_view_multi_call_list_onupdate(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_list_h vd = (callui_view_mc_list_h)view_data;
+
+ return __update_displayed_data(vd);
+}
+
+static int __update_displayed_data(callui_view_mc_list_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ g_slist_free_full(vd->call_list, __list_free_cb);
-static int __callui_view_multi_call_list_oncreate(call_view_data_t *view_data, void *appdata);
-static int __callui_view_multi_call_list_onupdate(call_view_data_t *view_data);
-static int __callui_view_multi_call_list_onshow(call_view_data_t *view_data, void *appdata);
-static int __callui_view_multi_call_list_ondestroy(call_view_data_t *view_data);
+ int res = cm_get_conference_call_list(ad->cm_handle, &vd->call_list);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CM_ERROR_NONE, CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->call_list, CALLUI_RESULT_FAIL);
-call_view_data_t *_callui_view_multi_call_list_new(callui_app_data_t *ad)
+ __caller_genlist_clear(vd);
+
+ __caller_genlist_init_item_class(vd);
+ __caller_genlist_fill(vd);
+ __caller_genlist_deinit_item_class(vd);
+
+ evas_object_show(vd->base_view.contents);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return CALLUI_RESULT_OK;
+}
+
+static int __callui_view_multi_call_list_ondestroy(call_view_data_base_t *view_data)
{
- call_view_data_t* multi_call_list_view = calloc(1, sizeof(call_view_data_t));
- multi_call_list_view->type = VIEW_TYPE_MULTICALL_LIST;
- multi_call_list_view->layout = NULL;
- multi_call_list_view->onCreate = __callui_view_multi_call_list_oncreate;
- multi_call_list_view->onUpdate = __callui_view_multi_call_list_onupdate;
- multi_call_list_view->onDestroy = __callui_view_multi_call_list_ondestroy;
- multi_call_list_view->priv = calloc(1, sizeof(callui_view_multi_call_list_priv_t));
- CALLUI_RETURN_VALUE_IF_FAIL(multi_call_list_view->priv, NULL);
- return multi_call_list_view;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_list_h vd = (callui_view_mc_list_h)view_data;
+
+ g_slist_free_full(vd->call_list, __list_free_cb);
+
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
+
+ free(vd);
+
+ return CALLUI_RESULT_OK;
}
-static void __callui_view_multi_call_list_small_end_call_cb(void *data, Evas_Object *obj, void *event_info)
+static int __create_main_content(callui_view_mc_list_h vd)
{
- dbg("..");
- callui_app_data_t *ad = _callui_get_app_data();
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MULTICALL);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
+
+ // TODO: replace this into view manager in nearest future
+ eext_object_event_callback_add(vd->base_view.contents, EEXT_CALLBACK_BACK, __back_btn_click_cb, ad);
+
+ Evas_Object *back_btn = elm_button_add(vd->base_view.contents);
+ CALLUI_RETURN_VALUE_IF_FAIL(back_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_style_set(back_btn, "bottom");
+ elm_object_text_set(back_btn, _("IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"));
+ elm_object_part_content_set(vd->base_view.contents, "bottom_btn", back_btn);
+ evas_object_smart_callback_add(back_btn, "clicked", __back_btn_click_cb, ad);
+ evas_object_show(back_btn);
+
+ int res = __caller_genlist_add(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ return CALLUI_RESULT_OK;
+}
+
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_app_data_t *ad = (callui_app_data_t *)evas_object_data_get(obj, CALLUI_APP_DATA_NAME);
CALLUI_RETURN_IF_FAIL(ad);
+
cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
- CALLUI_RETURN_IF_FAIL(call_data);
- int ret = -1;
+
unsigned int call_id = 0;
cm_conf_call_data_get_call_id(call_data, &call_id);
- ret = cm_end_call(ad->cm_handle, call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
+
+ int ret = cm_end_call(ad->cm_handle, call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
if (ret != CM_ERROR_NONE) {
err("cm_end_call() get failed with err[%d]", ret);
}
ad->multi_call_list_end_clicked = true;
}
-static void __callui_view_multi_call_list_split_call_cb(void *data, Evas_Object *obj, void *event_info)
+static void __split_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- dbg("..");
- callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(data);
+ callui_app_data_t *ad = (callui_app_data_t *)evas_object_data_get(obj, CALLUI_APP_DATA_NAME);
CALLUI_RETURN_IF_FAIL(ad);
+
cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
- CALLUI_RETURN_IF_FAIL(call_data);
- int ret = -1;
- unsigned int call_id = 0;
+ unsigned int call_id = 0;
cm_conf_call_data_get_call_id(call_data, &call_id);
- ret = cm_split_call(ad->cm_handle, call_id);
+
+ int ret = cm_split_call(ad->cm_handle, call_id);
if (ret != CM_ERROR_NONE) {
err("cm_split_call() get failed with err[%d]", ret);
}
}
-static Evas_Object *__callui_view_multi_call_list_gl_icon_get_call(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *__caller_genlist_content_cb(void *data, Evas_Object *obj, const char *part)
{
+ CALLUI_RETURN_NULL_IF_FAIL(data);
+ callui_app_data_t *ad = (callui_app_data_t *)evas_object_data_get(obj, CALLUI_APP_DATA_NAME);
+ CALLUI_RETURN_NULL_IF_FAIL(ad);
+
cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
+
Evas_Object *img = NULL;
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
- dbg("__callui_view_multi_call_list_gl_icon_get_call %s ", part);
if ((strcmp(part, "elm.swallow.end") == 0)) {
- Evas_Object *img = elm_image_add(obj);
+ img = elm_image_add(obj);
elm_image_file_set(img, EDJ_NAME, GROUP_CALL_BTN_IC_END);
evas_object_size_hint_min_set(img, ELM_SCALE_SIZE(CALL_BTN_IC_BG_SIZE), ELM_SCALE_SIZE(CALL_BTN_IC_BG_SIZE));
evas_object_propagate_events_set(img, EINA_FALSE);
- evas_object_smart_callback_add(img, "clicked", __callui_view_multi_call_list_small_end_call_cb, call_data);
- return img;
+ evas_object_smart_callback_add(img, "clicked", __end_call_btn_click_cb, call_data);
+ evas_object_data_set(img, CALLUI_APP_DATA_NAME, ad);
} else if (strcmp(part, "elm.swallow.icon") == 0) {
if (ad->held || ad->active->member_count < 3) {
return NULL;
}
- Evas_Object *img = elm_image_add(obj);
+ img = elm_image_add(obj);
elm_image_file_set(img, EDJ_NAME, GROUP_CALL_BTN_IC_SPLIT);
evas_object_size_hint_min_set(img, ELM_SCALE_SIZE(CALL_BTN_IC_BG_SIZE), ELM_SCALE_SIZE(CALL_BTN_IC_BG_SIZE));
evas_object_propagate_events_set(img, EINA_FALSE);
- evas_object_smart_callback_add(img, "clicked", __callui_view_multi_call_list_split_call_cb, call_data);
- return img;
+ evas_object_smart_callback_add(img, "clicked", __split_call_btn_click_cb, call_data);
+ evas_object_data_set(img, CALLUI_APP_DATA_NAME, ad);
} else if ((strcmp(part, "elm.swallow.icon.0") == 0)) {
call_contact_data_t ct_info = {0,};
char *file_path = "default";
int person_id = -1;
- cm_conf_call_data_get_person_id(call_data, &person_id);
- if (person_id != -1) {
+ int res = cm_conf_call_data_get_person_id(call_data, &person_id);
+ if (res == CM_ERROR_NONE && person_id != -1) {
_callui_common_get_contact_info(person_id, &ct_info);
if (strlen(ct_info.caller_id_path) > 0) {
file_path = ct_info.caller_id_path;
}
}
img = _callui_create_thumbnail_with_size(obj, file_path, THUMBNAIL_98, true);
- return img;
- } else {
- return NULL;
}
+ return img;
}
-static char *__callui_view_multi_call_list_gl_label_get_call(void *data, Evas_Object *obj, const char *part)
+static char *__caller_genlist_txt_cb(void *data, Evas_Object *obj, const char *part)
{
cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
int person_id = -1;
char *call_number = NULL;
- dbg("__callui_view_multi_call_list_gl_label_get_call %s ", part);
+ dbg("__caller_genlist_txt_cb %s ", part);
if (strcmp(part, "elm.text") == 0) {
cm_conf_call_data_get_person_id(call_data, &person_id);
if (person_id != -1) {
- call_contact_data_t ct_info = {0,};
+ call_contact_data_t ct_info = { 0 };
_callui_common_get_contact_info(person_id, &ct_info);
if (strlen(ct_info.call_disp_name) > 0) {
return strdup(ct_info.call_disp_name);
}
}
-static void __callui_view_multi_call_list_genlist_init(void *data)
+static void __caller_genlist_init_item_class(callui_view_mc_list_h vd)
{
- itc_call = elm_genlist_item_class_new();
+ vd->call_genlist_itc = elm_genlist_item_class_new();
- itc_call->item_style = "type1";
- itc_call->func.text_get = __callui_view_multi_call_list_gl_label_get_call;
- itc_call->func.content_get = __callui_view_multi_call_list_gl_icon_get_call;
- itc_call->func.state_get = NULL;
- itc_call->func.del = NULL;
+ vd->call_genlist_itc->item_style = "type1";
+ vd->call_genlist_itc->func.text_get = __caller_genlist_txt_cb;
+ vd->call_genlist_itc->func.content_get = __caller_genlist_content_cb;
+ vd->call_genlist_itc->func.state_get = NULL;
+ vd->call_genlist_itc->func.del = NULL;
}
-static void __callui_view_multi_call_list_genlist_deinit()
+static void __caller_genlist_deinit_item_class(callui_view_mc_list_h vd)
{
- elm_genlist_item_class_free(itc_call);
- itc_call = NULL;
+ elm_genlist_item_class_free(vd->call_genlist_itc);
+ vd->call_genlist_itc = NULL;
}
-static void __callui_view_multi_call_list_genlist_add(void *data)
+static int __caller_genlist_add(callui_view_mc_list_h vd)
{
- call_view_data_t *vd = data;
- callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
- Evas_Object *genlist = NULL;
-
- genlist = elm_genlist_add(priv->contents);
+ Evas_Object *genlist = elm_genlist_add(vd->base_view.contents);
+ CALLUI_RETURN_VALUE_IF_FAIL(genlist, CALLUI_RESULT_ALLOCATION_FAIL);
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(vd->base_view.contents, "swl_calllist", genlist);
+ evas_object_data_set(genlist, CALLUI_APP_DATA_NAME, vd->base_view.ad);
+ vd->call_genlist = genlist;
+
+ return CALLUI_RESULT_OK;
- elm_object_part_content_set(priv->contents, "swl_calllist", genlist);
- priv->multibox_gl = genlist;
}
-static void __callui_view_multi_call_list_genlist_delete(void *data)
+static void __caller_genlist_clear(callui_view_mc_list_h vd)
{
- call_view_data_t *vd = data;
- callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
- if (priv->multibox_gl != NULL) {
- elm_genlist_clear(priv->multibox_gl);
- evas_object_del(priv->multibox_gl);
- priv->multibox_gl = NULL;
+ if (vd->call_genlist != NULL) {
+ elm_genlist_clear(vd->call_genlist);
}
}
-void __callui_view_multi_call_list_genlist_item_append(void *data)
+static void __caller_genlist_fill(callui_view_mc_list_h vd)
{
- dbg("..");
+ CALLUI_RETURN_IF_FAIL(vd->call_list);
+
+ int list_len = g_slist_length(vd->call_list);
Elm_Object_Item *item = NULL;
- callui_app_data_t *ad = _callui_get_app_data();
- CALLUI_RETURN_IF_FAIL(ad);
- call_view_data_t *vd = data;
- CALLUI_RETURN_IF_FAIL(vd);
- callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
- CALLUI_RETURN_IF_FAIL(priv);
- int list_len = 0;
- int idx = 0;
cm_conf_call_data_t *call_data = NULL;
+ int idx = 0;
- CALLUI_RETURN_IF_FAIL(priv->call_list);
- list_len = g_slist_length(priv->call_list);
- for (idx = 0; idx < list_len; idx++) {
- call_data = (cm_conf_call_data_t *)g_slist_nth_data(priv->call_list, idx);
- item = elm_genlist_item_append(priv->multibox_gl, itc_call, (void *)call_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ for (; idx < list_len; idx++) {
+ call_data = (cm_conf_call_data_t *)g_slist_nth_data(vd->call_list, idx);
+ item = elm_genlist_item_append(vd->call_genlist, vd->call_genlist_itc, (void *)call_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
}
-static void __callui_view_multi_call_list_back_cb(void *data, Evas_Object *obj, void *event_info)
+static void __back_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
callui_app_data_t *ad = (callui_app_data_t *)data;
_callui_vm_auto_change_view(ad->view_manager_handle);
}
-static Evas_Object *__callui_view_multi_call_list_create_contents(Evas_Object *parent, char *group)
-{
- Evas_Object *eo;
-
- if (parent == NULL) {
- err("ERROR");
- return NULL;
- }
-
- /* load edje */
- eo = _callui_load_edj(parent, EDJ_NAME, group);
- if (eo == NULL)
- return NULL;
-
- return eo;
-}
-
-static int __callui_view_multi_call_list_oncreate(call_view_data_t *view_data, void *appdata)
-{
- dbg("multicall-list view create");
-
- view_data->ad = (callui_app_data_t *)appdata;
-
- __callui_view_multi_call_list_onshow(view_data, NULL);
-
- return 0;
-}
-
-static void __callui_view_multi_call_list_free_cb(gpointer data)
+static void __list_free_cb(gpointer data)
{
cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
cm_conf_call_data_free(call_data);
}
-
-static int __callui_view_multi_call_list_onupdate(call_view_data_t *view_data)
-{
- dbg("multicall-list view update");
-
- callui_app_data_t *ad = _callui_get_app_data();
- callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)view_data->priv;
- GSList *list = NULL;
-
- __callui_view_multi_call_list_genlist_delete(view_data);
- g_slist_free_full(priv->call_list, __callui_view_multi_call_list_free_cb);
-
- cm_get_conference_call_list(ad->cm_handle, &list);
- CALLUI_RETURN_VALUE_IF_FAIL(list, -1);
- priv->call_list = list;
- __callui_view_multi_call_list_genlist_add(view_data);
- __callui_view_multi_call_list_genlist_init(view_data);
- __callui_view_multi_call_list_genlist_item_append(view_data);
- __callui_view_multi_call_list_genlist_deinit();
-
- elm_object_signal_emit(priv->contents, "set_portrait", "multicall_list_layout");
- evas_object_show(priv->contents);
- evas_object_hide(ad->main_ly);
- evas_object_show(ad->main_ly);
- return 0;
-}
-
-static int __callui_view_multi_call_list_onshow(call_view_data_t *view_data, void *appdata)
-{
- dbg("multicall-list view show");
-
- callui_app_data_t *ad = _callui_get_app_data();
- callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)view_data->priv;
- Evas_Object *back_btn = NULL;
-
- priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
- if (priv->contents) {
- elm_object_part_content_unset(ad->main_ly, "elm.swallow.content");
- evas_object_del(priv->contents);
- priv->contents = NULL;
- }
- priv->contents = __callui_view_multi_call_list_create_contents(ad->main_ly, GRP_MULTICALL);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
- view_data->layout = priv->contents;
-
- __callui_view_multi_call_list_genlist_add(view_data);
- __callui_view_multi_call_list_genlist_init(view_data);
-
- cm_get_conference_call_list(ad->cm_handle, &priv->call_list);
- __callui_view_multi_call_list_genlist_item_append(view_data);
- __callui_view_multi_call_list_genlist_deinit();
-
- back_btn = elm_button_add(priv->contents);
- elm_object_style_set(back_btn, "bottom");
- elm_object_text_set(back_btn, _("IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"));
- elm_object_part_content_set(priv->contents, "bottom_btn", back_btn);
-
- evas_object_smart_callback_del(back_btn, "clicked", __callui_view_multi_call_list_back_cb);
- evas_object_smart_callback_add(back_btn, "clicked", __callui_view_multi_call_list_back_cb, ad);
-
- evas_object_show(back_btn);
- eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_BACK, __callui_view_multi_call_list_back_cb, ad);
-
- evas_object_name_set(priv->contents, CALLUI_VIEW_MULTICALL_LIST_LAYOUT_ID);
- dbg("[========== MULTIVIEWLIST: priv->contents Addr : [%p] ==========]", priv->contents);
-
- elm_object_signal_emit(priv->contents, "set_portrait", "multicall_list_layout");
-
- evas_object_show(priv->contents);
- evas_object_hide(ad->main_ly);
- evas_object_show(ad->main_ly);
- return 0;
-}
-
-static int __callui_view_multi_call_list_ondestroy(call_view_data_t *vd)
-{
- CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
- CALLUI_RETURN_VALUE_IF_FAIL(vd->ad, -1);
-
- callui_app_data_t *ad = vd->ad;
-
- callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
-
- if (priv != NULL) {
- __callui_view_multi_call_list_genlist_delete(vd);
-
- g_slist_free_full(priv->call_list, __callui_view_multi_call_list_free_cb);
-
- if (priv->contents) {
- evas_object_del(priv->contents);
- priv->contents = NULL;
- }
- elm_object_part_content_unset(ad->main_ly, "elm.swallow.content");
- free(priv);
- priv = NULL;
- }
- vd->layout = NULL;
-
- return 0;
-}
*
*/
-#include "callui.h"
+#include <Elementary.h>
+
#include "callui-view-multi-call-split.h"
+#include "callui.h"
#include "callui-keypad.h"
#include "callui-common.h"
#include "callui-view-caller-info-defines.h"
#define BUF_SIZE 256
-typedef struct {
- Evas_Object *contents;
-} incall_multi_view_split_priv_t;
+struct _callui_view_mc_split {
+ call_view_data_base_t base_view;
+
+ Evas_Object *caller_info;
+
+ Evas_Object *hold_layout;
+ Evas_Object *active_layout;
+};
+typedef struct _callui_view_mc_split _callui_view_mc_split_t;
+
+static int _callui_view_multi_call_split_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int _callui_view_multi_call_split_onupdate(call_view_data_base_t *view_data);
+static int _callui_view_multi_call_split_ondestroy(call_view_data_base_t *view_data);
+
+static int __create_main_content(callui_view_mc_split_h vd);
+static int __update_displayed_data(callui_view_mc_split_h vd);
+
+static Evas_Object *__create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text);
+
+static void __update_hold_active_layout(Evas_Object *layout, call_data_t *call_data);
+static void __fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data);
+static void __fill_conference_layout(Evas_Object *parent, call_data_t *call_data);
+static void __set_hold_info(Evas_Object *parent, Evas_Object *content);
+static void __set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad);
+
+static int __create_merge_swap_btns(Evas_Object *parent, callui_app_data_t *ad);
+
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __mng_callers_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src);
+static void __merge_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src);
+static void __swap_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src);
+
+callui_view_mc_split_h _callui_view_multi_call_split_new()
+{
+ callui_view_mc_split_h mc_split_view = calloc(1, sizeof(_callui_view_mc_split_t));
+ CALLUI_RETURN_NULL_IF_FAIL(mc_split_view);
+
+ mc_split_view->base_view.onCreate = _callui_view_multi_call_split_oncreate;
+ mc_split_view->base_view.onUpdate = _callui_view_multi_call_split_onupdate;
+ mc_split_view->base_view.onDestroy = _callui_view_multi_call_split_ondestroy;
+
+ return mc_split_view;
+}
+
+static int _callui_view_multi_call_split_oncreate(call_view_data_base_t *view_data, void *appdata)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_split_h vd = (callui_view_mc_split_h)view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ vd->base_view.ad = ad;
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ _callui_lock_manager_start(ad->lock_handle);
+
+ return __update_displayed_data(vd);
+}
+
+static int _callui_view_multi_call_split_onupdate(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_split_h vd = (callui_view_mc_split_h)view_data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ _callui_lock_manager_start(ad->lock_handle);
+
+ return __update_displayed_data(vd);
+}
+
+static int _callui_view_multi_call_split_ondestroy(call_view_data_base_t *view_data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ callui_view_mc_split_h vd = (callui_view_mc_split_h)view_data;
-static Evas_Object *_create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text);
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
-static Evas_Object *_create_hold_active_layout(Evas_Object *parent, call_data_t *call_data);
-static void _fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data);
-static void _fill_conference_layout(Evas_Object *parent, call_data_t *call_data);
+ free(vd);
-static void _set_hold_info(Evas_Object *parent, Evas_Object *content);
-static void _set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad);
-static void _set_merge_swap(Evas_Object *parent, callui_app_data_t *ad);
+ return CALLUI_RESULT_OK;
+}
+
+
+static int __create_main_content(callui_view_mc_split_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GROUP_SPLIT);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
+
+ vd->caller_info = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GROUP_ONE_HOLD_IN_CONFERENCE);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, PART_SWALLOW_CALL_INFO, vd->caller_info);
-static void _create_btn_region(Evas_Object *parent);
+ vd->hold_layout = _callui_load_edj(vd->caller_info, EDJ_NAME, GROUP_ACTIVE_HOLD_INFO);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->hold_layout, CALLUI_RESULT_ALLOCATION_FAIL);
-static Evas_Object *_create_call_info_layout(Evas_Object *parent, callui_app_data_t *ad);
-static Evas_Object *_create_split_layout(Evas_Object *parent, callui_app_data_t *ad);
+ vd->active_layout = _callui_load_edj(vd->caller_info, EDJ_NAME, GROUP_ACTIVE_HOLD_INFO);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->active_layout, CALLUI_RESULT_ALLOCATION_FAIL);
-static Evas_Object *_create_split_view(Evas_Object *parent, callui_app_data_t *ad);
+ int res = __create_merge_swap_btns(vd->caller_info, ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
-static void _callui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data);
+ Evas_Object *btn_region = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_BUTTON_LAYOUT);
+ CALLUI_RETURN_VALUE_IF_FAIL(btn_region, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, PART_SWALLOW_BTN_REGION, btn_region);
-static void _manage_callers_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _merge_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _swap_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+ res = _callui_keypad_create_layout(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
-static int _callui_view_multi_call_split_oncreate(call_view_data_t *view_data, void *appdata);
-static int _callui_view_multi_call_split_onupdate(call_view_data_t *view_data);
-static int _callui_view_multi_call_split_onshow(call_view_data_t *view_data, void *appdata);
-static int _callui_view_multi_call_split_ondestroy(call_view_data_t *view_data);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_end_call_button(vd->base_view.contents,
+ __end_call_btn_click_cb, vd), CALLUI_RESULT_ALLOCATION_FAIL);
-static Evas_Object *_create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text)
+ return res;
+}
+
+static Evas_Object *__create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text)
{
Evas_Object *layout = elm_layout_add(parent);
elm_layout_file_set(layout, EDJ_NAME, name);
return layout;
}
-static Evas_Object *_create_hold_active_layout(Evas_Object *parent, call_data_t *call_data)
+static void __update_hold_active_layout(Evas_Object *layout, call_data_t *call_data)
{
- Evas_Object *layout = elm_layout_add(parent);
- elm_layout_file_set(layout, EDJ_NAME, GROUP_ACTIVE_HOLD_INFO);
-
if (call_data->member_count == 1) {
- _fill_one_contact_layout(layout, call_data);
+ __fill_one_contact_layout(layout, call_data);
} else {
- _fill_conference_layout(layout, call_data);
+ __fill_conference_layout(layout, call_data);
}
-
- return layout;
}
-static void _fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data)
+static void __fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data)
{
const char *pic_path = call_data->call_ct_info.caller_id_path;
const char *main_text = call_data->call_ct_info.call_disp_name;
const char *sub_text = call_data->call_num;
- Evas_Object *thumbnail = NULL;
- thumbnail = _callui_create_thumbnail(parent, pic_path, THUMBNAIL_138);
+ Evas_Object *thumbnail = _callui_create_thumbnail(parent, pic_path, THUMBNAIL_138);
elm_object_part_content_set(parent, PART_SWALLOW_CALLER_ID, thumbnail);
if (main_text && *main_text) {
elm_object_part_text_set(parent, PART_TEXT_SUB, sub_text);
} else {
elm_object_part_text_set(parent, PART_TEXT_MAIN, sub_text);
+ elm_object_part_text_set(parent, PART_TEXT_SUB, "");
}
}
-static void _fill_conference_layout(Evas_Object *parent, call_data_t *call_data)
+static void __fill_conference_layout(Evas_Object *parent, call_data_t *call_data)
{
- CALLUI_RETURN_IF_FAIL(call_data);
-
Evas_Object *thumbnail = _callui_create_thumbnail(parent, NULL, CONFERENCE_THUMBNAIL_138);
elm_object_part_content_set(parent, PART_SWALLOW_CALLER_ID, thumbnail);
elm_object_part_text_set(parent, PART_TEXT_SUB, buffer);
}
-static void _set_hold_info(Evas_Object *parent, Evas_Object *content)
+static void __set_hold_info(Evas_Object *parent, Evas_Object *content)
{
elm_object_part_text_set(content, PART_TEXT_STATUS, _("IDS_CALL_BODY_ON_HOLD_ABB"));
elm_object_signal_emit(content, SIGNAL_SET_BLURRED_BACKGROUND, "");
}
-static void _set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad)
+static void __set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad)
{
elm_object_part_text_set(content, PART_TEXT_STATUS, _("IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"));
elm_object_signal_emit(content, SIGNAL_SET_TRANSPARENT_BACKGROUND, "");
if (ad->active->member_count > 1) {
elm_object_signal_emit(content, SIGNAL_SHOW_ARROW, "");
- elm_object_signal_callback_add(content, "mouse,up,*", "arrow", _manage_callers_cb, ad);
+ elm_object_signal_callback_add(content, "mouse,up,*", "arrow", __mng_callers_btn_click_cb, ad);
}
}
-static void _set_merge_swap(Evas_Object *parent, callui_app_data_t *ad)
+static int __create_merge_swap_btns(Evas_Object *parent, callui_app_data_t *ad)
{
- Evas_Object *merge = _create_merge_swap_btn(parent, GROUP_MERGE_BTN, _("IDS_CALL_BODY_MERGE_T_CALL"));
+ Evas_Object *merge = __create_merge_swap_btn(parent, GROUP_MERGE_BTN, _("IDS_CALL_BODY_MERGE_T_CALL"));
+ CALLUI_RETURN_VALUE_IF_FAIL(merge, CALLUI_RESULT_ALLOCATION_FAIL);
elm_object_part_content_set(parent, PART_SWALLOW_MERGE, merge);
- elm_object_signal_callback_add(merge, "mouse,clicked,*", "*", _merge_cb, ad);
+ elm_object_signal_callback_add(merge, "mouse,clicked,*", "*", __merge_btn_click_cb, ad);
- Evas_Object *swap = _create_merge_swap_btn(parent, GROUP_SWAP_BTN, _("IDS_CALL_SK_MULTICALL_SWAP"));
+ Evas_Object *swap = __create_merge_swap_btn(parent, GROUP_SWAP_BTN, _("IDS_CALL_SK_MULTICALL_SWAP"));
+ CALLUI_RETURN_VALUE_IF_FAIL(merge, CALLUI_RESULT_ALLOCATION_FAIL);
elm_object_part_content_set(parent, PART_SWALLOW_SWAP, swap);
- elm_object_signal_callback_add(swap, "mouse,clicked,*", "*", _swap_cb, ad);
-}
+ elm_object_signal_callback_add(swap, "mouse,clicked,*", "*", __swap_btn_click_cb, ad);
-static void _create_btn_region(Evas_Object *parent)
-{
- Evas_Object *btn_region = elm_layout_add(parent);
- elm_layout_file_set(btn_region, EDJ_NAME, GRP_BUTTON_LAYOUT);
- elm_object_part_content_set(parent, PART_SWALLOW_BTN_REGION, btn_region);
+ return CALLUI_RESULT_OK;
}
-static Evas_Object *_create_call_info_layout(Evas_Object *parent, callui_app_data_t *ad)
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
- Evas_Object *one_hold_layout = elm_layout_add(parent);
- elm_layout_file_set(one_hold_layout, EDJ_NAME, GROUP_ONE_HOLD_IN_CONFERENCE);
+ CALLUI_RETURN_IF_FAIL(data);
- Evas_Object *hold_layout = _create_hold_active_layout(one_hold_layout, ad->held);
- Evas_Object *active_layout = _create_hold_active_layout(one_hold_layout, ad->active);
+ callui_view_mc_split_h vd = (callui_view_mc_split_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
- _set_hold_info(one_hold_layout, hold_layout);
- _set_active_info(one_hold_layout, active_layout, ad);
-
- _set_merge_swap(one_hold_layout, ad);
-
- return one_hold_layout;
+ int ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ }
}
-static Evas_Object *_create_split_layout(Evas_Object *parent, callui_app_data_t *ad)
+static int __update_displayed_data(callui_view_mc_split_h vd)
{
- Evas_Object *split_layout = elm_layout_add(parent);
- elm_layout_file_set(split_layout, EDJ_NAME, GROUP_SPLIT);
+ callui_app_data_t *ad = vd->base_view.ad;
- Evas_Object *call_info_layout = _create_call_info_layout(parent, ad);
- elm_object_part_content_set(split_layout, PART_SWALLOW_CALL_INFO, call_info_layout);
+ __update_hold_active_layout(vd->hold_layout, ad->held);
+ __set_hold_info(vd->caller_info, vd->hold_layout);
- _create_btn_region(split_layout);
+ __update_hold_active_layout(vd->active_layout, ad->active);
+ __set_active_info(vd->caller_info, vd->active_layout, ad);
- return split_layout;
-}
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_first_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_second_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_third_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_first_button_disabled(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_second_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_third_button(ad), CALLUI_RESULT_FAIL);
-static Evas_Object *_create_split_view(Evas_Object *parent, callui_app_data_t *ad)
-{
- Evas_Object *split_layout = _create_split_layout(parent, ad);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", split_layout);
+ evas_object_show(vd->base_view.contents);
- _callui_keypad_create_layout(ad);
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
- return split_layout;
+ return CALLUI_RESULT_OK;
}
-static void _callui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data)
+static void __mng_callers_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src)
{
- dbg("..");
- call_view_data_t *vd = data;
- incall_multi_view_split_priv_t *priv = vd->priv;
- callui_app_data_t *ad = _callui_get_app_data();
-
- priv->contents = _create_split_view(ad->main_ly, ad);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
- _callui_create_top_first_button(ad);
- _callui_create_top_second_button(ad);
- _callui_create_top_third_button(ad);
- _callui_create_bottom_first_button_disabled(ad);
- _callui_create_bottom_second_button(ad);
- _callui_create_bottom_third_button(ad);
-
- _callui_create_end_call_button(priv->contents, vd);
-}
-
-static void _manage_callers_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
- callui_app_data_t *ad = data;
_callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_MULTICALL_LIST);
}
-static void _merge_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static void __merge_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src)
{
- callui_app_data_t *ad = data;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
int ret = cm_join_call(ad->cm_handle);
if (ret != CM_ERROR_NONE) {
err("cm_join_call() is failed");
}
}
-static void _swap_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static void __swap_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *src)
{
- callui_app_data_t *ad = data;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
int ret = cm_swap_call(ad->cm_handle);
if (ret != CM_ERROR_NONE) {
err("cm_swap_call() is failed");
}
}
-
-static int _callui_view_multi_call_split_oncreate(call_view_data_t *view_data, void *appdata)
-{
- dbg("multi-split view create");
-
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- view_data->ad = ad;
-
- _callui_view_multi_call_split_onshow(view_data, ad);
- _callui_lock_manager_start(ad->lock_handle);
-
- return 0;
-}
-
-static int _callui_view_multi_call_split_onupdate(call_view_data_t *view_data)
-{
- dbg("multi-split view update");
- callui_app_data_t *ad = _callui_get_app_data();
- _callui_view_multi_call_split_onshow(view_data, ad);
- _callui_lock_manager_start(ad->lock_handle);
- return 0;
-}
-
-static int _callui_view_multi_call_split_onshow(call_view_data_t *view_data, void *appdata)
-{
- dbg("multi-split view show");
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)view_data->priv;
- _callui_view_multi_call_split_draw_screen(priv->contents, view_data);
-
- evas_object_hide(ad->main_ly);
- evas_object_show(ad->main_ly);
-
- return 0;
-}
-
-static int _callui_view_multi_call_split_ondestroy(call_view_data_t *vd)
-{
- CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
-
- free(vd->priv);
- vd->priv = NULL;
-
- return 0;
-}
-
-call_view_data_t *_callui_view_multi_call_split_new()
-{
- call_view_data_t *multi_call_split_view = calloc(1, sizeof(call_view_data_t));
-
- multi_call_split_view->type = VIEW_TYPE_MULTICALL_SPLIT;
- multi_call_split_view->layout = NULL;
- multi_call_split_view->onCreate = _callui_view_multi_call_split_oncreate;
- multi_call_split_view->onUpdate = _callui_view_multi_call_split_onupdate;
- multi_call_split_view->onDestroy = _callui_view_multi_call_split_ondestroy;
- multi_call_split_view->priv = calloc(1, sizeof(incall_multi_view_split_priv_t));
- if (!multi_call_split_view->priv) {
- err("ERROR!");
- }
-
- return multi_call_split_view;
-}
#include "callui-view-layout.h"
#include "callui-common.h"
-#define VIEW_QUICKPANEL_LAYOUT_ID "QUICKPANELVIEW"
#define TXT_TIMER_BUF_LEN 26
#define CALL_NUMBER_ONE 1
#define QP_WIN_H 172
}
elm_win_resize_object_add(qp->win_quickpanel, qp->quickpanel_layout);
- evas_object_name_set(qp->quickpanel_layout, VIEW_QUICKPANEL_LAYOUT_ID);
evas_object_event_callback_add(qp->quickpanel_layout, EVAS_CALLBACK_MOUSE_UP, __callui_qp_mc_launch_top_view_cb, qp);
}
*
*/
-#include "callui.h"
+#include <Elementary.h>
+
#include "callui-view-single-call.h"
+#include "callui.h"
#include "callui-view-elements.h"
#include "callui-keypad.h"
#include "callui-common.h"
-#define VIEW_SINGLE_CALL_LAYOUT_ID "ONEVIEW"
+#define VIEW_SINGLE_CALL_STATUS_TXT_LEN 129
+
+struct _call_view_single_call {
+ call_view_data_base_t base_view;
-struct incall_one_view_priv {
- Evas_Object *contents;
Evas_Object *caller_info;
- Evas_Object *btn_ly;
- Evas_Object *ic;
};
-typedef struct incall_one_view_priv incall_one_view_priv_t;
+typedef struct _call_view_single_call _call_view_single_call_t;
-static int __callui_view_single_call_oncreate(call_view_data_t *view_data, void *appdata);
-static int __callui_view_single_call_onupdate(call_view_data_t *view_data);
-static int __callui_view_single_call_onshow(call_view_data_t *view_data, void *appdata);
-static int __callui_view_single_call_ondestroy(call_view_data_t *view_data);
-static Evas_Object *__callui_view_single_call_create_contents(void *data, char *grpname);
+static int __callui_view_single_call_oncreate(call_view_data_base_t *view_data, void *appdata);
+static int __callui_view_single_call_onupdate(call_view_data_base_t *view_data);
+static int __callui_view_single_call_ondestroy(call_view_data_base_t *view_data);
-call_view_data_t *_callui_view_single_call_new()
-{
- call_view_data_t *single_call_view = calloc(1, sizeof(call_view_data_t));
+static int __create_main_content(call_view_single_call_h vd);
+static int __update_displayed_data(call_view_single_call_h vd);
- single_call_view->type = VIEW_TYPE_SINGLECALL;
- single_call_view->layout = NULL;
- single_call_view->onCreate = __callui_view_single_call_oncreate;
- single_call_view->onUpdate = __callui_view_single_call_onupdate;
- single_call_view->onDestroy = __callui_view_single_call_ondestroy;
- single_call_view->priv = calloc(1, sizeof(incall_one_view_priv_t));
+static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
- if (!single_call_view->priv) {
- err("ERROR!!!!!!!!!!! ");
- }
+call_view_single_call_h _callui_view_single_call_new()
+{
+ call_view_single_call_h single_call_view = calloc(1, sizeof(_call_view_single_call_t));
+ CALLUI_RETURN_NULL_IF_FAIL(single_call_view);
+
+ single_call_view->base_view.onCreate = __callui_view_single_call_oncreate;
+ single_call_view->base_view.onUpdate = __callui_view_single_call_onupdate;
+ single_call_view->base_view.onDestroy = __callui_view_single_call_ondestroy;
return single_call_view;
}
-static Evas_Object *__callui_view_single_call_create_contents(void *data, char *grpname)
+static int __callui_view_single_call_oncreate(call_view_data_base_t *view_data, void *appdata)
{
- if (data == NULL) {
- err("ERROR");
- return NULL;
- }
- callui_app_data_t *ad = (callui_app_data_t *)data;
- Evas_Object *eo = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+ CALLUI_RETURN_VALUE_IF_FAIL(appdata, CALLUI_RESULT_INVALID_PARAM);
- /* load edje */
- eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname);
- if (eo == NULL)
- return NULL;
+ call_view_single_call_h vd = (call_view_single_call_h)view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
- return eo;
+ vd->base_view.ad = ad;
+
+ int res = __create_main_content(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ _callui_lock_manager_start(ad->lock_handle);
+
+ return __update_displayed_data(vd);
}
-void __callui_view_single_more_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static int __callui_view_single_call_onupdate(call_view_data_base_t *view_data)
{
- call_view_data_t *vd = (call_view_data_t *)data;
- CALLUI_RETURN_IF_FAIL(vd != NULL);
- _callui_load_more_option(vd);
- return;
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ return __update_displayed_data((call_view_single_call_h)view_data);
}
-static void __callui_view_single_call_draw_screen(callui_app_data_t *ad, Evas_Object *eo, void *data)
+static int __callui_view_single_call_ondestroy(call_view_data_base_t *view_data)
{
- dbg("__callui_view_single_call_draw_screen");
+ CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
+
+ call_view_single_call_h vd = (call_view_single_call_h)view_data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ /*Delete keypad layout*/
+ _callui_keypad_delete_layout(ad);
+
+ eext_object_event_callback_del(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb);
+
+ DELETE_EVAS_OBJECT(ad->ctxpopup);
+ DELETE_EVAS_OBJECT(vd->base_view.contents);
- call_view_data_t *vd = (call_view_data_t *)data;
- incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv;
+ free(vd);
+
+ return CALLUI_RESULT_OK;
+}
+
+static void __more_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ _callui_load_more_option((callui_app_data_t *)data);
+}
+
+static void __end_call_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ call_view_single_call_h vd = (call_view_single_call_h)data;
+ callui_app_data_t *ad = vd->base_view.ad;
+
+ int ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ }
+}
+
+static int __update_displayed_data(call_view_single_call_h vd)
+{
+ callui_app_data_t *ad = vd->base_view.ad;
call_data_t *call_data = NULL;
char *file_path = NULL;
Eina_Bool is_held = EINA_FALSE;
- char status_txt[128 + 1] = {0, };
+ char status_txt[VIEW_SINGLE_CALL_STATUS_TXT_LEN] = { 0 };
if (ad->active) {
call_data = ad->active;
call_data = ad->held;
is_held = EINA_TRUE;
}
- if (call_data == NULL) {
- dbg("call Data is NULL");
- return;
- }
+ CALLUI_RETURN_VALUE_IF_FAIL(call_data, CALLUI_RESULT_FAIL);
file_path = call_data->call_ct_info.caller_id_path;
sec_dbg("file_path: %s", file_path);
if (call_data->is_emergency == EINA_TRUE) {
- elm_object_signal_emit(priv->caller_info, "set_emergency_mode", "");
+ elm_object_signal_emit(vd->caller_info, "set_emergency_mode", "");
} else {
if (strcmp(file_path, "default") != 0) {
- _callui_show_caller_id(priv->caller_info, file_path);
+ _callui_show_caller_id(vd->caller_info, file_path);
}
}
if (is_held) {
- dbg("=================HOLD======================");
+ dbg("====== HOLD ======");
snprintf(status_txt, sizeof(status_txt), _("IDS_CALL_BODY_ON_HOLD_ABB"));
_callui_show_caller_info_status(ad, status_txt);
} else {
- dbg("=================UNHOLD======================");
+ dbg("====== UNHOLD ======");
_callui_common_update_call_duration(call_data->start_time);
}
char *call_name = call_data->call_ct_info.call_disp_name;
char *disp_number = NULL;
+
if (strlen(call_data->call_disp_num) > 0) {
disp_number = call_data->call_disp_num;
} else {
if (strlen(call_name) == 0) {
_callui_show_caller_info_name(ad, disp_number);
- elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
} else if (call_data->is_emergency == EINA_TRUE) {
_callui_show_caller_info_name(ad, call_name);
- elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
} else {
_callui_show_caller_info_name(ad, call_name);
_callui_show_caller_info_number(ad, disp_number);
- elm_object_signal_emit(priv->caller_info, "2line", "caller_name");
+ elm_object_signal_emit(vd->caller_info, "2line", "caller_name");
}
- _callui_create_top_third_button(ad);
-
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_third_button(ad), CALLUI_RESULT_FAIL);
if (is_held) {
- _callui_create_top_second_button_disabled(ad);
- _callui_create_bottom_second_button_disabled(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_second_button_disabled(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_second_button_disabled(ad), CALLUI_RESULT_FAIL);
} else {
- _callui_create_top_second_button(ad);
- _callui_create_bottom_second_button(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_second_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_second_button(ad), CALLUI_RESULT_FAIL);
}
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_first_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_top_first_button(ad), CALLUI_RESULT_FAIL);
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_bottom_third_button(ad), CALLUI_RESULT_FAIL);
- _callui_create_bottom_first_button(ad);
- _callui_create_top_first_button(ad);
- _callui_create_bottom_third_button(ad);
+ elm_object_signal_emit(vd->base_view.contents, "SHOW_EFFECT", "ALLBTN");
- elm_object_signal_emit(priv->contents, "SHOW_EFFECT", "ALLBTN");
- if (priv->contents) {
- eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb);
- }
- eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb, vd);
- _callui_create_end_call_button(priv->contents, vd);
- evas_object_show(eo);
-}
-
-static int __callui_view_single_call_oncreate(call_view_data_t *vd, void *appdata)
-{
- dbg("incall view create");
-
- incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv;
- callui_app_data_t *ad = (callui_app_data_t *) appdata;
- call_data_t *call_data = NULL;
- vd->ad = ad;
-
- if (ad->active) {
- call_data = ad->active;
- } else {
- call_data = ad->held;
- }
- if (call_data == NULL) {
- err("call data is null");
- return -1;
- }
-
- if (ad->main_ly) {
- priv->contents = __callui_view_single_call_create_contents(ad, GRP_MAIN_LY);
- elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
-
- priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
- if (!priv->btn_ly) {
- priv->btn_ly = __callui_view_single_call_create_contents(ad, GRP_BUTTON_LAYOUT);
- elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
- }
-
- priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
- if (!priv->caller_info) {
- priv->caller_info = __callui_view_single_call_create_contents(ad, GRP_CALLER_INFO);
- elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
- }
-
- evas_object_name_set(priv->contents, VIEW_SINGLE_CALL_LAYOUT_ID);
- dbg("[========== ONEVIEW: priv->contents Addr : [%p] ==========]", priv->contents);
-
- /*create keypad layout*/
- _callui_keypad_create_layout(ad);
- } else {
- err("ERROR");
- return -1;
- }
-
- __callui_view_single_call_onshow(vd, ad);
-
- _callui_lock_manager_start(ad->lock_handle);
-
- return 0;
-}
-
-static int __callui_view_single_call_onupdate(call_view_data_t *view_data)
-{
- dbg("incall view update");
- callui_app_data_t *ad = _callui_get_app_data();
- __callui_view_single_call_onshow(view_data, ad);
- return 0;
-}
-
-static int __callui_view_single_call_onshow(call_view_data_t *view_data, void *appdata)
-{
- dbg("incall view show");
- callui_app_data_t *ad = (callui_app_data_t *)appdata;
- incall_one_view_priv_t *priv = (incall_one_view_priv_t *)view_data->priv;
-
- __callui_view_single_call_draw_screen(ad, priv->contents, view_data);
+ evas_object_show(vd->base_view.contents);
evas_object_hide(ad->main_ly);
evas_object_show(ad->main_ly);
- return 0;
+ return CALLUI_RESULT_OK;
}
-static int __callui_view_single_call_ondestroy(call_view_data_t *vd)
+static int __create_main_content(call_view_single_call_h vd)
{
- CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
- CALLUI_RETURN_VALUE_IF_FAIL(vd->ad, -1);
+ callui_app_data_t *ad = vd->base_view.ad;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad->main_ly, CALLUI_RESULT_FAIL);
- callui_app_data_t *ad = vd->ad;
+ vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
- incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv;
+ // TODO: replace this into view manager in nearest future
+ eext_object_event_callback_add(vd->base_view.contents, EEXT_CALLBACK_MORE, __more_btn_click_cb, ad);
- if (priv != NULL) {
- if (ad->ctxpopup) {
- elm_ctxpopup_dismiss(ad->ctxpopup);
- ad->ctxpopup = NULL;
- }
+ vd->caller_info = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_CALLER_INFO);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "caller_info", vd->caller_info);
- /*Delete keypad layout*/
- _callui_keypad_delete_layout(ad);
+ Evas_Object *btn_region = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_BUTTON_LAYOUT);
+ CALLUI_RETURN_VALUE_IF_FAIL(btn_region, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_object_part_content_set(vd->base_view.contents, "btn_region", btn_region);
- if (priv->contents) {
- eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb);
- _callui_common_reset_main_ly_text_fields(priv->contents);
- }
- elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN");
+ /*create keypad layout*/
+ int res = _callui_keypad_create_layout(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
- free(priv);
- priv = NULL;
- }
+ CALLUI_RETURN_VALUE_IF_FAIL(_callui_create_end_call_button(vd->base_view.contents, __end_call_btn_click_cb, vd),
+ CALLUI_RESULT_ALLOCATION_FAIL);
- dbg("complete destroy one view");
- return 0;
+ return res;
}
#include <vconf.h>
#include <vconf-keys.h>
#include <bluetooth.h>
-#include "sys/socket.h"
-#include "sys/un.h"
+#include <device/display.h>
+#include <device/callback.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
#include "callui.h"
#include "callui-view-elements.h"
#include "callui-common.h"
-#include <device/display.h>
-#include <device/callback.h>
#include "callui-view-quickpanel.h"
#include "callui-view-layout.h"
CALLUI_RETURN_IF_FAIL(cm_incom);
__callui_update_call_data(&(ad->incom), cm_incom);
- _callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_INCOMING_LOCK);
+
+ callui_view_type_e type = VIEW_TYPE_INCOMING_CALL;
+
+#ifdef ACTIVE_NOTIFICATION_AVAILABLE
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK &&
+ ad->active == NULL &&
+ ad->held == NULL &&
+ ad->incom != NULL &&
+ ad->incoming_noti == false) {
+ type = VIEW_TYPE_INCOMING_CALL_NOTI;
+ }
+#endif
+ _callui_vm_change_view(ad->view_manager_handle, type);
cm_call_data_free(cm_incom);
return;
ad->active = NULL;
ad->incom = NULL;
ad->held = NULL;
- ad->active_incoming = false;
+ ad->incoming_noti = false;
ad->multi_call_list_end_clicked = false;
ad->start_lock_manager_on_resume = false;
ad->on_background = false;
static Evas_Object *__callui_create_main_win(callui_app_data_t *ad)
{
- /*
- * Widget Tree
- * Window
- * - conform
- * - layout main
- * - naviframe */
-
dbg("Create window");
Evas_Object *eo = elm_win_add(NULL, PACKAGE, ELM_WIN_BASIC);
- elm_win_alpha_set(eo, EINA_TRUE);
elm_win_fullscreen_set(eo, EINA_FALSE);
+ elm_win_alpha_set(eo, EINA_TRUE);
if (eo) {
elm_win_title_set(eo, PACKAGE);
elm_win_screen_size_get(eo, NULL, NULL, &ad->root_w, &ad->root_h);
dbg("root_w = %d, root_h = %d..", ad->root_w, ad->root_h);
- evas_object_resize(eo, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT));
+ evas_object_resize(eo, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_NOTI_CALL_HEIGHT));
elm_win_center(eo, EINA_FALSE, EINA_TRUE);
evas_object_move(eo, 0, 0);
return &g_ad;
}
-
CALLUI_EXPORT_API int main(int argc, char *argv[])
{
dbg("..");
static Eina_Bool __callui_app_win_hard_key_up_cb(void *data, int type, void *event)
{
dbg("..");
- gboolean bpowerkey_enabled = EINA_FALSE;
- gboolean banswering_enabled = EINA_FALSE;
callui_app_data_t *ad = (callui_app_data_t *)data;
Ecore_Event_Key *ev = event;
return 0;
}
- dbg("Top view(%d)", _callui_vm_get_cur_view_type(ad->view_manager_handle));
+ callui_view_type_e view_type = _callui_vm_get_cur_view_type(ad->view_manager_handle);
+
+ dbg("Top view(%d)", view_type);
/*power key case */
if (!strcmp(ev->keyname, CALLUI_KEY_POWER)) {
dbg("in keypower");
- bpowerkey_enabled = _callui_common_is_powerkey_mode_on();
- dbg("[KEY]KEY_POWER pressed, bpowerkey_enabled(%d)", bpowerkey_enabled);
- if (bpowerkey_enabled == EINA_TRUE && !_callui_lock_manager_is_lcd_off(ad->lock_handle)) {
- if (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_DIALLING) {
- if (ad->active)
+ int is_powerkey_enabled = _callui_common_is_powerkey_mode_on();
+ dbg("[KEY]KEY_POWER pressed, is_powerkey_enabled(%d)", is_powerkey_enabled);
+
+ if (is_powerkey_enabled && !_callui_lock_manager_is_lcd_off(ad->lock_handle)) {
+
+ if (view_type == VIEW_TYPE_DIALLING) {
+ if (ad->active) {
cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
- } else if (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_INCOMING_LOCK) {
- if (ad->incom)
+ }
+ } else if (view_type == VIEW_TYPE_INCOMING_CALL ||
+ view_type == VIEW_TYPE_INCOMING_CALL_NOTI) {
+ if (ad->incom) {
cm_end_call(ad->cm_handle, ad->incom->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
- } else if ((_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_SINGLECALL)
- || (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_MULTICALL_CONF)
- || (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_MULTICALL_LIST)) {
- if (ad->active)
+ }
+ } else if (view_type == VIEW_TYPE_SINGLECALL ||
+ view_type == VIEW_TYPE_MULTICALL_CONF ||
+ view_type == VIEW_TYPE_MULTICALL_LIST) {
+ if (ad->active) {
cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_ALL_CALLS);
- else if (ad->held)
+ } else if (ad->held) {
cm_end_call(ad->cm_handle, ad->held->call_id, CALL_RELEASE_TYPE_ALL_CALLS);
- } else if (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_MULTICALL_SPLIT) {
- if (ad->active)
+ }
+ } else if (view_type == VIEW_TYPE_MULTICALL_SPLIT) {
+ if (ad->active) {
cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS);
- } else {
- dbg("nothing...");
+ }
}
} else {
if (ad->incom && !ad->active && !ad->held) {
- _callui_vm_change_view(ad->view_manager_handle, VIEW_TYPE_INCOMING_LOCK);
+ callui_view_type_e type = VIEW_TYPE_INCOMING_CALL;
+
+#ifdef ACTIVE_NOTIFICATION_AVAILABLE
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK &&
+ ad->incoming_noti == false) {
+ type = VIEW_TYPE_INCOMING_CALL_NOTI;
+ }
+#endif
+ _callui_vm_change_view(ad->view_manager_handle, type);
}
}
} else if (!strcmp(ev->keyname, CALLUI_KEY_MEDIA)) {
} else {
dbg("KEY_SELECT key ungrab success");
}
- if (_callui_vm_get_cur_view_type(ad->view_manager_handle) == VIEW_TYPE_INCOMING_LOCK) {
- banswering_enabled = _callui_common_is_answering_mode_on();
- if (banswering_enabled == EINA_TRUE) {
+ if (view_type == VIEW_TYPE_INCOMING_CALL ||
+ view_type == VIEW_TYPE_INCOMING_CALL_NOTI) {
+
+ if (_callui_common_is_answering_mode_on()) {
+ dbg("Answering mode on and Home key pressed on MT screen");
+
int unhold_call_count = 0;
if (ad->active) {
unhold_call_count = ad->active->member_count;
}
- dbg("Answering mode on and Home key pressed on MT screen");
if (unhold_call_count == 0) {
dbg("No Call Or Held call - Accept");
cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
- if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK)
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) {
_callui_common_unlock_swipe_lock();
+ }
} else if (ad->second_call_popup == NULL) {
dbg("Show popup - 2nd MT call - test volume popup");
_callui_load_second_call_popup(ad);
}
} else {
- int result = 0;
- /* Grab home key event to keep incoming call view */
- result = elm_win_keygrab_set(ad->win, CALLUI_KEY_SELECT, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
- if (result) {
+ if (elm_win_keygrab_set(ad->win, CALLUI_KEY_SELECT, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST)) {
dbg("KEY_SELECT key ungrab failed");
}
}
-
} else {
// TODO Implement other way to verify focus window == current
//Ecore_X_Window focus_win = ecore_x_window_focus_get();