Commit 731e8bfe authored by Florian Müllner's avatar Florian Müllner

Replace 'enable-app-monitoring' setting

The org.gnome.desktop.privacy schema gained a 'remember-app-usage'
key, use that instead of our own preference.

https://bugzilla.gnome.org/show_bug.cgi?id=699714
parent f88d9c06
......@@ -21,16 +21,6 @@
EnableExtension and DisableExtension DBus methods on org.gnome.Shell.
</_description>
</key>
<key name="enable-app-monitoring" type="b">
<default>true</default>
<_summary>Whether to collect stats about applications usage</_summary>
<_description>
The shell normally monitors active applications in order to present
the most used ones (e.g. in launchers). While this data will be
kept private, you may want to disable this for privacy reasons.
Please note that doing so won't remove already saved data.
</_description>
</key>
<key name="favorite-apps" type="as">
<default>[ 'epiphany.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop' ]</default>
<_summary>List of desktop file IDs for favorite applications</_summary>
......
......@@ -343,8 +343,9 @@ const AppDisplay = new Lang.Class({
global.settings.connect('changed::app-folder-categories', Lang.bind(this, function() {
Main.queueDeferredWork(this._allAppsWorkId);
}));
global.settings.connect('changed::enable-app-monitoring',
Lang.bind(this, this._updateFrequentVisibility));
this._privacySettings = new Gio.Settings({ schema: 'org.gnome.desktop.privacy' });
this._privacySettings.connect('changed::remember-app-usage',
Lang.bind(this, this._updateFrequentVisibility));
this._views = [];
......@@ -419,7 +420,7 @@ const AppDisplay = new Lang.Class({
},
_updateFrequentVisibility: function() {
let enabled = global.settings.get_boolean('enable-app-monitoring');
let enabled = this._privacySettings.get_boolean('remember-app-usage');
this._views[Views.FREQUENT].control.visible = enabled;
let visibleViews = this._views.filter(function(v) {
......
......@@ -39,7 +39,8 @@
* minutes to signify idle.
*/
#define ENABLE_MONITORING_KEY "enable-app-monitoring"
#define PRIVACY_SCHEMA "org.gnome.desktop.privacy"
#define ENABLE_MONITORING_KEY "remember-app-usage"
#define FOCUS_TIME_MIN_SECONDS 7 /* Need 7 continuous seconds of focus */
......@@ -82,10 +83,10 @@ struct _ShellAppUsage
GFile *configfile;
GDBusProxy *session_proxy;
GdkDisplay *display;
GSettings *privacy_settings;
gulong last_idle;
guint idle_focus_change_id;
guint save_id;
guint settings_notify;
gboolean currently_idle;
gboolean enable_monitoring;
......@@ -426,25 +427,23 @@ shell_app_usage_init (ShellAppUsage *self)
restore_from_file (self);
self->settings_notify = g_signal_connect (shell_global_get_settings (global),
"changed::" ENABLE_MONITORING_KEY,
G_CALLBACK (on_enable_monitoring_key_changed),
self);
self->privacy_settings = g_settings_new(PRIVACY_SCHEMA);
g_signal_connect (self->privacy_settings,
"changed::" ENABLE_MONITORING_KEY,
G_CALLBACK (on_enable_monitoring_key_changed),
self);
update_enable_monitoring (self);
}
static void
shell_app_usage_finalize (GObject *object)
{
ShellGlobal *global;
ShellAppUsage *self = SHELL_APP_USAGE (object);
if (self->save_id > 0)
g_source_remove (self->save_id);
global = shell_global_get ();
g_signal_handler_disconnect (shell_global_get_settings (global),
self->settings_notify);
g_object_unref (self->privacy_settings);
g_object_unref (self->configfile);
......@@ -956,11 +955,9 @@ out:
static void
update_enable_monitoring (ShellAppUsage *self)
{
ShellGlobal *global;
gboolean enable;
global = shell_global_get ();
enable = g_settings_get_boolean (shell_global_get_settings (global),
enable = g_settings_get_boolean (self->privacy_settings,
ENABLE_MONITORING_KEY);
/* Be sure not to start the timers if they were already set */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment