static void gs_plugin_systemd_updates_permission_cb (GPermission *permission, GParamSpec *pspec, gpointer data) { GsPlugin *plugin = GS_PLUGIN (data); gboolean ret = g_permission_get_allowed (permission) || g_permission_get_can_acquire (permission); gs_plugin_set_allow_updates (plugin, ret); }
static void gs_plugin_systemd_updates_changed_cb (GFileMonitor *monitor, GFile *file, GFile *other_file, GFileMonitorEvent event_type, gpointer user_data) { GsPlugin *plugin = GS_PLUGIN (user_data); /* update UI */ gs_plugin_updates_changed (plugin); }
static void gs_plugin_fedora_distro_upgrades_changed_cb (GFileMonitor *monitor, GFile *file, GFile *other_file, GFileMonitorEvent event_type, gpointer user_data) { GsPlugin *plugin = GS_PLUGIN (user_data); /* only reload the update list if the plugin is NOT running itself * and the time since it ran is greater than 5 seconds (inotify FTW) */ if (gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_RUNNING_SELF)) { g_debug ("no notify as plugin %s active", gs_plugin_get_name (plugin)); return; } if (gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_RECENT)) { g_debug ("no notify as plugin %s recently active", gs_plugin_get_name (plugin)); return; } g_debug ("cache file changed, so reloading upgrades list"); gs_plugin_updates_changed (plugin); }