* [PATCH 2/4] stk: Handle user termination for Send DTMF.
@ 2011-03-28 16:32 Philippe Nunes
2011-03-30 3:22 ` Denis Kenzior
0 siblings, 1 reply; 2+ messages in thread
From: Philippe Nunes @ 2011-03-28 16:32 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2040 bytes --]
---
src/stk.c | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/stk.c b/src/stk.c
index 94ad396..907d6b5 100644
--- a/src/stk.c
+++ b/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,8 +494,16 @@ 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)
- stk_agent_display_action_info(stk->current_agent, alpha, icon);
+ if (alpha != NULL) {
+ if (stk->respond_on_exit) {
+ stk_agent_display_abortable_action_info(
+ 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 +2347,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 +2356,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;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 2/4] stk: Handle user termination for Send DTMF.
2011-03-28 16:32 [PATCH 2/4] stk: Handle user termination for Send DTMF Philippe Nunes
@ 2011-03-30 3:22 ` Denis Kenzior
0 siblings, 0 replies; 2+ messages in thread
From: Denis Kenzior @ 2011-03-30 3:22 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2610 bytes --]
Hi Philippe,
On 03/28/2011 11:32 AM, Philippe Nunes wrote:
> ---
> src/stk.c | 30 ++++++++++++++++++++++++------
> 1 files changed, 24 insertions(+), 6 deletions(-)
>
> diff --git a/src/stk.c b/src/stk.c
> index 94ad396..907d6b5 100644
> --- a/src/stk.c
> +++ b/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,8 +494,16 @@ 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)
> - stk_agent_display_action_info(stk->current_agent, alpha, icon);
> + if (alpha != NULL) {
> + if (stk->respond_on_exit) {
> + stk_agent_display_abortable_action_info(
> + stk->current_agent, alpha, icon,
> + user_termination_cb, stk, NULL);
> + }
> + else
We use the kernel coding style, so the closing bracket and the else
should be on the same line. We're pretty consistent throughout the
codebase, so please watch out for this.
> + stk_agent_display_action_info(stk->current_agent,
> + alpha, icon);
> + }
Try not to introduce gratuitous nesting if you can avoid it. This code
is better rewritten as:
if (alpha == NULL)
return;
if (stk->respond_on_exit)
...
else
...
...
>
> g_free(alpha);
> }
> @@ -2329,10 +2347,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 +2356,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;
> }
>
Regards,
-Denis
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-03-30 3:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-28 16:32 [PATCH 2/4] stk: Handle user termination for Send DTMF Philippe Nunes
2011-03-30 3:22 ` Denis Kenzior
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.