aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/.classpath7
-rw-r--r--main/ant.properties3
-rw-r--r--main/project/rawimages/c-geo_icon.svg119
-rw-r--r--main/res/drawable-mdpi/helper_pocketquery.pngbin0 -> 22238 bytes
-rw-r--r--main/res/layout/cacheview_logs_item.xml2
-rw-r--r--main/res/layout/main.xml12
-rw-r--r--main/res/menu/images_list_context.xml11
-rw-r--r--main/res/values-de/strings.xml24
-rw-r--r--main/res/values/strings.xml4
-rw-r--r--main/res/values/strings_not_translatable.xml5
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java4
-rw-r--r--main/src/cgeo/geocaching/Geocache.java8
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java13
-rw-r--r--main/src/cgeo/geocaching/SearchResult.java6
-rw-r--r--main/src/cgeo/geocaching/UsefulAppsActivity.java1
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractViewPagerActivity.java9
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java1
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java6
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCMap.java4
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCParser.java17
-rw-r--r--main/src/cgeo/geocaching/files/GPXImporter.java2
-rw-r--r--main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java4
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java4
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java4
-rw-r--r--main/src/cgeo/geocaching/ui/CacheListAdapter.java6
-rw-r--r--main/src/cgeo/geocaching/ui/DirectionImage.java4
-rw-r--r--main/src/cgeo/geocaching/ui/ImagesList.java10
27 files changed, 225 insertions, 65 deletions
diff --git a/main/.classpath b/main/.classpath
index 1f69d48..72adb52 100644
--- a/main/.classpath
+++ b/main/.classpath
@@ -16,15 +16,8 @@
<attribute name="ignore_optional_problems" value="true"/>
</attributes>
</classpathentry>
- <classpathentry exported="true" kind="lib" path="libs/commons-lang3-3.1.jar"/>
- <classpathentry kind="lib" path="libs/locus-api-4.0.jar"/>
- <classpathentry kind="lib" path="libs/commons-collections-3.2.1.jar"/>
- <classpathentry kind="lib" path="libs/android-support-v4.jar"/>
- <classpathentry kind="lib" path="libs/mapsforge-map-0.3.0-jar-with-dependencies.jar"/>
- <classpathentry kind="lib" path="libs/mapsforge-map-0.2.4.jar"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
- <classpathentry kind="lib" path="libs/httpclientandroidlib-1.1.1.jar"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
diff --git a/main/ant.properties b/main/ant.properties
index 8216a77..e3fa250 100644
--- a/main/ant.properties
+++ b/main/ant.properties
@@ -17,4 +17,5 @@
proguard.config=proguard.cfg
proguard.jar=support/proguard.jar
-source.dir=src;thirdparty \ No newline at end of file
+source.dir=src;thirdparty
+java.compilerargs=-Xlint \ No newline at end of file
diff --git a/main/project/rawimages/c-geo_icon.svg b/main/project/rawimages/c-geo_icon.svg
index 95fb7dd..e0cda5d 100644
--- a/main/project/rawimages/c-geo_icon.svg
+++ b/main/project/rawimages/c-geo_icon.svg
@@ -15,8 +15,8 @@
inkscape:version="0.48.4 r9939"
width="512"
height="512"
- sodipodi:docname="C:\Users\SammysHP\Desktop\t-shirt\c-geo icon_c.svg"
- inkscape:export-filename="C:\Users\SammysHP\Desktop\t-shirt\c-geo icon_d.png"
+ sodipodi:docname="c-geo_icon.svg"
+ inkscape:export-filename=""
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<metadata
@@ -27,13 +27,24 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2989">
<linearGradient
+ id="linearGradient3837">
+ <stop
+ style="stop-color:#fbf9d4;stop-opacity:1;"
+ offset="0"
+ id="stop3839" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3841" />
+ </linearGradient>
+ <linearGradient
id="linearGradient3936">
<stop
style="stop-color:#f7991d;stop-opacity:1;"
@@ -288,6 +299,81 @@
x2="471.8985"
y2="459.6875"
gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3837"
+ id="linearGradient3843"
+ x1="72.743576"
+ y1="272.0433"
+ x2="73.038445"
+ y2="196.93991"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.1012061,5.4616772)" />
+ <filter
+ id="filter4143"
+ style="color-interpolation-filters:sRGB;"
+ inkscape:label="Drop Shadow">
+ <feFlood
+ id="feFlood4145"
+ flood-opacity="0.5"
+ flood-color="rgb(255,255,255)"
+ result="flood" />
+ <feComposite
+ in2="SourceGraphic"
+ id="feComposite4147"
+ in="flood"
+ operator="in"
+ result="composite1" />
+ <feGaussianBlur
+ id="feGaussianBlur4149"
+ in="composite"
+ stdDeviation="0.7"
+ result="blur" />
+ <feOffset
+ id="feOffset4151"
+ dx="1.5"
+ dy="0"
+ result="offset" />
+ <feComposite
+ in2="offset"
+ id="feComposite4153"
+ in="SourceGraphic"
+ operator="over"
+ result="fbSourceGraphic" />
+ <feColorMatrix
+ result="fbSourceGraphicAlpha"
+ in="fbSourceGraphic"
+ values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+ id="feColorMatrix4297" />
+ <feFlood
+ id="feFlood4299"
+ flood-opacity="0.4"
+ flood-color="rgb(0,0,0)"
+ result="flood"
+ in="fbSourceGraphic" />
+ <feComposite
+ id="feComposite4301"
+ in2="fbSourceGraphic"
+ in="flood"
+ operator="in"
+ result="composite1" />
+ <feGaussianBlur
+ id="feGaussianBlur4303"
+ in="composite"
+ stdDeviation="0.8"
+ result="blur" />
+ <feOffset
+ id="feOffset4305"
+ dx="0.4"
+ dy="-2.5"
+ result="offset" />
+ <feComposite
+ id="feComposite4307"
+ in2="offset"
+ in="fbSourceGraphic"
+ operator="over"
+ result="composite2" />
+ </filter>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
@@ -304,7 +390,7 @@
showgrid="false"
inkscape:zoom="2.4058204"
inkscape:cx="271.74005"
- inkscape:cy="352.64753"
+ inkscape:cy="370.37149"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
@@ -429,4 +515,29 @@
id="path3814"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccc" />
+ <g
+ transform="matrix(1.0487801,-0.41271929,0.76389884,0.65287682,0,0)"
+ style="font-size:27.52445984px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3843);fill-opacity:1;stroke:none;filter:url(#filter4143);font-family:'232MKSDRoundMedium';-inkscape-font-specification:'232MKSDRoundMedium'"
+ id="text3833">
+ <path
+ d="m 9.8964838,251.44327 c -1.6511043,3.04006 -3.9467671,5.43501 -6.8869951,7.18485 -2.94029722,1.74985 -6.1280177,2.62477 -9.5631709,2.62477 l -0.3961345,0 c -5.1527923,0 -9.5621783,-1.81637 -13.2281713,-5.44912 -3.666016,-3.63274 -5.499018,-8.02549 -5.499012,-13.17828 l 0,-20.71088 c -6e-6,-5.15071 1.832996,-9.55959 5.499012,-13.22666 3.665993,-3.66696 8.075379,-5.50046 13.2281713,-5.50052 l 0.3961345,0 c 3.3686269,6e-5 6.52308417,0.87548 9.4633813,2.62628 2.9402281,1.75091 5.2358908,4.1131 6.8869951,7.08658 0.3971008,0.72579 0.5956718,1.51805 0.5957138,2.3768 -4.2e-5,1.3205 -0.4793342,2.46001 -1.4378777,3.41855 -0.9586246,0.95863 -2.0981402,1.43792 -3.4185501,1.43788 -1.9151893,4e-5 -3.3354259,-0.85875 -4.2607139,-2.57639 -1.71762205,-3.10451 -4.3272689,-4.6568 -7.8289485,-4.65684 l -0.3961345,0 c -2.4433557,4e-5 -4.5404473,0.87497 -6.2912813,2.62477 -1.750871,1.74988 -2.626297,3.87974 -2.626281,6.38955 l 0,20.71088 c -1.6e-5,2.44335 0.87541,4.54045 2.626281,6.29129 1.750834,1.75086 3.8479256,2.62629 6.2912813,2.62628 l 0.3961345,0 c 3.5016796,1e-5 6.11132645,-1.58554 7.8289485,-4.75664 0.925288,-1.71758 2.3455246,-2.57637 4.2607139,-2.57639 1.3869363,2e-5 2.559211,0.47881 3.5168278,1.43637 0.957535,0.95759 1.436323,2.13087 1.436366,3.51985 -4.3e-5,0.79228 -0.197606,1.55128 -0.5926902,2.27702 z"
+ style="font-size:99.08805847px"
+ id="path4310" />
+ <path
+ d="m 34.109071,221.22213 c -1.8e-5,1.58458 -0.577588,2.95492 -1.732711,4.11103 -1.155155,1.15619 -2.526001,1.73426 -4.112541,1.73423 -1.584549,3e-5 -2.954891,-0.57804 -4.11103,-1.73423 -1.156155,-1.15611 -1.734228,-2.52645 -1.734222,-4.11103 -6e-6,-1.65102 0.578067,-3.03799 1.734222,-4.16092 1.156139,-1.12284 2.526481,-1.68428 4.11103,-1.68433 1.58654,5e-5 2.957386,0.56149 4.112541,1.68433 1.155123,1.12293 1.732693,2.5099 1.732711,4.16092 z m 0,28.53681 c -1.8e-5,1.65107 -0.577588,3.03855 -1.732711,4.16244 -1.155155,1.12389 -2.526001,1.68584 -4.112541,1.68584 -1.584549,0 -2.954891,-0.56195 -4.11103,-1.68584 -1.156155,-1.12389 -1.734228,-2.51137 -1.734222,-4.16244 -6e-6,-1.58453 0.578067,-2.95487 1.734222,-4.11103 1.156139,-1.15613 2.526481,-1.73421 4.11103,-1.73422 1.58654,1e-5 2.957386,0.57809 4.112541,1.73422 1.155123,1.15616 1.732693,2.5265 1.732711,4.11103 z"
+ style="font-size:99.08805847px"
+ id="path4312" />
+ <path
+ d="m 83.876868,261.8486 c -4.3e-5,5.15277 -1.816918,9.56215 -5.450629,13.22817 -3.633788,3.66599 -8.027046,5.499 -13.179788,5.49902 l -0.396135,0 c -3.435203,-2e-5 -6.622419,-0.89158 -9.561659,-2.67467 -2.93927,-1.78312 -5.234428,-4.16144 -6.885483,-7.13496 -0.39715,-0.72575 -0.595721,-1.51802 -0.595714,-2.3768 -7e-6,-1.32247 0.478781,-2.46249 1.436366,-3.42007 0.957567,-0.95758 2.097586,-1.43636 3.420062,-1.43636 1.981666,0 3.435166,0.85879 4.360504,2.57639 1.651045,3.10455 4.259684,4.65683 7.825924,4.65684 l 0.396135,0 c 2.445321,-1e-5 4.542917,-0.87543 6.292793,-2.62628 1.749813,-1.75086 2.624735,-3.84795 2.624769,-6.29128 l 0,-2.57638 c -3.4e-5,-0.33062 -0.164334,-0.4294 -0.4929,-0.29635 -2.642944,1.38698 -5.451162,2.08046 -8.424662,2.08046 l -0.396135,0 c -5.152792,0 -9.545546,-1.833 -13.178276,-5.49901 -3.632753,-3.666 -5.449124,-8.07538 -5.449118,-13.22817 l 0,-20.11517 c -6e-6,-5.15273 1.816365,-9.56211 5.449118,-13.22817 3.63273,-3.66595 8.025484,-5.49895 13.178276,-5.49901 l 0.396135,0 c 5.152742,6e-5 9.546,1.83306 13.179788,5.49901 3.633711,3.66606 5.450586,8.07544 5.450629,13.22817 z m -9.712855,-19.51945 0,-20.11517 c -3.4e-5,-2.50982 -0.874956,-4.64017 -2.624769,-6.39107 -1.749876,-1.75081 -3.847472,-2.62623 -6.292793,-2.62628 l -0.396135,0 c -2.443356,5e-5 -4.540447,0.87547 -6.291281,2.62628 -1.750871,1.7509 -2.626297,3.88125 -2.626281,6.39107 l 0,20.11517 c -1.6e-5,2.44335 0.87541,4.54044 2.626281,6.29128 1.750834,1.75087 3.847925,2.62629 6.291281,2.62628 l 0.396135,0 c 2.445321,1e-5 4.542917,-0.87541 6.292793,-2.62628 1.749813,-1.75084 2.624735,-3.84793 2.624769,-6.29128 z"
+ style="font-size:99.08805847px"
+ id="path4314" />
+ <path
+ d="m 133.61443,232.22016 c -4e-5,1.387 -0.4627,2.55978 -1.38798,3.51834 -0.92536,0.95861 -2.08151,1.4379 -3.46845,1.43788 l -22.49197,0 c -0.39716,2e-5 -0.59573,0.16533 -0.59571,0.49592 l 0,4.95319 c -2e-5,2.44335 0.87541,4.54045 2.62628,6.29129 1.75083,1.75086 3.84792,2.62629 6.29128,2.62628 l 0.39613,0 c 3.50168,1e-5 6.11133,-1.55228 7.82895,-4.65685 0.92529,-1.71758 2.34553,-2.57637 4.26072,-2.57639 1.38693,2e-5 2.54308,0.47881 3.46844,1.43637 0.92528,0.95759 1.38794,2.09761 1.38798,3.42006 -4e-5,0.85881 -0.19861,1.65107 -0.59571,2.37681 -1.58458,2.97353 -3.84698,5.33522 -6.7872,7.08506 -2.9403,1.74985 -6.12802,2.62477 -9.56318,2.62477 l -0.39613,0 c -5.15279,0 -9.54555,-1.81637 -13.17828,-5.44912 -3.632749,-3.63274 -5.44912,-8.02549 -5.449114,-13.17828 l 0,-20.71088 c -6e-6,-5.15071 1.816365,-9.55959 5.449114,-13.22666 3.63273,-3.66696 8.02549,-5.50046 13.17828,-5.50052 l 0.39613,0 c 5.15275,6e-5 9.54601,1.83356 13.17979,5.50052 3.63371,3.66707 5.45059,8.07595 5.45063,13.22666 z m -9.71285,-5.34933 0,-4.95622 c -4e-5,-2.50981 -0.87496,-4.63967 -2.62477,-6.38955 -1.74988,-1.7498 -3.84747,-2.62473 -6.2928,-2.62477 l -0.39613,0 c -2.44336,4e-5 -4.54045,0.87497 -6.29128,2.62477 -1.75087,1.74988 -2.6263,3.87974 -2.62628,6.38955 l 0,4.95622 c -2e-5,0.33065 0.19855,0.49596 0.59571,0.49593 l 17.04286,0 c 0.39509,3e-5 0.59265,-0.16528 0.59269,-0.49593 z"
+ style="font-size:99.08805847px"
+ id="path4316" />
+ <path
+ d="m 183.35199,242.62549 c -4e-5,5.15279 -1.81692,9.54554 -5.45063,13.17828 -3.63379,3.63275 -8.02705,5.44912 -13.17979,5.44912 l -0.39613,0 c -5.1528,0 -9.54555,-1.81637 -13.17828,-5.44912 -3.63275,-3.63274 -5.44912,-8.02549 -5.44912,-13.17828 l 0,-20.71088 c 0,-5.15071 1.81637,-9.55959 5.44912,-13.22666 3.63273,-3.66696 8.02548,-5.50046 13.17828,-5.50052 l 0.39613,0 c 5.15274,6e-5 9.546,1.83356 13.17979,5.50052 3.63371,3.66707 5.45059,8.07595 5.45063,13.22666 z m -9.71286,0 0,-20.71088 c -3e-5,-2.50981 -0.87495,-4.63967 -2.62477,-6.38955 -1.74987,-1.7498 -3.84747,-2.62473 -6.29279,-2.62477 l -0.39613,0 c -2.44336,4e-5 -4.54045,0.87497 -6.29128,2.62477 -1.75088,1.74988 -2.6263,3.87974 -2.62629,6.38955 l 0,20.71088 c -1e-5,2.44335 0.87541,4.54045 2.62629,6.29129 1.75083,1.75086 3.84792,2.62629 6.29128,2.62628 l 0.39613,0 c 2.44532,1e-5 4.54292,-0.87542 6.29279,-2.62628 1.74982,-1.75084 2.62474,-3.84794 2.62477,-6.29129 z"
+ style="font-size:99.08805847px"
+ id="path4318" />
+ </g>
</svg>
diff --git a/main/res/drawable-mdpi/helper_pocketquery.png b/main/res/drawable-mdpi/helper_pocketquery.png
new file mode 100644
index 0000000..0a24d2f
--- /dev/null
+++ b/main/res/drawable-mdpi/helper_pocketquery.png
Binary files differ
diff --git a/main/res/layout/cacheview_logs_item.xml b/main/res/layout/cacheview_logs_item.xml
index 09d29b6..99822d3 100644
--- a/main/res/layout/cacheview_logs_item.xml
+++ b/main/res/layout/cacheview_logs_item.xml
@@ -100,7 +100,7 @@
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="22dip"
- android:autoLink="web"
+ android:linksClickable="true"
android:gravity="left"
android:textColor="?text_color"
android:textSize="14sp" />
diff --git a/main/res/layout/main.xml b/main/res/layout/main.xml
index e90cd37..40e3d6a 100644
--- a/main/res/layout/main.xml
+++ b/main/res/layout/main.xml
@@ -49,7 +49,7 @@
android:onClick="cgeoFindOnMap"
android:orientation="vertical" >
- <View
+ <ImageView
android:id="@+id/map"
style="@style/icon_mainscreen"
android:background="@drawable/main_live" />
@@ -65,7 +65,7 @@
android:layout_margin="4dip"
android:orientation="vertical" >
- <View
+ <ImageView
android:id="@+id/nearest"
style="@style/icon_mainscreen"
android:background="@drawable/main_nearby_disabled" />
@@ -92,7 +92,7 @@
android:layout_alignParentTop="true"
android:orientation="vertical" >
- <View
+ <ImageView
android:id="@+id/search_offline"
style="@style/icon_mainscreen"
android:background="@drawable/main_stored" />
@@ -118,7 +118,7 @@
android:onClick="cgeoSearch"
android:orientation="vertical" >
- <View
+ <ImageView
android:id="@+id/advanced_button"
style="@style/icon_mainscreen"
android:background="@drawable/main_search" />
@@ -135,7 +135,7 @@
android:onClick="cgeoPoint"
android:orientation="vertical" >
- <View
+ <ImageView
android:id="@+id/any_button"
style="@style/icon_mainscreen"
android:background="@drawable/main_any" />
@@ -152,7 +152,7 @@
android:onClick="cgeoFilter"
android:orientation="vertical" >
- <View
+ <ImageView
android:id="@+id/filter_button"
style="@style/icon_mainscreen"
android:background="@drawable/main_filter" />
diff --git a/main/res/menu/images_list_context.xml b/main/res/menu/images_list_context.xml
new file mode 100644
index 0000000..0136e19
--- /dev/null
+++ b/main/res/menu/images_list_context.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item
+ android:id="@+id/image_open_file"
+ android:title="@string/cache_image_open_file">
+ </item>
+ <item
+ android:id="@+id/image_open_browser"
+ android:title="@string/cache_image_open_browser">
+ </item>
+</menu>
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml
index cde72a8..69838db 100644
--- a/main/res/values-de/strings.xml
+++ b/main/res/values-de/strings.xml
@@ -34,6 +34,7 @@
<string name="ape">Project Ape-Cache</string>
<string name="gchq">Groundspeak HQ</string>
<string name="gps">GPS Cache Exhibit</string>
+ <string name="block">Groundspeak Block Party</string>
<string name="unknown">Unbekannter Typ</string>
<!-- cache sizes -->
@@ -73,6 +74,7 @@
<string name="log_maintenance_needed">Benötigt Wartung</string>
<string name="log_update">Geänderte Koordinaten</string>
<string name="log_archived">Archiviert</string>
+ <string name="log_unarchived">Aus dem Archiv geholt</string>
<string name="log_needs_archived">Sollte archiviert werden</string>
<string name="log_discovered">Gesehen</string>
<string name="log_reviewer">Review(er)-Anmerkung</string>
@@ -180,7 +182,10 @@
<string name="err_load_descr_failed">Laden der Cachebeschreibung fehlgeschlagen.</string>
<string name="err_location_unknown">c:geo erkennt die Position des Caches nicht.</string>
<string name="err_missing_device_name">Vor der Registrierung muss ein Name für das Endgerät festlegt werden.</string>
-
+ <string name="err_favorite_failed">Ändern des Favoriten-Status ist fehlgeschlagen.</string>
+ <string name="err_select_logimage_failed">Auswahl eines Bildes für das Log ist fehlgeschlagen.</string>
+ <string name="err_acquire_image_failed">Erstellen eines Fotos ist fehlgeschlagen.</string>
+
<string name="err_tb_display">"c:geo kann den gewünschten Trackable nicht anzeigen. Ist es wirklich einer?</string>
<string name="err_tb_details_open">c:geo konnte die Details des Trackables nicht öffnen.</string>
<string name="err_tb_forgot_saw">c:geo hat vergessen, welcher Trackable gesehen wurde.</string>
@@ -202,6 +207,7 @@
<string name="err_log_load_data_still">c:geo lädt gerade die benötigten Daten. Bitte kurz warten.</string>
<string name="err_log_failed_server">c:geo konnte Log nicht senden, weil der Server nicht antwortete.</string>
<string name="err_log_post_failed">c:geo konnte Log nicht absenden.</string>
+ <string name="err_logimage_post_failed">Es scheint dass Ihr Logfoto nicht hochgeladen werden konnte. Bitte prüfen Sie es auf Geocaching.com nach.</string>
<string name="err_search_address_forgot">c:geo hat die Adresse vergessen, die gesucht wurde.</string>
<string name="err_parse_lat">c:geo konnte den Breitengrad nicht verarbeiten.</string>
@@ -231,6 +237,8 @@
<string name="info_log_saved">Log erfolgreich gespeichert.</string>
<string name="info_log_cleared">Log wurde geleert.</string>
<string name="info_log_type_changed">Logtyp wurde verändert!</string>
+ <string name="info_select_logimage_cancelled">Foto Auswahl oder Erstellung abgebrochen.</string>
+ <string name="info_stored_image">Neues Foto gespeichert nach:</string>
<string name="info_storing_static_maps">Versuche, statische Karten zu speichern</string>
@@ -361,6 +369,7 @@
<!-- init -->
<string name="init_geocaching">Geocaching.com</string>
+ <string name="init_gc_activate">Geocaching.com auf Live-Karte und für die Suche aktivieren</string>
<string name="init_oc">opencaching.de</string>
<string name="init_oc_activate">Opencaching.de auf Live-Karte und für die Suche aktivieren</string>
<string name="init_oc_de_description">Autorisiere c:geo dazu auf opencaching.de zuzugreifen um Caches zu suchen und nach deinen Funden zu filtern.</string>
@@ -388,6 +397,7 @@
<string name="init_signature_template_datetime">Datum &amp; Zeit</string>
<string name="init_signature_template_user">Benutzer</string>
<string name="init_signature_template_number">Nummer</string>
+ <string name="init_signature_template_owner">Besitzer</string>
<string name="init_details">Cache Details</string>
<string name="init_ratingwanted">Lade Cache-Bewertung von GCvote.com</string>
<string name="init_elevationwanted">Lade Höhe des Caches</string>
@@ -530,6 +540,8 @@
<string name="cache_log_image_default_title">Bild</string>
<string name="cache_personal_note">Persönliche Notiz</string>
<string name="cache_personal_note_edit">Bearbeiten</string>
+ <string name="cache_personal_note_unstored">Cache noch nicht gespeichert</string>
+ <string name="cache_personal_note_store">Der Cache wird zunächst gespeichert, damit persönliche Notizen möglich sind.</string>
<string name="cache_description">Beschreibung</string>
<string name="cache_description_long">Ausführliche Beschreibung</string>
<string name="cache_description_table_note">Diese Beschreibung enthält Tabellenelemente, die evtl. nur auf %s korrekt angezeigt werden.</string>
@@ -602,6 +614,7 @@
<string name="cache_menu_gcc">GCC</string>
<string name="cache_menu_whereyougo">WhereYouGo</string>
<string name="cache_menu_oruxmaps">OruxMaps</string>
+ <string name="cache_menu_cachebeacon">Cache Beacon</string>
<string name="cache_status">Status</string>
<string name="cache_status_offline_log">Gespeicherter Log</string>
<string name="cache_status_found">Gefunden</string>
@@ -629,6 +642,7 @@
<string name="cache_coordinates">Koordinaten</string>
<string name="cache_coordinates_original">Ursprüngliche Koordinaten</string>
<string name="cache_spoiler_images_title">Hinweisbilder</string>
+ <string name="cache_images_title">Bilder</string>
<string name="cache_log_types">Logs</string>
<string name="cache_coordinates_no">Dieser Cache hat keine Koordinaten.</string>
<string name="cache_clear_history">Verlauf leeren</string>
@@ -841,7 +855,9 @@
<string name="helper_bluetoothgps_description">Ermöglicht ein externes GPS zu verwenden, um die Standortgenauigkeit zu erhöhen und die Batterie zu schonen.</string>
<string name="helper_barcode_title">Barcode-Scanner</string>
<string name="helper_barcode_description">Es gibt GreaseMonkey-Scripte und Webseiten, die Geocodes als Strichcode darstellen können. Bei Verwendung dieser Skripte kann c:geo über diese App den Geocode eines Caches direkt vom Bildschirm des Computers ablesen.</string>
-
+ <string name="helper_pocketquery_title">Pocket Query Creator</string>
+ <string name="helper_pocketquery_description">Ermöglicht das einfache Erzeugen und Herunterladen von Pocket Queries basierend auf der aktuellen Position oder einem auf der Karte gewählten Punkt. Setzt eine Premiummitgliedschaft bei geocaching.com voraus.</string>
+
<!-- add-ons -->
<string name="addon_missing_title">Add-On fehlt</string>
<string name="addon_download_prompt">Jetzt im Google Play Store herunterladen</string>
@@ -1052,6 +1068,8 @@
<string name="attribute_ask_owner_no">Keine Startbedingungen beim Owner erfragen</string>
<string name="attribute_unknown_yes">Unbekannte Attribute vorhanden</string>
<string name="attribute_unknown_no">Keine unbekannten Attribute</string>
+ <string name="attribute_geotour_yes">Teil einer GeoTour</string>
+ <string name="attribute_geotour_no">Kein Teil einer GeoTour</string>
<!-- next things -->
<string name="legal_note">Um die Dienste von geocaching.com nutzen zu können, müssen die <a href="http://www.geocaching.com/about/termsofuse.aspx">Groundspeak-Nutzungsbedingungen</a> (englisch) akzeptiert werden.</string>
@@ -1078,6 +1096,8 @@
<string name="tts_stop">Stoppe Sprache</string>
<string name="tts_kilometers">%s Kilometer</string>
<string name="tts_meters">%s Meter</string>
+ <string name="tts_miles">%s Meilen</string>
+ <string name="tts_feet">%s Fuß</string>
<string name="tts_oclock">%s Uhr</string>
<!-- various -->
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 13cd390..43f87ea 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -857,7 +857,9 @@
<string name="helper_bluetoothgps_description">Allows you to use an external GPS receiver to get more precise location and can spare battery of your device.</string>
<string name="helper_barcode_title">Barcode Scanner</string>
<string name="helper_barcode_description">There are Greasemonkey scripts and websites which allow to display a geocode as barcode. With this app c:geo can read that geocode directly from the screen of your computer.</string>
-
+ <string name="helper_pocketquery_title">Pocket Query Creator</string>
+ <string name="helper_pocketquery_description">Allows easy creation and download of Pocket Queries centred on your current position or a point selected from a map. Requires a premium Geocaching.com account.</string>
+
<!-- add-ons -->
<string name="addon_missing_title">Missing Add-On</string>
<string name="addon_download_prompt">Get it now from Google Play.</string>
diff --git a/main/res/values/strings_not_translatable.xml b/main/res/values/strings_not_translatable.xml
index 59b0151..8899805 100644
--- a/main/res/values/strings_not_translatable.xml
+++ b/main/res/values/strings_not_translatable.xml
@@ -96,6 +96,11 @@
<!-- changelog -->
<string name="changelog" translatable="false">\n
+ <b>Next bugfix release</b>\n
+ <b>Bugfixing:</b>\n
+ · Pictures in logs are now loaded in standard resolution like on the website to improve performance\n
+ \n
+ \n
<b>2013.05.22</b>\n
<b>Bugfixing:</b>\n
· Fixed and improved nearby search for basic members after gc.com changes\n
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 851a20c..33a6504 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -2162,7 +2162,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
// Fast preview: parse only HTML without loading any images
HtmlImageCounter imageCounter = new HtmlImageCounter();
final UnknownTagsHandler unknownTagsHandler = new UnknownTagsHandler();
- holder.text.setText(Html.fromHtml(logText, imageCounter, unknownTagsHandler));
+ holder.text.setText(Html.fromHtml(logText, imageCounter, unknownTagsHandler), TextView.BufferType.SPANNABLE);
if (imageCounter.getImageCount() > 0) {
// Complete view: parse again with loading images - if necessary ! If there are any images causing problems the user can see at least the preview
LogImageLoader loader = new LogImageLoader(holder);
@@ -2170,7 +2170,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
}
else {
- holder.text.setText(logText);
+ holder.text.setText(logText, TextView.BufferType.SPANNABLE);
}
// images
diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java
index c96acc6..ac1c9b1 100644
--- a/main/src/cgeo/geocaching/Geocache.java
+++ b/main/src/cgeo/geocaching/Geocache.java
@@ -176,7 +176,9 @@ public class Geocache implements ICache, IWaypoint {
}
/**
- * Gather missing information from another cache object.
+ * Gather missing information for new Geocache object from the stored Geocache object.
+ * This is called in the new Geocache parsed from website to set information not yet
+ * parsed.
*
* @param other
* the other version, or null if non-existent
@@ -188,6 +190,8 @@ public class Geocache implements ICache, IWaypoint {
}
updated = System.currentTimeMillis();
+ // if parsed cache is not yet detailed and stored is, the information of
+ // the parsed cache will be overwritten
if (!detailed && (other.detailed || zoomlevel < other.zoomlevel)) {
detailed = other.detailed;
detailedUpdate = other.detailedUpdate;
@@ -207,7 +211,7 @@ public class Geocache implements ICache, IWaypoint {
onWatchlist = other.onWatchlist;
logOffline = other.logOffline;
finalDefined = other.finalDefined;
- // archived is kept from the most recent data
+ archived = other.archived;
}
/*
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java
index b00567d..4393eda 100644
--- a/main/src/cgeo/geocaching/MainActivity.java
+++ b/main/src/cgeo/geocaching/MainActivity.java
@@ -36,6 +36,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
+import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
@@ -49,12 +50,12 @@ public class MainActivity extends AbstractActivity {
@InjectView(R.id.user_info) protected TextView userInfoView;
@InjectView(R.id.nav_satellites) protected TextView navSatellites;
@InjectView(R.id.filter_button_title)protected TextView filterTitle;
- @InjectView(R.id.map) protected View findOnMap;
- @InjectView(R.id.search_offline) protected View findByOffline;
- @InjectView(R.id.advanced_button) protected View advanced;
- @InjectView(R.id.any_button) protected View any;
- @InjectView(R.id.filter_button) protected View filter;
- @InjectView(R.id.nearest) protected View nearestView ;
+ @InjectView(R.id.map) protected ImageView findOnMap;
+ @InjectView(R.id.search_offline) protected ImageView findByOffline;
+ @InjectView(R.id.advanced_button) protected ImageView advanced;
+ @InjectView(R.id.any_button) protected ImageView any;
+ @InjectView(R.id.filter_button) protected ImageView filter;
+ @InjectView(R.id.nearest) protected ImageView nearestView;
@InjectView(R.id.nav_type) protected TextView navType ;
@InjectView(R.id.nav_accuracy) protected TextView navAccuracy ;
@InjectView(R.id.nav_location) protected TextView navLocation ;
diff --git a/main/src/cgeo/geocaching/SearchResult.java b/main/src/cgeo/geocaching/SearchResult.java
index b0540f2..4cef95e 100644
--- a/main/src/cgeo/geocaching/SearchResult.java
+++ b/main/src/cgeo/geocaching/SearchResult.java
@@ -114,7 +114,7 @@ public class SearchResult implements Parcelable {
public SearchResult(final Collection<Geocache> caches) {
this();
for (final Geocache cache : caches) {
- addCache(cache);
+ addAndPutInCache(cache);
}
}
@@ -199,7 +199,7 @@ public class SearchResult implements Parcelable {
(excludeMine && (cache.isOwner() || cache.isFound())) ||
(!cacheType.contains(cache));
if (!excludeCache) {
- result.addCache(cache);
+ result.addAndPutInCache(cache);
cachesForVote.add(cache);
}
}
@@ -229,7 +229,7 @@ public class SearchResult implements Parcelable {
}
/** Add the cache geocode to the search and store the cache in the CacheCache */
- public boolean addCache(final Geocache cache) {
+ public boolean addAndPutInCache(final Geocache cache) {
addGeocode(cache.getGeocode());
return cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_CACHE));
}
diff --git a/main/src/cgeo/geocaching/UsefulAppsActivity.java b/main/src/cgeo/geocaching/UsefulAppsActivity.java
index dc5ea32..d6e0ec8 100644
--- a/main/src/cgeo/geocaching/UsefulAppsActivity.java
+++ b/main/src/cgeo/geocaching/UsefulAppsActivity.java
@@ -57,6 +57,7 @@ public class UsefulAppsActivity extends AbstractActivity {
private static final HelperApp[] HELPER_APPS = {
new HelperApp(R.string.helper_calendar_title, R.string.helper_calendar_description, R.drawable.cgeo, "cgeo.calendar"),
+ new HelperApp(R.string.helper_pocketquery_title, R.string.helper_pocketquery_description, R.drawable.helper_pocketquery, "org.pquery"),
new HelperApp(R.string.helper_locus_title, R.string.helper_locus_description, R.drawable.helper_locus, "menion.android.locus"),
new HelperApp(R.string.helper_gpsstatus_title, R.string.helper_gpsstatus_description, R.drawable.helper_gpsstatus, "com.eclipsim.gpsstatus2"),
new HelperApp(R.string.helper_bluetoothgps_title, R.string.helper_bluetoothgps_description, R.drawable.helper_bluetoothgps, "googoo.android.btgps"),
diff --git a/main/src/cgeo/geocaching/activity/AbstractViewPagerActivity.java b/main/src/cgeo/geocaching/activity/AbstractViewPagerActivity.java
index 8793c1c..e0c304a 100644
--- a/main/src/cgeo/geocaching/activity/AbstractViewPagerActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractViewPagerActivity.java
@@ -14,6 +14,7 @@ import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
+import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.HashMap;
@@ -91,12 +92,12 @@ public abstract class AbstractViewPagerActivity<Page extends Enum<Page>> extends
private class ViewPagerAdapter extends PagerAdapter implements TitleProvider {
@Override
- public void destroyItem(View container, int position, Object object) {
+ public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
@Override
- public void finishUpdate(View container) {
+ public void finishUpdate(ViewGroup container) {
}
@Override
@@ -105,7 +106,7 @@ public abstract class AbstractViewPagerActivity<Page extends Enum<Page>> extends
}
@Override
- public Object instantiateItem(View container, int position) {
+ public Object instantiateItem(ViewGroup container, int position) {
final Page page = pageOrder.get(position);
PageViewCreator creator = viewCreators.get(page);
@@ -146,7 +147,7 @@ public abstract class AbstractViewPagerActivity<Page extends Enum<Page>> extends
}
@Override
- public void startUpdate(View arg0) {
+ public void startUpdate(ViewGroup arg0) {
}
@Override
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index 3b26376..a7a8f7e 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -112,7 +112,6 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
private static final int MENU_FILTER = 74;
private static final int MENU_DELETE_EVENTS = 75;
private static final int MENU_CLEAR_OFFLINE_LOGS = 76;
- private static final int MENU_EXPORT_FIELDNOTES = 77;
private static final int MSG_DONE = -1;
private static final int MSG_RESTART_GEO_AND_DIR = -2;
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
index cfbf761..82bd52a 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
@@ -30,7 +30,11 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
private static final String CACHE_URL_SHORT = "http://coord.info/";
// Double slash is used to force open in browser
private static final String CACHE_URL_LONG = "http://www.geocaching.com//seek/cache_details.aspx?wp=";
- private static final Pattern gpxZipFilePattern = Pattern.compile("\\d{7,}(_.+)?\\.zip", Pattern.CASE_INSENSITIVE);
+ /**
+ * Pocket queries downloaded from the website use a numeric prefix. The pocket query creator Android app adds a
+ * verbatim "pocketquery" prefix.
+ */
+ private static final Pattern gpxZipFilePattern = Pattern.compile("((\\d{7,})|(pocketquery))" + "(_.+)?" + "\\.zip", Pattern.CASE_INSENSITIVE);
private GCConnector() {
// singleton
diff --git a/main/src/cgeo/geocaching/connector/gc/GCMap.java b/main/src/cgeo/geocaching/connector/gc/GCMap.java
index 49f61ef..3143a06 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCMap.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCMap.java
@@ -92,7 +92,7 @@ public class GCMap {
JSONObject ownerObj = dataObject.getJSONObject("owner");
cache.setOwnerDisplayName(ownerObj.getString("text"));
- result.addCache(cache);
+ result.addAndPutInCache(cache);
}
} catch (JSONException e) {
@@ -231,7 +231,7 @@ public class GCMap {
exclude = true;
}
if (!exclude) {
- searchResult.addCache(cache);
+ searchResult.addAndPutInCache(cache);
}
}
Log.d("Retrieved " + searchResult.getCount() + " caches for tile " + tile.toString());
diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java
index 3334c42..6d9f4ed 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCParser.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java
@@ -167,13 +167,15 @@ public abstract class GCParser {
// cache direction - image
if (Settings.getLoadDirImg()) {
final String direction = BaseUtils.getMatch(row, GCConstants.PATTERN_SEARCH_DIRECTION_DISTANCE, false, 1, null, false);
- final String distance = BaseUtils.getMatch(row, GCConstants.PATTERN_SEARCH_DIRECTION_DISTANCE, false, 2, null, false);
if (direction != null) {
cache.setDirectionImg(direction);
}
- if (distance != null) {
- cache.setDistance(DistanceParser.parseDistance(distance, Settings.isUseMetricUnits()));
- }
+ }
+
+ // cache distance - estimated distance for basic members
+ final String distance = BaseUtils.getMatch(row, GCConstants.PATTERN_SEARCH_DIRECTION_DISTANCE, false, 2, null, false);
+ if (distance != null) {
+ cache.setDistance(DistanceParser.parseDistance(distance, Settings.isUseMetricUnits()));
}
// difficulty/terrain
@@ -242,7 +244,7 @@ public abstract class GCParser {
Log.w("GCParser.parseSearch: Failed to parse favorite count");
}
- searchResult.addCache(cache);
+ searchResult.addAndPutInCache(cache);
}
// total caches found
@@ -330,9 +332,11 @@ public abstract class GCParser {
static SearchResult parseCache(final String page, final CancellableHandler handler) {
final SearchResult searchResult = parseCacheFromText(page, handler);
+ // attention: parseCacheFromText already stores implicitely through searchResult.addCache
if (searchResult != null && !searchResult.getGeocodes().isEmpty()) {
final Geocache cache = searchResult.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB);
getExtraOnlineInfo(cache, page, handler);
+ // too late: it is already stored through parseCacheFromText
cache.setDetailedUpdatedNow();
if (CancellableHandler.isCancelled(handler)) {
return null;
@@ -726,7 +730,8 @@ public abstract class GCParser {
return searchResult;
}
- searchResult.addCache(cache);
+ cache.setDetailedUpdatedNow();
+ searchResult.addAndPutInCache(cache);
return searchResult;
}
diff --git a/main/src/cgeo/geocaching/files/GPXImporter.java b/main/src/cgeo/geocaching/files/GPXImporter.java
index 69d2dac..87c0ec4 100644
--- a/main/src/cgeo/geocaching/files/GPXImporter.java
+++ b/main/src/cgeo/geocaching/files/GPXImporter.java
@@ -140,7 +140,7 @@ public class GPXImporter {
final SearchResult search = new SearchResult();
for (Geocache cache : caches) {
- search.addCache(cache);
+ search.addAndPutInCache(cache);
}
if (Settings.isStoreOfflineMaps() || Settings.isStoreOfflineWpMaps()) {
diff --git a/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java b/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java
index 4868a30..21d78a0 100644
--- a/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java
+++ b/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java
@@ -73,12 +73,12 @@ public class GoogleCacheOverlay extends ItemizedOverlay<GoogleCacheOverlayItem>
@Override
public Drawable superBoundCenter(Drawable markerIn) {
- return super.boundCenter(markerIn);
+ return ItemizedOverlay.boundCenter(markerIn);
}
@Override
public Drawable superBoundCenterBottom(Drawable marker) {
- return super.boundCenterBottom(marker);
+ return ItemizedOverlay.boundCenterBottom(marker);
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java
index 0bd2484..9e14e36 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java
@@ -71,12 +71,12 @@ public class MapsforgeCacheOverlay extends ItemizedOverlay<MapsforgeCacheOverlay
@Override
public Drawable superBoundCenter(Drawable markerIn) {
- return super.boundCenter(markerIn);
+ return ItemizedOverlay.boundCenter(markerIn);
}
@Override
public Drawable superBoundCenterBottom(Drawable marker) {
- return super.boundCenterBottom(marker);
+ return ItemizedOverlay.boundCenterBottom(marker);
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java
index 581548f..30355fd 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java
@@ -71,12 +71,12 @@ public class MapsforgeCacheOverlay extends ItemizedOverlay<MapsforgeCacheOverlay
@Override
public Drawable superBoundCenter(Drawable markerIn) {
- return super.boundCenter(markerIn);
+ return ItemizedOverlay.boundCenter(markerIn);
}
@Override
public Drawable superBoundCenterBottom(Drawable marker) {
- return super.boundCenterBottom(marker);
+ return ItemizedOverlay.boundCenterBottom(marker);
}
@Override
diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
index 99ae405..7f4ceaa 100644
--- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java
+++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
@@ -18,6 +18,7 @@ import cgeo.geocaching.utils.AngleUtils;
import cgeo.geocaching.utils.Log;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import android.app.Activity;
@@ -443,10 +444,13 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> {
holder.dirImg.setVisibility(View.GONE);
holder.direction.updateAzimuth(azimuth);
holder.direction.updateHeading(cache.getDirection());
- } else {
+ } else if (StringUtils.isNotBlank(cache.getDirectionImg())) {
holder.dirImg.setImageDrawable(DirectionImage.getDrawable(cache.getDirectionImg()));
holder.dirImg.setVisibility(View.VISIBLE);
holder.direction.setVisibility(View.GONE);
+ } else {
+ holder.dirImg.setVisibility(View.GONE);
+ holder.direction.setVisibility(View.GONE);
}
holder.favorite.setText(Integer.toString(cache.getFavoritePoints()));
diff --git a/main/src/cgeo/geocaching/ui/DirectionImage.java b/main/src/cgeo/geocaching/ui/DirectionImage.java
index df7275d..9de360c 100644
--- a/main/src/cgeo/geocaching/ui/DirectionImage.java
+++ b/main/src/cgeo/geocaching/ui/DirectionImage.java
@@ -3,6 +3,8 @@ package cgeo.geocaching.ui;
import cgeo.geocaching.StoredList;
import cgeo.geocaching.network.HtmlImage;
+import org.apache.commons.lang3.StringUtils;
+
import android.graphics.drawable.BitmapDrawable;
public class DirectionImage {
@@ -16,7 +18,7 @@ public class DirectionImage {
* @return a drawable with the arrow pointing into the right direction
*/
public static BitmapDrawable getDrawable(final String directionCode) {
- return htmlImage.getDrawable("http://www.geocaching.com/images/icons/compass/" + directionCode + ".gif");
+ return StringUtils.isNotBlank(directionCode) ? htmlImage.getDrawable("http://www.geocaching.com/images/icons/compass/" + directionCode + ".gif") : null;
}
}
diff --git a/main/src/cgeo/geocaching/ui/ImagesList.java b/main/src/cgeo/geocaching/ui/ImagesList.java
index 218e16e..a0ffe84 100644
--- a/main/src/cgeo/geocaching/ui/ImagesList.java
+++ b/main/src/cgeo/geocaching/ui/ImagesList.java
@@ -39,9 +39,6 @@ import java.util.List;
public class ImagesList {
- private static final int MENU_FILE = 201;
- private static final int MENU_BROWSER = 202;
-
private BitmapDrawable currentDrawable;
private Image currentImage;
@@ -159,10 +156,9 @@ public class ImagesList {
}
public void onCreateContextMenu(ContextMenu menu, View v) {
+ activity.getMenuInflater().inflate(R.menu.images_list_context, menu);
final Resources res = activity.getResources();
menu.setHeaderTitle(res.getString(R.string.cache_image));
- menu.add(0, MENU_FILE, 0, res.getString(R.string.cache_image_open_file));
- menu.add(0, MENU_BROWSER, 0, res.getString(R.string.cache_image_open_browser));
final ImageView view = (ImageView) v;
currentDrawable = (BitmapDrawable) view.getDrawable();
currentImage = images.get(view.getId());
@@ -170,10 +166,10 @@ public class ImagesList {
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case MENU_FILE:
+ case R.id.image_open_file:
viewImageInStandardApp(currentDrawable);
return true;
- case MENU_BROWSER:
+ case R.id.image_open_browser:
if (currentImage != null) {
currentImage.openInBrowser(activity);
}