From 54589db47cb00ff5b10339f7321d23f09903d37a Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Thu, 20 Sep 2012 13:06:42 -0700 Subject: [PATCH] Update Google Analytics to start one session per app launch. --- .../apps/mytracks/MyTracksApplication.java | 1 + .../apps/mytracks/TrackDetailActivity.java | 1 + .../apps/mytracks/TrackListActivity.java | 1 + .../apps/mytracks/util/AnalyticsUtils.java | 23 ++++++++++++------- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/MyTracksApplication.java b/MyTracks/src/com/google/android/apps/mytracks/MyTracksApplication.java index 2788cd88d..9f696d7d6 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MyTracksApplication.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MyTracksApplication.java @@ -37,6 +37,7 @@ public class MyTracksApplication extends Application { ApiAdapterFactory.getApiAdapter().enableStrictMode(); } AnalyticsUtils.sendPageViews(getApplicationContext(), "/appstart"); + AnalyticsUtils.dispatch(); Intent intent = new Intent(this, RemoveTempFilesService.class); startService(intent); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index a7ef22d53..8dc192754 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -266,6 +266,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del protected void onStop() { super.onStop(); trackDataHub.stop(); + AnalyticsUtils.dispatch(); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 828d4f809..db7d0c44a 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -441,6 +441,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac protected void onStop() { super.onStop(); trackDataHub.stop(); + AnalyticsUtils.dispatch(); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/AnalyticsUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/AnalyticsUtils.java index cbf561c0a..3c5469117 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/AnalyticsUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/AnalyticsUtils.java @@ -22,16 +22,17 @@ import android.content.Context; /** * Utitlites for sending pageviews to Google Analytics. - * + * * @author Jimmy Shih */ public class AnalyticsUtils { private static final String UA = "UA-7222692-2"; private static final String PRODUCT_NAME = "android-mytracks"; - + private static GoogleAnalyticsTracker tracker; + private AnalyticsUtils() {} - + /** * Sends a page view. * @@ -39,11 +40,17 @@ public class AnalyticsUtils { * @param page the page */ public static void sendPageViews(Context context, String page) { - GoogleAnalyticsTracker tracker = GoogleAnalyticsTracker.getInstance(); - tracker.startNewSession(UA, context); - tracker.setProductVersion(PRODUCT_NAME, SystemUtils.getMyTracksVersion(context)); + if (tracker == null) { + tracker = GoogleAnalyticsTracker.getInstance(); + tracker.startNewSession(UA, context); + tracker.setProductVersion(PRODUCT_NAME, SystemUtils.getMyTracksVersion(context)); + } tracker.trackPageView(page); - tracker.dispatch(); - tracker.stopSession(); + } + + public static void dispatch() { + if (tracker != null) { + tracker.dispatch(); + } } }