---
 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

Reply via email to