summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/connman.h3
-rwxr-xr-xsrc/network.c3
-rw-r--r--src/service.c24
3 files changed, 30 insertions, 0 deletions
diff --git a/src/connman.h b/src/connman.h
index 610f63bc..bb4c0e59 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -724,6 +724,9 @@ struct connman_service *__connman_service_create_from_network(struct connman_net
struct connman_service *__connman_service_create_from_provider(struct connman_provider *provider);
bool __connman_service_index_is_default(int index);
struct connman_service *__connman_service_get_default(void);
+#if defined TIZEN_EXT
+void __connman_service_notify_strength_changed(struct connman_network *network);
+#endif
void __connman_service_update_from_network(struct connman_network *network);
void __connman_service_remove_from_network(struct connman_network *network);
void __connman_service_read_ip4config(struct connman_service *service);
diff --git a/src/network.c b/src/network.c
index 4a53bba3..9e5d9619 100755
--- a/src/network.c
+++ b/src/network.c
@@ -2243,6 +2243,9 @@ int connman_network_set_strength(struct connman_network *network,
uint8_t strength)
{
network->strength = strength;
+#if defined TIZEN_EXT
+ __connman_service_notify_strength_changed(network);
+#endif
return 0;
}
diff --git a/src/service.c b/src/service.c
index 6331ae41..85bcc318 100644
--- a/src/service.c
+++ b/src/service.c
@@ -9282,6 +9282,30 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne
return service;
}
+#if defined TIZEN_EXT
+void __connman_service_notify_strength_changed(struct connman_network *network)
+{
+ struct connman_service *service;
+ uint8_t strength = 0;
+
+ service = connman_service_lookup_from_network(network);
+ if (!service)
+ return;
+
+ if (!service->network)
+ return;
+
+ strength = connman_network_get_strength(service->network);
+ if (strength == service->strength)
+ return;
+
+ service->strength = strength;
+ DBG("Strength %d", strength);
+ strength_changed(service);
+ service_list_sort();
+}
+#endif
+
void __connman_service_update_from_network(struct connman_network *network)
{
bool need_sort = false;