mirror of git://git.sysmocom.de/ofono
stk: Handle user termination for Send DTMF
This commit is contained in:
parent
91d8423458
commit
5ba49490c8
26
src/stk.c
26
src/stk.c
|
@ -473,6 +473,16 @@ static void emit_menu_changed(struct ofono_stk *stk)
|
|||
g_dbus_send_message(conn, signal);
|
||||
}
|
||||
|
||||
static void user_termination_cb(enum stk_agent_result result, void *user_data)
|
||||
{
|
||||
struct ofono_stk *stk = user_data;
|
||||
|
||||
if (result == STK_AGENT_RESULT_TERMINATE) {
|
||||
stk->respond_on_exit = FALSE;
|
||||
send_simple_response(stk, STK_RESULT_TYPE_USER_TERMINATED);
|
||||
}
|
||||
}
|
||||
|
||||
static void stk_alpha_id_set(struct ofono_stk *stk,
|
||||
const char *text, const struct stk_text_attribute *attr,
|
||||
const struct stk_icon_id *icon)
|
||||
|
@ -484,7 +494,13 @@ static void stk_alpha_id_set(struct ofono_stk *stk,
|
|||
* and no alpha identifier cases equally. This may be changed once
|
||||
* better idea is found out.
|
||||
*/
|
||||
if (alpha != NULL)
|
||||
if (alpha == NULL)
|
||||
return;
|
||||
|
||||
if (stk->respond_on_exit)
|
||||
stk_agent_display_action(stk->current_agent, alpha, icon,
|
||||
user_termination_cb, stk, NULL);
|
||||
else
|
||||
stk_agent_display_action_info(stk->current_agent, alpha, icon);
|
||||
|
||||
g_free(alpha);
|
||||
|
@ -2329,10 +2345,6 @@ static gboolean handle_command_send_dtmf(const struct stk_command *cmd,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
stk_alpha_id_set(stk, cmd->send_dtmf.alpha_id,
|
||||
&cmd->send_dtmf.text_attr,
|
||||
&cmd->send_dtmf.icon_id);
|
||||
|
||||
/*
|
||||
* Note that we don't strictly require an agent to be connected,
|
||||
* but to comply with 6.4.24 we need to send a End Session when
|
||||
|
@ -2342,6 +2354,10 @@ static gboolean handle_command_send_dtmf(const struct stk_command *cmd,
|
|||
stk->cancel_cmd = send_dtmf_cancel;
|
||||
stk->dtmf_id = err;
|
||||
|
||||
stk_alpha_id_set(stk, cmd->send_dtmf.alpha_id,
|
||||
&cmd->send_dtmf.text_attr,
|
||||
&cmd->send_dtmf.icon_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue