stk: Make the stk properties not optional

This commit is contained in:
Denis Kenzior 2010-10-14 02:45:05 -05:00
parent 8820e18b53
commit 2059fd289a
1 changed files with 21 additions and 30 deletions

View File

@ -389,27 +389,6 @@ static void emit_menu_changed(struct ofono_stk *stk)
g_dbus_send_message(conn, signal); 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) static void stk_alpha_id_set(struct ofono_stk *stk, const char *text)
{ {
/* TODO */ /* TODO */
@ -427,7 +406,10 @@ static DBusMessage *stk_get_properties(DBusConnection *conn,
DBusMessage *reply; DBusMessage *reply;
DBusMessageIter iter; DBusMessageIter iter;
DBusMessageIter dict; 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); reply = dbus_message_new_method_return(msg);
if (!reply) if (!reply)
@ -439,17 +421,26 @@ static DBusMessage *stk_get_properties(DBusConnection *conn,
OFONO_PROPERTIES_ARRAY_SIGNATURE, OFONO_PROPERTIES_ARRAY_SIGNATURE,
&dict); &dict);
idle_mode_text = stk->idle_mode_text ? stk->idle_mode_text : ""; str = stk->idle_mode_text ? stk->idle_mode_text : "";
ofono_dbus_dict_append(&dict, "IdleModeText", ofono_dbus_dict_append(&dict, "IdleModeText", DBUS_TYPE_STRING, &str);
DBUS_TYPE_STRING, &idle_mode_text);
if (stk->idle_mode_icon.id) icon = stk->idle_mode_icon.id;
ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE, ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE, &icon);
&stk->idle_mode_icon.id);
if (stk->main_menu) str = stk->main_menu ? stk->main_menu->title : "";
dict_append_menu(&dict, stk->main_menu); 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);
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); dbus_message_iter_close_container(&iter, &dict);
return reply; return reply;