diff -Nru evolution-data-server-google2-0.1.0/debian/bzr-builder.manifest evolution-data-server-google2-0.1.0/debian/bzr-builder.manifest --- evolution-data-server-google2-0.1.0/debian/bzr-builder.manifest 2014-10-31 17:54:59.000000000 +0000 +++ evolution-data-server-google2-0.1.0/debian/bzr-builder.manifest 2014-11-02 00:31:23.000000000 +0000 @@ -1,2 +1,2 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~4 -lp:~elementary-pantheon/poa-eds-bridge/google revid:corentin@elementaryos.org-20141031175135-hiqa56dhh0oyj2wr +# bzr-builder format 0.3 deb-version {debupstream}-0~6 +lp:~elementary-pantheon/poa-eds-bridge/google revid:corentin@elementaryos.org-20141101110846-fiebm27qvehrb1n3 diff -Nru evolution-data-server-google2-0.1.0/debian/changelog evolution-data-server-google2-0.1.0/debian/changelog --- evolution-data-server-google2-0.1.0/debian/changelog 2014-10-31 17:54:59.000000000 +0000 +++ evolution-data-server-google2-0.1.0/debian/changelog 2014-11-02 00:31:23.000000000 +0000 @@ -1,8 +1,8 @@ -evolution-data-server-google2 (0.1.0-0~4~ubuntu14.10.1) utopic; urgency=low +evolution-data-server-google2 (0.1.0-0~6~ubuntu14.10.1) utopic; urgency=low * Auto build. - -- Launchpad Package Builder Fri, 31 Oct 2014 17:54:59 +0000 + -- Launchpad Package Builder Sun, 02 Nov 2014 00:31:23 +0000 evolution-data-server-google2 (0.1.0) UNRELEASED; urgency=low diff -Nru evolution-data-server-google2-0.1.0/src/backend/ModuleGoogleBackend.vala evolution-data-server-google2-0.1.0/src/backend/ModuleGoogleBackend.vala --- evolution-data-server-google2-0.1.0/src/backend/ModuleGoogleBackend.vala 2014-10-31 17:54:58.000000000 +0000 +++ evolution-data-server-google2-0.1.0/src/backend/ModuleGoogleBackend.vala 2014-11-02 00:31:23.000000000 +0000 @@ -101,6 +101,14 @@ } } + public override void child_added (E.ServerSideSource child_source) { + base.child_added (child_source); + var auth_extension = (E.SourceAuthentication) child_source.get_extension (E.SOURCE_EXTENSION_AUTHENTICATION); + auth_extension.set_method ("OAuth2"); + var collection_extension = (E.SourceCollection) get_source ().get_extension (E.SOURCE_EXTENSION_COLLECTION); + collection_extension.bind_property ("identity", auth_extension, "user", GLib.BindingFlags.SYNC_CREATE); + } + //TODO: check for new/removed calendars public override void populate () { base.populate (); @@ -112,35 +120,27 @@ add_contacts (); } - public override void child_added (E.ServerSideSource child_source) { - var child_auth_extension = (E.SourceAuthentication) child_source.get_extension (E.SOURCE_EXTENSION_AUTHENTICATION); - child_auth_extension.set_method ("OAuth2"); - var collection_source = get_source (); - var collection_extension = (E.SourceCollection) collection_source.get_extension (E.SOURCE_EXTENSION_COLLECTION); - collection_extension.bind_property ("identity", child_auth_extension, "user", GLib.BindingFlags.SYNC_CREATE); - - base.child_added (child_source); - + public override string dup_resource_id (E.Source child_source) { + var ressource_extension = (E.SourceResource) child_source.get_extension (E.SOURCE_EXTENSION_RESOURCE); + return ressource_extension.get_identity (); } private void add_calendars () { - var collection_source = get_source (); var source = new_child (GOOGLE_CALENDAR_RESOURCE_ID); source.set_display_name (_("Calendar")); - var collection_extension = (E.SourceCollection) collection_source.get_extension (E.SOURCE_EXTENSION_COLLECTION); /* Configure the address book source. */ var extension = (E.SourceCalendar) source.get_extension (E.SOURCE_EXTENSION_CALENDAR); extension.set_backend_name (GOOGLE_CALENDAR_BACKEND_NAME); var auth_extension = (E.SourceAuthentication) source.get_extension (E.SOURCE_EXTENSION_AUTHENTICATION); - collection_extension.bind_property ("identity", auth_extension, "user", GLib.BindingFlags.SYNC_CREATE); auth_extension.set_host (GOOGLE_CALDAV_V2_HOST); auth_extension.set_method ("OAuth2"); + var collection_extension = (E.SourceCollection) get_source ().get_extension (E.SOURCE_EXTENSION_COLLECTION); + collection_extension.bind_property ("identity", auth_extension, "user", GLib.BindingFlags.SYNC_CREATE); var webdav_extension = (E.SourceWebdav) source.get_extension (E.SOURCE_EXTENSION_WEBDAV_BACKEND); - var path = GOOGLE_CALDAV_V2_PATH.printf (auth_extension.get_user () ?? ""); - webdav_extension.set_resource_path (path); + webdav_extension.set_resource_path (GOOGLE_CALDAV_V2_PATH.printf (collection_extension.dup_identity () ?? "")); var security_extension = (E.SourceSecurity)source.get_extension (E.SOURCE_EXTENSION_SECURITY); security_extension.set_secure (true); @@ -152,6 +152,9 @@ alarm_extension.set_last_notified (timeval.to_iso8601 ()); } + var ressource_extension = (E.SourceResource) source.get_extension (E.SOURCE_EXTENSION_RESOURCE); + ressource_extension.set_identity (collection_extension.dup_identity ()); + ref_server ().add_source (source); /* Check for all calendars */ @@ -171,9 +174,7 @@ var object = item.dup_object (); // We can't select a calendar here, let's use the default one var id = object.get_string_member ("id"); - if (id == auth_extension.get_user ()) { - var ressource_extension = (E.SourceResource) source.get_extension (E.SOURCE_EXTENSION_RESOURCE); - ressource_extension.set_identity (id); + if (id == ressource_extension.get_identity ()) { var color = object.get_string_member ("backgroundColor"); extension.set_color (color); continue; @@ -187,29 +188,24 @@ } private void create_calendar_from_object (Json.Object object) { - var collection_source = get_source (); - var collection_extension = collection_source.get_extension (E.SOURCE_EXTENSION_COLLECTION); var id = object.get_string_member ("id"); var name = object.get_string_member ("summary"); - - warning (name); - var color = object.get_string_member ("backgroundColor"); - var permission = object.get_string_member ("accessRole"); var source = new_child (id); source.set_display_name (name); - - /* Configure the address book source. */ + + var color = object.get_string_member ("backgroundColor"); var extension = (E.SourceCalendar) source.get_extension (E.SOURCE_EXTENSION_CALENDAR); extension.set_backend_name (GOOGLE_CALENDAR_BACKEND_NAME); extension.set_color (color); var auth_extension = (E.SourceAuthentication) source.get_extension (E.SOURCE_EXTENSION_AUTHENTICATION); - collection_extension.bind_property ("identity", auth_extension, "user", GLib.BindingFlags.SYNC_CREATE); auth_extension.set_host (GOOGLE_CALDAV_V2_HOST); auth_extension.set_method ("OAuth2"); + var collection_extension = (E.SourceCollection) get_source ().get_extension (E.SOURCE_EXTENSION_COLLECTION); + collection_extension.bind_property ("identity", auth_extension, "user", GLib.BindingFlags.SYNC_CREATE); var webdav_extension = (E.SourceWebdav) source.get_extension (E.SOURCE_EXTENSION_WEBDAV_BACKEND); - webdav_extension.set_resource_path (GOOGLE_CALDAV_V2_PATH.printf (id)); + webdav_extension.set_resource_path (GOOGLE_CALDAV_V2_PATH.printf (id ?? "")); var security_extension = (E.SourceSecurity)source.get_extension (E.SOURCE_EXTENSION_SECURITY); security_extension.set_secure (true); @@ -224,6 +220,7 @@ var ressource_extension = (E.SourceResource) source.get_extension (E.SOURCE_EXTENSION_RESOURCE); ressource_extension.set_identity (id); + /*var permission = object.get_string_member ("accessRole"); switch (permission) { case "reader": ((E.ServerSideSource) source).removable = false; @@ -237,7 +234,7 @@ ((E.ServerSideSource) source).removable = true; ((E.ServerSideSource) source).writable = true; break; - } + }*/ ref_server ().add_source (source); }