From 322feb1d75a6a949fdd525cc79658841baf926fc Mon Sep 17 00:00:00 2001 From: Dmitry Kunin Date: Thu, 12 Sep 2013 18:15:55 +0300 Subject: [PATCH] [yopme] Updated texts&limited redraw. --- android/YoPme/res/values/strings.xml | 1 + .../mapswithme/yopme/BackscreenActivity.java | 26 ++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/android/YoPme/res/values/strings.xml b/android/YoPme/res/values/strings.xml index 5b18335337..f484be9add 100644 --- a/android/YoPme/res/values/strings.xml +++ b/android/YoPme/res/values/strings.xml @@ -15,6 +15,7 @@ Показать на E-ink экране Частота обновления Обновление карты + Карта для данной местности не загружена. Загрузите ее в MapsWithMe на основном экране. По нажатию diff --git a/android/YoPme/src/com/mapswithme/yopme/BackscreenActivity.java b/android/YoPme/src/com/mapswithme/yopme/BackscreenActivity.java index ad5ad9d858..1d324b4e74 100644 --- a/android/YoPme/src/com/mapswithme/yopme/BackscreenActivity.java +++ b/android/YoPme/src/com/mapswithme/yopme/BackscreenActivity.java @@ -14,6 +14,7 @@ import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.os.Environment; +import android.os.Handler; import android.preference.PreferenceManager; import android.util.Log; import android.view.View; @@ -68,6 +69,18 @@ public class BackscreenActivity extends BSActivity protected MapDataProvider mMapDataProvider; private LocationManager mLocationManager; + private final Runnable mInvalidateDrawable = new Runnable() + { + @Override + public void run() + { + draw(); + } + }; + + private final Handler mHandler = new Handler(); + private final static long REDRAW_MIN_INTERVAL = 333; + @Override protected void onBSCreate() { @@ -98,6 +111,7 @@ public class BackscreenActivity extends BSActivity { super.onBSPause(); mLocationManager.removeUpdates(getLocationPendingIntent(this)); + mHandler.removeCallbacks(mInvalidateDrawable); } @Override @@ -196,7 +210,8 @@ public class BackscreenActivity extends BSActivity public void invalidate() { - draw(); + mHandler.removeCallbacks(mInvalidateDrawable); + mHandler.postDelayed(mInvalidateDrawable, REDRAW_MIN_INTERVAL); } private boolean zoomIn() @@ -358,6 +373,15 @@ public class BackscreenActivity extends BSActivity mBitmap = data.getBitmap(); mMapView.setImageBitmap(mBitmap); + if (mBitmap == null) + { + // this means we dont have this map + showWaitMessage(getString(R.string.error_map_is_absent)); + return; + } + else + hideWaitMessage(); + if (mMode == Mode.POI) { mMessage = data.getPoint().getName();