summaryrefslogtreecommitdiffstats
path: root/src/stk.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-10-14 02:45:05 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-10-14 02:59:20 -0500
commit2059fd289a6739266bf1efeb7b0249f17c235ff1 (patch)
treeb0fc60bc0f03c380e5fbfe2b80c8434a91c48873 /src/stk.c
parent8820e18b53bf11028185d058e57b061977a56dd2 (diff)
downloadofono-2059fd289a6739266bf1efeb7b0249f17c235ff1.tar.bz2
stk: Make the stk properties not optional
Diffstat (limited to 'src/stk.c')
-rw-r--r--src/stk.c51
1 files changed, 21 insertions, 30 deletions
diff --git a/src/stk.c b/src/stk.c
index d6c869b3..a1ca07f9 100644
--- a/src/stk.c
+++ b/src/stk.c
@@ -389,27 +389,6 @@ static void emit_menu_changed(struct ofono_stk *stk)
g_dbus_send_message(conn, signal);
}
-static void dict_append_menu(DBusMessageIter *dict, struct stk_menu *menu)
-{
- DBusMessageIter entry;
- const char *key = "MainMenu";
-
- 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);
-
- dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
-
- append_menu_items_variant(&entry, menu->items);
-
- dbus_message_iter_close_container(dict, &entry);
-}
-
static void stk_alpha_id_set(struct ofono_stk *stk, const char *text)
{
/* TODO */
@@ -427,7 +406,10 @@ static DBusMessage *stk_get_properties(DBusConnection *conn,
DBusMessage *reply;
DBusMessageIter iter;
DBusMessageIter dict;
- const char *idle_mode_text;
+ DBusMessageIter entry;
+ const char *key = "MainMenu";
+ const char *str;
+ unsigned char icon;
reply = dbus_message_new_method_return(msg);
if (!reply)
@@ -439,17 +421,26 @@ static DBusMessage *stk_get_properties(DBusConnection *conn,
OFONO_PROPERTIES_ARRAY_SIGNATURE,
&dict);
- idle_mode_text = stk->idle_mode_text ? stk->idle_mode_text : "";
- ofono_dbus_dict_append(&dict, "IdleModeText",
- DBUS_TYPE_STRING, &idle_mode_text);
+ str = stk->idle_mode_text ? stk->idle_mode_text : "";
+ ofono_dbus_dict_append(&dict, "IdleModeText", DBUS_TYPE_STRING, &str);
- if (stk->idle_mode_icon.id)
- ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE,
- &stk->idle_mode_icon.id);
+ icon = stk->idle_mode_icon.id;
+ ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE, &icon);
+
+ str = stk->main_menu ? stk->main_menu->title : "";
+ ofono_dbus_dict_append(&dict, "MainMenuTitle", DBUS_TYPE_STRING, &str);
+
+ icon = stk->main_menu ? stk->main_menu->icon.id : 0;
+ ofono_dbus_dict_append(&dict, "MainMenuIcon", DBUS_TYPE_BYTE, &icon);
+
+ dbus_message_iter_open_container(&dict, DBUS_TYPE_DICT_ENTRY,
+ NULL, &entry);
+ dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
- if (stk->main_menu)
- dict_append_menu(&dict, stk->main_menu);
+ append_menu_items_variant(&entry,
+ stk->main_menu ? stk->main_menu->items : NULL);
+ dbus_message_iter_close_container(&dict, &entry);
dbus_message_iter_close_container(&iter, &dict);
return reply;