diff options
28 files changed, 279 insertions, 98 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 Binary files differnew file mode 100644 index 0000000..0a24d2f --- /dev/null +++ b/main/res/drawable-mdpi/helper_pocketquery.png 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 & 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); } diff --git a/tests/src/cgeo/geocaching/GpxFileListActivityTest.java b/tests/src/cgeo/geocaching/GpxFileListActivityTest.java index a7605d6..2923bfc 100644 --- a/tests/src/cgeo/geocaching/GpxFileListActivityTest.java +++ b/tests/src/cgeo/geocaching/GpxFileListActivityTest.java @@ -11,39 +11,60 @@ public class GpxFileListActivityTest extends ActivityInstrumentationTestCase2<Gp super(GpxFileListActivity.class); } - public void testFileNameMatches() { - assertTrue(importGpxActivity.filenameBelongsToList("1234567.gpx")); - assertTrue(importGpxActivity.filenameBelongsToList("1234567.GPX")); - assertTrue(importGpxActivity.filenameBelongsToList(".gpx")); - assertTrue(importGpxActivity.filenameBelongsToList("1234567.loc")); - assertTrue(importGpxActivity.filenameBelongsToList("1234567.LOC")); - assertTrue(importGpxActivity.filenameBelongsToList("1234567.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("1234567.ZIP")); - assertTrue(importGpxActivity.filenameBelongsToList("12345678.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("1234567_query.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("12345678_query.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("12345678_my_query_1.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("12345678_my query.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("ocde12345.zip")); - assertTrue(importGpxActivity.filenameBelongsToList("ocde12345678.zip")); - - assertFalse(importGpxActivity.filenameBelongsToList("1234567.gpy")); - assertFalse(importGpxActivity.filenameBelongsToList("1234567.agpx")); - assertFalse(importGpxActivity.filenameBelongsToList("1234567")); - assertFalse(importGpxActivity.filenameBelongsToList("")); - assertFalse(importGpxActivity.filenameBelongsToList("gpx")); - assertFalse(importGpxActivity.filenameBelongsToList("test.zip")); - assertFalse(importGpxActivity.filenameBelongsToList("zip")); - assertFalse(importGpxActivity.filenameBelongsToList(".zip")); - assertFalse(importGpxActivity.filenameBelongsToList("123456.zip")); - assertFalse(importGpxActivity.filenameBelongsToList("1234567query.zip")); - assertFalse(importGpxActivity.filenameBelongsToList("1234567_.zip")); - assertFalse(importGpxActivity.filenameBelongsToList("ocde_12345678.zip")); - assertFalse(importGpxActivity.filenameBelongsToList("acde12345678.zip")); - - assertFalse(importGpxActivity.filenameBelongsToList("1234567-wpts.gpx")); - assertFalse(importGpxActivity.filenameBelongsToList("1234567-wpts-1.gpx")); - assertFalse(importGpxActivity.filenameBelongsToList("1234567-wpts(1).gpx")); + public void testPocketQueryCreator() { + assertImport("pocketquery_name.zip"); + assertImport("pocketquery_ä.1. .zip"); + assertImport("pocketquery_name.ZIP"); + assertImport("pocketquery_name.gpx"); } + public void testDifferentFileTypes() { + assertImport("1234567.gpx"); + assertImport("1234567.GPX"); + assertImport(".gpx"); + assertImport("1234567.loc"); + assertImport("1234567.LOC"); + assertImport("1234567.zip"); + assertImport("1234567.ZIP"); + } + + public void testPocketQueries() { + assertImport("12345678.zip"); + assertImport("1234567_query.zip"); + assertImport("12345678_query.zip"); + assertImport("12345678_my_query_1.zip"); + assertImport("12345678_my query.zip"); + + denyImport("1234567.gpy"); + denyImport("1234567.agpx"); + denyImport("1234567"); + denyImport(""); + denyImport("gpx"); + denyImport("test.zip"); + denyImport("zip"); + denyImport(".zip"); + denyImport("123456.zip"); + denyImport("1234567query.zip"); + denyImport("1234567_.zip"); + + denyImport("1234567-wpts.gpx"); + denyImport("1234567-wpts-1.gpx"); + denyImport("1234567-wpts(1).gpx"); + } + + public void testOpenCachingExports() { + assertImport("ocde12345.zip"); + assertImport("ocde12345678.zip"); + + denyImport("ocde_12345678.zip"); + denyImport("acde12345678.zip"); + } + + private void assertImport(String fileName) { + assertTrue(importGpxActivity.filenameBelongsToList(fileName)); + } + + private void denyImport(String fileName) { + assertFalse(importGpxActivity.filenameBelongsToList(fileName)); + } } |
