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);
|
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,
|
static void stk_alpha_id_set(struct ofono_stk *stk,
|
||||||
const char *text, const struct stk_text_attribute *attr,
|
const char *text, const struct stk_text_attribute *attr,
|
||||||
const struct stk_icon_id *icon)
|
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
|
* and no alpha identifier cases equally. This may be changed once
|
||||||
* better idea is found out.
|
* 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);
|
stk_agent_display_action_info(stk->current_agent, alpha, icon);
|
||||||
|
|
||||||
g_free(alpha);
|
g_free(alpha);
|
||||||
|
@ -2329,10 +2345,6 @@ static gboolean handle_command_send_dtmf(const struct stk_command *cmd,
|
||||||
return TRUE;
|
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,
|
* 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
|
* 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->cancel_cmd = send_dtmf_cancel;
|
||||||
stk->dtmf_id = err;
|
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;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue