All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

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.