<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">
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
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;
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;
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);
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 );
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);
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);
{
Communicator *comm;
struct custom_data *data;
+ guint id;
if (!p)
return FALSE;
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;
}
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){
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;
}
if(!menu_info){
dbg("no main menu data");
+ sat_ui_support_remove_desktop_file();
return TRUE;
}
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:{
//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");
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;
// 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,
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");
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;
(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;
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;
}
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;
+}
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_ */