From 89810f2729d547ead451d0c657794af6a5ed7789 Mon Sep 17 00:00:00 2001 From: Dmitry Kunin Date: Mon, 10 Jun 2013 17:39:33 +0300 Subject: [PATCH] [android] Stats cleanup, API call event. --- .../maps/DownloadResourcesActivity.java | 1 + .../src/com/mapswithme/util/Statistics.java | 63 +++++++++---------- .../nvidia/devtech/NvEventQueueActivity.java | 21 +++---- 3 files changed, 42 insertions(+), 43 deletions(-) diff --git a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java index f9e0fbee7b..0c0370bd70 100644 --- a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java +++ b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java @@ -687,6 +687,7 @@ public class DownloadResourcesActivity extends MapsWithMeBaseActivity { final MWMRequest request = MWMRequest.extractFromIntent(intent, getApplicationContext()); MWMRequest.setCurrentRequest(request); + Statistics.INSTANCE.trackApiCall(request); getMwmApplication().getAppStateManager().transitionTo(SuppotedState.API_REQUEST); mMapTaskToForward = new OpenUrlTask(apiUrl); diff --git a/android/src/com/mapswithme/util/Statistics.java b/android/src/com/mapswithme/util/Statistics.java index 701140d41a..778e6029b9 100644 --- a/android/src/com/mapswithme/util/Statistics.java +++ b/android/src/com/mapswithme/util/Statistics.java @@ -1,24 +1,28 @@ package com.mapswithme.util; -import android.content.Context; +import android.app.Activity; import android.util.Log; import com.flurry.android.FlurryAgent; import com.mapswithme.maps.R; +import com.mapswithme.maps.api.MWMRequest; + +import java.util.concurrent.atomic.AtomicInteger; public enum Statistics { INSTANCE; private static String TAG_PROMO_DE = "PROMO-DE: "; + private static String TAG_API = "API: "; private Statistics() { - Log.d("Stats", "Created Statistics instance."); + Log.d(TAG, "Created Statistics instance."); FlurryAgent.setUseHttps(true); - FlurryAgent.setLogEnabled(true); - FlurryAgent.setLogLevel(Log.DEBUG); + // Do not log everything in production. + FlurryAgent.setLogLevel(Log.ERROR); } public void trackPromocodeDialogOpenedEvent() @@ -30,40 +34,35 @@ public enum Statistics { FlurryAgent.logEvent(TAG_PROMO_DE + "promo code activated"); } - - public void startActivity(Context context) + + public void trackApiCall(MWMRequest request) { - synchronized ("live") - { - if (liveActivities == 0) - { - Log.d(TAG, "NEW SESSION."); - FlurryAgent.onStartSession(context, (String)context.getResources().getText( - R.string.flurry_app_key)); - } - - ++liveActivities; - } - - Log.d(TAG, "Started activity: " + context.getClass().getSimpleName() + "."); + final String text = "used by " + request.getCallerInfo().packageName; + FlurryAgent.logEvent(TAG_API + text); } - public void stopActivity(Context context) - { - Log.d(TAG, "Stopped activity: " + context.getClass().getSimpleName() + "."); - - synchronized ("live") + public void startActivity(Activity activity) + { + if (mLiveActivities.getAndIncrement() == 0) { - --liveActivities; - if (liveActivities == 0) - { - Log.d(TAG, "FINISHED SESSION."); - FlurryAgent.onEndSession(context); - } + Log.d(TAG, "NEW SESSION."); + FlurryAgent.onStartSession(activity, activity.getResources().getString(R.string.flurry_app_key)); + } + + Log.d(TAG, "Started activity: " + activity.getClass().getSimpleName() + "."); + } + + public void stopActivity(Activity activity) + { + Log.d(TAG, "Stopped activity: " + activity.getClass().getSimpleName() + "."); + + if (mLiveActivities.decrementAndGet() == 0) + { + Log.d(TAG, "FINISHED SESSION."); + FlurryAgent.onEndSession(activity); } } - private int liveActivities = 0; + private AtomicInteger mLiveActivities = new AtomicInteger(0); private final String TAG = "Stats"; - // private FlurryAgent flurryAgent; } \ No newline at end of file diff --git a/android/src/com/nvidia/devtech/NvEventQueueActivity.java b/android/src/com/nvidia/devtech/NvEventQueueActivity.java index c51b5f90a9..423612eb1a 100644 --- a/android/src/com/nvidia/devtech/NvEventQueueActivity.java +++ b/android/src/com/nvidia/devtech/NvEventQueueActivity.java @@ -1,16 +1,5 @@ package com.nvidia.devtech; -import java.util.Arrays; -import java.util.Comparator; - -import javax.microedition.khronos.egl.EGL10; -import javax.microedition.khronos.egl.EGL11; -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.egl.EGLContext; -import javax.microedition.khronos.egl.EGLDisplay; -import javax.microedition.khronos.egl.EGLSurface; - -import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.util.Log; @@ -23,6 +12,16 @@ import com.mapswithme.maps.R; import com.mapswithme.maps.state.MapsWithMeBaseActivity; import com.mapswithme.util.Statistics; +import java.util.Arrays; +import java.util.Comparator; + +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGL11; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLContext; +import javax.microedition.khronos.egl.EGLDisplay; +import javax.microedition.khronos.egl.EGLSurface; + public abstract class NvEventQueueActivity extends MapsWithMeBaseActivity { private static final String TAG = "NvEventQueueActivity";