diff options
77 files changed, 291 insertions, 224 deletions
diff --git a/proguard.cfg b/proguard.cfg index e26579c..ab64d37 100644 --- a/proguard.cfg +++ b/proguard.cfg @@ -1,9 +1,8 @@ --optimizationpasses 5 +-optimizationpasses 2 -dontpreverify -dontobfuscate -allowaccessmodification -optimizations !code/simplification/arithmetic,!code/allocation/variable --verbose -dontwarn org.mapsforge.android.maps.Test* diff --git a/res/drawable-hdpi/actionbar_background_tile.png b/res/drawable-hdpi/actionbar_background_tile.png Binary files differdeleted file mode 100644 index d30c591..0000000 --- a/res/drawable-hdpi/actionbar_background_tile.png +++ /dev/null diff --git a/res/drawable-hdpi/ic_menu_barcode.png b/res/drawable-hdpi/ic_menu_barcode.png Binary files differnew file mode 100644 index 0000000..747e92e --- /dev/null +++ b/res/drawable-hdpi/ic_menu_barcode.png diff --git a/res/drawable-hdpi/ic_menu_circle.png b/res/drawable-hdpi/ic_menu_circle.png Binary files differnew file mode 100644 index 0000000..de9126d --- /dev/null +++ b/res/drawable-hdpi/ic_menu_circle.png diff --git a/res/drawable-hdpi/ic_menu_clear_playlist.png b/res/drawable-hdpi/ic_menu_clear_playlist.png Binary files differnew file mode 100644 index 0000000..0c3e06d --- /dev/null +++ b/res/drawable-hdpi/ic_menu_clear_playlist.png diff --git a/res/drawable-hdpi/ic_menu_filter.png b/res/drawable-hdpi/ic_menu_filter.png Binary files differnew file mode 100644 index 0000000..365c92d --- /dev/null +++ b/res/drawable-hdpi/ic_menu_filter.png diff --git a/res/drawable-hdpi/ic_menu_globe.png b/res/drawable-hdpi/ic_menu_globe.png Binary files differnew file mode 100644 index 0000000..1c870fe --- /dev/null +++ b/res/drawable-hdpi/ic_menu_globe.png diff --git a/res/drawable-hdpi/ic_menu_mark.png b/res/drawable-hdpi/ic_menu_mark.png Binary files differnew file mode 100644 index 0000000..724d787 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_mark.png diff --git a/res/drawable-hdpi/ic_menu_notifications.png b/res/drawable-hdpi/ic_menu_notifications.png Binary files differnew file mode 100644 index 0000000..fb63937 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_notifications.png diff --git a/res/drawable-hdpi/ic_menu_shopping.png b/res/drawable-hdpi/ic_menu_shopping.png Binary files differnew file mode 100644 index 0000000..cd63cb5 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_shopping.png diff --git a/res/drawable-ldpi/actionbar_background_tile.png b/res/drawable-ldpi/actionbar_background_tile.png Binary files differdeleted file mode 100644 index d7f4732..0000000 --- a/res/drawable-ldpi/actionbar_background_tile.png +++ /dev/null diff --git a/res/drawable-ldpi/ic_menu_barcode.png b/res/drawable-ldpi/ic_menu_barcode.png Binary files differnew file mode 100644 index 0000000..3e1e591 --- /dev/null +++ b/res/drawable-ldpi/ic_menu_barcode.png diff --git a/res/drawable-ldpi/ic_menu_clear_playlist.png b/res/drawable-ldpi/ic_menu_clear_playlist.png Binary files differnew file mode 100644 index 0000000..f3e6b51 --- /dev/null +++ b/res/drawable-ldpi/ic_menu_clear_playlist.png diff --git a/res/drawable-ldpi/ic_menu_filter.png b/res/drawable-ldpi/ic_menu_filter.png Binary files differnew file mode 100644 index 0000000..11b728d --- /dev/null +++ b/res/drawable-ldpi/ic_menu_filter.png diff --git a/res/drawable-ldpi/ic_menu_globe.png b/res/drawable-ldpi/ic_menu_globe.png Binary files differnew file mode 100644 index 0000000..b096a9e --- /dev/null +++ b/res/drawable-ldpi/ic_menu_globe.png diff --git a/res/drawable-ldpi/ic_menu_mark.png b/res/drawable-ldpi/ic_menu_mark.png Binary files differnew file mode 100644 index 0000000..19bcd03 --- /dev/null +++ b/res/drawable-ldpi/ic_menu_mark.png diff --git a/res/drawable-ldpi/ic_menu_more.png b/res/drawable-ldpi/ic_menu_more.png Binary files differnew file mode 100644 index 0000000..62983c6 --- /dev/null +++ b/res/drawable-ldpi/ic_menu_more.png diff --git a/res/drawable-ldpi/ic_menu_notifications.png b/res/drawable-ldpi/ic_menu_notifications.png Binary files differnew file mode 100644 index 0000000..3a5ebb9 --- /dev/null +++ b/res/drawable-ldpi/ic_menu_notifications.png diff --git a/res/drawable-ldpi/ic_menu_shopping.png b/res/drawable-ldpi/ic_menu_shopping.png Binary files differnew file mode 100644 index 0000000..e881d50 --- /dev/null +++ b/res/drawable-ldpi/ic_menu_shopping.png diff --git a/res/drawable-mdpi/actionbar_background_tile.png b/res/drawable-mdpi/actionbar_background_tile.png Binary files differdeleted file mode 100644 index ba0b08b..0000000 --- a/res/drawable-mdpi/actionbar_background_tile.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_cgeo.png b/res/drawable-mdpi/actionbar_cgeo.png Binary files differdeleted file mode 100644 index a89abf8..0000000 --- a/res/drawable-mdpi/actionbar_cgeo.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_compass.png b/res/drawable-mdpi/actionbar_compass.png Binary files differdeleted file mode 100644 index 2f5c22b..0000000 --- a/res/drawable-mdpi/actionbar_compass.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_home.png b/res/drawable-mdpi/actionbar_home.png Binary files differdeleted file mode 100644 index e109f0a..0000000 --- a/res/drawable-mdpi/actionbar_home.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_manual.png b/res/drawable-mdpi/actionbar_manual.png Binary files differdeleted file mode 100644 index a71acb3..0000000 --- a/res/drawable-mdpi/actionbar_manual.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_map.png b/res/drawable-mdpi/actionbar_map.png Binary files differdeleted file mode 100644 index 80287d7..0000000 --- a/res/drawable-mdpi/actionbar_map.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_mylocation_off.png b/res/drawable-mdpi/actionbar_mylocation_off.png Binary files differdeleted file mode 100644 index 1cdeeba..0000000 --- a/res/drawable-mdpi/actionbar_mylocation_off.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_mylocation_on.png b/res/drawable-mdpi/actionbar_mylocation_on.png Binary files differdeleted file mode 100644 index 1d1b625..0000000 --- a/res/drawable-mdpi/actionbar_mylocation_on.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_search.png b/res/drawable-mdpi/actionbar_search.png Binary files differdeleted file mode 100644 index cce7789..0000000 --- a/res/drawable-mdpi/actionbar_search.png +++ /dev/null diff --git a/res/drawable-mdpi/actionbar_share.png b/res/drawable-mdpi/actionbar_share.png Binary files differdeleted file mode 100644 index f323732..0000000 --- a/res/drawable-mdpi/actionbar_share.png +++ /dev/null diff --git a/res/drawable-mdpi/cgeo.png b/res/drawable-mdpi/cgeo.png Binary files differdeleted file mode 100644 index 126feb3..0000000 --- a/res/drawable-mdpi/cgeo.png +++ /dev/null diff --git a/res/drawable-mdpi/hw_menu.png b/res/drawable-mdpi/hw_menu.png Binary files differdeleted file mode 100644 index ba7dee9..0000000 --- a/res/drawable-mdpi/hw_menu.png +++ /dev/null diff --git a/res/drawable-mdpi/main_about.png b/res/drawable-mdpi/main_about.png Binary files differdeleted file mode 100644 index 61abcac..0000000 --- a/res/drawable-mdpi/main_about.png +++ /dev/null diff --git a/res/drawable-mdpi/main_any_default.png b/res/drawable-mdpi/main_any_default.png Binary files differdeleted file mode 100644 index cea3288..0000000 --- a/res/drawable-mdpi/main_any_default.png +++ /dev/null diff --git a/res/drawable-mdpi/main_filter_default.png b/res/drawable-mdpi/main_filter_default.png Binary files differdeleted file mode 100644 index 996d15b..0000000 --- a/res/drawable-mdpi/main_filter_default.png +++ /dev/null diff --git a/res/drawable-mdpi/main_live_default.png b/res/drawable-mdpi/main_live_default.png Binary files differdeleted file mode 100644 index f2cc262..0000000 --- a/res/drawable-mdpi/main_live_default.png +++ /dev/null diff --git a/res/drawable-mdpi/main_nearby_default.png b/res/drawable-mdpi/main_nearby_default.png Binary files differdeleted file mode 100644 index 9166267..0000000 --- a/res/drawable-mdpi/main_nearby_default.png +++ /dev/null diff --git a/res/drawable-mdpi/main_nearby_disabled.png b/res/drawable-mdpi/main_nearby_disabled.png Binary files differdeleted file mode 100644 index ab1227b..0000000 --- a/res/drawable-mdpi/main_nearby_disabled.png +++ /dev/null diff --git a/res/drawable-mdpi/main_search_default.png b/res/drawable-mdpi/main_search_default.png Binary files differdeleted file mode 100644 index c3c1fdc..0000000 --- a/res/drawable-mdpi/main_search_default.png +++ /dev/null diff --git a/res/drawable-mdpi/main_settings.png b/res/drawable-mdpi/main_settings.png Binary files differdeleted file mode 100644 index a0a624e..0000000 --- a/res/drawable-mdpi/main_settings.png +++ /dev/null diff --git a/res/drawable-mdpi/main_stored_default.png b/res/drawable-mdpi/main_stored_default.png Binary files differdeleted file mode 100644 index b595723..0000000 --- a/res/drawable-mdpi/main_stored_default.png +++ /dev/null diff --git a/res/drawable-mdpi/my_location_chevron.png b/res/drawable-mdpi/my_location_chevron.png Binary files differdeleted file mode 100644 index 67b863f..0000000 --- a/res/drawable-mdpi/my_location_chevron.png +++ /dev/null diff --git a/res/drawable-mdpi/star_half.png b/res/drawable-mdpi/star_half.png Binary files differdeleted file mode 100644 index 17eeaf7..0000000 --- a/res/drawable-mdpi/star_half.png +++ /dev/null diff --git a/res/drawable-mdpi/star_off.png b/res/drawable-mdpi/star_off.png Binary files differdeleted file mode 100644 index a7e0c83..0000000 --- a/res/drawable-mdpi/star_off.png +++ /dev/null diff --git a/res/drawable-mdpi/star_on.png b/res/drawable-mdpi/star_on.png Binary files differdeleted file mode 100644 index 801928a..0000000 --- a/res/drawable-mdpi/star_on.png +++ /dev/null diff --git a/res/drawable/actionbar_background.xml b/res/drawable/actionbar_background.xml index 0994d2c..a7df2f4 100644 --- a/res/drawable/actionbar_background.xml +++ b/res/drawable/actionbar_background.xml @@ -1,4 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:src="@drawable/actionbar_background_tile" - android:tileMode="repeat" />
\ No newline at end of file +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <gradient android:angle="270" + android:startColor="#313131" + android:centerColor="#191919" + android:endColor="#222" + android:centerY="0.92" /> +</shape> diff --git a/res/drawable/actionbar_background_tile.png b/res/drawable/actionbar_background_tile.png Binary files differdeleted file mode 100644 index ba0b08b..0000000 --- a/res/drawable/actionbar_background_tile.png +++ /dev/null diff --git a/res/drawable/filter_bar_background.xml b/res/drawable/filter_bar_background.xml index 9fefc36..6cdfa46 100644 --- a/res/drawable/filter_bar_background.xml +++ b/res/drawable/filter_bar_background.xml @@ -10,9 +10,9 @@ <shape> <gradient android:angle="270" android:startColor="#000" - android:centerColor="#111" + android:centerColor="#222" android:centerY="0.1" - android:endColor="#111"/> + android:endColor="#222"/> </shape> </item> </layer-list>
\ No newline at end of file diff --git a/res/drawable/ic_menu_barcode.png b/res/drawable/ic_menu_barcode.png Binary files differnew file mode 100644 index 0000000..1901177 --- /dev/null +++ b/res/drawable/ic_menu_barcode.png diff --git a/res/drawable/ic_menu_circle.png b/res/drawable/ic_menu_circle.png Binary files differnew file mode 100644 index 0000000..a3a26f9 --- /dev/null +++ b/res/drawable/ic_menu_circle.png diff --git a/res/drawable/ic_menu_clear_playlist.png b/res/drawable/ic_menu_clear_playlist.png Binary files differnew file mode 100644 index 0000000..750db62 --- /dev/null +++ b/res/drawable/ic_menu_clear_playlist.png diff --git a/res/drawable/ic_menu_filter.png b/res/drawable/ic_menu_filter.png Binary files differnew file mode 100644 index 0000000..84176c5 --- /dev/null +++ b/res/drawable/ic_menu_filter.png diff --git a/res/drawable/ic_menu_globe.png b/res/drawable/ic_menu_globe.png Binary files differnew file mode 100644 index 0000000..cd283ab --- /dev/null +++ b/res/drawable/ic_menu_globe.png diff --git a/res/drawable/ic_menu_mark.png b/res/drawable/ic_menu_mark.png Binary files differnew file mode 100644 index 0000000..5e95da7 --- /dev/null +++ b/res/drawable/ic_menu_mark.png diff --git a/res/drawable/ic_menu_notifications.png b/res/drawable/ic_menu_notifications.png Binary files differnew file mode 100644 index 0000000..866d4e0 --- /dev/null +++ b/res/drawable/ic_menu_notifications.png diff --git a/res/drawable/ic_menu_shopping.png b/res/drawable/ic_menu_shopping.png Binary files differnew file mode 100644 index 0000000..7088155 --- /dev/null +++ b/res/drawable/ic_menu_shopping.png diff --git a/res/drawable/list_footer_background.xml b/res/drawable/list_footer_background.xml deleted file mode 100644 index 0994d2c..0000000 --- a/res/drawable/list_footer_background.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:src="@drawable/actionbar_background_tile" - android:tileMode="repeat" />
\ No newline at end of file diff --git a/res/layout/caches_footer.xml b/res/layout/caches_footer.xml index 5042688..f33aca2 100644 --- a/res/layout/caches_footer.xml +++ b/res/layout/caches_footer.xml @@ -13,4 +13,4 @@ android:textSize="16dip" android:textColor="@color/just_white" android:text="@string/caches_no_cache" - android:background="@drawable/list_footer_background" />
\ No newline at end of file + android:background="@drawable/actionbar_background" />
\ No newline at end of file diff --git a/res/layout/coords.xml b/res/layout/coords.xml index ef431b9..4d30d16 100644 --- a/res/layout/coords.xml +++ b/res/layout/coords.xml @@ -1,56 +1,95 @@ -<LinearLayout android:id="@+id/linearLayout1" - android:layout_width="fill_parent" android:layout_height="wrap_content" - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" android:background="?background_color"> - <Spinner android:id="@+id/spinnerCoordinateFormats" - android:layout_width="fill_parent" android:layout_height="wrap_content"></Spinner> - <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/coordTable" android:layout_width="fill_parent" - android:layout_height="wrap_content" android:stretchColumns="0,1,3,5" - android:layout_weight="1"> - <TableRow android:id="@+id/tableRow1"> - <Button style="@style/button" android:text="N" android:id="@+id/ButtonLat"></Button> - <EditText style="@style/edittext" android:id="@+id/EditTextLatDeg" - android:gravity="right" android:inputType="number" - android:selectAllOnFocus="true"></EditText> - <TextView android:text="°" android:id="@+id/LatSeparator1"></TextView> - <EditText style="@style/edittext" android:id="@+id/EditTextLatMin" - android:gravity="right" android:inputType="number" - android:selectAllOnFocus="true"></EditText> - <TextView android:text="," android:id="@+id/LatSeparator2"></TextView> - <EditText style="@style/edittext" android:id="@+id/EditTextLatSec" - android:inputType="number" android:selectAllOnFocus="true"></EditText> - <TextView android:text="," android:id="@+id/LatSeparator3"></TextView> - <EditText style="@style/edittext" android:id="@+id/EditTextLatSecFrac" - android:inputType="number" android:selectAllOnFocus="true"></EditText> - </TableRow> - <TableRow android:id="@+id/tableRow2"> - <Button style="@style/button" android:text="E" android:id="@+id/ButtonLon"></Button> - <EditText style="@style/edittext" android:id="@+id/EditTextLonDeg" - android:gravity="right" android:inputType="number" - android:selectAllOnFocus="true"></EditText> - <TextView android:text="°" android:id="@+id/LonSeparator1"></TextView> - <EditText style="@style/edittext" android:id="@+id/EditTextLonMin" - android:gravity="right" android:inputType="number" - android:selectAllOnFocus="true"></EditText> - <TextView android:text="," android:id="@+id/LonSeparator2"></TextView> - <EditText style="@style/edittext" android:id="@+id/EditTextLonSec" - android:inputType="number" android:selectAllOnFocus="true"></EditText> - <TextView android:text="," android:id="@+id/LonSeparator3"></TextView> - <EditText style="@style/edittext" android:id="@+id/EditTextLonSecFrac" - android:inputType="number" android:selectAllOnFocus="true"></EditText> - </TableRow> - </TableLayout> - <EditText style="@style/edittext" android:layout_width="fill_parent" - android:layout_height="wrap_content" android:id="@+id/latitude" - android:hint="latitude" /> - <EditText style="@style/edittext" android:layout_width="fill_parent" - android:layout_height="wrap_content" android:id="@+id/longitude" - android:hint="longitude" /> - <Button style="@style/button" android:layout_width="fill_parent" - android:layout_height="wrap_content" android:id="@+id/current" - android:text="@string/waypoint_my_coordinates" /> - <Button style="@style/button" android:layout_width="fill_parent" - android:layout_height="wrap_content" android:id="@+id/done" - android:text="@string/waypoint_save" /> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/linearLayout1" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:background="?background_color"> + <Spinner android:id="@+id/spinnerCoordinateFormats" + android:layout_width="fill_parent" + android:layout_height="wrap_content" /> + <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/coordTable" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:stretchColumns="0,1,3,5" + android:layout_weight="1"> + <TableRow android:id="@+id/tableRow1"> + <Button android:id="@+id/ButtonLat" + style="@style/button" + android:text="N" /> + <EditText style="@style/edittext" + android:id="@+id/EditTextLatDeg" + android:gravity="right" + android:inputType="number" + android:selectAllOnFocus="true" /> + <TextView android:id="@+id/LatSeparator1" + android:text="°" /> + <EditText android:id="@+id/EditTextLatMin" + style="@style/edittext" + android:gravity="right" + android:inputType="number" + android:selectAllOnFocus="true" /> + <TextView android:id="@+id/LatSeparator2" + android:text="," /> + <EditText android:id="@+id/EditTextLatSec" + style="@style/edittext" + android:inputType="number" + android:selectAllOnFocus="true" /> + <TextView android:id="@+id/LatSeparator3" + android:text="," /> + <EditText android:id="@+id/EditTextLatSecFrac" + style="@style/edittext" + android:inputType="number" + android:selectAllOnFocus="true" /> + </TableRow> + <TableRow android:id="@+id/tableRow2"> + <Button android:id="@+id/ButtonLon" + style="@style/button" + android:text="E" /> + <EditText android:id="@+id/EditTextLonDeg" + style="@style/edittext" + android:gravity="right" + android:inputType="number" + android:selectAllOnFocus="true" /> + <TextView android:id="@+id/LonSeparator1" + android:text="°" /> + <EditText android:id="@+id/EditTextLonMin" + style="@style/edittext" + android:gravity="right" + android:inputType="number" + android:selectAllOnFocus="true" /> + <TextView android:id="@+id/LonSeparator2" + android:text="," /> + <EditText android:id="@+id/EditTextLonSec" + style="@style/edittext" + android:inputType="number" + android:selectAllOnFocus="true" /> + <TextView android:id="@+id/LonSeparator3" + android:text="," /> + <EditText android:id="@+id/EditTextLonSecFrac" + style="@style/edittext" + android:inputType="number" + android:selectAllOnFocus="true" /> + </TableRow> + </TableLayout> + <EditText style="@style/edittext" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:id="@+id/latitude" + android:hint="latitude" /> + <EditText style="@style/edittext" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:id="@+id/longitude" + android:hint="longitude" /> + <Button style="@style/button" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:id="@+id/current" + android:text="@string/waypoint_my_coordinates" /> + <Button style="@style/button" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:id="@+id/done" + android:text="@string/waypoint_done" /> </LinearLayout> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 35d1b58..8182553 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak HQ</string> <string name="gps">GPS Cache Exhibit</string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">small</string> + <string name="cache_size_regular">regular</string> + <string name="cache_size_large">large</string> + <string name="cache_size_other">other</string> + <string name="cache_size_virtual">virtual</string> + <string name="cache_size_notchosen">not chosen</string> + <!-- waypoints --> <string name="wp_final">Final</string> <string name="wp_stage">Station eines Multi-Cache</string> @@ -127,7 +136,7 @@ <string name="err_detail_cache_find_any">c:geo konnte keine Caches finden.</string> <string name="err_detail_cache_find_next">c:geo konnte die nächsten Caches nicht finden.</string> <string name="err_detail_cache_forgot">c:geo hat vergessen, welcher Cache aufgerufen werden sollte.</string> - <string name="err_detail_cache_forgot_visit">c:geo hat vergessen, welchen Cache Sie besucht haben.</string> + <string name="err_detail_cache_forgot_visit">c:geo hat vergessen, welchen Cache du besucht hast.</string> <string name="err_detail_cache_language">c:geo konnte manche Details des Caches nicht lesen. Bitte überprüfen, ob geocaching.com auf "English" gestellt wurde. Leider versteht c:geo keine andere Spracheinstellungen.</string> <string name="err_detail_no_spoiler">c:geo hat kein Hinweisbild für diesen Cache gefunden.</string> <string name="err_detail_no_map_static">c:geo hat keine statische Karte für diesen Cache gefunden.</string> @@ -161,13 +170,13 @@ <string name="err_manual_title">Anleitung ist nicht installiert.</string> <string name="err_manual_message">Bedienungsanleitung für c:geo ist auf dem Gerät nicht vorhanden. Jetzt installieren?</string> <string name="err_manual_market">c:geo konnte den Android Market nicht starten, um nach der Anleitung zu suchen.</string> - <string name="err_missing_device_name">Bitte legen Sie einen Namen für Ihr Handy fest, bevor Sie sich registrieren.</string> + <string name="err_missing_device_name">Bitte lege einen Namen für dein Handy fest, bevor du dich registrieren.</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 Details des Trackables nicht öffnen.</string> <string name="err_tb_details_download">c:geo konnte Details des Trackables nicht laden, weil</string> <string name="err_tb_forgot">c:geo hat den gewünschten Trackable vergessen.</string> - <string name="err_tb_forgot_saw">c:geo hat vergessen, welchen Trackable Sie gesehen haben.</string> + <string name="err_tb_forgot_saw">c:geo hat vergessen, welchen Trackable du gesehen hast.</string> <string name="err_tb_find">c:geo findet den Trackable nicht</string> <string name="err_tb_find_that">c:geo konnte diesen Trackable nicht finden.</string> @@ -211,7 +220,7 @@ <string name="warn_no_username">Kein Benutzername angegeben.</string> <string name="warn_search_help_title">Hilfe benötigt?</string> <string name="warn_search_help_address">Adresse oder Ort eingeben, z.B. Straßenname und Ort \"Dorfstraße 333, Berlin, Deutschland\", Ort \"Berlin\" oder den Namen eines beliebigen Ortes wie z.B. \"Tiergarten\".</string> - <string name="warn_search_help_gccode">Geocode eingeben. z.B. \"GC1VCAZ\".</string> + <string name="warn_search_help_gccode">GC-Code eingeben. z.B. \"GC1VCAZ\".</string> <string name="warn_search_help_keyword">Stichwörter eingeben, die im Namen des zu suchenden Caches enthalten sind.</string> <string name="warn_search_help_user">Name eines Benutzers auf Geocaching.com eingeben.</string> <string name="warn_search_help_tb">Code des Trackables eingeben, z.B. \"TB29QMZ\".</string> @@ -320,13 +329,6 @@ <string name="caches_filter_track">mit Trackables</string> <string name="caches_filter_clear">Filter zurücksetzen</string> <string name="caches_filter_size_title">Größe wählen</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">small</string> - <string name="caches_filter_size_regular">regular</string> - <string name="caches_filter_size_large">large</string> - <string name="caches_filter_size_other">other</string> - <string name="caches_filter_size_virtual">virtual</string> - <string name="caches_filter_size_notchosen">not chosen</string> <string name="caches_filter_type_title">Wähle den Typ</string> <string name="caches_filter_type_traditional">Traditional cache</string> <string name="caches_filter_type_multi">Multi-cache</string> @@ -455,10 +457,10 @@ <string name="init_sendToCgeo">Send to c:geo</string> <string name="init_sendToCgeo_name">Der Name deines Handys:</string> - <string name="init_sendToCgeo_description">Send to c:geo erlaubt es mit einem speziellen Plugin für Firefox oder Chrome Caches direkt von der Geocachingseite zu empfangen. Bitte lesen Sie die Details vor einer Registrierung auf <a href="http://send2.cgeo.org/">http://send2.cgeo.org/</a> nach.</string> + <string name="init_sendToCgeo_description">Send to c:geo erlaubt es mit einem speziellen Plugin für Firefox oder Chrome Caches direkt von der Geocachingseite zu empfangen. Bitte lies dir die Details vor einer Registrierung auf <a href="http://send2.cgeo.org/">http://send2.cgeo.org/</a> durch.</string> <string name="init_sendToCgeo_register">Registrierung anfordern</string> - <string name="init_sendToCgeo_registering">Registriere Ihr Handy für "Send to c:geo"…</string> - <string name="init_sendToCgeo_register_ok">Registrierung erfolgreich. Ihr PIN code ist ####. Benutzen Sie diesen auf der c:geo website um Ihr Handy im Browser hinzuzufügen.</string> + <string name="init_sendToCgeo_registering">Registriere dein Handy für "Send to c:geo"…</string> + <string name="init_sendToCgeo_register_ok">Registrierung erfolgreich. Dein PIN code ist ####. Benutze diesen auf der c:geo website um dein Handy im Browser hinzuzufügen.</string> <string name="init_sendToCgeo_register_fail">Registrierung fehlgeschlagen.</string> <string name="sendToCgeo_download_fail">c:geo konnte Caches nicht laden. Entweder besteht keine Internetverbindung oder send2c:geo funktioniert nicht.</string> <string name="sendToCgeo_no_registration">c:geo konnte Caches nicht laden. Registrierung für send2c:geo ungültig. Bitte in Einstellungen neu registrieren.</string> @@ -567,8 +569,8 @@ <string name="cache_coordinates">Koordinaten</string> <string name="cache_elevation">Höhe</string> <string name="cache_calendars">Kalender auswählen</string> - <string name="cache_spoiler_images_title">Spoilerbilder</string> - <string name="cache_spoiler_images_loading">Lade Spoilerbilder…</string> + <string name="cache_spoiler_images_title">Hinweisbilder</string> + <string name="cache_spoiler_images_loading">Lade Hinweisbilder…</string> <string name="cache_log_types">Logs</string> <string name="cache_coordinates_no">Dieser Cache hat keine Koordinaten.</string> <!-- since: 2.26 RC2 --> <string name="cache_export_fieldnote">Exportiere als Field Notes</string> @@ -595,7 +597,7 @@ <!-- import --> <string name="import_title">Importiere…</string> <string name="web_import_title">Aus dem Internet importieren</string> - <string name="web_import_server_problem">Beim Datenaustausch mit dem Server ist ein Problem aufgereten. Bitte registrieren Sie Ihr Handy erneut und versuchen Sie es dann noch einmal.</string> + <string name="web_import_server_problem">Beim Datenaustausch mit dem Server ist ein Problem aufgereten. Bitte registriere dein Handy erneut und versuche es dann noch einmal.</string> <string name="web_import_waiting">Erwarte neue Caches aus dem Internet…</string> <string name="web_downloading">Lade herunter</string> <string name="web_downloaded">Heruntergeladen</string> @@ -624,10 +626,12 @@ <string name="waypoint_save">Speichern</string> <string name="waypoint_loading">Lade Wegpunkt…</string> <string name="waypoint_unknown_coordinates">Unbekannte Koordinaten</string> + <string name="waypoint_done">Fertig</string> + <string name="search_history">Verlauf</string> <string name="search_history_empty">Keine Ziele bisher</string> <string name="search_remove_destination">Ziel gelöscht</string> - <string name="search_clear_history">History löschen</string> - <string name="search_history_cleared">History gelöscht</string> + <string name="search_clear_history">Verlauf löschen</string> + <string name="search_history_cleared">Verlauf gelöscht</string> <!-- visit --> <string name="visit_tweet">Diesen Eintrag auf Twitter veröffentlichen</string> @@ -653,8 +657,8 @@ <string name="search_coordinates_button">Suche mit Koordinaten</string> <string name="search_address">Adresse</string> <string name="search_address_button">Suche mit Adresse</string> - <string name="search_gc">Geocode</string> - <string name="search_gc_button">Suche mit Geocode</string> + <string name="search_gc">GC-Code</string> + <string name="search_gc_button">Suche mit GC-Code</string> <string name="search_kw">Stichworte</string> <string name="search_kw_prefill">Stichwörter</string> <string name="search_kw_button">Suche mit Stichwörtern</string> @@ -693,7 +697,7 @@ <string name="trackable_name">Name</string> <string name="trackable_type">Typ</string> <string name="trackable_owner">Eigentümer</string> - <string name="trackable_spotted">Zuletzt erspäht</string> + <string name="trackable_spotted">Zuletzt gesehen</string> <string name="trackable_spotted_in_cache">In</string> <string name="trackable_spotted_at_user">Bei</string> <string name="trackable_spotted_unknown_location">Unbekannter Ort</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 2ecb88f..5b4c72a 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak HQ</string> <string name="gps">Exhibición de escondites GPS </string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">pequeño</string> + <string name="cache_size_regular">normal</string> + <string name="cache_size_large">grande</string> + <string name="cache_size_other">otro</string> + <string name="cache_size_virtual">virtual</string> + <string name="cache_size_notchosen">no elegido</string> + <!-- waypoints --> <string name="wp_final">Ubicación final</string> <string name="wp_stage">Etapa de multi escondite</string> @@ -317,13 +326,6 @@ <string name="caches_filter_track">con rastreables</string> <string name="caches_filter_clear">limpiar filtros</string> <string name="caches_filter_size_title">Indica tamaño</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">pequeño</string> - <string name="caches_filter_size_regular">normal</string> - <string name="caches_filter_size_large">grande</string> - <string name="caches_filter_size_other">otro</string> - <string name="caches_filter_size_virtual">virtual</string> - <string name="caches_filter_size_notchosen">no elegido</string> <string name="caches_filter_type_title">Indica tipo</string> <string name="caches_filter_type_traditional">Tradicional cache</string> <string name="caches_filter_type_multi">Multi</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 8dc30e4..4c79ea5 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">groundspeak hq</string> <string name="gps">gps cache exhibit</string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">petite</string> + <string name="cache_size_regular">normale</string> + <string name="cache_size_large">grande</string> + <string name="cache_size_other">autre</string> + <string name="cache_size_virtual">virtuelle</string> + <string name="cache_size_notchosen">non renseignée</string> + <!-- waypoints --> <string name="wp_final">Étape finale</string> <string name="wp_stage">Étape</string> @@ -228,13 +237,6 @@ <string name="caches_filter_track">avec des trackables</string> <string name="caches_filter_clear">effacer les filtres</string> <string name="caches_filter_size_title">Choisir la taille</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">petite</string> - <string name="caches_filter_size_regular">normale</string> - <string name="caches_filter_size_large">grande</string> - <string name="caches_filter_size_other">autre</string> - <string name="caches_filter_size_virtual">virtuelle</string> - <string name="caches_filter_size_notchosen">non renseignée</string> <string name="caches_filter_type_title">Choisir le type</string> <string name="caches_filter_type_traditional">Traditionelle</string> <string name="caches_filter_type_multi">Multi-cache</string> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 5894a42..fb61c47 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak hq</string> <string name="gps">Gps cache exhibit</string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">small</string> + <string name="cache_size_regular">regular</string> + <string name="cache_size_large">large</string> + <string name="cache_size_other">other</string> + <string name="cache_size_virtual">virtual</string> + <string name="cache_size_notchosen">not chosen</string> + <!-- waypoints --> <string name="wp_final">Eindbestemming</string> <string name="wp_stage">Multi-cache punt</string> @@ -314,13 +323,6 @@ <string name="caches_filter_track">met trackables</string> <string name="caches_filter_clear">maak filters leeg</string> <string name="caches_filter_size_title">Kies grootte</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">small</string> - <string name="caches_filter_size_regular">regular</string> - <string name="caches_filter_size_large">large</string> - <string name="caches_filter_size_other">other</string> - <string name="caches_filter_size_virtual">virtual</string> - <string name="caches_filter_size_notchosen">not chosen</string> <string name="caches_filter_type_title">Choose type</string> <string name="caches_filter_type_traditional">Traditional cache</string> <string name="caches_filter_type_multi">Multi-cache</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 2d71fd6..4563eea 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak HQ</string> <string name="gps">GPS cache exhibit</string> + <!-- cache sizes --> + <string name="cache_size_micro">mikro</string> + <string name="cache_size_small">mała</string> + <string name="cache_size_regular">normalna</string> + <string name="cache_size_large">duża</string> + <string name="cache_size_other">inna</string> + <string name="cache_size_virtual">wirtualna</string> + <string name="cache_size_notchosen">nie wybrana</string> + <!-- waypoints --> <string name="wp_final">Finał</string> <string name="wp_stage">Etap do skrzynki</string> @@ -314,13 +323,6 @@ <string name="caches_filter_track">z przedmiotmi podróżnymi</string> <string name="caches_filter_clear">wykasój filter</string> <string name="caches_filter_size_title">Wybierz wielkość</string> - <string name="caches_filter_size_micro">mikro</string> - <string name="caches_filter_size_small">mała</string> - <string name="caches_filter_size_regular">normalna</string> - <string name="caches_filter_size_large">duża</string> - <string name="caches_filter_size_other">inna</string> - <string name="caches_filter_size_virtual">wirtualna</string> - <string name="caches_filter_size_notchosen">nie wybrana</string> <string name="caches_filter_type_title">Wybierz typ</string> <string name="caches_filter_type_traditional">tradycyjna</string> <string name="caches_filter_type_multi">wieloetapowa</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 45ce836..2314827 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak hq</string> <string name="gps">Cache exposição GPS</string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">pequena</string> + <string name="cache_size_regular">normal</string> + <string name="cache_size_large">grande</string> + <string name="cache_size_other">outra</string> + <string name="cache_size_virtual">virtual</string> + <string name="cache_size_notchosen">não especificado</string> + <!-- waypoints --> <string name="wp_final">Localização final</string> <string name="wp_stage">Estado da multi-cache</string> @@ -314,13 +323,6 @@ <string name="caches_filter_track">com trackables</string> <string name="caches_filter_clear">Limpar filtros</string> <string name="caches_filter_size_title">Escolha o tamanho</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">pequena</string> - <string name="caches_filter_size_regular">normal</string> - <string name="caches_filter_size_large">grande</string> - <string name="caches_filter_size_other">outra</string> - <string name="caches_filter_size_virtual">virtual</string> - <string name="caches_filter_size_notchosen">não especificado</string> <string name="caches_filter_type_title">Escolha o tipo</string> <string name="caches_filter_type_traditional">Cache tradicional</string> <string name="caches_filter_type_multi">Multi-cache</string> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 0e5b25b..283fe8d 100755 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak HQ</string> <string name="gps">GPS cache utställning</string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">small</string> + <string name="cache_size_regular">regular</string> + <string name="cache_size_large">large</string> + <string name="cache_size_other">other</string> + <string name="cache_size_virtual">virtual</string> + <string name="cache_size_notchosen">not chosen</string> + <!-- waypoints --> <string name="wp_final">Slutlig plats</string> <string name="wp_stage">Delsteg för multi-cache</string> @@ -318,13 +327,6 @@ <string name="caches_filter_track">med trackables</string> <string name="caches_filter_clear">rensa filter</string> <string name="caches_filter_size_title">Välj storlek</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">small</string> - <string name="caches_filter_size_regular">regular</string> - <string name="caches_filter_size_large">large</string> - <string name="caches_filter_size_other">other</string> - <string name="caches_filter_size_virtual">virtual</string> - <string name="caches_filter_size_notchosen">ej vald</string> <string name="caches_filter_type_title">Välj typ</string> <string name="caches_filter_type_traditional">Traditionell cache</string> <string name="caches_filter_type_multi">Multi-cache</string> diff --git a/res/values/strings.xml b/res/values/strings.xml index e5b0d4b..e8294f1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -36,6 +36,15 @@ <string name="gchq">Groundspeak hq</string> <string name="gps">GPS cache exhibit</string> + <!-- cache sizes --> + <string name="cache_size_micro">micro</string> + <string name="cache_size_small">small</string> + <string name="cache_size_regular">regular</string> + <string name="cache_size_large">large</string> + <string name="cache_size_other">other</string> + <string name="cache_size_virtual">virtual</string> + <string name="cache_size_notchosen">not chosen</string> + <!-- waypoints --> <string name="wp_final">Final location</string> <string name="wp_stage">Stage of multi-cache</string> @@ -321,13 +330,6 @@ <string name="caches_filter_track">with trackables</string> <string name="caches_filter_clear">clear filters</string> <string name="caches_filter_size_title">Choose size</string> - <string name="caches_filter_size_micro">micro</string> - <string name="caches_filter_size_small">small</string> - <string name="caches_filter_size_regular">regular</string> - <string name="caches_filter_size_large">large</string> - <string name="caches_filter_size_other">other</string> - <string name="caches_filter_size_virtual">virtual</string> - <string name="caches_filter_size_notchosen">not chosen</string> <string name="caches_filter_type_title">Choose type</string> <string name="caches_filter_type_traditional">Traditional cache</string> <string name="caches_filter_type_multi">Multi-cache</string> @@ -630,6 +632,7 @@ <string name="waypoint_save">Save</string> <string name="waypoint_loading">Loading waypoint…</string> <string name="waypoint_unknown_coordinates">Coordinates unknown</string> + <string name="waypoint_done">Done</string> <string name="search_history">History</string> <string name="search_history_empty">No previous destinations</string> <string name="search_remove_destination">Destination removed</string> @@ -667,8 +670,8 @@ <string name="search_coordinates_button">Search by coordinates</string> <string name="search_address">Address</string> <string name="search_address_button">Search by address</string> - <string name="search_gc">Geocode</string> - <string name="search_gc_button">Search by geocode</string> + <string name="search_gc">GC-code</string> + <string name="search_gc_button">Search by GC-code</string> <string name="search_kw">Keywords</string> <string name="search_kw_prefill">Keyword</string> <string name="search_kw_button">Search by keyword</string> @@ -941,6 +944,7 @@ · <a href="http://code.google.com/p/mapsforge/">Mapsforge</a> (OSM-rendering)\n · <a href="http://thenounproject.com/">The Noun Project</a> (basis for attribute icons)\n · <a href="http://commons.apache.org/">The Apache Commons Project</a>\n + · <a href="http://androidicons.com/">Android Icons</a>\n </string> <!-- changelog --> diff --git a/src/cgeo/geocaching/activity/ActivityMixin.java b/src/cgeo/geocaching/activity/ActivityMixin.java index ece589b..fd60962 100644 --- a/src/cgeo/geocaching/activity/ActivityMixin.java +++ b/src/cgeo/geocaching/activity/ActivityMixin.java @@ -27,7 +27,7 @@ import gnu.android.app.appmanualclient.AppManualReaderClient; import java.util.List; public final class ActivityMixin { - private static final int MENU_ICON_LOG_VISIT = android.R.drawable.ic_menu_agenda; + private static final int MENU_ICON_LOG_VISIT = android.R.drawable.ic_menu_edit; public final static void goHome(final Activity fromActivity) { final Intent intent = new Intent(fromActivity, cgeo.class); diff --git a/src/cgeo/geocaching/apps/AbstractLocusApp.java b/src/cgeo/geocaching/apps/AbstractLocusApp.java index caa9549..3e79998 100644 --- a/src/cgeo/geocaching/apps/AbstractLocusApp.java +++ b/src/cgeo/geocaching/apps/AbstractLocusApp.java @@ -127,7 +127,7 @@ public abstract class AbstractLocusApp extends AbstractApp { if (locusId != NO_LOCUS_ID) { pg.type = locusId; } - locusId = toLocusId(CacheSize.FIND_BY_ID.get(cache.size)); + locusId = toLocusId(cache.size); if (locusId != NO_LOCUS_ID) { pg.container = locusId; } diff --git a/src/cgeo/geocaching/cgBase.java b/src/cgeo/geocaching/cgBase.java index 53227e5..9a1f33d 100644 --- a/src/cgeo/geocaching/cgBase.java +++ b/src/cgeo/geocaching/cgBase.java @@ -106,8 +106,6 @@ public class cgBase { private final static Pattern patternDesc = Pattern.compile("<span id=\"ctl00_ContentBody_LongDescription\"[^>]*>" + "(.*)</span>[^<]*</div>[^<]*<p>[^<]*</p>[^<]*<p>[^<]*<strong>\\W*Additional Hints</strong>", Pattern.CASE_INSENSITIVE); private final static Pattern patternCountLogs = Pattern.compile("<span id=\"ctl00_ContentBody_lblFindCounts\"><p(.+?)<\\/p><\\/span>", Pattern.CASE_INSENSITIVE); private final static Pattern patternCountLog = Pattern.compile("src=\"\\/images\\/icons\\/(.+?).gif\"[^>]+> (\\d+)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); - private final static Pattern patternLog = Pattern.compile("<tr><td class.+?<a href=\"/profile/\\?guid=.+?>(.+?)</a>.+?(?:logOwnerStats[^>]+><img[^>]+icon_smile.+?> ([,\\d]+).+?)?LogType.+?<img.+?/images/icons/([^\\.]+)\\..+?title=\"(.+?)\".+?LogDate.+?>(.+?)<.+?LogText.+?>(.*?)</p>(.*?)</div></div></div></td></tr>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); - private final static Pattern patternLogImgs = Pattern.compile("href=\"(http://img.geocaching.com/cache/log/.+?)\".+?<span>([^<]*)", Pattern.CASE_INSENSITIVE); private final static Pattern patternAttributes = Pattern.compile("<h3 class=\"WidgetHeader\">[^<]*<img[^>]+>\\W*Attributes[^<]*</h3>[^<]*<div class=\"WidgetBody\">(([^<]*<img src=\"[^\"]+\" alt=\"[^\"]+\"[^>]*>)+)[^<]*<p", Pattern.CASE_INSENSITIVE); private final static Pattern patternAttributesInside = Pattern.compile("[^<]*<img src=\"([^\"]+)\" alt=\"([^\"]+)\"[^>]*>", Pattern.CASE_INSENSITIVE); private final static Pattern patternSpoilers = Pattern.compile("<span id=\"ctl00_ContentBody_Images\">((<a href=\"[^\"]+\"[^>]*>[^<]*<img[^>]+>[^<]*<span>[^>]+</span>[^<]*</a>[^<]*<br[^>]*>([^<]*(<br[^>]*>)+)?)+)[^<]*</span>", Pattern.CASE_INSENSITIVE); @@ -177,6 +175,7 @@ public class cgBase { private static final Pattern patternViewstateFieldCount = Pattern.compile("id=\"__VIEWSTATEFIELDCOUNT\"[^(value)]+value=\"(\\d+)\"[^>]+>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); private static final Pattern patternViewstates = Pattern.compile("id=\"__VIEWSTATE(\\d*)\"[^(value)]+value=\"([^\"]+)\"[^>]+>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); private static final Pattern patternIsPremium = Pattern.compile("<span id=\"ctl00_litPMLevel\"", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); + private static final Pattern patternUserToken = Pattern.compile("userToken\\s*=\\s*'([^']+)'"); public static final float miles2km = 1.609344f; public static final float feet2km = 0.0003048f; public static final float yards2km = 0.0009144f; @@ -1520,63 +1519,69 @@ public class cgBase { // cache logs try { - /* - * 1- Author - * 2- Finds-count - * 3- Log type image name (e.g. "icon_smile") - * 4- Type string (e.g. "Found it") - * 5- Date string (e.g. "04/28/2010") - * 6- Log text - * 7- The rest (e.g. log-images, maybe faster) - */ - final Matcher matcherLog = patternLog.matcher(page);//(matcherLogs.group(1)); - - while (matcherLog.find()) - { + final Matcher userTokenMatcher = patternUserToken.matcher(page); + if (!userTokenMatcher.find()) { + Log.e(cgSettings.tag, "cgeoBase.parseCache: unable to extract userToken"); + throw new RuntimeException(); + } + final String userToken = userTokenMatcher.group(1); + final HashMap<String, String> params = new HashMap<String, String>(); + params.put("tkn", userToken); + params.put("idx", "1"); + params.put("num", "10"); + params.put("sp", "0"); + params.put("sf", "0"); + params.put("decrypt", "1"); + final cgResponse response = request(false, "www.geocaching.com", "/seek/geocache.logbook", "GET", + params, false, false, false); + if (response.getStatusCode() != 200) { + Log.e(cgSettings.tag, "cgeoBase.parseCache: error " + response.getStatusCode() + " when requesting log information"); + throw new RuntimeException(); + } + final JSONObject resp = new JSONObject(response.getData()); + if (!resp.getString("status").equals("success")) { + Log.e(cgSettings.tag, "cgeoBase.parseCache: status is " + resp.getString("status")); + throw new RuntimeException(); + } + + final JSONArray data = resp.getJSONArray("data"); + + for (int index = 0; index < data.length(); index++) { + final JSONObject entry = data.getJSONObject(index); final cgLog logDone = new cgLog(); - final String logIconName = matcherLog.group(3).toLowerCase(); - if (logTypes.containsKey(logIconName)) - { + // FIXME: use the "LogType" field instead of the "LogTypeImage" one. + final String logIconNameExt = entry.optString("LogTypeImage", ".gif"); + final String logIconName = logIconNameExt.substring(0, logIconNameExt.length() - 4); + if (logTypes.containsKey(logIconName)) { logDone.type = logTypes.get(logIconName); - } - else - { + } else { logDone.type = logTypes.get("icon_note"); } - try - { - logDone.date = parseGcCustomDate(matcherLog.group(5)).getTime(); - } catch (ParseException e) - { - Log.w(cgSettings.tag, "Failed to parse log date."); - } - - logDone.author = Html.fromHtml(matcherLog.group(1)).toString(); - - if (null != matcherLog.group(2)) - { - logDone.found = Integer.parseInt(matcherLog.group(2).replaceAll(",", "")); + try { + logDone.date = parseGcCustomDate(entry.getString("Visited")).getTime(); + } catch (ParseException e) { + Log.e(cgSettings.tag, "Failed to parse log date."); } - logDone.log = matcherLog.group(6); + logDone.author = entry.getString("UserName"); + logDone.found = entry.getInt("GeocacheFindCount"); + logDone.log = entry.getString("LogText"); - final Matcher matcherImg = patternLogImgs.matcher(matcherLog.group(7)); - while (matcherImg.find()) - { + final JSONArray images = entry.getJSONArray("Images"); + for (int i = 0; i < images.length(); i++) { + final JSONObject image = images.getJSONObject(i); final cgImage logImage = new cgImage(); - logImage.url = matcherImg.group(1); - logImage.title = matcherImg.group(2); - if (logDone.logImages == null) - { + logImage.url = image.getString("FileName"); + logImage.title = image.getString("Name"); + if (logDone.logImages == null) { logDone.logImages = new ArrayList<cgImage>(); } logDone.logImages.add(logImage); } - if (null == cache.logs) - { + if (null == cache.logs) { cache.logs = new ArrayList<cgLog>(); } cache.logs.add(logDone); diff --git a/src/cgeo/geocaching/cgCacheListAdapter.java b/src/cgeo/geocaching/cgCacheListAdapter.java index a3563b0..98b5e5b 100644 --- a/src/cgeo/geocaching/cgCacheListAdapter.java +++ b/src/cgeo/geocaching/cgCacheListAdapter.java @@ -596,7 +596,7 @@ public class cgCacheListAdapter extends ArrayAdapter<cgCache> { if (cacheInfo.length() > 0) { cacheInfo.append(" | "); } - cacheInfo.append(cache.size.id); + cacheInfo.append(res.getString(cache.size.stringId)); } if ((cache.difficulty != null && cache.difficulty > 0f) || (cache.terrain != null && cache.terrain > 0f) || (cache.rating != null && cache.rating > 0f)) { if (cacheInfo.length() > 0 && ((cache.difficulty != null && cache.difficulty > 0f) || (cache.terrain != null && cache.terrain > 0f))) { diff --git a/src/cgeo/geocaching/cgeo.java b/src/cgeo/geocaching/cgeo.java index 59757f7..3870e83 100644 --- a/src/cgeo/geocaching/cgeo.java +++ b/src/cgeo/geocaching/cgeo.java @@ -250,9 +250,9 @@ public class cgeo extends AbstractActivity { public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_SETTINGS, 0, res.getString(R.string.menu_settings)).setIcon(android.R.drawable.ic_menu_preferences); menu.add(0, MENU_HISTORY, 0, res.getString(R.string.menu_history)).setIcon(android.R.drawable.ic_menu_recent_history); - menu.add(0, MENU_HELPERS, 0, res.getString(R.string.menu_helpers)).setIcon(android.R.drawable.ic_menu_add); - menu.add(0, MENU_SCAN, 0, res.getString(R.string.menu_scan)).setIcon(android.R.drawable.ic_menu_camera); - menu.add(0, MENU_ABOUT, 0, res.getString(R.string.menu_about)).setIcon(android.R.drawable.ic_menu_help); + menu.add(0, MENU_HELPERS, 0, res.getString(R.string.menu_helpers)).setIcon(R.drawable.ic_menu_shopping); + menu.add(0, MENU_SCAN, 0, res.getString(R.string.menu_scan)).setIcon(R.drawable.ic_menu_barcode); + menu.add(0, MENU_ABOUT, 0, res.getString(R.string.menu_about)).setIcon(android.R.drawable.ic_menu_info_details); return true; } diff --git a/src/cgeo/geocaching/cgeoadvsearch.java b/src/cgeo/geocaching/cgeoadvsearch.java index 01ef88b..9e70a3a 100644 --- a/src/cgeo/geocaching/cgeoadvsearch.java +++ b/src/cgeo/geocaching/cgeoadvsearch.java @@ -484,7 +484,7 @@ public class cgeoadvsearch extends AbstractActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { - menu.add(0, MENU_SEARCH_OWN_CACHES, 0, res.getString(R.string.search_own_caches)); + menu.add(0, MENU_SEARCH_OWN_CACHES, 0, res.getString(R.string.search_own_caches)).setIcon(android.R.drawable.ic_menu_myplaces); return true; } diff --git a/src/cgeo/geocaching/cgeocaches.java b/src/cgeo/geocaching/cgeocaches.java index d8e6d84..4d864ca 100644 --- a/src/cgeo/geocaching/cgeocaches.java +++ b/src/cgeo/geocaching/cgeocaches.java @@ -41,7 +41,6 @@ import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; @@ -49,11 +48,12 @@ import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.view.WindowManager; -import android.widget.AdapterView.AdapterContextMenuInfo; +import android.view.ContextMenu.ContextMenuInfo; import android.widget.EditText; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; +import android.widget.AdapterView.AdapterContextMenuInfo; import java.io.File; import java.io.FileOutputStream; @@ -753,7 +753,7 @@ public class cgeocaches extends AbstractListActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { - SubMenu subMenuFilter = menu.addSubMenu(0, SUBMENU_FILTER, 0, res.getString(R.string.caches_filter)).setIcon(android.R.drawable.ic_menu_search); + SubMenu subMenuFilter = menu.addSubMenu(0, SUBMENU_FILTER, 0, res.getString(R.string.caches_filter)).setIcon(R.drawable.ic_menu_filter); subMenuFilter.setHeaderTitle(res.getString(R.string.caches_filter_title)); if (settings.cacheType == null) { subMenuFilter.add(0, SUBMENU_FILTER_TYPE, 0, res.getString(R.string.caches_filter_type)); @@ -791,7 +791,7 @@ public class cgeocaches extends AbstractListActivity { subMenuSort.setGroupCheckable(1, true, true); menu.add(0, MENU_SWITCH_SELECT_MODE, 0, res.getString(R.string.caches_select_mode)).setIcon(android.R.drawable.ic_menu_agenda); - menu.add(0, MENU_INVERT_SELECTION, 0, res.getString(R.string.caches_select_invert)).setIcon(android.R.drawable.ic_menu_agenda); + menu.add(0, MENU_INVERT_SELECTION, 0, res.getString(R.string.caches_select_invert)).setIcon(R.drawable.ic_menu_mark); if (type.equals("offline")) { SubMenu subMenu = menu.addSubMenu(0, SUBMENU_MANAGE_OFFLINE, 0, res.getString(R.string.caches_manage)).setIcon(android.R.drawable.ic_menu_save); subMenu.add(0, MENU_DROP_CACHES, 0, res.getString(R.string.caches_drop_all)); // delete saved caches @@ -834,10 +834,12 @@ public class cgeocaches extends AbstractListActivity { try { if (adapter != null && adapter.getSelectMode()) { - menu.findItem(MENU_SWITCH_SELECT_MODE).setTitle(res.getString(R.string.caches_select_mode_exit)); + menu.findItem(MENU_SWITCH_SELECT_MODE).setTitle(res.getString(R.string.caches_select_mode_exit)) + .setIcon(R.drawable.ic_menu_clear_playlist); menu.findItem(MENU_INVERT_SELECTION).setVisible(true); } else { - menu.findItem(MENU_SWITCH_SELECT_MODE).setTitle(res.getString(R.string.caches_select_mode)); + menu.findItem(MENU_SWITCH_SELECT_MODE).setTitle(res.getString(R.string.caches_select_mode)) + .setIcon(android.R.drawable.ic_menu_agenda); menu.findItem(MENU_INVERT_SELECTION).setVisible(false); } @@ -1086,13 +1088,13 @@ public class cgeocaches extends AbstractListActivity { if (selectedFilter.equals(res.getString(R.string.caches_filter_size))) { menu.setHeaderTitle(res.getString(R.string.caches_filter_size_title)); - menu.add(0, MENU_FILTER_SIZE_MICRO, 0, res.getString(R.string.caches_filter_size_micro)); - menu.add(0, MENU_FILTER_SIZE_SMALL, 0, res.getString(R.string.caches_filter_size_small)); - menu.add(0, MENU_FILTER_SIZE_REGULAR, 0, res.getString(R.string.caches_filter_size_regular)); - menu.add(0, MENU_FILTER_SIZE_LARGE, 0, res.getString(R.string.caches_filter_size_large)); - menu.add(0, MENU_FILTER_SIZE_OTHER, 0, res.getString(R.string.caches_filter_size_other)); - menu.add(0, MENU_FILTER_SIZE_VIRTUAL, 0, res.getString(R.string.caches_filter_size_virtual)); - menu.add(0, MENU_FILTER_SIZE_NOT_CHOSEN, 0, res.getString(R.string.caches_filter_size_notchosen)); + menu.add(0, MENU_FILTER_SIZE_MICRO, 0, res.getString(CacheSize.MICRO.stringId)); + menu.add(0, MENU_FILTER_SIZE_SMALL, 0, res.getString(CacheSize.SMALL.stringId)); + menu.add(0, MENU_FILTER_SIZE_REGULAR, 0, res.getString(CacheSize.REGULAR.stringId)); + menu.add(0, MENU_FILTER_SIZE_LARGE, 0, res.getString(CacheSize.LARGE.stringId)); + menu.add(0, MENU_FILTER_SIZE_OTHER, 0, res.getString(CacheSize.OTHER.stringId)); + menu.add(0, MENU_FILTER_SIZE_VIRTUAL, 0, res.getString(CacheSize.VIRTUAL.stringId)); + menu.add(0, MENU_FILTER_SIZE_NOT_CHOSEN, 0, res.getString(CacheSize.NOT_CHOSEN.stringId)); } else if (selectedFilter.equals(res.getString(R.string.caches_filter_type))) { menu.setHeaderTitle(res.getString(R.string.caches_filter_type_title)); menu.add(0, MENU_FILTER_TYPE_TRADITIONAL, 0, res.getString(R.string.caches_filter_type_traditional)); diff --git a/src/cgeo/geocaching/cgeodetail.java b/src/cgeo/geocaching/cgeodetail.java index f8513e1..8ae91cf 100644 --- a/src/cgeo/geocaching/cgeodetail.java +++ b/src/cgeo/geocaching/cgeodetail.java @@ -40,9 +40,9 @@ import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; import android.view.ViewParent; import android.view.WindowManager; +import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; @@ -60,8 +60,8 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Map.Entry; import java.util.UUID; +import java.util.Map.Entry; /** * Activity to display all details of a cache like owner, difficulty, description etc. @@ -499,7 +499,7 @@ public class cgeodetail extends AbstractActivity { public boolean onCreateOptionsMenu(Menu menu) { if (cache != null && cache.coords != null) { menu.add(0, 2, 0, res.getString(R.string.cache_menu_compass)).setIcon(android.R.drawable.ic_menu_compass); // compass - SubMenu subMenu = menu.addSubMenu(1, 0, 0, res.getString(R.string.cache_menu_navigate)).setIcon(android.R.drawable.ic_menu_more); + SubMenu subMenu = menu.addSubMenu(1, 0, 0, res.getString(R.string.cache_menu_navigate)).setIcon(android.R.drawable.ic_menu_mapmode); addNavigationMenuItems(subMenu); } @@ -517,7 +517,7 @@ public class cgeodetail extends AbstractActivity { } if (cache != null && cache.canOpenInBrowser()) { - menu.add(1, 7, 0, res.getString(R.string.cache_menu_browser)).setIcon(android.R.drawable.ic_menu_info_details); // browser + menu.add(1, 7, 0, res.getString(R.string.cache_menu_browser)).setIcon(R.drawable.ic_menu_globe); // browser } menu.add(0, 12, 0, res.getString(R.string.cache_menu_share)).setIcon(android.R.drawable.ic_menu_share); // share cache @@ -668,7 +668,7 @@ public class cgeodetail extends AbstractActivity { if (cache.size != null) { // don't show "not chosen" for events, that should be the normal case if (!(cache.isEventCache() && cache.size == CacheSize.NOT_CHOSEN)) { - size = " (" + cache.size.id + ")"; + size = " (" + res.getString(cache.size.stringId) + ")"; } } diff --git a/src/cgeo/geocaching/cgeopopup.java b/src/cgeo/geocaching/cgeopopup.java index af5cd56..b5eff42 100644 --- a/src/cgeo/geocaching/cgeopopup.java +++ b/src/cgeo/geocaching/cgeopopup.java @@ -239,13 +239,15 @@ public class cgeopopup extends AbstractActivity { itemName.setText(res.getString(R.string.cache_type)); if (cgBase.cacheTypesInv.containsKey(cache.type)) { // cache icon if (cache.size != null) { - itemValue.setText(cgBase.cacheTypesInv.get(cache.type) + " (" + cache.size.id + ")"); + itemValue.setText(cgBase.cacheTypesInv.get(cache.type) + + " (" + res.getString(cache.size.stringId) + ")"); } else { itemValue.setText(cgBase.cacheTypesInv.get(cache.type)); } } else { if (cache.size != null) { - itemValue.setText(cgBase.cacheTypesInv.get("mystery") + " (" + cache.size.id + ")"); + itemValue.setText(cgBase.cacheTypesInv.get("mystery") + + " (" + res.getString(cache.size.stringId) + ")"); } else { itemValue.setText(cgBase.cacheTypesInv.get("mystery")); } diff --git a/src/cgeo/geocaching/enumerations/CacheSize.java b/src/cgeo/geocaching/enumerations/CacheSize.java index 44d6377..b690b7c 100644 --- a/src/cgeo/geocaching/enumerations/CacheSize.java +++ b/src/cgeo/geocaching/enumerations/CacheSize.java @@ -12,13 +12,13 @@ import java.util.Map; * @author koem */ public enum CacheSize { - MICRO("micro", 1, R.string.caches_filter_size_micro), - SMALL("small", 2, R.string.caches_filter_size_small), - REGULAR("regular", 3, R.string.caches_filter_size_regular), - LARGE("large", 4, R.string.caches_filter_size_large), - VIRTUAL("virtual", 0, R.string.caches_filter_size_virtual), - NOT_CHOSEN("not chosen", 0, R.string.caches_filter_size_notchosen), - OTHER("other", 0, R.string.caches_filter_size_other); + MICRO("micro", 1, R.string.cache_size_micro), + SMALL("small", 2, R.string.cache_size_small), + REGULAR("regular", 3, R.string.cache_size_regular), + LARGE("large", 4, R.string.cache_size_large), + VIRTUAL("virtual", 0, R.string.cache_size_virtual), + NOT_CHOSEN("not chosen", 0, R.string.cache_size_notchosen), + OTHER("other", 0, R.string.cache_size_other); public final String id; public final int comparable; diff --git a/src/cgeo/geocaching/mapcommon/cgeomap.java b/src/cgeo/geocaching/mapcommon/cgeomap.java index 9e33dbe..a185314 100644 --- a/src/cgeo/geocaching/mapcommon/cgeomap.java +++ b/src/cgeo/geocaching/mapcommon/cgeomap.java @@ -7,13 +7,13 @@ import cgeo.geocaching.cgCoord; import cgeo.geocaching.cgDirection; import cgeo.geocaching.cgGeo; import cgeo.geocaching.cgSettings; -import cgeo.geocaching.cgSettings.mapSourceEnum; import cgeo.geocaching.cgUpdateDir; import cgeo.geocaching.cgUpdateLoc; import cgeo.geocaching.cgUser; import cgeo.geocaching.cgWaypoint; import cgeo.geocaching.cgeoapplication; import cgeo.geocaching.activity.ActivityMixin; +import cgeo.geocaching.cgSettings.mapSourceEnum; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.mapinterfaces.ActivityImpl; import cgeo.geocaching.mapinterfaces.CacheOverlayItemImpl; @@ -42,12 +42,12 @@ import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; -import android.view.ViewGroup.LayoutParams; import android.view.WindowManager; +import android.view.ViewGroup.LayoutParams; import android.widget.ImageSwitcher; import android.widget.ImageView; -import android.widget.ImageView.ScaleType; import android.widget.TextView; +import android.widget.ImageView.ScaleType; import android.widget.ViewSwitcher.ViewFactory; import java.util.ArrayList; @@ -479,13 +479,13 @@ public class cgeomap extends MapBase implements OnDragListener, ViewFactory { @Override public boolean onCreateOptionsMenu(Menu menu) { - SubMenu submenu = menu.addSubMenu(1, MENU_SELECT_MAPVIEW, 0, res.getString(R.string.map_view_map)).setIcon(android.R.drawable.ic_menu_more); + SubMenu submenu = menu.addSubMenu(1, MENU_SELECT_MAPVIEW, 0, res.getString(R.string.map_view_map)).setIcon(android.R.drawable.ic_menu_mapmode); addMapViewMenuItems(submenu); - menu.add(0, MENU_MAP_LIVE, 0, res.getString(R.string.map_live_disable)).setIcon(android.R.drawable.ic_menu_close_clear_cancel); + menu.add(0, MENU_MAP_LIVE, 0, res.getString(R.string.map_live_disable)).setIcon(R.drawable.ic_menu_notifications); menu.add(0, MENU_STORE_CACHES, 0, res.getString(R.string.caches_store_offline)).setIcon(android.R.drawable.ic_menu_set_as).setEnabled(false); menu.add(0, MENU_TRAIL_MODE, 0, res.getString(R.string.map_trail_hide)).setIcon(android.R.drawable.ic_menu_recent_history); - menu.add(0, MENU_CIRCLE_MODE, 0, res.getString(R.string.map_circles_hide)).setIcon(android.R.drawable.ic_menu_view); + menu.add(0, MENU_CIRCLE_MODE, 0, res.getString(R.string.map_circles_hide)).setIcon(R.drawable.ic_menu_circle); return true; } |
