[gnome-software] packagekit: Add support for download scheduling



commit ddd6641934d8db7d268c0c0dcdec12317333e881
Author: Philip Withnall <withnall endlessm com>
Date:   Thu Mar 21 17:31:11 2019 +0000

    packagekit: Add support for download scheduling
    
    Signed-off-by: Philip Withnall <withnall endlessm com>

 plugins/packagekit/gs-plugin-packagekit-refresh.c | 18 +++++++++++++++---
 plugins/packagekit/meson.build                    | 12 ++++++++++--
 2 files changed, 25 insertions(+), 5 deletions(-)
---
diff --git a/plugins/packagekit/gs-plugin-packagekit-refresh.c 
b/plugins/packagekit/gs-plugin-packagekit-refresh.c
index 283f144d..7805853c 100644
--- a/plugins/packagekit/gs-plugin-packagekit-refresh.c
+++ b/plugins/packagekit/gs-plugin-packagekit-refresh.c
@@ -11,6 +11,7 @@
 #include <packagekit-glib2/packagekit.h>
 #include <gnome-software.h>
 
+#include "gs-metered.h"
 #include "gs-packagekit-helper.h"
 #include "packagekit-common.h"
 
@@ -130,10 +131,21 @@ gs_plugin_download (GsPlugin *plugin,
                                gs_app_list_add (list_tmp, app_tmp);
                }
        }
-       if (gs_app_list_length (list_tmp) > 0)
-               return _download_only (plugin, list_tmp, cancellable, error);
 
-       return TRUE;
+       if (gs_app_list_length (list_tmp) == 0)
+               return TRUE;
+
+       if (!gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE)) {
+               g_autoptr(GError) error_local = NULL;
+
+               if (!gs_metered_block_app_list_on_download_scheduler (list_tmp, cancellable, &error_local)) {
+                       g_warning ("Failed to block on download scheduler: %s",
+                                  error_local->message);
+                       g_clear_error (&error_local);
+               }
+       }
+
+       return _download_only (plugin, list_tmp, cancellable, error);
 }
 
 gboolean
diff --git a/plugins/packagekit/meson.build b/plugins/packagekit/meson.build
index e737b40c..a295b1b1 100644
--- a/plugins/packagekit/meson.build
+++ b/plugins/packagekit/meson.build
@@ -1,5 +1,13 @@
 cargs = ['-DG_LOG_DOMAIN="GsPluginPackageKit"']
 cargs += ['-DLOCALPLUGINDIR="' + meson.current_build_dir() + '"']
+deps = [
+  plugin_libs,
+  packagekit,
+]
+
+if get_option('mogwai')
+  deps += [mogwai_schedule_client]
+endif
 
 shared_module(
   'gs_plugin_systemd-updates',
@@ -15,7 +23,7 @@ shared_module(
   install : true,
   install_dir: plugin_dir,
   c_args : cargs,
-  dependencies : [ plugin_libs, packagekit ],
+  dependencies : deps,
   link_with : [
     libgnomesoftware
   ]
@@ -35,7 +43,7 @@ shared_module(
   install : true,
   install_dir: plugin_dir,
   c_args : cargs,
-  dependencies : [ plugin_libs, packagekit ],
+  dependencies : deps,
   link_with : [
     libgnomesoftware
   ]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]