Diff between 9f2c31aacf288cb3047d9ea6aef51092b2f0ad15 and 117ae0ffbdfe22e5813c97f0f8a3b4280ebf2a14

Changed Files

File Additions Deletions Status
proximity/monitor.c +16 -0 modified

Full Patch

diff --git a/proximity/monitor.c b/proximity/monitor.c
index f765824..58557e9 100644
--- a/proximity/monitor.c
+++ b/proximity/monitor.c
@@ -342,9 +342,25 @@ static void attio_connected_cb(GAttrib *attrib, gpointer user_data)
 static void attio_disconnected_cb(gpointer user_data)
 {
 	struct monitor *monitor = user_data;
+	const char *path = device_get_path(monitor->device);
 
 	g_attrib_unref(monitor->attrib);
 	monitor->attrib = NULL;
+
+	if (monitor->immediateto == 0)
+		return;
+
+	g_source_remove(monitor->immediateto);
+	monitor->immediateto = 0;
+
+	if (g_strcmp0(monitor->immediatelevel, "none") == 0)
+		return;
+
+	g_free(monitor->immediatelevel);
+	monitor->immediatelevel = g_strdup("none");
+	emit_property_changed(monitor->conn, path, PROXIMITY_INTERFACE,
+					"ImmediateAlertLevel", DBUS_TYPE_STRING,
+					&monitor->immediatelevel);
 }
 
 static gboolean level_is_valid(const char *level)