mirror of git://git.sysmocom.de/ofono
stk: Pass icon IDs in stk agent request parameters
This commit is contained in:
parent
1d49c38383
commit
198dcc2c28
28
src/stk.c
28
src/stk.c
|
@ -1139,8 +1139,8 @@ static gboolean handle_command_display_text(const struct stk_command *cmd,
|
|||
}
|
||||
|
||||
/* We most likely got an out of memory error, tell SIM to retry */
|
||||
if (stk_agent_display_text(stk->current_agent, dt->text, 0, priority,
|
||||
display_text_cb, stk,
|
||||
if (stk_agent_display_text(stk->current_agent, dt->text, &dt->icon_id,
|
||||
priority, display_text_cb, stk,
|
||||
display_text_destroy, timeout) < 0) {
|
||||
rsp->result.type = STK_RESULT_TYPE_TERMINAL_BUSY;
|
||||
return TRUE;
|
||||
|
@ -1283,7 +1283,6 @@ static gboolean handle_command_get_inkey(const struct stk_command *cmd,
|
|||
* Note: immediate response and help parameter values are not
|
||||
* provided by current api.
|
||||
*/
|
||||
uint8_t icon_id = 0;
|
||||
int err;
|
||||
|
||||
if (gi->duration.interval) {
|
||||
|
@ -1302,16 +1301,17 @@ static gboolean handle_command_get_inkey(const struct stk_command *cmd,
|
|||
|
||||
if (yesno)
|
||||
err = stk_agent_request_confirmation(stk->current_agent,
|
||||
gi->text, icon_id,
|
||||
gi->text, &gi->icon_id,
|
||||
request_confirmation_cb,
|
||||
stk, NULL, timeout);
|
||||
else if (alphabet)
|
||||
err = stk_agent_request_key(stk->current_agent, gi->text,
|
||||
icon_id, ucs2, request_key_cb,
|
||||
stk, NULL, timeout);
|
||||
&gi->icon_id, ucs2,
|
||||
request_key_cb, stk, NULL,
|
||||
timeout);
|
||||
else
|
||||
err = stk_agent_request_digit(stk->current_agent, gi->text,
|
||||
icon_id, request_key_cb,
|
||||
&gi->icon_id, request_key_cb,
|
||||
stk, NULL, timeout);
|
||||
|
||||
if (err < 0) {
|
||||
|
@ -1377,19 +1377,18 @@ static gboolean handle_command_get_input(const struct stk_command *cmd,
|
|||
gboolean alphabet = (qualifier & (1 << 0)) != 0;
|
||||
gboolean ucs2 = (qualifier & (1 << 1)) != 0;
|
||||
gboolean hidden = (qualifier & (1 << 2)) != 0;
|
||||
uint8_t icon_id = 0;
|
||||
int err;
|
||||
|
||||
if (alphabet)
|
||||
err = stk_agent_request_input(stk->current_agent, gi->text,
|
||||
icon_id, gi->default_text, ucs2,
|
||||
gi->resp_len.min,
|
||||
&gi->icon_id, gi->default_text,
|
||||
ucs2, gi->resp_len.min,
|
||||
gi->resp_len.max, hidden,
|
||||
request_string_cb,
|
||||
stk, NULL, timeout);
|
||||
else
|
||||
err = stk_agent_request_digits(stk->current_agent, gi->text,
|
||||
icon_id, gi->default_text,
|
||||
&gi->icon_id, gi->default_text,
|
||||
gi->resp_len.min,
|
||||
gi->resp_len.max, hidden,
|
||||
request_string_cb,
|
||||
|
@ -1496,7 +1495,8 @@ static void confirm_call_cb(enum stk_agent_result result, gboolean confirm,
|
|||
}
|
||||
|
||||
err = __ofono_voicecall_dial(vc, sc->addr.number, sc->addr.ton_npi,
|
||||
sc->alpha_id_call_setup, 0,
|
||||
sc->alpha_id_call_setup,
|
||||
sc->icon_id_call_setup.id,
|
||||
qualifier >> 1, call_setup_connected,
|
||||
stk);
|
||||
if (err >= 0) {
|
||||
|
@ -1577,8 +1577,8 @@ static gboolean handle_command_set_up_call(const struct stk_command *cmd,
|
|||
}
|
||||
|
||||
err = stk_agent_confirm_call(stk->current_agent, sc->alpha_id_usr_cfm,
|
||||
0, confirm_call_cb, stk, NULL,
|
||||
stk->timeout * 1000);
|
||||
&sc->icon_id_usr_cfm, confirm_call_cb,
|
||||
stk, NULL, stk->timeout * 1000);
|
||||
|
||||
if (err < 0) {
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include "ofono.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "smsutil.h"
|
||||
#include "stkutil.h"
|
||||
#include "stkagent.h"
|
||||
|
||||
enum allowed_error {
|
||||
|
@ -396,7 +398,8 @@ static void display_text_cb(DBusPendingCall *call, void *data)
|
|||
}
|
||||
|
||||
int stk_agent_display_text(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, ofono_bool_t urgent,
|
||||
const struct stk_icon_id *icon,
|
||||
ofono_bool_t urgent,
|
||||
stk_agent_display_text_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
int timeout)
|
||||
|
@ -412,7 +415,7 @@ int stk_agent_display_text(struct stk_agent *agent, const char *text,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_BOOLEAN, &priority,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
|
@ -465,8 +468,8 @@ static void get_confirmation_cb(DBusPendingCall *call, void *data)
|
|||
CALLBACK_END();
|
||||
}
|
||||
|
||||
int stk_agent_request_confirmation(struct stk_agent *agent,
|
||||
const char *text, uint8_t icon_id,
|
||||
int stk_agent_request_confirmation(struct stk_agent *agent, const char *text,
|
||||
const struct stk_icon_id *icon,
|
||||
stk_agent_confirmation_cb cb,
|
||||
void *user_data,
|
||||
ofono_destroy_func destroy,
|
||||
|
@ -482,7 +485,7 @@ int stk_agent_request_confirmation(struct stk_agent *agent,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
if (dbus_connection_send_with_reply(conn, agent->msg, &agent->call,
|
||||
|
@ -536,8 +539,8 @@ static void get_digit_cb(DBusPendingCall *call, void *data)
|
|||
CALLBACK_END();
|
||||
}
|
||||
|
||||
int stk_agent_request_digit(struct stk_agent *agent,
|
||||
const char *text, uint8_t icon_id,
|
||||
int stk_agent_request_digit(struct stk_agent *agent, const char *text,
|
||||
const struct stk_icon_id *icon,
|
||||
stk_agent_string_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout)
|
||||
{
|
||||
|
@ -551,7 +554,7 @@ int stk_agent_request_digit(struct stk_agent *agent,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
if (dbus_connection_send_with_reply(conn, agent->msg, &agent->call,
|
||||
|
@ -604,7 +607,8 @@ static void get_key_cb(DBusPendingCall *call, void *data)
|
|||
}
|
||||
|
||||
int stk_agent_request_key(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, ofono_bool_t unicode_charset,
|
||||
const struct stk_icon_id *icon,
|
||||
ofono_bool_t unicode_charset,
|
||||
stk_agent_string_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout)
|
||||
{
|
||||
|
@ -618,7 +622,7 @@ int stk_agent_request_key(struct stk_agent *agent, const char *text,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
if (dbus_connection_send_with_reply(conn, agent->msg, &agent->call,
|
||||
|
@ -670,7 +674,8 @@ static void get_digits_cb(DBusPendingCall *call, void *data)
|
|||
}
|
||||
|
||||
int stk_agent_request_digits(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, const char *default_text,
|
||||
const struct stk_icon_id *icon,
|
||||
const char *default_text,
|
||||
int min, int max, ofono_bool_t hidden,
|
||||
stk_agent_string_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout)
|
||||
|
@ -691,7 +696,7 @@ int stk_agent_request_digits(struct stk_agent *agent, const char *text,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_STRING, &default_text,
|
||||
DBUS_TYPE_BYTE, &min_val,
|
||||
DBUS_TYPE_BYTE, &max_val,
|
||||
|
@ -747,7 +752,8 @@ static void get_input_cb(DBusPendingCall *call, void *data)
|
|||
}
|
||||
|
||||
int stk_agent_request_input(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, const char *default_text,
|
||||
const struct stk_icon_id *icon,
|
||||
const char *default_text,
|
||||
ofono_bool_t unicode_charset, int min, int max,
|
||||
ofono_bool_t hidden, stk_agent_string_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
|
@ -769,7 +775,7 @@ int stk_agent_request_input(struct stk_agent *agent, const char *text,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_STRING, &default_text,
|
||||
DBUS_TYPE_BYTE, &min_val,
|
||||
DBUS_TYPE_BYTE, &max_val,
|
||||
|
@ -824,7 +830,8 @@ static void confirm_call_cb(DBusPendingCall *call, void *data)
|
|||
}
|
||||
|
||||
int stk_agent_confirm_call(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, stk_agent_confirmation_cb cb,
|
||||
const struct stk_icon_id *icon,
|
||||
stk_agent_confirmation_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
int timeout)
|
||||
{
|
||||
|
@ -838,7 +845,7 @@ int stk_agent_confirm_call(struct stk_agent *agent, const char *text,
|
|||
|
||||
dbus_message_append_args(agent->msg,
|
||||
DBUS_TYPE_STRING, &text,
|
||||
DBUS_TYPE_BYTE, &icon_id,
|
||||
DBUS_TYPE_BYTE, &icon->id,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
if (dbus_connection_send_with_reply(conn, agent->msg, &agent->call,
|
||||
|
|
|
@ -77,45 +77,49 @@ int stk_agent_request_selection(struct stk_agent *agent,
|
|||
int timeout);
|
||||
|
||||
int stk_agent_display_text(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, ofono_bool_t urgent,
|
||||
const struct stk_icon_id *icon,
|
||||
ofono_bool_t urgent,
|
||||
stk_agent_display_text_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
int timeout);
|
||||
|
||||
int stk_agent_request_confirmation(struct stk_agent *agent,
|
||||
const char *text, uint8_t icon_id,
|
||||
int stk_agent_request_confirmation(struct stk_agent *agent, const char *text,
|
||||
const struct stk_icon_id *icon,
|
||||
stk_agent_confirmation_cb cb,
|
||||
void *user_data,
|
||||
ofono_destroy_func destroy,
|
||||
int timeout);
|
||||
|
||||
int stk_agent_request_digit(struct stk_agent *agent,
|
||||
const char *text, uint8_t icon_id,
|
||||
int stk_agent_request_digit(struct stk_agent *agent, const char *text,
|
||||
const struct stk_icon_id *icon,
|
||||
stk_agent_string_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout);
|
||||
|
||||
int stk_agent_request_key(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, ofono_bool_t unicode_charset,
|
||||
const struct stk_icon_id *icon,
|
||||
ofono_bool_t unicode_charset,
|
||||
stk_agent_string_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout);
|
||||
|
||||
int stk_agent_request_digits(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, const char *default_text,
|
||||
int min, int max, ofono_bool_t hidden,
|
||||
stk_agent_string_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout);
|
||||
const struct stk_icon_id *icon,
|
||||
const char *default_text, int min, int max,
|
||||
ofono_bool_t hidden, stk_agent_string_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
int timeout);
|
||||
|
||||
int stk_agent_request_input(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, const char *default_text,
|
||||
const struct stk_icon_id *icon,
|
||||
const char *default_text,
|
||||
ofono_bool_t unicode_charset, int min, int max,
|
||||
ofono_bool_t hidden, stk_agent_string_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
int timeout);
|
||||
|
||||
int stk_agent_confirm_call(struct stk_agent *agent, const char *text,
|
||||
uint8_t icon_id, stk_agent_confirmation_cb cb,
|
||||
void *user_data, ofono_destroy_func destroy,
|
||||
int timeout);
|
||||
const struct stk_icon_id *icon,
|
||||
stk_agent_confirmation_cb cb, void *user_data,
|
||||
ofono_destroy_func destroy, int timeout);
|
||||
|
||||
void append_menu_items_variant(DBusMessageIter *iter,
|
||||
const struct stk_menu_item *items);
|
||||
|
|
Loading…
Reference in New Issue