This document lists the changes in the different releases
1.4.0.2
-
Features
- Added PlaylistID and PlaylistTitle support to the
subscription entries in youtube feeds, added support for
subscriptions to the Google.YouTube namespace
-
Added Google Contacts v2 support, including a new, vertical
model like the YouTube programming model. You can find this
in the Google.Contacts namespace.
-
Added Batch access to the new generics model. You can now
create a FeedRequest object, and use it's Batch method to send a
List of entry objects to the server. Entry and Feed expose
access to the batch data.
- Added Google Documents v2 support including the new
download functionallity
-
Added a new Google Documents exporter sample. It allows you to
populate a treeview with your Google Documents and then export
each individual file in a variety of formats.
-
Extended the YouTube Notifier sample to use the User Events feed
as well.
-
Bugfixes/changes
- Added the missing contacts DLL to the setup program.
- Changed the new Feed model code to lazily load the feed on
construction.
-
Removed the CreateInstance methods from the new feedmodel and
changed the internals to lazyily create the inner objects on
demand. That means, no more Video v = Vidoe.CreateInstance()
in your code, but Video v = new Video() is now fine.
- Removed an incorrect check for HTTP.StatusOK (200) as the
result for an HTTP.Delete operation. Delete can return any 2xx
code in theory.
-
Fixed issue 209, an feed.Entries.Add(entryOfAnotherFeed) did
create a source element automatically. That was too smart for
it's own good. There is an explict method
Entries.MoveOrCopy(entry) that does that, add will just change
the ownership to the new collection.
-
Changed Google.Client.Entry.ID to Google.Client.Entry.Id
-
fixed the feed.Entries iterator to restart from the beginning
when you want to use it again. Note that you should cache the
output of the iterator is you want to use that in a loop.
- Fixed issue 217, a call to setUserCredentials now automatically invalidates
a stored authtoken.
- Fixed issue 200. A feedQuery now supports an etag property, and several new
service method overloads for query and send support an etag as a parameter.
- Service.Query(FeedQuery, ifModifiedSince) is now marked obsolete. You can use the ModifiedSince
property on the FeedQuery object and Query(FeedQuery) instead.
- Added the ability to store a client token to
GDataCredentials. Setting the credentials property will take
this into account.
- Changed the base apps feed uri for Google Apps
-
Changed GBatchStatus and GBatchError to use the correct
namespace, it was incorrectly using the prefix instead.
- fixed issue 218, setting org.Title or org.name in a
contact to null or an empty string did not remove the
element.
-
fixed issue 203, you can now retrieve the ACL feed for a
document
-
fixed issue 200, feedquery now has an etag property to create
if-match queries.
-
Fixed issue 221, setting private to false in an YouTubeEntry
resulted in failure to persist that entr.
- Added a setter for Entry.Id
- Added a batch method for Feed
- YouTube.Video.VideoId now has a setter
- YouTube.YouTubeRequest has an AddComment method.
- Google.Client.FeedRequest has a new Get(Uri uri) method
- Added AppControl and IsDraft accessors to
Google.Client.Entry
- Added a Get(uri) method to the
Google.Client.FeedRequest
- Fixed YouTubeEntry.State to actually parse and return the
yt:state element
- Added property accessors to YouTube.State
-
- Added a State property accessor
to Google.YouTube.YouTubeRequest
- Added a
GetVideoMetaData method to YouTubeRequest
- Changed Get on the FeedRequest to Retrieve for single
entries. This was required for the new overloads introduced.
Also, as Retrieve directly accesses the service, compared to
Get wich is defered, a name change is a good distinction.
- Video.Rating, ViewCount and CommentCount returns -1 as default
if no value was found.
- Lot's of addtions to the Entry Model and it's subclasses. Check
the documentation for details
1.3.1.0
-
Features
- Added a mergemodule for the Core libraries.
- Added a mergemodule for the YouTube libraries.
- Added a new sample application for YouTube, the YouTube Notifier
-
Added a YouTubeQuery.GetYouTubeCategories method that returns a
collection of category objects based on parsing the youtube
category file hosted on the web.
- YouTube project template.
-
New, simpler, YouTube object model. Look at the items in the new
Google.YouTube namespace. This new code is used in the YouTube
Sample application, the template above, and the youtubetest.cs
file in the unittests.
-
Added a ModifiedSince property on the FeedQuery object. If set
to something different than DateTime.MinValue this results in an
if-modified-since HTTP header produced if the FeedQuery is used
in a Service.Query call.
- OAuth support for two-legged authentication. Look in samples/OAuth for a usage example. Code for this
graciously provided by Andrew Smith and Eran Sandler. Note that due to different support on the Compact Framework,
this is not available in the Windows Mobile build.
-
Bugfixes/changes
-
Fixed issue 198. HealthEntry.CCR returned null, as a wrong cast
after the recent refactory that happened to the extensions
returned always null.
-
Fixed issue 195. Service.Update could call itself, resulting in
recursion.
-
Fixed bug 194. CreatePicasaUri was confusing because it used the
albumname as a parameter compared to an albumid. Changed to now
use an AlbumID.
-
Removed the ASP build and marked the standard release assemblies
as Partially Trusted.
-
Fixed issue 191, Overloaded AuthSubUtil.getRequestUrl(hostedDomain, nextUrl, scope, secure, session) is broken
-
Fixed issue 189, Cannot select Contacts by group
- Fixed an issue in AlbumEntry Accessor for Picasa, where ComentingEnabled accidently
set the wrong element in the xml
-
Removed the Service(service, application, library) constructor
as this variation did not use the passsed in information. If you
used this, just remove the 3rd parameter.
-
Entry.Update and Entry.Delete will now thow an
InvalidOperationException when they are called without a valid
service object being set, instead of not doing anything
silently.
-
Removed the usage of StringCollection and replaced it with a
generic List
-
CommentingEnabled was accidently setting the CommentCount
element.
-
Made the created useragent string more uniform and meaningful
-
AtomFeed.Entries are not an ILIst<> an no longer an arraylist.
-
Fixed several v2 related YouTube issues
-
Fixed issue 186 by removing the verification check at the end of the reminder parser
1.2.3.0
-
Features
- Added support for EMail Settings in Google Apps
- Added support for the protocol version 2
- YouTube will work against version 2 of the protocol by
default. Added support for the version 2 of the YouTube
feed. Old methods are marked as obsolete and will be removed
in future releases.
- Bloogger will work against version 2 of the protocol by
default.
-
Created a blogger service, feed, entry and query class. The
query class allows the OrderBy parameter. This also fixes issue
151 on the public issue list. Added a PostUri method to the
blogger entry.
-
Added the Error subelement collection to GDataBatchStatus.
Removed the Value element as it was not used.
- Issue 166: Added a GetTokenInfo helper method that returns
a Dictionary with the Information returned about the
authentication token.
- Added a bool property Private to the YouTubeEntry
identifying if a video is private
- Added a script to create a linux friendly tarball
- Issue 165: Added the ability to access the error collection
from inside the batch error.
-
Bugfixes/changes
- Fixed issue 154: you can now access the publishing priority
element on a GBaseEntry directly.
- Fixed issue 176: onProgress events were potentially not
being raised in the Async Methods.
- Fixed issue 178: Groups feeds on the contacts service did
not work when using https.
- Fixed issue 180: Passwords with some special characters
were incorrectly encoded, leading to a failure in
authentication.
- Removed the version dependency for the NUNIT tests, so that the
tests can now be used with different installed versions of the
NUNIT framework.
- Some typographical changes. getExtensionValue and
setExtension are now named GetExtensionValue and
SetExtensionValue
-
Unknown extension elements are now stored in a Wrapper
XmlExtension element, which implements the usual
IExtensionElements interfaces to enable removing untyped lists
internally.
-
Moved the core of the extension functionallity, so just the base
classes, into the Google.GData.Client, so that the base
AtomFeed/AtomEntry can be extended using this extension system.
Otherwise there would be a circular reference between client.dll
and extension.dll
1.2.2.0
- Features
- Added a SetRequestFactory method on the AppsService. This
allows a user of the AppsService to set advanced HTTP properties
for the underlying service objects used (like setting a proxy
server, additional headers etc.) by creating a new RequestFactory
object and passing it into the service. To make it easy to create
this factory object a helper CreateRequestFactory was added to
the AppsService object as well.
-
Asyncronous/background support including a sample application.
You can now easily fire off that long running YouTube upload, or
the download of a picture as a seperate thread, so that your main
application is no longer blocked. It uses the AsyncOperation
pattern, and is not available (due to missing base support in the
compact framework) in the Windows Mobile build.
The sample PhotoBrowser application was changed to use that
pattern, and a page in the helpfile introduces the concept.
- Added support for Issue 163: the calendar recently
introduced several new elements, this adds support for syncEvent,
uui and sequence
- Bugfixes
-
Fixed a bug in CommentingEnabled on the PhotoAccessor, which was
setting internally the wrong property.
-
Changed the behaviour of AlbumEntry.AlbumAuthor. The setter will
now create a new author is no author is present.
- Fixed an issue regarding content, type=text. This element was not encoding correctly
which could lead to server errors based on the contents of the element.
- Fixed issue 164, the code will now throw an exception if we
get an empty location header in a redirect situation
-
Fixed issue 161, changed the WebProxy property on the
RequestFactory object to IWebProxy to make this interface more
flexible.
- Removed an obsolete size check for the authentication
response for client login and login for webapplications.
- Fixed issue 160, FirstName in the profile feed of YouTube
was spelled wrong and hence not loaded correctly.
- Fixed issue 157, Slug Header encoding. This was not
correctly confirming to RFC5023. Introduced a new helper method
in the utilities class for this purpose.
- Fixed issue 147, a composite feed with a comment was not loading
- Fixed issue 148, RemoveAt did not remove the object from the
containing collection, only locally. Fixed by overriding the
OnRemove method.
- Fixed issue 155, there was no way to create a read only
youtube service, or rephrased, one that did not require a
developer key
- Fixed issue 159, a typo in the makefile that prevented gac
install/uninstall
- Fixed issue 156, if an exception happened during upload, the
resource was kept open
- Fixed issue 149, the Who element failed to parse attendee
status if a whitespace element was encountered
- Fixed issue 144, recurrenceexception is not parsed correctly
- Fixed issue 145, FeedLink element parser error
- Fixed issue 146. Passwords containing percentage signs were not
properly encoded.
1.2.1.0
- Features
- Added media:rating to media:group
- Added the most-popular constants to the defined youtube
queries
- Added missing convienience classes to YouTube (Comments,
Complaints etc, check the YouTube documentation)
- Added PDF support to the Google Documents API
- Added a CategoryQueriesAsParameter property on the feedquery
class, and making that false by default. On the YouTubeQuery this
is true by default. The effect is that category queries will not
be created by extending/changing the path portion of the URL, but
instead using a new parameter "category" and putting the
categories comma delimited into the query part of the uri.
- Bugfixes
- Fixed issue 135. There was a bug in the FeedQuery parsing
code that resulted in URIs with date parameters that are encoded
to potentially throw
- Removed the Cookie property and replaced it with a Cookies
properter on the RequestFactory. The old code, using just a simple
string, was implemented for mobile benefits, as the
CookieContainer, that is used now, does not exist on the compact
framework. The simple solution though is creating problems in some
scenarios, and had to be removed.
- Added over 100 more unittests for the YouTube service
- Fixed issue 102, 142
1.2.0.0
- Features
-
Added support for the gd:rating element
- Added direct properties for Url, Height, Width for the
MediaThumbnail
-
Added support for mediarss:category as a childcollection of
media:group
-
Created a real app:control extension. This one is currently only
used in the YouTube namespace.
-
Added support for YouTube
- Added support for Google Health
- Added HealthTool in the samples directory as a supporting
tool for Google Health
-
Added support for the timeout property of the http request. You do
this by setting tbe timeout on the GDataRequestFactory to something
else than -1, which indicates the default of the created HTTPRequest
object.
- Added support for the new Contacts feed.
- ContactEntry now has a collection of ExtendedProperties
- ContactEntry now has a collection of GroupMemberships
- The ContactsQuery.CreateContactsUri returns a FULL
projection now by default. There is a new
CreateContactsUri(user,projection) to get the old behaviour,
or get other projections
- There is a new ContactsQuery.CreateGroupsUri helper