sync with private git
authorJunghwan Song <jump.song@samsung.com>
Fri, 24 Aug 2012 15:26:18 +0000 (00:26 +0900)
committerJunghwan Song <jump.song@samsung.com>
Fri, 24 Aug 2012 15:26:18 +0000 (00:26 +0900)
introspection/sat.xml
packaging/tel-plugin-dbus_tapi.spec
src/call.c
src/desc-dbus.c
src/sat.c
src/sat_manager.c
src/sat_ui_support/sat_ui_support.c
src/sat_ui_support/sat_ui_support.h

index c44044c..3bc31b6 100644 (file)
@@ -17,8 +17,6 @@
                        <arg direction="out" type="i" name="menu_count"/>
                        <arg direction="out" type="b" name="menu_help_info"/>
                        <arg direction="out" type="b" name="menu_updated"/>
-                       <arg direction="out" type="v" name="icon_id"/>
-                       <arg direction="out" type="v" name="icon_id_list"/>
                </method>
                                                
                <method name="SendUiDisplayStatus">
index 04e493f..bcbe659 100644 (file)
@@ -1,6 +1,6 @@
 Name: tel-plugin-dbus_tapi
 Summary: dbus-tapi plugin for telephony
-Version:    0.1.39
+Version:    0.1.45
 Release:    1
 Group:      System/Libraries
 License:    Apache
index 91eb94b..68b474f 100644 (file)
@@ -410,7 +410,7 @@ static gboolean on_call_deflect(TelephonyCall *call, GDBusMethodInvocation *invo
        return TRUE;
 }
 
-static gboolean on_call_get_call_status(TelephonyCall *call, GDBusMethodInvocation *invocation, gint call_id, gpointer user_data )
+static gboolean on_call_get_status(TelephonyCall *call, GDBusMethodInvocation *invocation, gint call_id, gpointer user_data )
 {
        struct custom_data *ctx = user_data;
        TcorePlugin *plugin = 0;
@@ -466,7 +466,7 @@ static gboolean on_call_get_call_status(TelephonyCall *call, GDBusMethodInvocati
        return TRUE;
 }
 
-static gboolean on_call_get_call_status_all(TelephonyCall *call, GDBusMethodInvocation *invocation, gpointer user_data )
+static gboolean on_call_get_status_all(TelephonyCall *call, GDBusMethodInvocation *invocation, gpointer user_data )
 {
        struct custom_data *ctx = user_data;
        TcorePlugin *plugin = 0;
@@ -546,7 +546,7 @@ static gboolean on_call_get_call_status_all(TelephonyCall *call, GDBusMethodInvo
                                g_variant_builder_add(&b, "{sv}", "call_number", g_variant_new_string( call_number ));
                                g_variant_builder_add(&b, "{sv}", "call_type", g_variant_new_int32( call_type ));
                                g_variant_builder_add(&b, "{sv}", "call_direction", g_variant_new_boolean( call_direction ));
-                               g_variant_builder_add(&b, "{sv}", "call_status", g_variant_new_int32( call_status ));
+                               g_variant_builder_add(&b, "{sv}", "call_state", g_variant_new_int32( call_status ));
                                g_variant_builder_add(&b, "{sv}", "call_multiparty_state", g_variant_new_boolean( call_multiparty_state ));
                                g_variant_builder_close(&b);
 
@@ -767,7 +767,7 @@ static gboolean on_call_set_sound_equalization(TelephonyCall *call, GDBusMethodI
 
        req.mode = (gboolean)eq_mode;
        req.direction = (enum telephony_call_sound_direction)eq_direction;
-       memcpy( req.parameter, (const char*)eq_parameter, MAX_SOUND_EQ_PARAMETER_SIZE );
+       memcpy( (char*)req.parameter, (const char*)eq_parameter, (MAX_SOUND_EQ_PARAMETER_SIZE*2) );
 
        tcore_user_request_set_data( ur, sizeof( struct treq_call_sound_set_equalization ), &req );
        tcore_user_request_set_command( ur, TREQ_CALL_SET_SOUND_EQUALIZATION );
@@ -874,13 +874,13 @@ gboolean dbus_plugin_setup_call_interface(TelephonyObjectSkeleton *object, struc
                        ctx);
 
        g_signal_connect (call,
-                       "handle-get-call-status",
-                       G_CALLBACK (on_call_get_call_status),
+                       "handle-get-status",
+                       G_CALLBACK (on_call_get_status),
                        ctx);
 
        g_signal_connect (call,
-                       "handle-get-call-status-all",
-                       G_CALLBACK (on_call_get_call_status_all),
+                       "handle-get-status-all",
+                       G_CALLBACK (on_call_get_status_all),
                        ctx);
 
 
index 5d518c0..be9f100 100644 (file)
@@ -368,17 +368,11 @@ on_manager_getmodems (TelephonyManager *mgr,
        return TRUE;
 }
 
-static void setup_dbus(struct custom_data *ctx)
+static void on_bus_acquired(GDBusConnection *conn, const gchar *name, gpointer user_data)
 {
-       GDBusConnection *conn;
+       struct custom_data *ctx = user_data;
        TelephonyManager *mgr;
 
-       conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, NULL);
-       if (!conn) {
-               dbg("g_bus_get_sync() failed.");
-               return;
-       }
-
        ctx->manager = g_dbus_object_manager_server_new (MY_DBUS_PATH);
 
        refresh_object(ctx);
@@ -411,6 +405,7 @@ static gboolean on_init(TcorePlugin *p)
 {
        Communicator *comm;
        struct custom_data *data;
+       guint id;
 
        if (!p)
                return FALSE;
@@ -435,7 +430,13 @@ static gboolean on_init(TcorePlugin *p)
 
        dbg("data = %p", data);
 
-       setup_dbus(data);
+       id = g_bus_own_name (G_BUS_TYPE_SYSTEM,
+                       MY_DBUS_SERVICE,
+                       G_BUS_NAME_OWNER_FLAGS_REPLACE,
+                       on_bus_acquired,
+                       NULL, NULL,
+                       data,
+                       NULL);
 
        return TRUE;
 }
index 7e05818..8c9b37f 100644 (file)
--- a/src/sat.c
+++ b/src/sat.c
@@ -49,7 +49,7 @@ static gboolean on_sat_get_main_menu_info(TelephonySAT *sat, GDBusMethodInvocati
        gchar *title;
        gint result = 1, command_id, item_cnt;
        gboolean b_present, b_help_info, b_updated;
-       GVariant *items, *icon,*icon_list;
+       GVariant *items;
 
 
        if(!ctx->cached_sat_main_menu){
@@ -59,11 +59,11 @@ static gboolean on_sat_get_main_menu_info(TelephonySAT *sat, GDBusMethodInvocati
 
        main_menu = ctx->cached_sat_main_menu;
 
-       g_variant_get(main_menu, "(ibs@vibb@v@v)", &command_id, &b_present, &title, &items, &item_cnt,
-                       &b_help_info, &b_updated, &icon, &icon_list);
+       g_variant_get(main_menu, "(ibs@vibb)", &command_id, &b_present, &title, &items, &item_cnt,
+                       &b_help_info, &b_updated);
 
        telephony_sat_complete_get_main_menu_info(sat, invocation, result, command_id, b_present, title,
-                       items, item_cnt, b_help_info, b_updated, icon, icon_list);
+                       items, item_cnt, b_help_info, b_updated);
 
        return TRUE;
 }
@@ -341,6 +341,7 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx, const char *plugi
 
                        if(!menu_info){
                                dbg("no main menu data");
+                               sat_ui_support_remove_desktop_file();
                                return TRUE;
                        }
 
@@ -836,14 +837,12 @@ gboolean dbus_plugin_sat_notification(struct custom_data *ctx, const char *plugi
                        g_variant_get(refresh, "(ii@v)", &command_id, &refresh_type, &file_list);
 
                        dbg("check refresh_type(%d)", refresh_type);
-
                        dbg("text should be displayed by ui");
-                       dbg("refresh is pending!!!")
 
                        ui_info = g_variant_new("(isib)", command_id, info, strlen(info), user_confirm);
                        sat_ui_support_launch_sat_ui(SAT_PROATV_CMD_NONE, ui_info);
 
-                       //telephony_sat_emit_refresh(sat, command_id, refresh_type, file_list);
+                       telephony_sat_emit_refresh(sat, command_id, refresh_type, file_list);
                }break;
 
                case SAT_PROATV_CMD_MORE_TIME:{
index e440eee..9459104 100755 (executable)
@@ -247,6 +247,9 @@ GVariant* sat_manager_caching_setup_menu_info(struct custom_data *ctx, const cha
        //menu item count
        menu_cnt = setup_menu_tlv->menu_item_cnt;
        if(!menu_cnt){
+               /*
+                * support GCF case 27.22.4.8.1 - 1.1 setup menu
+                */
                struct treq_sat_terminal_rsp_data *tr = NULL;
                dbg("no item");
 
@@ -257,7 +260,7 @@ GVariant* sat_manager_caching_setup_menu_info(struct custom_data *ctx, const cha
                memcpy((void*)&tr->terminal_rsp_data.setup_menu.command_detail, &setup_menu_tlv->command_detail, sizeof(struct tel_sat_cmd_detail_info));
                tr->terminal_rsp_data.setup_menu.device_id.src = setup_menu_tlv->device_id.dest;
                tr->terminal_rsp_data.setup_menu.device_id.dest = setup_menu_tlv->device_id.src;
-               tr->terminal_rsp_data.setup_menu.result_type = RESULT_COMMAND_DATA_NOT_UNDERSTOOD_BY_ME;
+               tr->terminal_rsp_data.setup_menu.result_type = RESULT_SUCCESS;
 
                sat_manager_send_terminal_response(ctx->comm, plg, tr);
                return NULL;
@@ -517,6 +520,11 @@ GVariant* sat_manager_select_item_noti(struct custom_data *ctx, const char *plug
        // help info
        help_info = select_item_tlv->command_detail.cmd_qualifier.select_item.help_info;
 
+       if(!select_item_tlv->alpha_id.is_exist){
+               dbg("set the item dcs value to ALPHABET_FROMAT_8BIT_DATA");
+               select_item_tlv->alpha_id.dcs.a_format = ALPHABET_FROMAT_8BIT_DATA;
+       }
+
        // select item text
        if(select_item_tlv->alpha_id.is_exist && select_item_tlv->alpha_id.alpha_data_len > 0)
                sat_mgr_convert_string((unsigned char*)&text,(unsigned short *)&text_len,
@@ -690,8 +698,7 @@ GVariant* sat_manager_get_input_noti(struct custom_data *ctx, const char *plugin
                return NULL;
        }
 
-       if( (get_input_tlv->icon_id.is_exist && get_input_tlv->icon_id.icon_qualifer == ICON_QUALI_NOT_SELF_EXPLANATORY)
-                       || !get_input_tlv->text.string_length ){
+       if(get_input_tlv->icon_id.is_exist && get_input_tlv->icon_id.icon_qualifer == ICON_QUALI_NOT_SELF_EXPLANATORY ){
 
                struct treq_sat_terminal_rsp_data *tr = NULL;
                dbg("[SAT]  exceptional case to fix gcf case 2.4 command not understood");
@@ -725,11 +732,17 @@ GVariant* sat_manager_get_input_noti(struct custom_data *ctx, const char *plugin
        dbg("numeric (%d), help info(%d), echo input(%d)", b_numeric, b_help_info, b_echo_input);
 
        //text & text len
-       sat_mgr_convert_string((unsigned char*)&text,(unsigned short *)&text_len,
-                       get_input_tlv->text.dcs.a_format ,
-                       (unsigned char*)&get_input_tlv->text.string,
-                       (unsigned short)get_input_tlv->text.string_length);
-       dbg("get input text(%s)",text);
+       if(get_input_tlv->text.string_length){
+               sat_mgr_convert_string((unsigned char*)&text,(unsigned short *)&text_len,
+                               get_input_tlv->text.dcs.a_format ,
+                               (unsigned char*)&get_input_tlv->text.string,
+                               (unsigned short)get_input_tlv->text.string_length);
+               dbg("get input text(%s)",text);
+       }
+       else{
+               memcpy(text,"", 1);
+               text_len = 0;
+       }
 
        //response length min & max
        rsp_len_min = get_input_tlv->rsp_len.min;
@@ -882,6 +895,10 @@ GVariant* sat_manager_send_sms_noti(struct custom_data *ctx, const char *plugin_
                                (unsigned short)send_sms_tlv->alpha_id.alpha_data_len);
                dbg("send sms ui display text (%s)",text);
        }
+       else{
+               memcpy(text,"",1);
+               text_len = 0;
+       }
 
        //packing required
        b_packing_required = send_sms_tlv->command_detail.cmd_qualifier.send_sms.packing_by_me_required;
@@ -4429,53 +4446,28 @@ static gboolean _sat_manager_handle_setup_idle_mode_text_ui_display_status(struc
 
 static gboolean _sat_manager_handle_refresh_ui_display_status(struct custom_data *ctx, TcorePlugin *plg,struct sat_manager_queue_data *q_data, gboolean display_status)
 {
-       char *path;
-       TelephonySAT *sat;
-       TelephonyObjectSkeleton *object;
+       struct treq_sat_terminal_rsp_data tr;
 
-       gchar *plg_name = NULL;
+       memset(&tr, 0, sizeof(struct treq_sat_terminal_rsp_data));
 
-       GVariant *refresh = NULL;
-       gint command_id = 0;
-       gint refresh_type =0;
-       GVariant *file_list = NULL;
+       tr.cmd_number = q_data->cmd_data.refresh.command_detail.cmd_num;
+       tr.cmd_type = q_data->cmd_data.refresh.command_detail.cmd_type;
+       memcpy((void*)&tr.terminal_rsp_data.refresh.command_detail, &q_data->cmd_data.refresh.command_detail, sizeof(struct tel_sat_cmd_detail_info));
+       tr.terminal_rsp_data.refresh.device_id.src = q_data->cmd_data.refresh.device_id.dest;
+       tr.terminal_rsp_data.refresh.device_id.dest = q_data->cmd_data.refresh.device_id.src;
 
        if(!display_status){
-               struct treq_sat_terminal_rsp_data *tr = NULL;
-               dbg("[SAT] fail to show ui display for refresh");
-
-               tr = (struct treq_sat_terminal_rsp_data *)calloc(1, sizeof(struct treq_sat_terminal_rsp_data));
-
-               tr->cmd_number = q_data->cmd_data.refresh.command_detail.cmd_num;
-               tr->cmd_type = q_data->cmd_data.refresh.command_detail.cmd_type;
-               memcpy((void*)&tr->terminal_rsp_data.refresh.command_detail, &q_data->cmd_data.refresh.command_detail, sizeof(struct tel_sat_cmd_detail_info));
-
-               tr->terminal_rsp_data.refresh.device_id.src = q_data->cmd_data.refresh.device_id.dest;
-               tr->terminal_rsp_data.refresh.device_id.dest = q_data->cmd_data.refresh.device_id.src;
-               tr->terminal_rsp_data.refresh.result_type = RESULT_ME_UNABLE_TO_PROCESS_COMMAND;
-
-               sat_manager_send_terminal_response(ctx->comm, plg, tr);
-               return TRUE;
+               dbg("fail to show ui for refresh");
+               tr.terminal_rsp_data.refresh.result_type = RESULT_ME_UNABLE_TO_PROCESS_COMMAND;
        }
-
-       //emit send_dtmf signal
-       plg_name = tcore_plugin_ref_plugin_name(plg);
-       if (plg_name) {
-               path = g_strdup_printf("%s/%s", MY_DBUS_PATH, plg_name);
-       } else {
-               path = g_strdup_printf("%s", MY_DBUS_PATH);
+       else{
+               dbg("success to show ui for refresh");
+               tr.terminal_rsp_data.more_time.result_type = RESULT_SUCCESS;
+               tr.terminal_rsp_data.more_time.me_problem_type = ME_PROBLEM_NO_SPECIFIC_CAUSE;
        }
-       dbg("path = [%s]", path);
-
-       object = g_hash_table_lookup(ctx->objects, path);
-       sat = telephony_object_peek_sat(TELEPHONY_OBJECT(object));
-
-       refresh = sat_manager_refresh_noti(ctx, plg_name, &q_data->cmd_data.refresh);
-       dbg("refresh type_format(%s)", g_variant_get_type_string(refresh));
-       g_variant_get(refresh, "(ii@v)", &command_id, &refresh_type, &file_list);
-
-       telephony_sat_emit_refresh(sat, command_id, refresh_type, file_list);
 
+       dbg("send refresh tr");
+       sat_manager_send_terminal_response(ctx->comm, plg, &tr);
        return TRUE;
 }
 
index 8d2a54f..4dbd3a0 100644 (file)
@@ -571,3 +571,20 @@ gboolean sat_ui_support_create_desktop_file(const gchar *title)
 
        return TRUE;
 }
+
+gboolean sat_ui_support_remove_desktop_file(void)
+{
+       int rv = 0;
+       FILE *b_check;
+
+       b_check = fopen("/opt/share/applications/com.samsung.sat-ui.desktop", "r");
+       if(!b_check){
+               dbg("desktop file does not exist");
+               return TRUE;
+       }
+
+       rv = system("/bin/rm /opt/share/applications/com.samsung.sat-ui.desktop");
+       dbg("the result to remove desktop file (%d)", rv);
+
+       return TRUE;
+}
index eba29d6..91786c1 100644 (file)
@@ -12,5 +12,6 @@ gboolean sat_ui_support_launch_browser_application(enum tel_sat_proactive_cmd_ty
 gboolean sat_ui_support_launch_setting_application(enum tel_sat_proactive_cmd_type cmd_type, GVariant *data);
 gboolean sat_ui_support_launch_sat_ui(enum tel_sat_proactive_cmd_type cmd_type, GVariant *data);
 gboolean sat_ui_support_create_desktop_file(const gchar *title);
+gboolean sat_ui_support_remove_desktop_file(void);
 
 #endif /* SAT_UI_SUPPORT_H_ */