From 5b92d27a9b65315d52afa1f316bb3a13af92eef1 Mon Sep 17 00:00:00 2001 From: Dmitry Donskoy Date: Mon, 6 Aug 2018 12:07:59 +0300 Subject: [PATCH] [android] Fixed multiple stat calls --- .../maps/maplayer/traffic/TrafficManager.java | 31 +++++++------- .../maps/maplayer/traffic/TrafficState.java | 40 +++++++------------ .../widget/TrafficButtonController.java | 15 +++---- .../maps/routing/NavigationController.java | 6 +-- 4 files changed, 41 insertions(+), 51 deletions(-) diff --git a/android/src/com/mapswithme/maps/maplayer/traffic/TrafficManager.java b/android/src/com/mapswithme/maps/maplayer/traffic/TrafficManager.java index 3bb358211f..fd0de9ed79 100644 --- a/android/src/com/mapswithme/maps/maplayer/traffic/TrafficManager.java +++ b/android/src/com/mapswithme/maps/maplayer/traffic/TrafficManager.java @@ -13,7 +13,7 @@ import java.util.List; public enum TrafficManager { INSTANCE; - private final String mTag = TrafficManager.class.getSimpleName(); + private final static String TAG = TrafficManager.class.getSimpleName(); @NonNull private final Logger mLogger = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.TRAFFIC); @@ -30,7 +30,7 @@ public enum TrafficManager public void initialize() { - mLogger.d(mTag, "Initialization of traffic manager and setting the listener for traffic state changes"); + mLogger.d(TAG, "Initialization of traffic manager and setting the listener for traffic state changes"); TrafficState.nativeSetListener(mStateChangeListener); mInitialized = true; } @@ -47,7 +47,7 @@ public enum TrafficManager private void enable() { - mLogger.d(mTag, "Enable traffic"); + mLogger.d(TAG, "Enable traffic"); TrafficState.nativeEnable(); } @@ -55,7 +55,7 @@ public enum TrafficManager { checkInitialization(); - mLogger.d(mTag, "Disable traffic"); + mLogger.d(TAG, "Disable traffic"); TrafficState.nativeDisable(); } @@ -74,7 +74,7 @@ public enum TrafficManager throw new IllegalStateException("A callback '" + callback + "' is already attached. Check that the 'detachAll' method was called."); } - mLogger.d(mTag, "Attach callback '" + callback + "'"); + mLogger.d(TAG, "Attach callback '" + callback + "'"); mCallbacks.add(callback); postPendingState(); } @@ -90,13 +90,13 @@ public enum TrafficManager if (mCallbacks.isEmpty()) { - mLogger.w(mTag, "There are no attached callbacks. Invoke the 'detachAll' method " + - "only when it's really needed!", new Throwable()); + mLogger.w(TAG, "There are no attached callbacks. Invoke the 'detachAll' method " + + "only when it's really needed!", new Throwable()); return; } for (TrafficCallback callback : mCallbacks) - mLogger.d(mTag, "Detach callback '" + callback + "'"); + mLogger.d(TAG, "Detach callback '" + callback + "'"); mCallbacks.clear(); } @@ -126,11 +126,14 @@ public enum TrafficManager public void onTrafficStateChanged(int index) { TrafficState newTrafficState = TrafficState.values()[index]; - mLogger.d(mTag, "onTrafficStateChanged current state = " + mState - + " new value = " + newTrafficState); + mLogger.d(TAG, "onTrafficStateChanged current state = " + mState + + " new value = " + newTrafficState); + + if (mState == newTrafficState) + return; - newTrafficState.activate(mCallbacks, mState); mState = newTrafficState; + mState.activate(mCallbacks); } } @@ -141,8 +144,8 @@ public enum TrafficManager void onWaitingData(); void onOutdated(); void onNetworkError(); - void onNoData(boolean notify); - void onExpiredData(boolean notify); - void onExpiredApp(boolean notify); + void onNoData(); + void onExpiredData(); + void onExpiredApp(); } } diff --git a/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java b/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java index afafbcbb1f..52458121b9 100644 --- a/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java +++ b/android/src/com/mapswithme/maps/maplayer/traffic/TrafficState.java @@ -12,8 +12,7 @@ enum TrafficState DISABLED { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { callback.onDisabled(); } @@ -22,8 +21,7 @@ enum TrafficState ENABLED(Statistics.ParamValue.SUCCESS) { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { callback.onEnabled(); } @@ -32,8 +30,7 @@ enum TrafficState WAITING_DATA { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { callback.onWaitingData(); } @@ -42,8 +39,7 @@ enum TrafficState OUTDATED { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { callback.onOutdated(); } @@ -52,18 +48,16 @@ enum TrafficState NO_DATA(Statistics.ParamValue.UNAVAILABLE) { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { - callback.onNoData(lastPostedState != NO_DATA); + callback.onNoData(); } }, NETWORK_ERROR(Statistics.EventParam.ERROR) { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { callback.onNetworkError(); } @@ -72,20 +66,18 @@ enum TrafficState EXPIRED_DATA { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { - callback.onExpiredData(lastPostedState != EXPIRED_DATA); + callback.onExpiredData(); } }, EXPIRED_APP { @Override - protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState) + protected void activateInternal(@NonNull TrafficManager.TrafficCallback callback) { - callback.onExpiredApp(lastPostedState != EXPIRED_APP); + callback.onExpiredApp(); } }; @@ -108,18 +100,16 @@ enum TrafficState return mAnalyticsParamName; } - public void activate(@NonNull List trafficCallbacks, - @NonNull TrafficState lastPostedState) + public void activate(@NonNull List trafficCallbacks) { for (TrafficManager.TrafficCallback callback : trafficCallbacks) { - activateInternal(callback, lastPostedState); - Statistics.INSTANCE.trackTrafficEvent(getAnalyticsParamName()); + activateInternal(callback); } + Statistics.INSTANCE.trackTrafficEvent(getAnalyticsParamName()); } - protected abstract void activateInternal(@NonNull TrafficManager.TrafficCallback callback, - @NonNull TrafficState lastPostedState); + protected abstract void activateInternal(@NonNull TrafficManager.TrafficCallback callback); interface StateChangeListener { diff --git a/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java b/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java index 540c81ca97..e032ab5b74 100644 --- a/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java +++ b/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java @@ -107,11 +107,10 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback, } @Override - public void onNoData(boolean notify) + public void onNoData() { turnOn(); - if (notify) - Toast.makeText(mActivity, R.string.traffic_data_unavailable, Toast.LENGTH_SHORT).show(); + Toast.makeText(mActivity, R.string.traffic_data_unavailable, Toast.LENGTH_SHORT).show(); } @Override @@ -149,18 +148,16 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback, } @Override - public void onExpiredData(boolean notify) + public void onExpiredData() { turnOn(); - if (notify) - Toast.makeText(mActivity, R.string.traffic_update_maps_text, Toast.LENGTH_SHORT).show(); + Toast.makeText(mActivity, R.string.traffic_update_maps_text, Toast.LENGTH_SHORT).show(); } @Override - public void onExpiredApp(boolean notify) + public void onExpiredApp() { turnOn(); - if (notify) - Toast.makeText(mActivity, R.string.traffic_update_app, Toast.LENGTH_SHORT).show(); + Toast.makeText(mActivity, R.string.traffic_update_app, Toast.LENGTH_SHORT).show(); } } diff --git a/android/src/com/mapswithme/maps/routing/NavigationController.java b/android/src/com/mapswithme/maps/routing/NavigationController.java index 9a717fbb5e..1a9f328c41 100644 --- a/android/src/com/mapswithme/maps/routing/NavigationController.java +++ b/android/src/com/mapswithme/maps/routing/NavigationController.java @@ -391,7 +391,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Vie } @Override - public void onNoData(boolean notify) + public void onNoData() { // no op } @@ -403,13 +403,13 @@ public class NavigationController implements TrafficManager.TrafficCallback, Vie } @Override - public void onExpiredData(boolean notify) + public void onExpiredData() { // no op } @Override - public void onExpiredApp(boolean notify) + public void onExpiredApp() { // no op }