aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-09-01 09:02:22 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-09-01 09:02:22 +0200
commitb7c8869892c983cdda6bf8bceef686dff3f15630 (patch)
tree537d7b8193aaf7b0042aaaa0bce3f8381e71e565 /main
parent4f564dd08f8226f7fbcc75b3408fc147a7f97c63 (diff)
downloadcgeo-b7c8869892c983cdda6bf8bceef686dff3f15630.zip
cgeo-b7c8869892c983cdda6bf8bceef686dff3f15630.tar.gz
cgeo-b7c8869892c983cdda6bf8bceef686dff3f15630.tar.bz2
fix #3218: static map in details should be bigger
Diffstat (limited to 'main')
-rw-r--r--main/res/layout/cachedetail_details_page.xml2
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java3
-rw-r--r--main/src/cgeo/geocaching/StaticMapsProvider.java24
3 files changed, 16 insertions, 13 deletions
diff --git a/main/res/layout/cachedetail_details_page.xml b/main/res/layout/cachedetail_details_page.xml
index 484385e..e735699 100644
--- a/main/res/layout/cachedetail_details_page.xml
+++ b/main/res/layout/cachedetail_details_page.xml
@@ -261,7 +261,7 @@
<ImageView
android:id="@+id/map_preview"
android:layout_width="fill_parent"
- android:layout_height="80dip"
+ android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:onClick="showNavigationMenu"
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 1fc20ec..4b34f8d 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -1614,7 +1614,8 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return;
}
- ((ImageView) view.findViewById(R.id.map_preview)).setImageDrawable(image);
+ final ImageView imageView = (ImageView) view.findViewById(R.id.map_preview);
+ imageView.setImageDrawable(image);
view.findViewById(R.id.map_preview_box).setVisibility(View.VISIBLE);
} catch (final Exception e) {
Log.e("CacheDetailActivity.PreviewMapTask", e);
diff --git a/main/src/cgeo/geocaching/StaticMapsProvider.java b/main/src/cgeo/geocaching/StaticMapsProvider.java
index eb59bcb..cf279c0 100644
--- a/main/src/cgeo/geocaching/StaticMapsProvider.java
+++ b/main/src/cgeo/geocaching/StaticMapsProvider.java
@@ -14,13 +14,9 @@ import ch.boye.httpclientandroidlib.HttpResponse;
import org.apache.commons.lang3.StringUtils;
-import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Point;
-import android.util.DisplayMetrics;
-import android.view.Display;
-import android.view.WindowManager;
import java.io.File;
import java.util.concurrent.TimeUnit;
@@ -41,6 +37,11 @@ public final class StaticMapsProvider {
/** ThreadPool restricting this to 1 Thread. **/
private static final BlockingThreadPool POOL = new BlockingThreadPool(1, Thread.MIN_PRIORITY);
+ /**
+ * max size in free API version: https://developers.google.com/maps/documentation/staticmaps/#Imagesizes
+ */
+ private static final int GOOGLE_MAPS_MAX_SIZE = 640;
+
private StaticMapsProvider() {
// utility class
}
@@ -61,7 +62,7 @@ public final class StaticMapsProvider {
final Parameters params = new Parameters(
"center", latlonMap,
"zoom", String.valueOf(zoom),
- "size", String.valueOf(width) + 'x' + String.valueOf(height),
+ "size", String.valueOf(limitSize(width)) + 'x' + String.valueOf(limitSize(height)),
"maptype", mapType,
"markers", "icon:" + markerUrl + '|' + shadow + latlonMap,
"sensor", "false");
@@ -88,6 +89,10 @@ public final class StaticMapsProvider {
}
}
+ private static int limitSize(final int imageSize) {
+ return Math.min(imageSize, GOOGLE_MAPS_MAX_SIZE);
+ }
+
public static void downloadMaps(final Geocache cache) {
if ((!Settings.isStoreOfflineMaps() && !Settings.isStoreOfflineWpMaps()) || StringUtils.isBlank(cache.getGeocode())) {
return;
@@ -172,13 +177,10 @@ public final class StaticMapsProvider {
public static void storeCachePreviewMap(final Geocache cache) {
final String latlonMap = cache.getCoords().format(Format.LAT_LON_DECDEGREE_COMMA);
- final Display display = ((WindowManager) cgeoapplication.getInstance().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
- DisplayMetrics metrics = new DisplayMetrics();
- display.getMetrics(metrics);
- final int width = metrics.widthPixels;
- final int height = (int) (110 * metrics.density);
+ final Point displaySize = Compatibility.getDisplaySize();
+ final int minSize = Math.min(displaySize.x, displaySize.y);
final String markerUrl = MARKERS_URL + "my_location_mdpi.png";
- downloadMap(cache.getGeocode(), 15, ROADMAP, markerUrl, PREFIX_PREVIEW, "shadow:false|", latlonMap, width, height, null);
+ downloadMap(cache.getGeocode(), 15, ROADMAP, markerUrl, PREFIX_PREVIEW, "shadow:false|", latlonMap, minSize, minSize, null);
}
private static int guessMaxDisplaySide() {