diff --git a/configure.ac b/configure.ac index 1078197..903e50e 100644 --- a/configure.ac +++ b/configure.ac @@ -1283,10 +1283,14 @@ EVO_SET_COMPILE_FLAGS(LIBSOUP, libsoup-gnome-2.4 >= libsoup_minimum_version) AC_SUBST(LIBSOUP_CFLAGS) AC_SUBST(LIBSOUP_LIBS) -EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= 0.4.0) +EVO_SET_COMPILE_FLAGS(GDATA, libgdata >= 0.7.0) AC_SUBST(GDATA_CFLAGS) AC_SUBST(GDATA_LIBS) +if `$PKG_CONFIG --atleast-version=0.9 libgdata`; then + AC_DEFINE(HAVE_LIBGDATA_0_9,1,[libgdata is 0.9 or higher]) +fi + EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgtkhtml-4.0 libebook-1.2 libecal-1.2 libedataserverui-3.0 libebackend-1.2 $libnotify gtkhtml-editor-4.0) AC_SUBST(EVOLUTION_CALENDAR_CFLAGS) AC_SUBST(EVOLUTION_CALENDAR_LIBS) diff --git a/plugins/google-account-setup/google-source.c b/plugins/google-account-setup/google-source.c index 1fce985..1e54362 100644 --- a/plugins/google-account-setup/google-source.c +++ b/plugins/google-account-setup/google-source.c @@ -418,6 +418,9 @@ static void retrieve_list_clicked (GtkButton *button, GtkComboBox *combo) { ESource *source; + #ifdef HAVE_LIBGDATA_0_9 + GDataClientLoginAuthorizer *authorizer; + #endif GDataCalendarService *service; GDataFeed *feed; gchar *user, *password, *tmp; @@ -448,8 +451,14 @@ retrieve_list_clicked (GtkButton *button, GtkComboBox *combo) return; } + #ifdef HAVE_LIBGDATA_0_9 + authorizer = gdata_client_login_authorizer_new ("evolution-client-0.1.0", GDATA_TYPE_CALENDAR_SERVICE); + service = gdata_calendar_service_new (GDATA_AUTHORIZER (authorizer)); + if (!gdata_client_login_authorizer_authenticate (authorizer, user, password, NULL, &error)) { + #else service = gdata_calendar_service_new ("evolution-client-0.1.0"); if (!gdata_service_authenticate (GDATA_SERVICE (service), user, password, NULL, &error)) { + #endif /* Error! */ claim_error (parent, error->message); g_error_free (error); @@ -559,6 +568,9 @@ retrieve_list_clicked (GtkButton *button, GtkComboBox *combo) } g_object_unref (service); + #ifdef HAVE_LIBGDATA_0_9 + g_object_unref (authorizer); + #endif g_free (user); }