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:
authoralexzatsepin <az@mapswithme.com>2016-12-09 20:44:29 +0300
committeralexzatsepin <az@mapswithme.com>2016-12-09 20:45:01 +0300
commitf8cc9cafe5dae989a3b74916e080fece2305d872 (patch)
tree9f4d4eb0adefe54d239fc46e7c75cc61850a5e09 /android
parente86e847c42c9e04d1daef8084ebf28e3df6cfa13 (diff)
[android] Adjusted behaviour of traffic toasts and dialogs
Diffstat (limited to 'android')
-rw-r--r--android/src/com/mapswithme/maps/MwmActivity.java8
-rw-r--r--android/src/com/mapswithme/maps/routing/NavigationController.java6
-rw-r--r--android/src/com/mapswithme/maps/traffic/TrafficManager.java16
-rw-r--r--android/src/com/mapswithme/maps/traffic/widget/TrafficButtonController.java34
4 files changed, 40 insertions, 24 deletions
diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java
index 8f64c8a8b0..7b9c8df85f 100644
--- a/android/src/com/mapswithme/maps/MwmActivity.java
+++ b/android/src/com/mapswithme/maps/MwmActivity.java
@@ -142,6 +142,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
private TrafficButton mTraffic;
@Nullable
private NavigationButtonsAnimationController mNavAnimationController;
+ @Nullable
+ private TrafficButtonController mTrafficButtonController;
private View mPositionChooser;
@@ -538,6 +540,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
mNavMyPosition = new MyPositionButton(myPosition);
ImageButton traffic = (ImageButton) frame.findViewById(R.id.traffic);
mTraffic = new TrafficButton(this, traffic);
+ mTrafficButtonController = new TrafficButtonController(mTraffic, this);
mNavAnimationController = new NavigationButtonsAnimationController(zoomIn, zoomOut, myPosition);
}
@@ -929,7 +932,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (MapFragment.nativeIsEngineCreated())
LocationHelper.INSTANCE.attach(this);
- TrafficManager.INSTANCE.attach(new TrafficButtonController(mTraffic, this));
+ if (mTrafficButtonController != null)
+ TrafficManager.INSTANCE.attach(mTrafficButtonController);
if (mNavigationController != null)
TrafficManager.INSTANCE.attach(mNavigationController);
}
@@ -941,6 +945,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
LocationHelper.INSTANCE.detach(!isFinishing());
RoutingController.get().detach();
TrafficManager.INSTANCE.detachAll();
+ if (mTrafficButtonController != null)
+ mTrafficButtonController.destroy();
}
@Override
diff --git a/android/src/com/mapswithme/maps/routing/NavigationController.java b/android/src/com/mapswithme/maps/routing/NavigationController.java
index c401792cd3..79f14b8e58 100644
--- a/android/src/com/mapswithme/maps/routing/NavigationController.java
+++ b/android/src/com/mapswithme/maps/routing/NavigationController.java
@@ -349,7 +349,7 @@ public class NavigationController implements TrafficManager.TrafficCallback
}
@Override
- public void onNoData()
+ public void onNoData(boolean notify)
{
// no op
}
@@ -361,13 +361,13 @@ public class NavigationController implements TrafficManager.TrafficCallback
}
@Override
- public void onExpiredData()
+ public void onExpiredData(boolean notify)
{
// no op
}
@Override
- public void onExpiredApp()
+ public void onExpiredApp(boolean notify)
{
// no op
}
diff --git a/android/src/com/mapswithme/maps/traffic/TrafficManager.java b/android/src/com/mapswithme/maps/traffic/TrafficManager.java
index 90b6ecb7de..149c2ef2d9 100644
--- a/android/src/com/mapswithme/maps/traffic/TrafficManager.java
+++ b/android/src/com/mapswithme/maps/traffic/TrafficManager.java
@@ -2,7 +2,6 @@ package com.mapswithme.maps.traffic;
import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
import android.util.Log;
import com.mapswithme.util.Utils;
@@ -23,6 +22,8 @@ public enum TrafficManager
private final TrafficState.StateChangeListener mStateChangeListener = new TrafficStateListener();
@TrafficState.Value
private int mState = TrafficState.DISABLED;
+ @TrafficState.Value
+ private int mLastPostedState = mState;
@NonNull
private final List<TrafficCallback> mCallbacks = new ArrayList<>();
private boolean mInitialized = false;
@@ -137,7 +138,7 @@ public enum TrafficManager
break;
case TrafficState.NO_DATA:
- callback.onNoData();
+ callback.onNoData(mLastPostedState != mState);
break;
case TrafficState.OUTDATED:
@@ -149,16 +150,17 @@ public enum TrafficManager
break;
case TrafficState.EXPIRED_DATA:
- callback.onExpiredData();
+ callback.onExpiredData(mLastPostedState != mState);
break;
case TrafficState.EXPIRED_APP:
- callback.onExpiredApp();
+ callback.onExpiredApp(mLastPostedState != mState);
break;
default:
throw new IllegalArgumentException("Unsupported traffic state: " + mState);
}
+ mLastPostedState = mState;
}
});
}
@@ -176,9 +178,9 @@ public enum TrafficManager
void onDisabled();
void onWaitingData();
void onOutdated();
- void onNoData();
void onNetworkError();
- void onExpiredData();
- void onExpiredApp();
+ void onNoData(boolean notify);
+ void onExpiredData(boolean notify);
+ void onExpiredApp(boolean notify);
}
}
diff --git a/android/src/com/mapswithme/maps/traffic/widget/TrafficButtonController.java b/android/src/com/mapswithme/maps/traffic/widget/TrafficButtonController.java
index 09653bb6a0..2896361518 100644
--- a/android/src/com/mapswithme/maps/traffic/widget/TrafficButtonController.java
+++ b/android/src/com/mapswithme/maps/traffic/widget/TrafficButtonController.java
@@ -2,8 +2,10 @@ package com.mapswithme.maps.traffic.widget;
import android.app.Activity;
import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.DialogInterface;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Toast;
@@ -16,7 +18,8 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback
private final TrafficButton mButton;
@NonNull
private final Activity mActivity;
- private boolean mErrorDlgShown;
+ @Nullable
+ private Dialog mDialog;
public TrafficButtonController(@NonNull TrafficButton button, @NonNull Activity activity)
{
@@ -50,16 +53,17 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback
}
@Override
- public void onNoData()
+ public void onNoData(boolean notify)
{
mButton.turnOn();
- Toast.makeText(mActivity, R.string.traffic_data_unavailable, Toast.LENGTH_SHORT).show();
+ if (notify)
+ Toast.makeText(mActivity, R.string.traffic_data_unavailable, Toast.LENGTH_SHORT).show();
}
@Override
public void onNetworkError()
{
- if (mErrorDlgShown)
+ if (mDialog != null && mDialog.isShowing())
return;
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity)
@@ -70,7 +74,6 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback
public void onClick(DialogInterface dialog, int which)
{
TrafficManager.INSTANCE.disable();
- mErrorDlgShown = false;
}
})
.setCancelable(true)
@@ -80,26 +83,31 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback
public void onCancel(DialogInterface dialog)
{
TrafficManager.INSTANCE.disable();
- mErrorDlgShown = false;
-
}
});
- builder.show();
- mErrorDlgShown = true;
+ mDialog = builder.show();
+ }
+
+ public void destroy()
+ {
+ if (mDialog != null && mDialog.isShowing())
+ mDialog.cancel();
}
@Override
- public void onExpiredData()
+ public void onExpiredData(boolean notify)
{
mButton.turnOn();
- Toast.makeText(mActivity, R.string.traffic_update_maps_text, Toast.LENGTH_SHORT).show();
+ if (notify)
+ Toast.makeText(mActivity, R.string.traffic_update_maps_text, Toast.LENGTH_SHORT).show();
}
@Override
- public void onExpiredApp()
+ public void onExpiredApp(boolean notify)
{
mButton.turnOn();
- Toast.makeText(mActivity, R.string.traffic_update_app, Toast.LENGTH_SHORT).show();
+ if (notify)
+ Toast.makeText(mActivity, R.string.traffic_update_app, Toast.LENGTH_SHORT).show();
}
private class OnTrafficClickListener implements View.OnClickListener