diff options
35 files changed, 677 insertions, 196 deletions
diff --git a/cgeo-calendar/.classpath b/cgeo-calendar/.classpath index 121b2d4..fba8f51 100644 --- a/cgeo-calendar/.classpath +++ b/cgeo-calendar/.classpath @@ -9,5 +9,6 @@ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry combineaccessrules="false" kind="src" path="/cgeo"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> diff --git a/main/.classpath b/main/.classpath index d7bcabc..1f69d48 100644 --- a/main/.classpath +++ b/main/.classpath @@ -25,5 +25,6 @@ <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/AndroidManifest.xml b/main/AndroidManifest.xml index 085f2b3..b78e26e 100644 --- a/main/AndroidManifest.xml +++ b/main/AndroidManifest.xml @@ -13,6 +13,7 @@ <uses-feature android:name="android.hardware.camera" android:required="false"/> <supports-screens android:largeScreens="true" + android:xlargeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> diff --git a/main/project/rawimages/c-geo_icon.svg b/main/project/rawimages/c-geo_icon.svg new file mode 100644 index 0000000..95fb7dd --- /dev/null +++ b/main/project/rawimages/c-geo_icon.svg @@ -0,0 +1,432 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2985" + version="1.1" + 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" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <metadata + id="metadata2991"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs2989"> + <linearGradient + id="linearGradient3936"> + <stop + style="stop-color:#f7991d;stop-opacity:1;" + offset="0" + id="stop3938" /> + <stop + style="stop-color:#f8b339;stop-opacity:1;" + offset="1" + id="stop3940" /> + </linearGradient> + <linearGradient + id="linearGradient3928"> + <stop + id="stop3930" + offset="0" + style="stop-color:#000000;stop-opacity:0.12849163;" /> + <stop + id="stop3932" + offset="1" + style="stop-color:#000000;stop-opacity:0.0726257;" /> + </linearGradient> + <linearGradient + id="linearGradient3863"> + <stop + style="stop-color:#ffc34a;stop-opacity:1;" + offset="0" + id="stop3865" /> + <stop + style="stop-color:#f9a62f;stop-opacity:1;" + offset="1" + id="stop3867" /> + </linearGradient> + <linearGradient + id="linearGradient3801"> + <stop + style="stop-color:#ffffff;stop-opacity:0.1;" + offset="0" + id="stop3803" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3805" /> + </linearGradient> + <linearGradient + id="linearGradient3890"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3892" /> + <stop + id="stop3900" + offset="0.29212967" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop3898" + offset="0.35852277" + style="stop-color:#d8dada;stop-opacity:1;" /> + <stop + style="stop-color:#d8dada;stop-opacity:1;" + offset="1" + id="stop3894" /> + </linearGradient> + <linearGradient + id="linearGradient3864"> + <stop + style="stop-color:#aad04a;stop-opacity:1;" + offset="0" + id="stop3866" /> + <stop + id="stop3872" + offset="0.29795828" + style="stop-color:#cfdc8d;stop-opacity:1;" /> + <stop + style="stop-color:#98bc40;stop-opacity:1;" + offset="0.36036199" + id="stop3882" /> + <stop + style="stop-color:#48873e;stop-opacity:1;" + offset="1" + id="stop3868" /> + </linearGradient> + <linearGradient + id="linearGradient3838"> + <stop + style="stop-color:#61b647;stop-opacity:1;" + offset="0" + id="stop3840" /> + <stop + style="stop-color:#92c746;stop-opacity:1;" + offset="1" + id="stop3842" /> + </linearGradient> + <linearGradient + id="linearGradient3828"> + <stop + id="stop3830" + offset="0" + style="stop-color:#000000;stop-opacity:0.13333334;" /> + <stop + id="stop3832" + offset="1" + style="stop-color:#000000;stop-opacity:0.11111111;" /> + </linearGradient> + <linearGradient + id="linearGradient3796"> + <stop + style="stop-color:#000000;stop-opacity:0.05555556;" + offset="0" + id="stop3798" /> + <stop + style="stop-color:#000000;stop-opacity:0.10555556;" + offset="1" + id="stop3800" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3796" + id="linearGradient3802" + x1="15.959242" + y1="343.29277" + x2="176.26119" + y2="343.29277" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3796" + id="linearGradient3810" + x1="335.7388" + y1="344.35822" + x2="496.04077" + y2="344.35822" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3864" + id="linearGradient3880" + x1="66.473442" + y1="197.85721" + x2="453.37692" + y2="197.85721" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3890" + id="linearGradient3896" + x1="70.62744" + y1="258.14891" + x2="435.78817" + y2="258.14891" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + id="filter3916" + x="-0.73785931" + width="2.4757186" + y="-0.25739279" + height="1.5147856"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="5.7505801" + id="feGaussianBlur3918" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3838" + id="radialGradient3922" + cx="283.49646" + cy="-10.861603" + fx="283.49646" + fy="-10.861603" + r="193.19952" + gradientTransform="matrix(-0.66393007,1.0294724,-1.0210616,-0.65850585,497.86851,-252.56237)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3801" + id="linearGradient3807" + x1="175.76119" + y1="344.35821" + x2="336.23881" + y2="344.35821" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3863" + id="linearGradient3869" + x1="39.90625" + y1="351.5625" + x2="175.7036" + y2="351.5625" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3863" + id="linearGradient3877" + x1="39.90625" + y1="411.14062" + x2="175.75117" + y2="411.14062" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3863" + id="linearGradient3885" + x1="39.90625" + y1="294.22113" + x2="175.74925" + y2="294.22113" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3928" + id="linearGradient3934" + gradientUnits="userSpaceOnUse" + x1="335.7388" + y1="344.35822" + x2="496.04077" + y2="344.35822" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3936" + id="linearGradient3942" + x1="336.25" + y1="304.70312" + x2="472.1875" + y2="304.70312" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3936" + id="linearGradient3950" + x1="336.43512" + y1="373.8125" + x2="472.1875" + y2="373.8125" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3936" + id="linearGradient3958" + x1="336.24496" + y1="420.28125" + x2="472.1875" + y2="420.28125" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3936" + id="linearGradient3966" + x1="336.25" + y1="459.6875" + x2="471.8985" + y2="459.6875" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1058" + id="namedview2987" + showgrid="false" + inkscape:zoom="2.4058204" + inkscape:cx="271.74005" + inkscape:cy="352.64753" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg2985" + inkscape:snap-bbox="false" + inkscape:snap-nodes="true" + inkscape:bbox-nodes="false" + inkscape:bbox-paths="false" + inkscape:object-nodes="true" + inkscape:object-paths="true" + inkscape:snap-global="false" /> + <path + style="fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.7062937" + d="m 22.337543,475.26062 0,28.21584 159.595867,-8.22962 161.06544,7.34788 159.00804,-7.34788 0,-272.16532 -57.31343,-5.29048 z" + id="path3812" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 16.459242,494.95293 0,-303.32032 220.436278,22.92537 102.87027,-21.74971 155.77497,14.69575 0,272.16533 -159.30195,16.45924 -160.47762,-15.87141 z" + id="path2998" + inkscape:connector-curvature="0" /> + <path + style="fill:url(#linearGradient3869);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 39.90625 379.59375 L 100.46875 348.9375 L 39.90625 323.53125 L 39.90625 379.59375 z " + id="path3022" /> + <path + style="fill:#fdd069;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 336.25 447.71875 L 175.75 380.46875 L 175.75 455.875 L 175.8125 455.875 L 335.84375 471.6875 L 336.25 471.65625 L 336.25 447.71875 z " + id="path3913" /> + <path + style="fill:url(#linearGradient3966);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 336.25 447.71875 L 336.25 471.65625 L 382.53125 467.125 L 336.25 447.71875 z " + id="path3824" /> + <path + style="fill:url(#linearGradient3877);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1.0" + d="M 175.75118 380.46593 L 110.4375 353.09375 L 39.90625 388.8125 L 39.90625 469.1875 L 175.75059 455.88106 " + id="path3020" /> + <path + style="fill:url(#linearGradient3958);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1.0" + d="M 336.24497 437.85561 L 401.0625 465.3125 L 472.1875 458.375 L 472.1875 411.65625 L 472.1875 411.65625 L 401.53125 375.25 L 336.24729 403.39996 " + id="path3836" /> + <path + style="fill:#fdd069;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 336.24729 403.39996 L 295.9375 420.78125 L 336.24497 437.85561 " + id="path3018" /> + <path + style="fill:url(#linearGradient3950);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 472.1875 344.78125 L 410.84375 371.25 L 472.1875 402.84375 L 472.1875 344.78125 z " + id="path3016" /> + <path + style="fill:#fdd069;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 336.25 215.5 L 231.9375 238.90625 L 175.75 232.9375 L 175.75 369.90625 L 285.375 416.34375 L 336.25 394.1875 L 336.25 215.5 z " + id="path3918" /> + <path + style="fill:url(#linearGradient3942);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 336.25 215.5 L 336.25 394.1875 L 472.1875 334.96875 L 472.1875 229.34375 L 337.5 215.21875 L 336.25 215.5 z " + id="path3831" /> + <path + style="fill:url(#linearGradient3885);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1.0" + d="M 175.74925 232.94454 L 39.90625 218.53125 L 39.90625 312.375 L 175.74798 369.91102 " + id="path3002" /> + <path + style="fill:url(#linearGradient3807);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 336.23881,496.12859 -160.47762,-15.87141 0,-272.05717 160.47762,-15.61218 z" + id="path3928" + inkscape:connector-curvature="0" /> + <path + style="fill:url(#linearGradient3934);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 495.54076,479.66935 -159.30195,16.45924 0,-303.54076 159.30195,14.91619 z" + id="path3026" + inkscape:connector-curvature="0" /> + <path + style="fill:url(#linearGradient3802);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 16.459242,494.95293 159.301948,-14.69575 0,-272.05717 -159.301948,-16.5674 z" + id="path3024" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;fill-opacity:0.39768341;stroke:none" + d="m 442.88428,146.84389 23.48471,20.36727 c 2.79219,2.93915 2.97845,9.95135 1.03915,18.08115 l -10.39147,31.79789 c -2.64524,4.8496 -9.97581,7.27402 -9.97581,7.27402 0,0 2.60526,7.16885 1.87047,11.43062 L 431.03801,303.54719 211.9859,415.98286 c -4.40873,2.49828 -13.14978,2.5487 -15.79502,-0.83132 L 89.158777,293.57139 86.041338,228.93647 z" + id="path3924" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccc" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="fill:#5c5d5d;fill-opacity:1;stroke:none" + d="m 423.82549,175.46728 c 9.40528,3.52698 10.28702,11.16877 10.58094,18.51665 l -17.6349,67.60046 -215.73364,110.51205 c -13.2323,6.03571 -18.60274,3.52699 -24.10104,-3.23306 L 74.360505,252.1791 69.657865,181.93341 c -0.207829,-7.48186 9.405281,-12.34443 9.405281,-12.34443 z" + id="path3920" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccc" /> + <path + style="fill:url(#linearGradient3896);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 435.28817,168.41332 -18.81056,76.41791 -220.73019,109.63031 c -6.23488,2.07829 -10.747,1.83787 -14.69576,-1.17566 L 77.887486,234.5442 71.12744,160.47761 z" + id="path3884" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:#868786;fill-opacity:1;stroke:none" + d="m 452.87691,130.92395 c 1.17566,3.96786 -9.35911,40.28156 -9.35911,40.28156 -2.49395,7.58577 -8.6705,10.28703 -8.6705,10.28703 L 201.3318,287.88978 c -7.17011,2.90961 -14.01254,1.62667 -16.45924,-1.0287 L 69.36395,171.64638 c -2.390037,-3.32527 -2.351321,-12.93226 -2.351321,-12.93226 z" + id="path3818" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:url(#linearGradient3880);fill-opacity:1;stroke:none" + d="m 452.87691,130.92395 -10.53477,36.60762 c -1.36085,4.47005 -5.29048,6.17222 -5.29048,6.17222 l -235.13203,107.5729 c -10.70321,3.94876 -16.16532,-1.17566 -16.16532,-1.17566 L 69.657865,165.18025 c -3.11744,-2.90961 -2.645236,-6.46613 -2.645236,-6.46613 0,0 -1.053122,-22.11238 -0.03919,-45.77105 z" + id="path3816" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccc" /> + <path + sodipodi:type="arc" + style="fill:#ffffd0;fill-opacity:0.94405589;stroke:none;filter:url(#filter3916)" + id="path3902" + sodipodi:cx="185.59158" + sodipodi:cy="226.65034" + sodipodi:rx="9.3523197" + sodipodi:ry="26.809982" + d="m 194.9439,226.65034 a 9.3523197,26.809982 0 1 1 -18.70464,0 9.3523197,26.809982 0 1 1 18.70464,0 z" + transform="matrix(0.88331111,0,0,1.0869978,29.761821,-12.444045)" /> + <path + style="fill:url(#radialGradient3922);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="M 327.42135,24.101033 452.04133,125.79564 c 3.52698,4.70264 -1.46957,7.64179 -1.46957,7.64179 l -246.00689,99.93111 c -5.77133,2.79957 -11.57831,0.83438 -14.69575,-1.76349 L 70.53961,121.68083 c -10.580941,-12.05052 5.29047,-17.04708 5.29047,-17.04708 L 311.25603,23.513203 c 9.40528,-3.820896 16.16532,0.58783 16.16532,0.58783 z" + id="path3814" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccc" /> +</svg> diff --git a/main/project/rawimages/c_geo_icon_basic_512.png b/main/project/rawimages/c_geo_icon_basic_512.png Binary files differdeleted file mode 100644 index c4a592f..0000000 --- a/main/project/rawimages/c_geo_icon_basic_512.png +++ /dev/null diff --git a/main/project/rawimages/c_geo_icon_basic_freigestellt_512.png b/main/project/rawimages/c_geo_icon_basic_freigestellt_512.png Binary files differdeleted file mode 100644 index 1fab340..0000000 --- a/main/project/rawimages/c_geo_icon_basic_freigestellt_512.png +++ /dev/null diff --git a/main/res/layout/caches_item.xml b/main/res/layout/caches_item.xml index d4e7b27..1105f91 100644 --- a/main/res/layout/caches_item.xml +++ b/main/res/layout/caches_item.xml @@ -75,15 +75,13 @@ <!-- real text based direction and distance --> <RelativeLayout - android:id="@+id/direction_layout" android:layout_width="78dip" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginBottom="1dip" android:layout_marginRight="30dip" - android:layout_marginTop="1dip" - android:visibility="gone" > + android:layout_marginTop="1dip" > <view android:id="@+id/distance" @@ -111,31 +109,21 @@ android:gravity="center" android:minHeight="28px" android:minWidth="28px" - cc:skin="?compass" /> - </RelativeLayout> - - <!-- image based direction and distance --> - - <RelativeLayout - android:id="@+id/dirimg_layout" - android:layout_width="78dip" - android:layout_height="wrap_content" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" - android:layout_marginBottom="1dip" - android:layout_marginRight="30dip" - android:layout_marginTop="1dip" - android:visibility="gone" > + cc:skin="?compass" + android:visibility="gone" /> <ImageView android:id="@+id/dirimg" - android:layout_width="55dip" - android:layout_height="30dip" - android:layout_centerInParent="true" + android:layout_width="78dip" + android:layout_height="28px" + android:layout_centerHorizontal="true" android:layout_gravity="center" + android:layout_marginTop="21dip" android:gravity="center" - android:scaleType="fitXY" - android:src="@null" /> + android:minHeight="28px" + android:minWidth="28px" + android:src="@null" + android:visibility="gone" /> </RelativeLayout> <!-- inventory and favorites --> diff --git a/main/res/values-cs/strings.xml b/main/res/values-cs/strings.xml index b5df662..b891ea3 100644 --- a/main/res/values-cs/strings.xml +++ b/main/res/values-cs/strings.xml @@ -1044,11 +1044,12 @@ <string name="legal_note">Pro používání služeb Geocaching.com musíš souhlasit s podmínkami použití <a href="http://www.geocaching.com/about/termsofuse.aspx">společnosti Groundspeak</a></string> <string name="quote">Učinit Geocaching lehčí a uživatelé línější.</string> <string name="powered_by">carnero</string> - <string name="support">Podpora: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Stránka: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">Stránka c:geo</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Návod: <a href="http://manual.cgeo.org/">c:geo v Nutshell</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Podpora: <a href="">support@cgeo.org</a></string> + <string name="website">Stránka: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">Stránka c:geo</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Návod: <a href="">c:geo v Nutshell</a></string> <string name="about_twitter">Má <b>c:geo</b> publikovat nový status na Twitteru vždy, když zaloguješ keš?</string> <string name="about_auth_1">Následující proces dovoluje aplikaci <b>c:geo</b> přístup na Twitter - pokud budeš souhlasit.</string> <string name="about_auth_2">Klepnutím na tlačítko \"Zahájit autorizaci\" bude proces zahájen. Tento proces otevře webový prohlížeč s Twitterem. Přihlaš se na této stránce a povol <b>c:geu</b> přístup k tvému účtu. Pokud je to povoleno, Twitter ti ukáže číselný PIN kód. Tento PIN kód musíš zadat do <b>c:geo</b> a potvrdit. To je vše.</string> diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index e7729bf..954f1c1 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -1040,11 +1040,12 @@ <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> <string name="quote">Um Geocachen einfacher zu machen, um es Anwendern bequemer zu machen.</string> <string name="powered_by">carnero</string> - <string name="support">Support: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Webseite: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Benutzung: <a href="http://manual.cgeo.org/">c:geo Kurzanleitung</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Support: <a href="">support@cgeo.org</a></string> + <string name="website">Webseite: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Benutzung: <a href="">c:geo Kurzanleitung</a></string> <string name="about_twitter">Soll jeder neue Fund auf Twitter veröffentlicht werden, wenn er über <b>c:geo</b> geloggt wird?</string> <string name="about_auth_1">Der folgende Prozess erlaubt es <b>c:geo</b> auf den persönlichen Twitter-Account zuzugreifen, wenn zugestimmt wird.</string> <string name="about_auth_2">Ein Klick auf \"Starte Autorisierung\" öffnet eine Twitter-Seite in einem Browserfenster. Durch die Anmeldung und die Bestätigung wird <b>c:geo</b> ermöglicht, auf den persönlichen Twitter-Account zuzugreifen. Wird dies bestätigt, nennt Twitter eine numerische PIN, diese muss kopiert und in <b>c:geo</b> eingefügt werden. Das ist alles.</string> diff --git a/main/res/values-es/strings.xml b/main/res/values-es/strings.xml index b618fb9..bc7b467 100644 --- a/main/res/values-es/strings.xml +++ b/main/res/values-es/strings.xml @@ -779,11 +779,12 @@ <string name="legal_note">Para utilizar los servicios de Geocaching.com, debes aceptar las <a href="http://www.geocaching.com/about/termsofuse.aspx">condiciones de Groundspeak</a>.</string> <string name="quote">Para hacer el geocaching más sencillo, para hacer a los usuarios más vagos.</string> - <string name="support">Soporte: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Web: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Manual: <a href="http://itw.bidix.info/cgeo/">c:geo en breve</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Soporte: <a href="">support@cgeo.org</a></string> + <string name="website">Web: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Manual: <a href="">c:geo en breve</a></string> <string name="about_twitter">¿Debe <b>c:geo</b> publicar el nuevo estado en Twitter cuando registras un escondite?</string> <string name="about_auth_1">El siguiente proceso permite a <b>c:geo</b> acceder a Twitter - si estás de acuerdo.</string> diff --git a/main/res/values-fr/strings.xml b/main/res/values-fr/strings.xml index a951495..6fe4960 100644 --- a/main/res/values-fr/strings.xml +++ b/main/res/values-fr/strings.xml @@ -1042,11 +1042,12 @@ <string name="legal_note">Pour utiliser les services de Geocaching.com, vous devez accepter les termes et conditions de la <a href="http://www.geocaching.com/about/termsofuse.aspx">mise en garde de Groundspeak</a>.</string> <string name="quote">Pour faciliter le géocaching.</string> <string name="powered_by">carnero</string> - <string name="support">support: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">site: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">page c:geo</a></string> - <string name="twitter">twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Manuel: <a href="http://manual.cgeo.org/">c:geo en bref</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">support: <a href="">support@cgeo.org</a></string> + <string name="website">site: <a href="">cgeo.org</a></string> + <string name="facebook">facebook: <a href="">page c:geo</a></string> + <string name="twitter">twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Manuel: <a href="">c:geo en bref</a></string> <string name="about_twitter">Voulez-vous publier un nouveau statut sur Twitter à chaque nouvelle cache découverte sous <b>c:geo</b>?</string> <string name="about_auth_1">Le processus suivant permet à <b>c:geo</b> d\'accéder à votre compte Twitter - si vous acceptez.</string> <string name="about_auth_2">Cliquer sur le bouton \"début d\'autorisation\" pour démarrer. Une fenêtre de navigateur va s\'ouvrir pour vous connecter sur Twitter. Accepter pour que <b>c:geo</b> accéde à votre compte. Twitter vous affichera alors une code PIN composé de chiffres. Merci de coller ce code dans <b>c:geo</b> puis confirmer. C\'est tout!</string> diff --git a/main/res/values-hu/strings.xml b/main/res/values-hu/strings.xml index 689912c..d57c6c0 100644 --- a/main/res/values-hu/strings.xml +++ b/main/res/values-hu/strings.xml @@ -937,11 +937,12 @@ <string name="legal_note">A geocaching.com szolgáltatásainak használatához, el kell fogadnod ezeket a feltételeket:<a href="http://www.geocaching.com/about/termsofuse.aspx">Groundspeak disclaimer</a> </string> <string name="quote">Hogy a geocaching könnyebb legyen a felhasználók pedig lustábbak.</string> <string name="powered_by">carnero</string> - <string name="support">Támogatás: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Weboldal: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Kézikönyv: <a href="http://manual.cgeo.org/">A c:geo dióhéjban</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Támogatás: <a href="">support@cgeo.org</a></string> + <string name="website">Weboldal: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Kézikönyv: <a href="">A c:geo dióhéjban</a></string> <string name="about_twitter">Akarod, hogy <b>c:geo</b> új bejegyzést írjon Twitterre mindig mikor egy ládát megtalálsz?</string> <string name="about_auth_1">A következő folyamat engedélyezi a <b>c:geo</b>-nak, hogy hozzáférjen a Twitterhez – ha jóváhagyod.</string> <string name="about_auth_2">Kattints a \"c:geo engedélyezése\" gombra, hogy elindítsd a folyamatot. Ez a folyamat meg fog nyitni egy böngészőt a Twitter weboldallal. Lépj be ezen az oldalon és hagyd jóvá, hogy a <b>c:geo</b> hozzáférjen a felhasználói fiókodhoz. Ha elfogadod, a Twitter mutatni fog egy számokból álló PIN kódot. Ezt a PIN kódot kell a <b>c:geo</b>-ban beillesztened és jóváhagynod. Ilyen egyszerű.</string> diff --git a/main/res/values-it/strings.xml b/main/res/values-it/strings.xml index b3af349..89dd5a7 100644 --- a/main/res/values-it/strings.xml +++ b/main/res/values-it/strings.xml @@ -500,6 +500,12 @@ <item quantity="one">Un cache</item> <item quantity="other">%1$d Cache</item> </plurals> + <string name="tts_service">Bussola parlante</string> + <string name="tts_start">Start voce</string> + <string name="tts_stop">Stop voce</string> + <string name="tts_kilometers">%s chilometri</string> + <string name="tts_meters">%s metri</string> + <string name="tts_oclock">%s precisi</string> <string name="cache_offline">Offline</string> <string name="cache_offline_refresh">Aggiorna</string> <string name="cache_offline_drop">Elimina</string> @@ -519,6 +525,8 @@ <string name="cache_log_images_title">Immagini Log</string> <string name="cache_log_image_default_title">Foto</string> <string name="cache_personal_note">Note personali</string> + <string name="cache_personal_note_unstored">Cache non salvati</string> + <string name="cache_personal_note_store">Il cache verrà prima salvato per abilitare le note personali.</string> <string name="cache_description">Descrizione</string> <string name="cache_description_long">Descrizione estesa</string> <string name="cache_description_table_note">La descrizione contiene una tabella formattata in modo tale che potresti aver bisogno di andare su %s per vederla correttamente.</string> @@ -1044,11 +1052,13 @@ <string name="legal_note">Per usare i servizi di Geocaching.com, si applicano i termini e le condizioni del <a href="http://www.geocaching.com/about/termsofuse.aspx">Contratto Groundspeak</a> che deve essere approvato dall\'utente.</string> <string name="quote">Per rendere il geocaching più facile e rendere gli utenti più pigri.</string> <string name="powered_by">carnero</string> - <string name="support">Supporto: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Sito: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">pagina c:geo </a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Manuale: <a href="http://manual.cgeo.org/">c:geo in a Nutshell</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Supporto: <a href="">support@cgeo.org</a></string> + <string name="website">Sito: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">pagina c:geo </a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Manuale: <a href="">c:geo in a Nutshell</a></string> + <string name="market">Android: <a href="">c:geo su Google Play</a></string> <string name="about_twitter">Può <b>c:geo</b> pubblicare su Twitter ogni volta che logghi un cache?</string> <string name="about_auth_1">La procesura seguente autorizza <b>c:geo</b> ad accedere a Twitter - se confermato.</string> <string name="about_auth_2">Clicca sul pulsante \"Autorizza c:geo\" per iniziare. Questa procedura aprirà il browser sulla pagina Twitter. Fai Login su questa pagina e autorizza <b>c:geo</b> ad accedere al tuo account. Se accettato, Twitter mostrerà un PIN code numerico. Questo PIN deve essere riportato in <b>c:geo</b> e confermato.</string> diff --git a/main/res/values-ja/strings.xml b/main/res/values-ja/strings.xml index 42f16be..c0c7974 100644 --- a/main/res/values-ja/strings.xml +++ b/main/res/values-ja/strings.xml @@ -971,11 +971,12 @@ <string name="legal_note">Geocaching.comを使うには<a href="http://www.geocaching.com/about/termsofuse.aspx">Groundspeak 利用規約</a>(英語)に同意している必要があります。</string> <string name="quote">To make geocaching easier, to make users lazier.</string> <string name="powered_by">carnero</string> - <string name="support">サポート: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Webサイト: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">マニュアル: <a href="http://manual.cgeo.org/">c:geo マニュアル</a>(英語)</string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">サポート: <a href="">support@cgeo.org</a></string> + <string name="website">Webサイト: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">マニュアル: <a href="">c:geo マニュアル</a>(英語)</string> <string name="about_twitter">キャッシュのログを書いたら<b>c:geo</b>にTwitterでつぶやいてほしい?</string> <string name="about_auth_1"><b>c:geo</b>がTwitterにアクセスする許可を得るには次のようにしてください。</string> <string name="about_auth_2">「認証を開始する」ボタンを押すとブラウザでTwitterのページが開きます。そのページにログインすれば<b>c:geo</b>があなたのアカウントにアクセルする許可が得られます。ログインに成功したら数字のPINコードが表示されるので、この下の入力欄にコピー&ペーストして「完了」ボタンを押してください。</string> diff --git a/main/res/values-nl/strings.xml b/main/res/values-nl/strings.xml index f4dbd10..8bcbd38 100644 --- a/main/res/values-nl/strings.xml +++ b/main/res/values-nl/strings.xml @@ -1026,11 +1026,12 @@ <string name="legal_note">Voor het gebruik van de diensten van Geocaching.com, dient akkoord te worden gegaan met de <a href="http://www.geocaching.com/about/termsofuse.aspx">Groundspeak voorwaarden</a>.</string> <string name="quote">Om geocahing makkelijker te maken en gebruikers luier te maken.</string> <string name="powered_by">carnero</string> - <string name="support">support:<a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">website: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Handleiding: <a href="http://manual.cgeo.org/">c:geo in een notendop</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">support:<a href="">support@cgeo.org</a></string> + <string name="website">website: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Handleiding: <a href="">c:geo in een notendop</a></string> <string name="about_twitter">Moet <b>c:geo</b> elke cache vondst publiceren naar Twitter?</string> <string name="about_auth_1">Het volgende proces staat <b>c:geo</b> toe om Twitter toegang te verkrijgen bij goedkeuring.</string> <string name="about_auth_2">Klik op de \"autoriseer c:geo\" knop om het proces te starten. Dit proces zal een browser openen met een Twitter pagina. Login op deze pagina en sta <b>c:geo</b> toegang tot je account toe. Bij goedkeuring laat Twitter een numerieke PIN code zien. Deze PIN dien je te plakken en te bevestigen in <b>c:geo</b>.</string> diff --git a/main/res/values-pl/strings.xml b/main/res/values-pl/strings.xml index ff2fb96..9f67bc2 100644 --- a/main/res/values-pl/strings.xml +++ b/main/res/values-pl/strings.xml @@ -1045,11 +1045,12 @@ <string name="legal_note">Aby móc korzystać z usług serwisu Geocaching.com <a href="http://www.geocaching.com/about/termsofuse.aspx">warunki korzystania Groundspeak</a> muszą być zaakceptowane.</string> <string name="quote">Aby uczynić geocaching prostszym, a użytkowników bardziej leniwymi.</string> <string name="powered_by">carnero</string> - <string name="support">Support: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Website: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo strona</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Podręcznik: <a href="http://manual.cgeo.org/">c:geo skrócona instrukcja obsługi</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Support: <a href="">support@cgeo.org</a></string> + <string name="website">Website: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo strona</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Podręcznik: <a href="">c:geo skrócona instrukcja obsługi</a></string> <string name="about_twitter">Czy chczesz aby <b>c:geo</b> publikował nowy status na Twitter za każdym razem kiedy znajdziesz skrzynkę?</string> <string name="about_auth_1">Poniższy proces pozwala <b>c:geo</b> uzyskać dostęp do Twitter za Twoim pozwoleniem.</string> <string name="about_auth_2">Kliknięcie na \"Autoryzacja c:geo\" spowoduje rozpoczęcie procesu. Ten proces spowoduje otwarcie przeglądarki internetowej na stronie Twitter. Zaloguj się na tej stronie i pozwól <b>c:geo</b> uzyskać dostęp do Twojego konta. Jeśli zostanie zaakceptowany, Twitter wyświetli kod numeryczny PIN. Kod PIN musi zostać wklejony do <b>c:geo</b> i potwierdzony. To wszystko.</string> diff --git a/main/res/values-pt/strings.xml b/main/res/values-pt/strings.xml index 5916133..ae6366f 100644 --- a/main/res/values-pt/strings.xml +++ b/main/res/values-pt/strings.xml @@ -938,11 +938,12 @@ <string name="legal_note">Para utilizar os serviços de Geocaching.com, tem de concordar com os termos e condições da <a href="http://www.geocaching.com/about/termsofuse.aspx">declaração Groundspeak</a>.</string> <string name="quote">Para tornar o geocaching mais fácil, para tornar os utilizadores mais preguiçosos.</string> <string name="powered_by">carnero</string> - <string name="support">Suporte: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Site na internet: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">página do c:geo</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Manual: <a href="http://manual.cgeo.org/">o essencial do c:geo</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Suporte: <a href="">support@cgeo.org</a></string> + <string name="website">Site na internet: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">página do c:geo</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Manual: <a href="">o essencial do c:geo</a></string> <string name="about_twitter">O <b>c:geo</b> deve publicar no Twitter de cada vez que uma cache for registada?</string> <string name="about_auth_1">O processo seguinte permite ao <b>c:geo</b> aceder ao Twitter - se concordar.</string> <string name="about_auth_2">Premir o botão \"Autorizar c:geo\" dará início ao processo. Este processo irá abrir a página do Twitter no seu browser. Faça login nesta página e autorize o <b>c:geo</b> a aceder à sua conta. Se autorizar, o Twitter irá mostrar um código PIN numérico. Este PIN deverá ser copiado para o <b>c:geo</b> e sujeito a confirmação. E é tudo.</string> diff --git a/main/res/values-sk/strings.xml b/main/res/values-sk/strings.xml index af796ba..00d62e9 100644 --- a/main/res/values-sk/strings.xml +++ b/main/res/values-sk/strings.xml @@ -942,11 +942,12 @@ <string name="legal_note">Pred používaním služieb serveru Geocaching.com je potrebné súhlasiť s <a href="http://www.geocaching.com/about/disclaimer.aspx">licenčnou dohodou Groundspeaku</a>.</string> <string name="quote">Pre jednoduchšie hľadanie skrýš a používateľov lenivších.</string> <string name="powered_by">carnero</string> - <string name="support">Podpora: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Web: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Manuál: <a href="http://manual.cgeo.org/">c:geo v kocke</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Podpora: <a href="">support@cgeo.org</a></string> + <string name="website">Web: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Manuál: <a href="">c:geo v kocke</a></string> <string name="about_twitter">Chcete, aby <b>c:geo</b> napísalo na váš Twitter vždy keď zapíšete nájdenie skrýše?</string> <string name="about_auth_1">Pomocou nasledujúceho procesu môžete aplikácii <b>c:geo</b> umožniť odosielanie príspevkov na váš Twitter. </string> <string name="about_auth_2">Ťuknutím na tlačidlo „Zahájiť autorizáciu“ celý proces začne. Tento proces otvorí webovú stránku Twitteru, kde sa sa prihlásite a tlačidlom „Authorize app“ umožníte aplikácii <b>c:geo</b> prístup k vášmu Twitter účtu. Potom čo ťuknete na „Authorize app“, Twitter vám pridelí PIN kód. Tento kód skopírujte a vložte do aplikácie <b>c:geo</b>. A potvrďte. To je všetko.</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 5d0b15f..34543f1 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -1056,12 +1056,13 @@ <string name="legal_note">To use the services of Geocaching.com, terms and conditions of the <a href="http://www.geocaching.com/about/termsofuse.aspx">Groundspeak disclaimer</a> have to be agreed.</string> <string name="quote">To make geocaching easier, to make users lazier.</string> <string name="powered_by">carnero</string> - <string name="support">Support: <a href="mailto:support@cgeo.org">support@cgeo.org</a></string> - <string name="website">Website: <a href="http://cgeo.org/">cgeo.org</a></string> - <string name="facebook">Facebook: <a href="http://www.facebook.com/pages/cgeo/297269860090">c:geo page</a></string> - <string name="twitter">Twitter: <a href="http://twitter.com/android_gc">@android_GC</a></string> - <string name="nutshellmanual">Manual: <a href="http://manual.cgeo.org/">c:geo in a Nutshell</a></string> - <string name="market">Android: <a href="https://play.google.com/store/apps/details?id=cgeo.geocaching">c:geo on Google Play</a></string> + <!-- Note: Links here are just for appearance. See AboutActivity to make changes --> + <string name="support">Support: <a href="">support@cgeo.org</a></string> + <string name="website">Website: <a href="">cgeo.org</a></string> + <string name="facebook">Facebook: <a href="">c:geo page</a></string> + <string name="twitter">Twitter: <a href="">@android_GC</a></string> + <string name="nutshellmanual">Manual: <a href="">c:geo in a Nutshell</a></string> + <string name="market">Android: <a href="">c:geo on Google Play</a></string> <string name="about_twitter">Should <b>c:geo</b> publish a new status on Twitter every time you log a cache?</string> <string name="about_auth_1">The following process allows <b>c:geo</b> to access Twitter - if agreed.</string> <string name="about_auth_2">A click on the \"authorize c:geo\" button will start the process. This process will open up a web browser with a Twitter page. Login on this page and allow <b>c:geo</b> to access your account. If this is accepted, Twitter will show up a numeric PIN code. This PIN must be pasted into <b>c:geo</b> and confirmed. That\'s all.</string> @@ -1083,5 +1084,7 @@ <string name="tts_stop">Stop talking</string> <string name="tts_kilometers">%s kilometers</string> <string name="tts_meters">%s meters</string> + <string name="tts_miles">%s miles</string> + <string name="tts_feet">%s feet</string> <string name="tts_oclock">%s o\'clock</string> </resources> diff --git a/main/res/values/strings_not_translatable.xml b/main/res/values/strings_not_translatable.xml index 542caca..89a54c0 100644 --- a/main/res/values/strings_not_translatable.xml +++ b/main/res/values/strings_not_translatable.xml @@ -96,9 +96,35 @@ <!-- changelog -->
<string name="changelog" translatable="false">\n
- <b>Next release</b>\n\n
+ <b>Next release</b>\n
+ \n
+ \n
+ <b>2013.05.18</b>\n
+ <b>Bugfixing:</b>\n
+ · Correction for compatability issue with tablet devices\n
+ \n
+ \n
+ <b>2013.05.16</b>\n
+ <b>Bugfixing:</b>\n
+ · Adaption to changes on gc.com (live map)\n
+ \n
+ \n
+ <b>2013.05.13</b>\n
+ <b>Bugfixing:</b>\n
+ · Twitter option was not shown on logging page\n
+ · Disable trail on map did only work after refresh of the map\n
+ · Stability improvements when selecting log pictures to be attached\n
+ · Remove accidentely appended spaces in searches\n
+ · Stability improvements for GPX import and export\n
+ · Do not duplicate waypoints retrieved from the personal note when updating a cache\n
+ · Fixed a possible crash when device is rotated while cache list is shown\n
+ · Fixed a possible crash in \"Any destination\" menu\n
+ · Ignore hide setting when searching for owned caches\n
+ \n
+ \n
+ <b>2013.04.03</b>\n
<b>New Features/Functions:</b>\n
- · Log images can be scaled before upload to save traffic
+ · Log images can be scaled before upload to save traffic\n
· Improved online detection when refreshing caches\n
· Talking compass (accessible in compass menu)\n
\n
diff --git a/main/src/cgeo/geocaching/AboutActivity.java b/main/src/cgeo/geocaching/AboutActivity.java index 83f25e9..3164602 100644 --- a/main/src/cgeo/geocaching/AboutActivity.java +++ b/main/src/cgeo/geocaching/AboutActivity.java @@ -71,7 +71,7 @@ public class AboutActivity extends AbstractActivity { * unused here but needed since this method is referenced from XML layout */ public void nutshellmanual(View view) { - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.cgeo.org/"))); + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://manual.cgeo.org/"))); } /** diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java index 7e97e46..d0f980e 100644 --- a/main/src/cgeo/geocaching/CompassActivity.java +++ b/main/src/cgeo/geocaching/CompassActivity.java @@ -13,6 +13,8 @@ import org.apache.commons.lang3.StringUtils; import android.content.Context; import android.content.Intent; +import android.hardware.Sensor; +import android.hardware.SensorManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -43,11 +45,18 @@ public class CompassActivity extends AbstractActivity { private TextView distanceView = null; private TextView headingView = null; private CompassView compassView = null; + private boolean hasMagneticFieldSensor; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState, R.layout.navigate); + final SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); + hasMagneticFieldSensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null; + if (!hasMagneticFieldSensor) { + Settings.setUseCompass(false); + } + // get parameters Bundle extras = getIntent().getExtras(); if (extras != null) { @@ -104,6 +113,7 @@ public class CompassActivity extends AbstractActivity { @Override public boolean onCreateOptionsMenu(final Menu menu) { getMenuInflater().inflate(R.menu.compass_activity_options, menu); + menu.findItem(R.id.menu_switch_compass_gps).setVisible(hasMagneticFieldSensor); final SubMenu subMenu = menu.findItem(R.id.menu_select_destination).getSubMenu(); if (coordinates.size() > 1) { for (int i = 0; i < coordinates.size(); i++) { diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java index d8711cf..c032c34 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java @@ -13,14 +13,15 @@ import java.util.regex.Pattern; public final class GCConstants { static final String GC_URL = "http://www.geocaching.com/"; + static final String GC_TILE_URL = "http://tiles.geocaching.com/"; /** Live Map */ public final static String URL_LIVE_MAP = GC_URL + "map/default.aspx"; /** Live Map pop-up */ - public final static String URL_LIVE_MAP_DETAILS = GC_URL + "map/map.details"; + public final static String URL_LIVE_MAP_DETAILS = GC_TILE_URL + "map.details"; /** Caches in a tile */ - public final static String URL_MAP_INFO = GC_URL + "map/map.info"; + public final static String URL_MAP_INFO = GC_TILE_URL + "map.info"; /** Tile itself */ - public final static String URL_MAP_TILE = GC_URL + "map/map.png"; + public final static String URL_MAP_TILE = GC_TILE_URL + "map.png"; /** * Patterns for parsing the result of a (detailed) search @@ -116,7 +117,9 @@ public final class GCConstants { public final static Pattern PATTERN_SEARCH_TRACKABLES = Pattern.compile("<a id=\"ctl00_ContentBody_dlResults_ctl[0-9]+_uxTravelBugList\" class=\"tblist\" data-tbcount=\"([0-9]+)\" data-id=\"[^\"]*\"[^>]*>(.*)</a>"); /** Second group used */ public final static Pattern PATTERN_SEARCH_TRACKABLESINSIDE = Pattern.compile("(<img src=\"[^\"]+\" alt=\"([^\"]+)\" title=\"[^\"]*\" />[^<]*)"); - public final static Pattern PATTERN_SEARCH_DIRECTION = Pattern.compile("<img id=\"ctl00_ContentBody_dlResults_ctl[0-9]+_uxDistanceAndHeading\" title=\"[^\"]*\" src=\"[^\"]*/seek/CacheDir\\.ashx\\?k=([^\"]+)\"[^>]*>"); + public final static Pattern PATTERN_SEARCH_DIRECTION_DISTANCE = Pattern.compile("<img src=\"/images/icons/compass/([^\\.]+)\\.gif\"[^>]*>[^<]*<br />([^<]+)</span>"); + public final static Pattern PATTERN_SEARCH_DIFFICULTY_TERRAIN = Pattern.compile("<span class=\"small\">([0-5]([\\.,]5)?)/([0-5]([\\.,]5)?)</span><br />"); + public final static Pattern PATTERN_SEARCH_CONTAINER = Pattern.compile("<img src=\"/images/icons/container/([^\\.]+)\\.gif\""); public final static Pattern PATTERN_SEARCH_GEOCODE = Pattern.compile("\\|\\W*(GC[0-9A-Z]+)[^\\|]*\\|"); public final static Pattern PATTERN_SEARCH_ID = Pattern.compile("name=\"CID\"[^v]*value=\"([0-9]+)\""); public final static Pattern PATTERN_SEARCH_FAVORITE = Pattern.compile("<span id=\"ctl00_ContentBody_dlResults_ctl[0-9]+_uxFavoritesValue\" title=\"[^\"]*\" class=\"favorite-rank\">([0-9]+)</span>"); diff --git a/main/src/cgeo/geocaching/connector/gc/GCMap.java b/main/src/cgeo/geocaching/connector/gc/GCMap.java index 5f16e10..49f61ef 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCMap.java +++ b/main/src/cgeo/geocaching/connector/gc/GCMap.java @@ -44,6 +44,7 @@ public class GCMap { try { final Parameters params = new Parameters("i", geocodeList, "_", String.valueOf(System.currentTimeMillis())); + params.add("app", "cgeo"); final String referer = GCConstants.URL_LIVE_MAP_DETAILS; final String data = StringUtils.defaultString(Tile.requestMapInfo(referer, params, referer)); @@ -297,7 +298,8 @@ public class GCMap { "x", String.valueOf(tile.getX()), "y", String.valueOf(tile.getY()), "z", String.valueOf(tile.getZoomlevel()), - "ep", "1"); + "ep", "1", + "app", "cgeo"); if (tokens != null) { params.put("k", tokens[0], "st", tokens[1]); } diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java index ef921de..bc01e10 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCParser.java +++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java @@ -166,9 +166,33 @@ public abstract class GCParser { // cache direction - image if (Settings.getLoadDirImg()) { - cache.setDirectionImg(Network.decode(BaseUtils.getMatch(row, GCConstants.PATTERN_SEARCH_DIRECTION, true, 1, cache.getDirectionImg(), true))); + 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())); + } } + // difficulty/terrain + final MatcherWrapper matcherDT = new MatcherWrapper(GCConstants.PATTERN_SEARCH_DIFFICULTY_TERRAIN, row); + if (matcherDT.find()) { + final Float difficulty = parseStars(matcherDT.group(1)); + if (difficulty != null) { + cache.setDifficulty(difficulty); + } + final Float terrain = parseStars(matcherDT.group(3)); + if (terrain != null) { + cache.setTerrain(terrain); + } + } + + // size + final String container = BaseUtils.getMatch(row, GCConstants.PATTERN_SEARCH_CONTAINER, false, 1, null, false); + cache.setSize(CacheSize.getById(container)); + // cache inventory final MatcherWrapper matcherTbs = new MatcherWrapper(GCConstants.PATTERN_SEARCH_TRACKABLES, row); String inventoryPre = null; @@ -291,7 +315,7 @@ public abstract class GCParser { final Set<Geocache> caches = searchResult.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB); for (Geocache cache : caches) { if (cache.getCoords() == null && StringUtils.isNotEmpty(cache.getDirectionImg())) { - DirectionImage.getDrawable(cache.getGeocode(), cache.getDirectionImg()); + DirectionImage.getDrawable(cache.getDirectionImg()); } } } @@ -299,6 +323,11 @@ public abstract class GCParser { return searchResult; } + private static Float parseStars(final String value) { + float floatValue = Float.parseFloat(StringUtils.replaceChars(value, ',', '.')); + return floatValue >= 0.5 && floatValue <= 5.0 ? floatValue : null; + } + static SearchResult parseCache(final String page, final CancellableHandler handler) { final SearchResult searchResult = parseCacheFromText(page, handler); if (searchResult != null && !searchResult.getGeocodes().isEmpty()) { diff --git a/main/src/cgeo/geocaching/export/FieldnoteExport.java b/main/src/cgeo/geocaching/export/FieldnoteExport.java index 1165a14..a42a48a 100644 --- a/main/src/cgeo/geocaching/export/FieldnoteExport.java +++ b/main/src/cgeo/geocaching/export/FieldnoteExport.java @@ -165,8 +165,8 @@ class FieldnoteExport extends AbstractExport { Log.e("FieldnoteExport.ExportTask export", e); return false; } finally { - IOUtils.closeQuietly(buffer); IOUtils.closeQuietly(fileWriter); + IOUtils.closeQuietly(buffer); } if (upload) { diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java index 33dcfd4..89d1cdc 100644 --- a/main/src/cgeo/geocaching/maps/CGeoMap.java +++ b/main/src/cgeo/geocaching/maps/CGeoMap.java @@ -525,6 +525,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto @Override public boolean onCreateOptionsMenu(Menu menu) { // menu inflation happens in Google/Mapsforge specific classes + super.onCreateOptionsMenu(menu); MapProviderFactory.addMapviewMenuItems(menu); diff --git a/main/src/cgeo/geocaching/maps/MapProviderFactory.java b/main/src/cgeo/geocaching/maps/MapProviderFactory.java index d1b5c3b..5ce8ab6 100644 --- a/main/src/cgeo/geocaching/maps/MapProviderFactory.java +++ b/main/src/cgeo/geocaching/maps/MapProviderFactory.java @@ -54,6 +54,7 @@ public class MapProviderFactory { final int id = mapSource.getNumericalId(); parentMenu.add(R.id.menu_group_map_sources, id, i, mapSource.getName()).setCheckable(true).setChecked(id == currentSource); } + parentMenu.setGroupCheckable(R.id.menu_group_map_sources, true, true); } public static MapSource getMapSource(int id) { diff --git a/main/src/cgeo/geocaching/network/HtmlImage.java b/main/src/cgeo/geocaching/network/HtmlImage.java index 15ea235..d5b610c 100644 --- a/main/src/cgeo/geocaching/network/HtmlImage.java +++ b/main/src/cgeo/geocaching/network/HtmlImage.java @@ -45,6 +45,7 @@ public class HtmlImage implements Html.ImageGetter { "trendcounter.com", "hit-counter-download.com" }; + public static final String SHARED = "shared"; final private String geocode; /** @@ -82,7 +83,7 @@ public class HtmlImage implements Html.ImageGetter { } final boolean shared = url.contains("/images/icons/icon_"); - final String pseudoGeocode = shared ? "shared" : geocode; + final String pseudoGeocode = shared ? SHARED : geocode; Bitmap imagePre = loadImageFromStorage(url, pseudoGeocode, shared); diff --git a/main/src/cgeo/geocaching/sorting/DistanceComparator.java b/main/src/cgeo/geocaching/sorting/DistanceComparator.java index 7b0afbb..731e356 100644 --- a/main/src/cgeo/geocaching/sorting/DistanceComparator.java +++ b/main/src/cgeo/geocaching/sorting/DistanceComparator.java @@ -27,13 +27,10 @@ public class DistanceComparator extends AbstractCacheComparator { if (cachedDistances) { return; } - for (Geocache cache : list) { + for (final Geocache cache : list) { if (cache.getCoords() != null) { cache.setDistance(coords.distanceTo(cache.getCoords())); } - else { - cache.setDistance(null); - } } cachedDistances = true; } @@ -46,16 +43,12 @@ public class DistanceComparator extends AbstractCacheComparator { @Override protected int compareCaches(final Geocache cache1, final Geocache cache2) { calculateAllDistances(); - if (cache1.getCoords() == null && cache2.getCoords() == null) { - return 0; - } - if (cache1.getCoords() == null) { - return 1; - } - if (cache2.getCoords() == null) { - return -1; + final Float distance1 = cache1.getDistance(); + final Float distance2 = cache2.getDistance(); + if (distance1 == null) { + return distance2 == null ? 0 : 1; } - return Float.compare(cache1.getDistance(), cache2.getDistance()); + return distance2 == null ? -1 : Float.compare(distance1, distance2); } } diff --git a/main/src/cgeo/geocaching/speech/TextFactory.java b/main/src/cgeo/geocaching/speech/TextFactory.java index 6b25147..0e13564 100644 --- a/main/src/cgeo/geocaching/speech/TextFactory.java +++ b/main/src/cgeo/geocaching/speech/TextFactory.java @@ -1,8 +1,10 @@ package cgeo.geocaching.speech; import cgeo.geocaching.R; +import cgeo.geocaching.Settings; import cgeo.geocaching.cgeoapplication; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.IConversion; import cgeo.geocaching.utils.AngleUtils; import java.util.Locale; @@ -21,18 +23,35 @@ public class TextFactory { private static String getDistance(Geopoint position, Geopoint target) { float kilometers = position.distanceTo(target); - if (kilometers >= 5.0) { - return getString(R.string.tts_kilometers, String.valueOf(Math.round(kilometers))); + + if (Settings.isUseMetricUnits()) { + if (kilometers >= 5.0) { + return getString(R.string.tts_kilometers, String.valueOf(Math.round(kilometers))); + } + if (kilometers >= 1.0) { + String digits = String.format(Locale.getDefault(), "%.1f", kilometers); + return getString(R.string.tts_kilometers, digits); + } + int meters = (int) (kilometers * 1000.0); + if (meters > 50) { + return getString(R.string.tts_meters, String.valueOf(Math.round(meters / 10.0) * 10)); + } + return getString(R.string.tts_meters, String.valueOf(meters)); + } + + float miles = kilometers / IConversion.MILES_TO_KILOMETER; + if (miles >= 3.0) { + return getString(R.string.tts_miles, String.valueOf(Math.round(miles))); } - if (kilometers >= 1.0) { - String digits = String.format(Locale.getDefault(), "%.1f", kilometers); - return getString(R.string.tts_kilometers, digits); + if (miles >= 0.2) { // approx 1000 ft + String digits = String.format(Locale.getDefault(), "%.1f", miles); + return getString(R.string.tts_miles, digits); } - int meters = (int) (kilometers * 1000.0); - if (meters > 50) { - return getString(R.string.tts_meters, String.valueOf(Math.round(meters / 10.0) * 10)); + int feet = (int) (kilometers * 1000.0 * IConversion.METERS_TO_FEET); + if (feet > 300) { + return getString(R.string.tts_feet, String.valueOf(Math.round(feet / 10.0) * 10)); } - return getString(R.string.tts_meters, String.valueOf(meters)); + return getString(R.string.tts_feet, String.valueOf(feet)); } private static String getString(int resourceId, Object... formatArgs) { diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java index b60586e..99ae405 100644 --- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java +++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java @@ -22,8 +22,6 @@ import org.apache.commons.lang3.builder.HashCodeBuilder; import android.app.Activity; import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.text.Spannable; @@ -39,7 +37,6 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.ImageView; -import android.widget.RelativeLayout; import android.widget.TextView; import java.util.ArrayList; @@ -100,10 +97,8 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> { TextView favorite; TextView info; ImageView inventory; - RelativeLayout directionLayout; DistanceView distance; CompassMiniView direction; - RelativeLayout dirImgLayout; ImageView dirImg; } @@ -358,10 +353,8 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> { holder.checkbox = (CheckBox) v.findViewById(R.id.checkbox); holder.logStatusMark = (ImageView) v.findViewById(R.id.log_status_mark); holder.text = (TextView) v.findViewById(R.id.text); - holder.directionLayout = (RelativeLayout) v.findViewById(R.id.direction_layout); holder.distance = (DistanceView) v.findViewById(R.id.distance); holder.direction = (CompassMiniView) v.findViewById(R.id.direction); - holder.dirImgLayout = (RelativeLayout) v.findViewById(R.id.dirimg_layout); holder.dirImg = (ImageView) v.findViewById(R.id.dirimg); holder.inventory = (ImageView) v.findViewById(R.id.inventory); holder.favorite = (TextView) v.findViewById(R.id.favorite); @@ -434,64 +427,26 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> { holder.inventory.setVisibility(View.GONE); } - boolean setDiDi = false; + if (cache.getDistance() != null) { + holder.distance.setDistance(cache.getDistance()); + } if (cache.getCoords() != null) { holder.direction.setVisibility(View.VISIBLE); + holder.dirImg.setVisibility(View.GONE); holder.direction.updateAzimuth(azimuth); if (coords != null) { holder.distance.update(coords); holder.direction.updateCurrentCoords(coords); } - setDiDi = true; - } else { - if (cache.getDistance() != null) { - holder.distance.setDistance(cache.getDistance()); - setDiDi = true; - } - if (cache.getDirection() != null) { - holder.direction.setVisibility(View.VISIBLE); - holder.direction.updateAzimuth(azimuth); - holder.direction.updateHeading(cache.getDirection()); - setDiDi = true; - } - } - - if (setDiDi) { - holder.directionLayout.setVisibility(View.VISIBLE); - holder.dirImgLayout.setVisibility(View.GONE); + } else if (cache.getDirection() != null) { + holder.direction.setVisibility(View.VISIBLE); + holder.dirImg.setVisibility(View.GONE); + holder.direction.updateAzimuth(azimuth); + holder.direction.updateHeading(cache.getDirection()); } else { - holder.directionLayout.setVisibility(View.GONE); - holder.distance.clear(); - - final Bitmap dirImgPre = BitmapFactory.decodeFile(DirectionImage.getDirectionFile(cache.getGeocode(), false).getPath()); - final Bitmap dirImg; - if (dirImgPre != null) { // null happens for invalid caches (not yet released) - dirImg = dirImgPre.copy(Bitmap.Config.ARGB_8888, true); - dirImgPre.recycle(); - } - else { - dirImg = null; - } - - if (dirImg != null) { - if (!lightSkin) { - final int length = dirImg.getWidth() * dirImg.getHeight(); - final int[] pixels = new int[length]; - dirImg.getPixels(pixels, 0, dirImg.getWidth(), 0, 0, dirImg.getWidth(), dirImg.getHeight()); - for (int i = 0; i < length; i++) { - if (pixels[i] == 0xff000000) { // replace black with white - pixels[i] = 0xffffffff; - } - } - dirImg.setPixels(pixels, 0, dirImg.getWidth(), 0, 0, dirImg.getWidth(), dirImg.getHeight()); - } - - holder.dirImg.setImageBitmap(dirImg); - holder.dirImgLayout.setVisibility(View.VISIBLE); - } else { - holder.dirImg.setImageBitmap(null); - holder.dirImgLayout.setVisibility(View.GONE); - } + holder.dirImg.setImageDrawable(DirectionImage.getDrawable(cache.getDirectionImg())); + holder.dirImg.setVisibility(View.VISIBLE); + 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 675d73b..df7275d 100644 --- a/main/src/cgeo/geocaching/ui/DirectionImage.java +++ b/main/src/cgeo/geocaching/ui/DirectionImage.java @@ -1,30 +1,22 @@ package cgeo.geocaching.ui; -import cgeo.geocaching.files.LocalStorage; -import cgeo.geocaching.network.Network; -import cgeo.geocaching.network.Parameters; +import cgeo.geocaching.StoredList; +import cgeo.geocaching.network.HtmlImage; -import ch.boye.httpclientandroidlib.HttpResponse; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; +import android.graphics.drawable.BitmapDrawable; public class DirectionImage { - public static void getDrawable(final String geocode, final String code) { - if (StringUtils.isBlank(geocode) || StringUtils.isBlank(code)) { - return; - } - - final HttpResponse httpResponse = - Network.getRequest("http://www.geocaching.com/ImgGen/seek/CacheDir.ashx", new Parameters("k", code)); - if (httpResponse != null) { - LocalStorage.saveEntityToFile(httpResponse, getDirectionFile(geocode, true)); - } - } + static private HtmlImage htmlImage = new HtmlImage(HtmlImage.SHARED, false, StoredList.STANDARD_LIST_ID, false); - public static File getDirectionFile(final String geocode, final boolean createDirs) { - return LocalStorage.getStorageFile(geocode, "direction.png", false, createDirs); + /** + * Retrieve the direction image corresponding to the direction code. + * + * @param directionCode one of the eight cardinal points + * @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"); } } diff --git a/tests/.classpath b/tests/.classpath index 9bd2efb..67539bd 100644 --- a/tests/.classpath +++ b/tests/.classpath @@ -9,5 +9,6 @@ </classpathentry> <classpathentry combineaccessrules="false" kind="src" path="/cgeo"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> diff --git a/tests/src/cgeo/test/Compare.java b/tests/src/cgeo/test/Compare.java index 8af1541..24ed596 100644 --- a/tests/src/cgeo/test/Compare.java +++ b/tests/src/cgeo/test/Compare.java @@ -1,15 +1,17 @@ package cgeo.test; import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertTrue; -import cgeo.geocaching.ICache; import cgeo.geocaching.Geocache; +import cgeo.geocaching.ICache; import cgeo.geocaching.enumerations.LogType; public abstract class Compare { public static void assertCompareCaches(ICache expected, Geocache actual, boolean all) { + assertNotNull(actual); assertEquals(expected.getGeocode(), actual.getGeocode()); assertTrue(expected.getType() == actual.getType()); assertEquals(expected.getOwnerDisplayName(), actual.getOwnerDisplayName()); |
