Merge lp:~kvalo/indicator-network/bug-685674 into lp:~indicator-applet-developers/indicator-network/indicator-network

Proposed by Kalle Valo
Status: Merged
Merged at revision: 162
Proposed branch: lp:~kvalo/indicator-network/bug-685674
Merge into: lp:~indicator-applet-developers/indicator-network/indicator-network
Diff against target: 300 lines (+111/-25)
5 files modified
src/backend/manager.c (+7/-8)
src/backend/network-menu.c (+50/-15)
tests/Makefile.am (+8/-1)
tests/mock-connman-manager.c (+33/-0)
tests/mock-manager.c (+13/-1)
To merge this branch: bzr merge lp:~kvalo/indicator-network/bug-685674
Reviewer Review Type Date Requested Status
Conor Curran (community) Approve
Review via email: mp+52578@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Conor Curran (cjcurran) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/backend/manager.c'
2--- src/backend/manager.c 2011-03-08 08:55:57 +0000
3+++ src/backend/manager.c 2011-03-08 16:24:11 +0000
4@@ -518,13 +518,6 @@
5 g_signal_connect(priv->connman, "notify::default-service",
6 G_CALLBACK(default_service_notify),
7 self);
8-
9- if (connman_manager_get_connected(priv->connman))
10- connman_connected(self);
11-
12- /* otherwise wait for the connected signal */
13-
14- return;
15 }
16
17 static void ui_connected_notify(UIProxy *ui, GParamSpec *pspec,
18@@ -635,6 +628,8 @@
19 self = g_object_new(TYPE_MANAGER, NULL);
20 priv = GET_PRIVATE(self);
21
22+ create_connman(self);
23+
24 priv->ns_dbus = manager_proxy_new(self);
25 priv->service_manager = service_manager_new(self);
26 priv->network_menu = network_menu_new(self);
27@@ -645,7 +640,6 @@
28 G_CALLBACK(strength_updated), self);
29
30 create_ui_proxy(self);
31- create_connman(self);
32
33 /* create icon names */
34 for (i = 0; i < CONNECTING_ICON_STAGES; i++) {
35@@ -659,5 +653,10 @@
36
37 priv->ofono_manager = ofono_manager_new(self);
38
39+ if (connman_manager_get_connected(priv->connman))
40+ connman_connected(self);
41+
42+ /* otherwise wait for the connected signal */
43+
44 return self;
45 }
46
47=== modified file 'src/backend/network-menu.c'
48--- src/backend/network-menu.c 2010-11-30 12:38:55 +0000
49+++ src/backend/network-menu.c 2011-03-08 16:24:11 +0000
50@@ -30,6 +30,7 @@
51 #include "dbus-shared-names.h"
52 #include "connman.h"
53 #include "manager.h"
54+#include "connman-manager.h"
55
56 G_DEFINE_TYPE (NetworkMenu, network_menu, DBUSMENU_TYPE_MENUITEM)
57
58@@ -67,11 +68,22 @@
59 gboolean menu_enabled;
60
61 Manager *network_service;
62+ ConnmanManager *connman;
63 };
64
65 static void
66 network_menu_dispose (GObject *object)
67 {
68+ NetworkMenu *self = NETWORK_MENU(object);
69+ NetworkMenuPrivate *priv = GET_PRIVATE(self);
70+
71+ /* FIXME: unref all objects from NetworkMenuPrivate */
72+
73+ if (priv->connman != NULL) {
74+ g_object_unref(priv->connman);
75+ priv->connman = NULL;
76+ }
77+
78 G_OBJECT_CLASS (network_menu_parent_class)->dispose (object);
79 }
80
81@@ -398,41 +410,62 @@
82
83 }
84
85-static void tech_state_changed(Manager *manager, const gchar *tech,
86- gboolean state, gpointer user_data)
87+static void wifi_state_changed(ConnmanManager *connman, GParamSpec *pspec,
88+ gpointer user_data)
89 {
90 NetworkMenu *self = NETWORK_MENU(user_data);
91 NetworkMenuPrivate *priv = GET_PRIVATE(self);
92 const gchar *str;
93+ ConnmanTechnologyState state;
94
95 g_return_if_fail(IS_NETWORK_MENU(self));
96 g_return_if_fail(priv != NULL);
97 g_return_if_fail(priv->wireless_header != NULL);
98
99- if (g_strcmp0(tech, CONNMAN_TECHNOLOGY_WIFI) != 0 )
100- return;
101+ state = connman_manager_get_wifi_state(priv->connman);
102
103- if (state)
104+ switch (state) {
105+ case CONNMAN_TECHNOLOGY_STATE_ENABLED:
106+ case CONNMAN_TECHNOLOGY_STATE_CONNECTED:
107 str = _("Wi-Fi: ON");
108- else
109+ priv->wireless_enabled = TRUE;
110+ break;
111+ case CONNMAN_TECHNOLOGY_STATE_UNKNOWN:
112+ case CONNMAN_TECHNOLOGY_STATE_UNAVAILABLE:
113+ case CONNMAN_TECHNOLOGY_STATE_AVAILABLE:
114+ case CONNMAN_TECHNOLOGY_STATE_OFFLINE:
115+ default:
116 str = _("Wi-Fi: OFF");
117+ priv->wireless_enabled = FALSE;
118+ break;
119+ }
120
121 dbusmenu_menuitem_property_set(priv->wireless_header,
122 DBUSMENU_MENUITEM_PROP_LABEL,
123 str);
124- priv->wireless_enabled = state;
125 }
126
127 static void toggle_wireless_cb(DbusmenuMenuitem *mi, guint timestamp,
128 gpointer user_data)
129 {
130- NetworkMenu *self = user_data;
131+ NetworkMenu *self = NETWORK_MENU(user_data);
132 NetworkMenuPrivate *priv = GET_PRIVATE(self);
133- Manager *ns = priv->network_service;
134-
135- g_return_if_fail(ns != NULL);
136-
137- /* FIXME: enable or disable wireless accordingly */
138+
139+ g_return_if_fail(priv != NULL);
140+ g_return_if_fail(priv->connman != NULL);
141+
142+ if (priv->wireless_enabled)
143+ connman_manager_disable_technology(priv->connman,
144+ CONNMAN_TECHNOLOGY_TYPE_WIFI,
145+ NULL,
146+ NULL,
147+ NULL);
148+ else
149+ connman_manager_enable_technology(priv->connman,
150+ CONNMAN_TECHNOLOGY_TYPE_WIFI,
151+ NULL,
152+ NULL,
153+ NULL);
154 }
155
156 static void network_settings_activated(DbusmenuMenuitem *mi, guint timestamp,
157@@ -474,6 +507,8 @@
158 priv = GET_PRIVATE(self);
159
160 priv->network_service = ns;
161+ g_return_val_if_fail(manager_get_connman(ns) != NULL, NULL);
162+ priv->connman = g_object_ref(manager_get_connman(ns));
163
164 sm = manager_get_service_manager(ns);
165 g_signal_connect(G_OBJECT(sm), "services-updated",
166@@ -481,8 +516,8 @@
167 g_signal_connect(G_OBJECT(sm), "state-changed",
168 G_CALLBACK(connect_state_changed), self);
169
170- g_signal_connect(G_OBJECT(ns), "technology-state-changed",
171- G_CALLBACK(tech_state_changed), self);
172+ g_signal_connect(G_OBJECT(priv->connman), "notify::wifi-state",
173+ G_CALLBACK(wifi_state_changed), self);
174
175 server = dbusmenu_server_new(INDICATOR_NETWORK_DBUS_OBJECT);
176 dbusmenu_server_set_root(server, DBUSMENU_MENUITEM(self));
177
178=== modified file 'tests/Makefile.am'
179--- tests/Makefile.am 2011-01-25 08:09:27 +0000
180+++ tests/Makefile.am 2011-03-08 16:24:11 +0000
181@@ -44,6 +44,8 @@
182 $(top_srcdir)/src/backend/service-manager.c \
183 mock-manager.c \
184 mock-service.c \
185+ mock-connman-manager.c \
186+ mock-connman-manager.h \
187 mock-connman-service.c
188
189 TEST_PROGS += test-service
190@@ -53,6 +55,8 @@
191 mock-manager.c \
192 mock-service-manager.c \
193 mock-dbusmenu-menuitem.c \
194+ mock-connman-manager.c \
195+ mock-connman-manager.h \
196 mock-connman-service.c
197
198 TEST_PROGS += test-network-menu
199@@ -63,7 +67,10 @@
200 mock-dbusmenu-menuitem.c \
201 mock-service-manager.c \
202 mock-dbusmenu-server.c \
203- mock-ui-proxy.c
204+ mock-ui-proxy.c \
205+ mock-connman-manager.c \
206+ mock-connman-manager.h \
207+ mock-connman-service.c
208
209 TEST_PROGS += test-manager
210 test_manager_SOURCES = \
211
212=== modified file 'tests/mock-connman-manager.c'
213--- tests/mock-connman-manager.c 2011-01-12 22:53:21 +0000
214+++ tests/mock-connman-manager.c 2011-03-08 16:24:11 +0000
215@@ -52,6 +52,39 @@
216 PROP_CONNECTED,
217 };
218
219+ConnmanTechnologyState connman_manager_get_wifi_state(ConnmanManager *self)
220+{
221+ return CONNMAN_TECHNOLOGY_STATE_ENABLED;
222+}
223+
224+void connman_manager_enable_technology(ConnmanManager *self,
225+ ConnmanTechnologyType type,
226+ GCancellable *cancellable,
227+ GAsyncReadyCallback callback,
228+ gpointer user_data)
229+{
230+}
231+
232+void connman_manager_enable_technology_finish(ConnmanManager *self,
233+ GAsyncResult *res,
234+ GError **error)
235+{
236+}
237+
238+void connman_manager_disable_technology(ConnmanManager *self,
239+ ConnmanTechnologyType type,
240+ GCancellable *cancellable,
241+ GAsyncReadyCallback callback,
242+ gpointer user_data)
243+{
244+}
245+
246+void connman_manager_disable_technology_finish(ConnmanManager *self,
247+ GAsyncResult *res,
248+ GError **error)
249+{
250+}
251+
252 void connman_manager_connect_service(ConnmanManager *self,
253 ConnmanServiceType type,
254 ConnmanServiceMode mode,
255
256=== modified file 'tests/mock-manager.c'
257--- tests/mock-manager.c 2010-11-25 15:12:47 +0000
258+++ tests/mock-manager.c 2011-03-08 16:24:11 +0000
259@@ -36,6 +36,7 @@
260
261 struct _ManagerPrivate {
262 ServiceManager *sm;
263+ ConnmanManager *connman;
264 };
265
266 enum {
267@@ -54,6 +55,14 @@
268
269 static void manager_dispose(GObject *object)
270 {
271+ Manager *self = MANAGER(object);
272+ ManagerPrivate *priv = GET_PRIVATE(self);
273+
274+ if (priv->connman != NULL) {
275+ g_object_unref(priv->connman);
276+ priv->connman = NULL;
277+ }
278+
279 G_OBJECT_CLASS(manager_parent_class)->dispose(object);
280 }
281
282@@ -114,7 +123,9 @@
283
284 ConnmanManager *manager_get_connman(Manager *self)
285 {
286- return NULL;
287+ ManagerPrivate *priv = GET_PRIVATE(self);
288+
289+ return priv->connman;
290 }
291
292 ServiceManager *manager_get_service_manager(Manager *self)
293@@ -134,6 +145,7 @@
294 priv = GET_PRIVATE(self);
295
296 priv->sm = service_manager_new(self);
297+ priv->connman = connman_manager_new();
298
299 return self;
300 }

Subscribers

People subscribed via source and target branches