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:
authorDmitry Donskoy <donskdmitry@mail.ru>2018-07-04 13:53:28 +0300
committerVlad Mihaylenko <vxmihaylenko@gmail.com>2018-07-20 14:51:41 +0300
commit7a72e3c66c895f68ff631059f7fecd42c339af02 (patch)
tree88ec904c28d7cfaede366826364c4ffdfda405c1 /android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java
parentc9649224f9777c5ad206f3aa95e3bfa723deff73 (diff)
[android] Added stats for maplayers, refactored traffic state types
Diffstat (limited to 'android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java')
-rw-r--r--android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java153
1 files changed, 120 insertions, 33 deletions
diff --git a/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java b/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java
index 8f24f16d66..c1926b3d07 100644
--- a/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java
+++ b/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java
@@ -4,8 +4,11 @@ import android.support.annotation.IntDef;
import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
+import com.mapswithme.util.statistics.Statistics;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.List;
final class TrafficState
{
@@ -24,14 +27,16 @@ final class TrafficState
// These values should correspond to
// TrafficManager::TrafficState enum (from map/traffic_manager.hpp)
- static final int DISABLED = 0;
- static final int ENABLED = 1;
- static final int WAITING_DATA = 2;
- static final int OUTDATED = 3;
- static final int NO_DATA = 4;
- static final int NETWORK_ERROR = 5;
- static final int EXPIRED_DATA = 6;
- static final int EXPIRED_APP = 7;
+ private static final int DISABLED = 0;
+ private static final int ENABLED = 1;
+ private static final int WAITING_DATA = 2;
+ private static final int OUTDATED = 3;
+ private static final int NO_DATA = 4;
+ private static final int NETWORK_ERROR = 5;
+ private static final int EXPIRED_DATA = 6;
+ private static final int EXPIRED_APP = 7;
+
+ private TrafficState() {}
@MainThread
static native void nativeSetListener(@NonNull StateChangeListener listener);
@@ -40,38 +45,120 @@ final class TrafficState
static native void nativeDisable();
static native boolean nativeIsEnabled();
- private TrafficState() {}
-
- static String nameOf(int state)
+ public enum Type
{
- switch (state)
+ DISABLED
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onDisabled();
+ }
+ },
+ ENABLED(Statistics.ParamValue.SUCCESS)
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onEnabled();
+ }
+ },
+
+ WAITING_DATA
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onWaitingData();
+ }
+ },
+ OUTDATED
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onOutdated();
+ }
+ },
+ NO_DATA(Statistics.ParamValue.UNAVAILABLE)
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onNoData(lastPostedState != NO_DATA);
+ }
+ },
+ NETWORK_ERROR(Statistics.ParamValue.ERROR)
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onNetworkError();
+ }
+ },
+ EXPIRED_DATA
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onExpiredData(lastPostedState != EXPIRED_DATA);
+ }
+ },
+ EXPIRED_APP
+ {
+ @Override
+ protected void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState)
+ {
+ param.onExpiredApp(lastPostedState != EXPIRED_APP);
+ }
+ };
+
+ @NonNull
+ private final String mAnalyticsParamName;
+
+ Type()
{
- case DISABLED:
- return "DISABLED";
-
- case ENABLED:
- return "ENABLED";
-
- case WAITING_DATA:
- return "WAITING_DATA";
+ mAnalyticsParamName = name();
+ }
- case OUTDATED:
- return "OUTDATED";
+ Type(@NonNull String analyticsParamName)
+ {
+ mAnalyticsParamName = analyticsParamName;
+ }
- case NO_DATA:
- return "NO_DATA";
+ @NonNull
+ private String getAnalyticsParamName()
+ {
+ return mAnalyticsParamName;
+ }
- case NETWORK_ERROR:
- return "NETWORK_ERROR";
+ public void onReceived(@NonNull List<TrafficManager.TrafficCallback> trafficCallbacks,
+ @NonNull Type lastPostedState)
+ {
+ for (TrafficManager.TrafficCallback callback : trafficCallbacks)
+ {
+ onReceivedInternal(callback, lastPostedState);
+ Statistics.INSTANCE.trackTrafficEvent(getAnalyticsParamName());
+ }
+ }
- case EXPIRED_DATA:
- return "EXPIRED_DATA";
+ protected abstract void onReceivedInternal(@NonNull TrafficManager.TrafficCallback param,
+ @NonNull Type lastPostedState);
+ }
- case EXPIRED_APP:
- return "EXPIRED_APP";
+ public static Type getType(int index)
+ {
+ if (index < 0 || index >= Type.values().length)
+ throw new IllegalArgumentException("Not found value for index = " + index);
- default:
- return "Unknown: " + state;
- }
+ return Type.values()[index];
}
}