--- src/stk.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/src/stk.c b/src/stk.c index 3635579..863a6dd 100644 --- a/src/stk.c +++ b/src/stk.c @@ -72,6 +72,7 @@ struct ofono_stk { guint remove_agent_source; struct extern_req *extern_req; char *idle_mode_text; + struct stk_icon_id idle_mode_icon; struct timeval get_inkey_start_ts; }; @@ -364,6 +365,11 @@ static void emit_menu_changed(struct ofono_stk *stk) "MainMenuTitle", DBUS_TYPE_STRING, &menu->title); + ofono_dbus_signal_property_changed(conn, path, + OFONO_STK_INTERFACE, + "MainMenuIcon", + DBUS_TYPE_BYTE, &menu->icon.id); + signal = dbus_message_new_signal(path, OFONO_STK_INTERFACE, "PropertyChanged"); if (!signal) { @@ -390,6 +396,9 @@ static void dict_append_menu(DBusMessageIter *dict, struct stk_menu *menu) ofono_dbus_dict_append(dict, "MainMenuTitle", DBUS_TYPE_STRING, &menu->title); + ofono_dbus_dict_append(dict, "MainMenuIcon", + DBUS_TYPE_BYTE, &menu->icon.id); + dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, NULL, &entry); @@ -433,6 +442,10 @@ static DBusMessage *stk_get_properties(DBusConnection *conn, ofono_dbus_dict_append(&dict, "IdleModeText", DBUS_TYPE_STRING, &idle_mode_text); + if (stk->idle_mode_icon.id) + ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE, + &stk->idle_mode_icon.id); + if (stk->main_menu) dict_append_menu(&dict, stk->main_menu); @@ -789,6 +802,16 @@ static gboolean handle_command_set_idle_text(const struct stk_command *cmd, DBUS_TYPE_STRING, &idle_mode_text); + if (stk->idle_mode_icon.id != cmd->setup_idle_mode_text.icon_id.id) { + memcpy(&stk->idle_mode_icon, &cmd->setup_idle_mode_text.icon_id, + sizeof(stk->idle_mode_icon)); + + ofono_dbus_signal_property_changed(conn, path, + OFONO_STK_INTERFACE, + "IdleModeIcon", DBUS_TYPE_BYTE, + &stk->idle_mode_icon.id); + } + return TRUE; } -- 1.7.1.86.g0e460.dirty _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono