[gnome-photos/wip/uajain/de_dup: 3/3] share-point-google: Add remote object after uploading image
- From: Umang Jain <uajain src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos/wip/uajain/de_dup: 3/3] share-point-google: Add remote object after uploading image
- Date: Wed, 24 Aug 2016 10:14:59 +0000 (UTC)
commit 75ecc8ca4fe0c38013d6ba7983bcab6941fd7541
Author: Umang Jain <mailumangjain gmail com>
Date: Wed Aug 24 15:41:49 2016 +0530
share-point-google: Add remote object after uploading image
https://bugzilla.gnome.org/show_bug.cgi?id=770267
src/photos-share-point-google.c | 60 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 59 insertions(+), 1 deletions(-)
---
diff --git a/src/photos-share-point-google.c b/src/photos-share-point-google.c
index 94bd7ed..7b7fe6e 100644
--- a/src/photos-share-point-google.c
+++ b/src/photos-share-point-google.c
@@ -26,6 +26,7 @@
#include <glib/gi18n.h>
#include "photos-base-item.h"
+#include "photos-filterable.h"
#include "photos-share-point-google.h"
#include "photos-source.h"
#include "photos-utils.h"
@@ -91,6 +92,55 @@ photos_share_point_google_parse_error (PhotosSharePoint *self, GError *error)
}
+
+static void
+photos_share_point_google_entry_callback (GObject *source_object, GAsyncResult *res, gpointer user_data)
+{
+ GTask *task = G_TASK (user_data);
+ GError *error = NULL;
+
+ photos_share_point_online_tracker_entry_finish (PHOTOS_SHARE_POINT_ONLINE (source_object), res, &error);
+ if (error != NULL)
+ {
+ g_warning ("Failed to create tracker entry and embed metadata: %s", error->message);
+ g_task_return_error (task, error);
+ goto out;
+ }
+
+ g_task_return_boolean (task, TRUE);
+ g_print ("Everything was done cleanly!\n");
+
+out:
+ g_object_unref (task);
+}
+
+
+static void
+photos_share_point_google_create_tracker_entry (PhotosSharePointGoogle *self, GDataPicasaWebFile
*file_entry, gpointer user_data)
+{
+ PhotosSharePointGoogleShareData *data;
+ GTask *task = G_TASK (user_data);
+ GCancellable *cancellable;
+ const gchar *id;
+ const gchar *title;
+
+ cancellable = g_task_get_cancellable (task);
+ data = (PhotosSharePointGoogleShareData *) g_task_get_task_data (task);
+
+ id = gdata_entry_get_id (GDATA_ENTRY (file_entry));
+ title = gdata_entry_get_title (GDATA_ENTRY (file_entry));
+
+ photos_share_point_online_tracker_entry_async (PHOTOS_SHARE_POINT_ONLINE (self),
+ cancellable,
+ data->item,
+ title,
+ id,
+ photos_share_point_google_entry_callback,
+ g_object_ref (task));
+ g_object_unref (task);
+}
+
+
static void
photos_share_point_google_share_save_to_stream (GObject *source_object, GAsyncResult *res, gpointer
user_data)
{
@@ -121,7 +171,8 @@ photos_share_point_google_share_save_to_stream (GObject *source_object, GAsyncRe
goto out;
}
- g_task_return_boolean (task, TRUE);
+ /* Map remote to local object and vice-versa */
+ photos_share_point_google_create_tracker_entry (self, file_entry, g_object_ref (task));
out:
g_clear_object (&file_entry);
@@ -266,6 +317,12 @@ photos_share_point_google_dispose (GObject *object)
static void
+photos_share_point_google_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (photos_share_point_google_parent_class)->dispose (object);
+}
+
+static void
photos_share_point_google_init (PhotosSharePointGoogle *self)
{
}
@@ -280,6 +337,7 @@ photos_share_point_google_class_init (PhotosSharePointGoogleClass *class)
object_class->constructed = photos_share_point_google_constructed;
object_class->dispose = photos_share_point_google_dispose;
share_point_class->parse_error = photos_share_point_google_parse_error;
+ object_class->finalize = photos_share_point_google_finalize;
share_point_class->share_async = photos_share_point_google_share_async;
share_point_class->share_finish = photos_share_point_google_share_finish;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]