Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Zolotarev <alex@maps.me>2015-09-04 09:21:58 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 03:03:50 +0300
commit4f51e50a0d76b71477d4efcf46163213f709e416 (patch)
tree65264c098b33efa8153763a5dbe530a82f6ef29e /android
parent33e22b9e989c66050e733dc63d83d458007928cf (diff)
[android] Refactored statistics before upcoming fixes.
Diffstat (limited to 'android')
-rw-r--r--android/src/com/mapswithme/util/statistics/Event.java33
-rw-r--r--android/src/com/mapswithme/util/statistics/EventBuilder.java34
-rw-r--r--android/src/com/mapswithme/util/statistics/FlurryEngine.java57
-rw-r--r--android/src/com/mapswithme/util/statistics/NativeEventTracker.java8
-rw-r--r--android/src/com/mapswithme/util/statistics/Statistics.java152
-rw-r--r--android/src/com/mapswithme/util/statistics/StatisticsEngine.java16
6 files changed, 48 insertions, 252 deletions
diff --git a/android/src/com/mapswithme/util/statistics/Event.java b/android/src/com/mapswithme/util/statistics/Event.java
deleted file mode 100644
index 383d93add9..0000000000
--- a/android/src/com/mapswithme/util/statistics/Event.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.mapswithme.util.statistics;
-
-import com.mapswithme.util.Utils;
-
-import java.util.Map;
-
-public class Event
-{
- protected String mName;
- protected Map<String, String> mParams;
-
- public void setName(String name) { mName = name; }
-
- public void setParams(Map<String, String> params) { mParams = params; }
-
- public String getName() { return mName; }
-
- public Map<String, String> getParams() { return mParams; }
-
- public boolean hasParams()
- {
- return mParams != null && !mParams.isEmpty();
- }
-
- @Override
- public String toString()
- {
- return (getClass().getSimpleName() +
- "[name = " + getName() +
- ", params: " + Utils.mapPrettyPrint(getParams()) +
- "]");
- }
-}
diff --git a/android/src/com/mapswithme/util/statistics/EventBuilder.java b/android/src/com/mapswithme/util/statistics/EventBuilder.java
deleted file mode 100644
index dfb28c1f0f..0000000000
--- a/android/src/com/mapswithme/util/statistics/EventBuilder.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.mapswithme.util.statistics;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class EventBuilder
-{
- protected String mName;
- protected Map<String, String> mParams;
-
- public EventBuilder setName(String name)
- {
- mName = name;
- return this;
- }
-
- public EventBuilder addParam(String key, String value)
- {
- if (mParams == null)
- mParams = new HashMap<String, String>();
- mParams.put(key, value);
- return this;
- }
-
- public Event buildEvent()
- {
- final Event event = new Event();
- event.setName(mName);
- event.setParams(mParams);
- mName = "";
- mParams = null;
- return event;
- }
-}
diff --git a/android/src/com/mapswithme/util/statistics/FlurryEngine.java b/android/src/com/mapswithme/util/statistics/FlurryEngine.java
deleted file mode 100644
index 1625ff02e6..0000000000
--- a/android/src/com/mapswithme/util/statistics/FlurryEngine.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.mapswithme.util.statistics;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.provider.Settings.Secure;
-import android.util.Log;
-
-import com.flurry.android.FlurryAgent;
-import com.mapswithme.maps.BuildConfig;
-import com.mapswithme.maps.R;
-import com.mapswithme.util.Utils;
-
-public class FlurryEngine extends StatisticsEngine
-{
- private boolean mDebug;
- private final String mKey;
-
- public FlurryEngine(boolean isDebug, String key)
- {
- mKey = key;
- mDebug = isDebug;
- }
-
- @Override
- public void configure(Context context, Bundle params)
- {
- FlurryAgent.setUserId(Secure.ANDROID_ID);
- FlurryAgent.setLogLevel(mDebug ? Log.DEBUG : Log.ERROR);
- FlurryAgent.setVersionName(BuildConfig.VERSION_NAME);
- FlurryAgent.init(context, context.getString(R.string.flurry_app_key));
- }
-
- @Override
- public void onStartActivity(Activity activity)
- {
- Utils.checkNotNull(mKey);
- Utils.checkNotNull(activity);
- FlurryAgent.onStartSession(activity);
- }
-
- @Override
- public void onEndActivity(Activity activity)
- {
- FlurryAgent.onEndSession(activity);
- }
-
- @Override
- public void postEvent(Event event)
- {
- Utils.checkNotNull(event);
- if (event.hasParams())
- FlurryAgent.logEvent(event.getName(), event.getParams());
- else
- FlurryAgent.logEvent(event.getName());
- }
-}
diff --git a/android/src/com/mapswithme/util/statistics/NativeEventTracker.java b/android/src/com/mapswithme/util/statistics/NativeEventTracker.java
deleted file mode 100644
index fde5802558..0000000000
--- a/android/src/com/mapswithme/util/statistics/NativeEventTracker.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.mapswithme.util.statistics;
-
-public class NativeEventTracker
-{
- public static native boolean trackSearchQuery(String query);
-
- private NativeEventTracker() {}
-}
diff --git a/android/src/com/mapswithme/util/statistics/Statistics.java b/android/src/com/mapswithme/util/statistics/Statistics.java
index b67ca54ac1..d7c8bb174b 100644
--- a/android/src/com/mapswithme/util/statistics/Statistics.java
+++ b/android/src/com/mapswithme/util/statistics/Statistics.java
@@ -1,7 +1,10 @@
package com.mapswithme.util.statistics;
import android.app.Activity;
+import android.provider.Settings;
+import android.util.Log;
+import com.flurry.android.FlurryAgent;
import com.mapswithme.country.ActiveCountryTree;
import com.mapswithme.maps.BuildConfig;
import com.mapswithme.maps.MwmApplication;
@@ -12,8 +15,7 @@ import com.mapswithme.util.log.Logger;
import com.mapswithme.util.log.SimpleLogger;
import com.mapswithme.util.log.StubLogger;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
public enum Statistics
{
@@ -21,9 +23,6 @@ public enum Statistics
private final static String KEY_STAT_ENABLED = "StatisticsEnabled";
- private List<StatisticsEngine> mStatisticsEngines;
- private EventBuilder mEventBuilder;
-
private final Logger mLogger = BuildConfig.DEBUG ? SimpleLogger.get("MwmStatistics") : StubLogger.get();
// Statistics counters
@@ -90,190 +89,138 @@ public enum Statistics
mLogger.d("Created Statistics instance.");
}
- public void trackIfEnabled(Event event)
+ private void post(String name)
{
if (isStatisticsEnabled())
- {
- post(event);
- mLogger.d("Posted event:", event);
- }
- else
- mLogger.d("Skipped event:", event);
+ FlurryAgent.logEvent(name);
}
- private void post(Event event)
+ private void post(String name, String params[])
{
- for (StatisticsEngine engine : mStatisticsEngines)
- engine.postEvent(event);
+ if (params.length % 2 != 0)
+ mLogger.e("Even number of parameters is required: key1, value1, key2, value2, ...");
+ if (isStatisticsEnabled())
+ {
+ final HashMap<String, String> map = new HashMap<>(params.length);
+ for (int i = 0; i < params.length - 1; i += 2)
+ map.put(params[i], params[i + 1]);
+ FlurryAgent.logEvent(name, map);
+ }
}
public void trackBackscreenCall(String from)
{
- final Event event = mEventBuilder
- .setName(EventName.YOTA_BACK_CALL)
- .addParam(EventParam.FROM, from)
- .buildEvent();
-
- trackIfEnabled(event);
+ post(EventName.YOTA_BACK_CALL, new String[]{EventParam.FROM, from});
}
public void trackCountryDownload()
{
- trackIfEnabled(mEventBuilder.
- setName(EventName.COUNTRY_DOWNLOAD).
- addParam(EventParam.COUNT, String.valueOf(ActiveCountryTree.getTotalDownloadedCount())).
- buildEvent());
+ post(EventName.COUNTRY_DOWNLOAD,
+ new String[]{EventParam.COUNT, String.valueOf(ActiveCountryTree.getTotalDownloadedCount())});
}
public void trackCountryUpdate()
{
- trackIfEnabled(mEventBuilder.setName(EventName.COUNTRY_UPDATE).buildEvent());
+ post(EventName.COUNTRY_UPDATE);
}
public void trackCountryDeleted()
{
- trackIfEnabled(mEventBuilder.setName(EventName.COUNTRY_DELETE).buildEvent());
+ post(EventName.COUNTRY_DELETE);
}
public void trackSearchCategoryClicked(String category)
{
- final Event event = mEventBuilder
- .setName(EventName.SEARCH_CAT_CLICKED)
- .addParam(EventParam.CATEGORY, category)
- .buildEvent();
-
- trackIfEnabled(event);
+ post(EventName.SEARCH_CAT_CLICKED, new String[]{EventParam.CATEGORY, category});
}
public void trackDescriptionChanged()
{
- trackIfEnabled(mEventBuilder.setName(EventName.DESCRIPTION_CHANGED).buildEvent());
+ post(EventName.DESCRIPTION_CHANGED);
}
public void trackGroupCreated()
{
- trackIfEnabled(mEventBuilder.setName(EventName.GROUP_CREATED).buildEvent());
+ post(EventName.GROUP_CREATED);
}
public void trackColorChanged(String from, String to)
{
- final Event event = mEventBuilder
- .setName(EventName.COLOR_CHANGED)
- .addParam(EventParam.FROM, from)
- .addParam(EventParam.TO, to)
- .buildEvent();
-
- trackIfEnabled(event);
+ post(EventName.COLOR_CHANGED, new String[]{EventParam.FROM, from, EventParam.TO, to});
}
public void trackBookmarkCreated()
{
- final Event event = mEventBuilder
- .setName(EventName.BOOKMARK_CREATED)
- .addParam(EventParam.COUNT, String.valueOf(++mBookmarksCreated))
- .buildEvent();
-
- trackIfEnabled(event);
+ post(EventName.BOOKMARK_CREATED, new String[]{EventParam.COUNT, String.valueOf(++mBookmarksCreated)});
}
public void trackPlaceShared(String channel)
{
- final Event event = mEventBuilder
- .setName(EventName.PLACE_SHARED)
- .addParam(EventParam.CHANNEL, channel)
- .addParam(EventParam.COUNT, String.valueOf(++mSharedTimes))
- .buildEvent();
-
- trackIfEnabled(event);
+ post(EventName.PLACE_SHARED,
+ new String[]{EventParam.CHANNEL, channel, EventParam.COUNT, String.valueOf(++mSharedTimes)});
}
public void trackApiCall(ParsedMwmRequest request)
{
- if (request != null && request.getCallerInfo() != null)
- {
- //@formatter:off
- final Event event = mEventBuilder
- .setName(EventName.API_CALLED)
- .addParam(EventParam.CALLER_ID, request.getCallerInfo().packageName)
- .buildEvent();
- //@formatter:on
- trackIfEnabled(event);
- }
+ if (request != null)
+ post(EventName.API_CALLED, new String[]{EventParam.CALLER_ID,
+ request.getCallerInfo() == null ? "null" : request.getCallerInfo().packageName});
}
public void trackWifiConnected(boolean hasValidLocation)
{
- final Event event = mEventBuilder.
- setName(EventName.WIFI_CONNECTED).
- addParam(EventParam.HAD_VALID_LOCATION, String.valueOf(hasValidLocation)).
- buildEvent();
- trackIfEnabled(event);
+ post(EventName.WIFI_CONNECTED, new String[]{EventParam.HAD_VALID_LOCATION, String.valueOf(hasValidLocation)});
}
public void trackWifiConnectedAfterDelay(boolean isLocationExpired, long delayMillis)
{
- final Event event = mEventBuilder.
- setName(EventName.WIFI_CONNECTED).
- addParam(EventParam.HAD_VALID_LOCATION, String.valueOf(isLocationExpired)).
- addParam(EventParam.DELAY_MILLIS, String.valueOf(delayMillis)).
- buildEvent();
- trackIfEnabled(event);
+ post(EventName.WIFI_CONNECTED, new String[]{EventParam.HAD_VALID_LOCATION, String.valueOf(isLocationExpired),
+ EventParam.DELAY_MILLIS, String.valueOf(delayMillis)});
}
public void trackDownloadCountryNotificationShown()
{
- trackIfEnabled(mEventBuilder.setName(EventName.DOWNLOAD_COUNTRY_NOTIFICATION_SHOWN).buildEvent());
+ post(EventName.DOWNLOAD_COUNTRY_NOTIFICATION_SHOWN);
}
public void trackDownloadCountryNotificationClicked()
{
- trackIfEnabled(mEventBuilder.setName(EventName.DOWNLOAD_COUNTRY_NOTIFICATION_CLICKED).buildEvent());
+ post(EventName.DOWNLOAD_COUNTRY_NOTIFICATION_CLICKED);
}
public void trackRatingDialog(float rating)
{
- final Event event = mEventBuilder.
- setName(EventName.RATE_DIALOG_RATED).
- addParam(EventParam.RATING, String.valueOf(rating)).
- buildEvent();
- trackIfEnabled(event);
+ post(EventName.RATE_DIALOG_RATED, new String[]{EventParam.RATING, String.valueOf(rating)});
}
public void trackSimpleNamedEvent(String eventName)
{
- trackIfEnabled(mEventBuilder.setName(eventName).buildEvent());
+ post(eventName);
}
public void startActivity(Activity activity)
{
if (isStatisticsEnabled())
{
- for (StatisticsEngine engine : mStatisticsEngines)
- engine.onStartActivity(activity);
-
+ FlurryAgent.onStartSession(activity);
FbUtil.activate(activity);
}
}
private void configure()
{
- final String key = MwmApplication.get().getResources().getString(R.string.flurry_app_key);
- mStatisticsEngines = new ArrayList<>();
-
- final StatisticsEngine flurryEngine = new FlurryEngine(BuildConfig.DEBUG, key);
- flurryEngine.configure(MwmApplication.get(), null);
- mStatisticsEngines.add(flurryEngine);
-
- mEventBuilder = new EventBuilder();
+ FlurryAgent.setLogLevel(BuildConfig.DEBUG ? Log.DEBUG : Log.ERROR);
+ FlurryAgent.setVersionName(BuildConfig.VERSION_NAME);
+ FlurryAgent.setCaptureUncaughtExceptions(false);
+ android.content.Context context = MwmApplication.get();
+ FlurryAgent.init(context, context.getString(R.string.flurry_app_key));
}
public void stopActivity(Activity activity)
{
if (isStatisticsEnabled())
{
- for (StatisticsEngine engine : mStatisticsEngines)
- engine.onEndActivity(activity);
-
+ FlurryAgent.onEndSession(activity);
FbUtil.deactivate(activity);
}
}
@@ -287,12 +234,9 @@ public enum Statistics
{
final MwmApplication theApp = MwmApplication.get();
theApp.nativeSetBoolean(KEY_STAT_ENABLED, isEnabled);
- // We track if user turned on/off
- // statistics to understand data better.
- post(mEventBuilder
- .setName(EventName.STATISTICS_STATUS_CHANGED + " " + theApp.getFirstInstallFlavor())
- .addParam(EventParam.ENABLED, String.valueOf(isEnabled))
- .buildEvent());
+ // We track if user turned on/off statistics to understand data better.
+ post(EventName.STATISTICS_STATUS_CHANGED + " " + theApp.getFirstInstallFlavor(),
+ new String[]{EventParam.ENABLED, String.valueOf(isEnabled)});
if (isEnabled)
org.alohalytics.Statistics.enable(theApp);
diff --git a/android/src/com/mapswithme/util/statistics/StatisticsEngine.java b/android/src/com/mapswithme/util/statistics/StatisticsEngine.java
deleted file mode 100644
index 624da25cc6..0000000000
--- a/android/src/com/mapswithme/util/statistics/StatisticsEngine.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mapswithme.util.statistics;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-
-public abstract class StatisticsEngine
-{
- public void configure(Context context, Bundle params) {}
-
- abstract public void onStartActivity(Activity activity);
-
- abstract public void onEndActivity(Activity activity);
-
- abstract public void postEvent(Event event);
-}