change google analytics interface

Edit: wiki on how to use universal analytics:

https://github.com/ArcBees/GWTP/wiki/Universal-Analytics

---

This is a related to my post at https://groups.google.com/forum/?fromgroups#!topic/gwt-platform/0cfnA9om3DM

It is a breaking change so needs thorough review before being accepted.

I removed the binding from default module since you now have to bind userAgent at the same time.  I think it might be good to add a separate analytics gin module so that analaytics, navigation tracker & UA can be installed all at once.

I moved the GAAccount annotation to the google analytics folder because I think it's a mistake to put all annotations in the same package just because they're annotations.  GAAccount.java is much more related to GoogleAnalytics.java than it is to DefaultPlace.java

Edit: Breaking change is that the init method is removed, and googleanalytics is no longer bound by default module.  Also this code is completely untested.  I'm working on a new project which I'm only adding Universal Analytics to, so someone using the old version of analytics needs to test if everything still works.
Just checked the order is guaranteed.  I've removed the go() method.


On 10 July 2014 17:50, Richard Wallis <rdwallis@gmail.com> wrote:

> Is the order that scheduled defers are called predictable?
>
> what if a user calls:
>
> create();
> sendPageView();
>
> and those methods use a deferred to call go automatically.  Is it
> guaranteed that the create call will come before sendPageView()?
>
>
> On 10 July 2014 17:18, Richard Wallis <rdwallis@gmail.com> wrote:
>
>> I'm leaning towards the defer since I think everyone is going to forget
>> to call go().  But there is a specific part of the library that is designed
>> to track timing events.  Like page load etc.
>>
>>
>> On 10 July 2014 17:16, christiangoudreau <notifications@github.com>
>> wrote:
>>
>>> In
>>> gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java:
>>>
>>> > +import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalytics;
>>> > +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.ContentFieldBuilder;
>>> > +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.CreateOnlyFieldBuilder;
>>> > +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.EventFieldBuilder;
>>> > +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.FieldBuilder;
>>> > +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.SocialNetworkFieldBuilder;
>>> > +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.UserTimingFieldBuilder;
>>> > +
>>> > +/**
>>> > + * Support for universal Analytics see: https://github.com/ArcBees/GWTP/wiki/Universal-Analytics
>>>
>>> > + */
>>> > +public interface UniversalAnalytics extends GoogleAnalytics {
>>> > +
>>> > +    /**
>>> > +     * Create a new tracker using the user id bound to GaAccount.<br>
>>> > +     * Example: create().go();<br>
>>>
>>> It is not that important. As long as the event is tracked, delay doesn't
>>> really matters. At least, I can't see a case where having a timestamp
>>> registered to the second is important.
>>>
>>> —
>>> Reply to this email directly or view it on GitHub
>>> <https://github.com/ArcBees/GWTP/pull/521/files#r14772114>.
>>>
>>
>>
>