diff --git a/OsmAnd-java/.classpath b/OsmAnd-java/.classpath
index 4c20cb561e..731f61c822 100644
--- a/OsmAnd-java/.classpath
+++ b/OsmAnd-java/.classpath
@@ -9,7 +9,7 @@
-
+
diff --git a/OsmAnd-java/libs/icu4j-49_1_patched.jar b/OsmAnd-java/libs/icu4j-49_1_patched.jar
new file mode 100644
index 0000000000..adb11921b2
Binary files /dev/null and b/OsmAnd-java/libs/icu4j-49_1_patched.jar differ
diff --git a/OsmAnd-java/libs/icu4j-56_1_patched.jar b/OsmAnd-java/libs/icu4j-56_1_patched.jar
deleted file mode 100644
index 6ae549d040..0000000000
Binary files a/OsmAnd-java/libs/icu4j-56_1_patched.jar and /dev/null differ
diff --git a/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java b/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java
index 283424710c..ef6c9a30c1 100644
--- a/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java
+++ b/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java
@@ -1,5 +1,9 @@
package net.osmand.binary;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+
import gnu.trove.list.array.TIntArrayList;
import gnu.trove.map.hash.TIntObjectHashMap;
import net.osmand.binary.BinaryMapIndexReader.MapIndex;
@@ -52,6 +56,15 @@ public class BinaryMapDataObject {
return objectNames;
}
+ public Map getOrderedObjectNames() {
+ LinkedHashMap lm = new LinkedHashMap ();
+ for (int i = 0; i < namesOrder.size(); i++) {
+ int nm = namesOrder.get(i);
+ lm.put(nm, objectNames.get(nm));
+ }
+ return lm;
+ }
+
public void putObjectName(int type, String name){
if(objectNames == null){
objectNames = new TIntObjectHashMap();
diff --git a/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java b/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java
index f1617e4179..85f5aafcd8 100644
--- a/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java
+++ b/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java
@@ -151,7 +151,7 @@ public class GeocodingUtilities {
List lst = new ArrayList();
List listR = new ArrayList();
rp.findRouteSegment(lat, lon, ctx, listR);
- double dist = 0;
+ double distSquare = 0;
TLongHashSet set = new TLongHashSet();
Set streetNames = new HashSet();
for(RouteSegmentPoint p : listR) {
@@ -161,8 +161,8 @@ public class GeocodingUtilities {
}
boolean emptyName = Algorithms.isEmpty(road.getName()) && Algorithms.isEmpty(road.getRef()) ;
if(!emptyName) {
- if(dist == 0 || dist > p.dist) {
- dist = p.dist;
+ if(distSquare == 0 || distSquare > p.distSquare) {
+ distSquare = p.distSquare;
}
GeocodingResult sr = new GeocodingResult();
sr.searchPoint = new LatLon(lat, lon);
@@ -175,11 +175,11 @@ public class GeocodingUtilities {
lst.add(sr);
}
}
- if(p.dist > STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS &&
- dist != 0 && p.dist > THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER * dist ) {
+ if(p.distSquare > STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS &&
+ distSquare != 0 && p.distSquare > THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER * distSquare ) {
break;
}
- if(p.dist > STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS*STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS) {
+ if(p.distSquare > STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS*STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS) {
break;
}
}
diff --git a/OsmAnd-java/src/net/osmand/router/BinaryRoutePlanner.java b/OsmAnd-java/src/net/osmand/router/BinaryRoutePlanner.java
index 2c3ad11768..406b8b896f 100644
--- a/OsmAnd-java/src/net/osmand/router/BinaryRoutePlanner.java
+++ b/OsmAnd-java/src/net/osmand/router/BinaryRoutePlanner.java
@@ -835,12 +835,12 @@ public class BinaryRoutePlanner {
}
public static class RouteSegmentPoint extends RouteSegment {
- public RouteSegmentPoint(RouteDataObject road, int segmentStart, double dist) {
+ public RouteSegmentPoint(RouteDataObject road, int segmentStart, double distSquare) {
super(road, segmentStart);
- this.dist = dist;
+ this.distSquare = distSquare;
}
- public double dist;
+ public double distSquare;
public int preciseX;
public int preciseY;
public List others;
diff --git a/OsmAnd-java/src/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/net/osmand/router/RoutePlannerFrontEnd.java
index 0104b5ee72..bead0d1782 100644
--- a/OsmAnd-java/src/net/osmand/router/RoutePlannerFrontEnd.java
+++ b/OsmAnd-java/src/net/osmand/router/RoutePlannerFrontEnd.java
@@ -72,10 +72,10 @@ public class RoutePlannerFrontEnd {
for (int j = 1; j < r.getPointsLength(); j++) {
QuadPoint pr = MapUtils.getProjectionPoint31(px, py, r.getPoint31XTile(j - 1),
r.getPoint31YTile(j - 1), r.getPoint31XTile(j ), r.getPoint31YTile(j ));
- double currentsDist = squareDist((int) pr.x, (int)pr.y, px, py);
- if (road == null || currentsDist < road.dist) {
+ double currentsDistSquare = squareDist((int) pr.x, (int)pr.y, px, py);
+ if (road == null || currentsDistSquare < road.distSquare) {
RouteDataObject ro = new RouteDataObject(r);
- road = new RouteSegmentPoint(ro, j, currentsDist);
+ road = new RouteSegmentPoint(ro, j, currentsDistSquare);
road.preciseX = (int) pr.x;
road.preciseY = (int) pr.y;
}
@@ -89,7 +89,7 @@ public class RoutePlannerFrontEnd {
@Override
public int compare(RouteSegmentPoint o1, RouteSegmentPoint o2) {
- return Double.compare(o1.dist, o2.dist);
+ return Double.compare(o1.distSquare, o2.distSquare);
}
});
if(list.size() > 0) {
diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml
index 92a2855a77..50beb09926 100644
--- a/OsmAnd/AndroidManifest.xml
+++ b/OsmAnd/AndroidManifest.xml
@@ -1,479 +1,292 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:grantUriPermissions="true" >
+ android:resource="@xml/paths" />
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
+ -->
+
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/libs/icu4j-49_1_patched.jar b/OsmAnd/libs/icu4j-49_1_patched.jar
new file mode 100644
index 0000000000..adb11921b2
Binary files /dev/null and b/OsmAnd/libs/icu4j-49_1_patched.jar differ
diff --git a/OsmAnd/libs/icu4j-56_1_patched.jar b/OsmAnd/libs/icu4j-56_1_patched.jar
deleted file mode 100644
index 6ae549d040..0000000000
Binary files a/OsmAnd/libs/icu4j-56_1_patched.jar and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/map_target_point.png b/OsmAnd/res/drawable-hdpi/map_target_point.png
index c48fad54a5..9b8955d0a3 100644
Binary files a/OsmAnd/res/drawable-hdpi/map_target_point.png and b/OsmAnd/res/drawable-hdpi/map_target_point.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_bicycle_bearing_night.png b/OsmAnd/res/drawable-large-hdpi/map_bicycle_bearing_night.png
new file mode 100644
index 0000000000..02b762f1fd
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_bicycle_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_bicycle_location.png b/OsmAnd/res/drawable-large-hdpi/map_bicycle_location.png
index 6c251d4e48..7486ade482 100644
Binary files a/OsmAnd/res/drawable-large-hdpi/map_bicycle_location.png and b/OsmAnd/res/drawable-large-hdpi/map_bicycle_location.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_bicycle_location_night.png b/OsmAnd/res/drawable-large-hdpi/map_bicycle_location_night.png
new file mode 100644
index 0000000000..2517c543a5
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_bicycle_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_car_bearing_night.png b/OsmAnd/res/drawable-large-hdpi/map_car_bearing_night.png
new file mode 100644
index 0000000000..5277660dac
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_car_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_car_location.png b/OsmAnd/res/drawable-large-hdpi/map_car_location.png
index 1bdeaff424..1da7ee47a4 100644
Binary files a/OsmAnd/res/drawable-large-hdpi/map_car_location.png and b/OsmAnd/res/drawable-large-hdpi/map_car_location.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_car_location_night.png b/OsmAnd/res/drawable-large-hdpi/map_car_location_night.png
new file mode 100644
index 0000000000..bb801e004b
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_car_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_default_location.png b/OsmAnd/res/drawable-large-hdpi/map_default_location.png
index 732ca853e1..981a1e3b92 100644
Binary files a/OsmAnd/res/drawable-large-hdpi/map_default_location.png and b/OsmAnd/res/drawable-large-hdpi/map_default_location.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_default_location_night.png b/OsmAnd/res/drawable-large-hdpi/map_default_location_night.png
new file mode 100644
index 0000000000..e51b2d35e3
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_default_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_pedestrian_bearing_night.png b/OsmAnd/res/drawable-large-hdpi/map_pedestrian_bearing_night.png
new file mode 100644
index 0000000000..2e68880e2b
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_pedestrian_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location.png b/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location.png
index 732ca853e1..8733cfc010 100644
Binary files a/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location.png and b/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location_night.png b/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location_night.png
new file mode 100644
index 0000000000..f039eae1b8
Binary files /dev/null and b/OsmAnd/res/drawable-large-hdpi/map_pedestrian_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-hdpi/map_target_point.png b/OsmAnd/res/drawable-large-hdpi/map_target_point.png
index 66335a0de9..3ae168ecb9 100755
Binary files a/OsmAnd/res/drawable-large-hdpi/map_target_point.png and b/OsmAnd/res/drawable-large-hdpi/map_target_point.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_bicycle_bearing_night.png b/OsmAnd/res/drawable-large-xhdpi/map_bicycle_bearing_night.png
new file mode 100644
index 0000000000..77eaf5bcb3
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_bicycle_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location.png b/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location.png
index f377095850..6bfec138cf 100644
Binary files a/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location.png and b/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location_night.png b/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location_night.png
new file mode 100644
index 0000000000..7c9adb6a50
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_bicycle_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_car_bearing_night.png b/OsmAnd/res/drawable-large-xhdpi/map_car_bearing_night.png
new file mode 100644
index 0000000000..76a8e3cb74
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_car_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_car_location.png b/OsmAnd/res/drawable-large-xhdpi/map_car_location.png
index 6c927d5052..d823ab2344 100644
Binary files a/OsmAnd/res/drawable-large-xhdpi/map_car_location.png and b/OsmAnd/res/drawable-large-xhdpi/map_car_location.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_car_location_night.png b/OsmAnd/res/drawable-large-xhdpi/map_car_location_night.png
new file mode 100644
index 0000000000..cc98d7896c
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_car_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_default_location.png b/OsmAnd/res/drawable-large-xhdpi/map_default_location.png
index 3af9febf2d..7c48d43e64 100644
Binary files a/OsmAnd/res/drawable-large-xhdpi/map_default_location.png and b/OsmAnd/res/drawable-large-xhdpi/map_default_location.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_default_location_night.png b/OsmAnd/res/drawable-large-xhdpi/map_default_location_night.png
new file mode 100644
index 0000000000..ad653355f3
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_default_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_bearing_night.png b/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_bearing_night.png
new file mode 100644
index 0000000000..d8610e6626
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location.png b/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location.png
index 3af9febf2d..b42e37f484 100644
Binary files a/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location.png and b/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location_night.png b/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location_night.png
new file mode 100644
index 0000000000..6e3b9ccae5
Binary files /dev/null and b/OsmAnd/res/drawable-large-xhdpi/map_pedestrian_location_night.png differ
diff --git a/OsmAnd/res/drawable-large-xhdpi/map_target_point.png b/OsmAnd/res/drawable-large-xhdpi/map_target_point.png
index f48d52c6ef..5091e2b36d 100755
Binary files a/OsmAnd/res/drawable-large-xhdpi/map_target_point.png and b/OsmAnd/res/drawable-large-xhdpi/map_target_point.png differ
diff --git a/OsmAnd/res/drawable-large/map_bicycle_bearing_night.png b/OsmAnd/res/drawable-large/map_bicycle_bearing_night.png
new file mode 100644
index 0000000000..bd8c237e60
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_bicycle_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_bicycle_location.png b/OsmAnd/res/drawable-large/map_bicycle_location.png
index 9f7b3aafef..03927370ec 100644
Binary files a/OsmAnd/res/drawable-large/map_bicycle_location.png and b/OsmAnd/res/drawable-large/map_bicycle_location.png differ
diff --git a/OsmAnd/res/drawable-large/map_bicycle_location_night.png b/OsmAnd/res/drawable-large/map_bicycle_location_night.png
new file mode 100644
index 0000000000..013e7ac919
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_bicycle_location_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_car_bearing_night.png b/OsmAnd/res/drawable-large/map_car_bearing_night.png
new file mode 100644
index 0000000000..aa1fed94a5
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_car_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_car_location.png b/OsmAnd/res/drawable-large/map_car_location.png
index 9f02c3e80d..ef8fea9cce 100644
Binary files a/OsmAnd/res/drawable-large/map_car_location.png and b/OsmAnd/res/drawable-large/map_car_location.png differ
diff --git a/OsmAnd/res/drawable-large/map_car_location_night.png b/OsmAnd/res/drawable-large/map_car_location_night.png
new file mode 100644
index 0000000000..e247cb5d7b
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_car_location_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_default_location.png b/OsmAnd/res/drawable-large/map_default_location.png
index f70ab4b862..13a51c1841 100644
Binary files a/OsmAnd/res/drawable-large/map_default_location.png and b/OsmAnd/res/drawable-large/map_default_location.png differ
diff --git a/OsmAnd/res/drawable-large/map_default_location_night.png b/OsmAnd/res/drawable-large/map_default_location_night.png
new file mode 100644
index 0000000000..914b520e85
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_default_location_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_pedestrian_bearing_night.png b/OsmAnd/res/drawable-large/map_pedestrian_bearing_night.png
new file mode 100644
index 0000000000..17a86ab10a
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_pedestrian_bearing_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_pedestrian_location.png b/OsmAnd/res/drawable-large/map_pedestrian_location.png
index f70ab4b862..06a042be0f 100644
Binary files a/OsmAnd/res/drawable-large/map_pedestrian_location.png and b/OsmAnd/res/drawable-large/map_pedestrian_location.png differ
diff --git a/OsmAnd/res/drawable-large/map_pedestrian_location_night.png b/OsmAnd/res/drawable-large/map_pedestrian_location_night.png
new file mode 100644
index 0000000000..61c8c09683
Binary files /dev/null and b/OsmAnd/res/drawable-large/map_pedestrian_location_night.png differ
diff --git a/OsmAnd/res/drawable-large/map_target_point.png b/OsmAnd/res/drawable-large/map_target_point.png
index 2402e1db36..c48fad54a5 100644
Binary files a/OsmAnd/res/drawable-large/map_target_point.png and b/OsmAnd/res/drawable-large/map_target_point.png differ
diff --git a/OsmAnd/res/drawable-mdpi/map_target_point.png b/OsmAnd/res/drawable-mdpi/map_target_point.png
index 1c30bd7218..26688889de 100755
Binary files a/OsmAnd/res/drawable-mdpi/map_target_point.png and b/OsmAnd/res/drawable-mdpi/map_target_point.png differ
diff --git a/OsmAnd/res/drawable-xhdpi/map_target_point.png b/OsmAnd/res/drawable-xhdpi/map_target_point.png
index 3ae168ecb9..eff4392e66 100755
Binary files a/OsmAnd/res/drawable-xhdpi/map_target_point.png and b/OsmAnd/res/drawable-xhdpi/map_target_point.png differ
diff --git a/OsmAnd/res/drawable-xxhdpi/map_target_point.png b/OsmAnd/res/drawable-xxhdpi/map_target_point.png
index 5091e2b36d..b536686f30 100644
Binary files a/OsmAnd/res/drawable-xxhdpi/map_target_point.png and b/OsmAnd/res/drawable-xxhdpi/map_target_point.png differ
diff --git a/OsmAnd/res/layout-land/plan_route_info.xml b/OsmAnd/res/layout-land/plan_route_info.xml
index 2df39c0bba..fdd26eefd5 100644
--- a/OsmAnd/res/layout-land/plan_route_info.xml
+++ b/OsmAnd/res/layout-land/plan_route_info.xml
@@ -1,242 +1,306 @@
-
+
-
+
-
+ android:layout_height="wrap_content">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:orientation="vertical">
-
-
+ android:id="@+id/fromIcon"
+ android:layout_width="24dp"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="@dimen/list_content_padding"
+ android:layout_marginRight="@dimen/list_content_padding"
+ android:src="@drawable/map_default_location"/>
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:focusable="false"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:orientation="horizontal">
+ android:id="@+id/toIcon"
+ android:layout_width="24dp"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="@dimen/list_content_padding"
+ android:layout_marginRight="@dimen/list_content_padding"
+ android:src="@drawable/map_default_location"/>
-
-
-
+ android:orientation="vertical">
+
+
+
+
+
+
+
+ android:id="@+id/toDropDownIcon"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginRight="@dimen/list_header_text_left_margin"
+ android:src="@drawable/ic_action_arrow_drop_down"/>
+
+ android:focusable="false"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
+
-
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/main.xml b/OsmAnd/res/layout/main.xml
index 7e7015367b..8dcfe6554b 100644
--- a/OsmAnd/res/layout/main.xml
+++ b/OsmAnd/res/layout/main.xml
@@ -48,15 +48,23 @@
+
+
+
+
+
+
+
-
+
-
+
-
+ android:layout_height="wrap_content">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:orientation="vertical">
-
-
+ android:id="@+id/fromIcon"
+ android:layout_width="24dp"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="@dimen/list_content_padding"
+ android:layout_marginRight="@dimen/list_content_padding"
+ android:src="@drawable/map_default_location"/>
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:focusable="false"/>
+ android:orientation="horizontal">
+ android:id="@+id/viaIcon"
+ android:layout_width="24dp"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="@dimen/list_content_padding"
+ android:layout_marginRight="@dimen/list_content_padding"
+ android:src="@drawable/map_default_location"/>
-
-
-
+ android:orientation="vertical">
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
+
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 43f5ef2032..0b89a06289 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -2183,4 +2183,7 @@
Kan ikke bestemme adresse
Søger efter adressen
Hesteruter
-
+ Opdater hver
+ Hent kun over WiFi
+ Realtids opdatering
+
diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml
index 2443ddba1a..d5b16d2c64 100644
--- a/OsmAnd/res/values-de/phrases.xml
+++ b/OsmAnd/res/values-de/phrases.xml
@@ -2518,4 +2518,7 @@
Gebäudetyp: Pyramide
+Fitnesscenter
+ Fitness
+
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index 81351ad4ef..76a533e783 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -2070,4 +2070,7 @@
Audio Bitrate
Wähle Audio Bitrate
Pferdewege
-
+ Aktualisierungsintervall
+ Nur über WLAN herunterladen
+ Live Aktualisierung
+
diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml
index 701a482cc7..3afa34201e 100644
--- a/OsmAnd/res/values-es/phrases.xml
+++ b/OsmAnd/res/values-es/phrases.xml
@@ -2568,4 +2568,7 @@
Especialidad médica: herbolaria
Tipo de edificio: pirámide
+Gimnasio
+ Gimnasio (deporte)
+
diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml
index 84b2bc693d..796b6cb8c4 100644
--- a/OsmAnd/res/values-es/strings.xml
+++ b/OsmAnd/res/values-es/strings.xml
@@ -2002,4 +2002,7 @@
Dirección indeterminada
Buscando dirección
Rutas a caballo
-
+ Actualizar todos
+ Descargar sólo por WiFi
+ Actualización en vivo
+
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index cfa4127072..c30cdc74ba 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -2069,4 +2069,8 @@
Sélectionnez le bitrate audio
Impossible de déterminer l\'adresse
Recherche de l\'adresse
+ Mettre à jour tout les
+ Télécharger uniquement en WIFI
+ Mise à jour en temps réel
+Randonnée à cheval
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index e17d0f5aca..c2b06316d4 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -905,10 +905,10 @@
Blocca la posizione sulle strade durante la navigazione
Blocca sulle strade
Evita le autostrade
- Il punto intermedio %1$s è troppo lontano dalla strada più vicina.
- Sei arrivato al tuo punto intermedio
- Aggiungi come punto intermedio
- Punto intermedio
+ La destinazione intermedia %1$s è troppo lontana dalla strada più vicina.
+ Sei arrivato alla tua destinazione intermedia
+ Aggiungi come destinazione intermedia
+ Destinazione intermedia
Punto finale troppo distante dalla strada più vicina.
Aggiungi etichetta
Modalità avanzata…
@@ -920,18 +920,18 @@
Ristoranti
Attrazione turistica
- Aggiungi come ultimo punto intermedio
- Aggiungi come primo punto intermedio
- Aggiungi come ultimo punto intermedio
- Aggiungi come primo punto intermedio
+ Aggiungi come ultima destinazione intermedia
+ Aggiungi come prima destinazione intermedia
+ Aggiungi come ultima destinazione intermedia
+ Aggiungi come prima destinazione intermedia
Sostituisci la destinazione
La destinazione è già impostata.
- Punto intermedio %1$s
- Punti intermedi
+ Destinazione %1$s
+ Destinazioni
Servizi di registrazione
Nessun percorso
- Rimuovi punto intemedio
- Punto intermedio %1$s
+ Rimuovi la destinazione
+ Destinazione %1$s
Attiva il GPS nelle impostazioni
Visualizza la direzione della destinazione
Calcola un percorso, eventualmente anche non ottimale, su lunghe distanze
@@ -1023,7 +1023,7 @@
Scatta una foto
Foto %1$s %2$s
Sei sicuro di voler fermare la navigazione?
- Sei sicuro di voler eliminare la tua destinazione (e i punti intermedi)?
+ Sei sicuro di voler eliminare la tua destinazione (e le destinazioni intermedie)?
Abilita per calcolare percorsi precisi senza intoppi. È lento e limitato in distanza.
Calcolo della rotta preciso (alfa)
Dati audio/video
@@ -1047,9 +1047,9 @@
Informazioni GPS
Livello ombreggiatura rilievi
OsmAnd Mappe & Navigazione
- " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta punti intermedi dell\'itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia:↵ - Informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenStreetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ - Caratteristiche per la di sicurezza - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità↵ - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali)↵ ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala annotazioni sulla mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando annotazioni, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! È anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ ↵ Qualità della mappa e copertura approssimativa: ↵ ↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: *** - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: *↵ ↵ Lista delle regioni supportate (sostanzialmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Cile, Cina, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Danimarca, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Emirati Arabi Uniti, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Giamaica, Gibraltar, Grecia, Grenada, Groenlandia, Guadalupa, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italia, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ucraina, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Vaticano, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ → "
+ " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta le destinazioni intermedie dell\'itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia:↵ - Informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenStreetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ - Caratteristiche per la di sicurezza - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità↵ - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali)↵ ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala annotazioni sulla mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando annotazioni, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! È anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ ↵ Qualità della mappa e copertura approssimativa: ↵ ↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: *** - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: *↵ ↵ Lista delle regioni supportate (sostanzialmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Cile, Cina, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Danimarca, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Emirati Arabi Uniti, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Giamaica, Gibraltar, Grecia, Grenada, Groenlandia, Guadalupa, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italia, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ucraina, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Vaticano, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ → "
OsmAnd+ Mappe & Navigazione
- " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le principali funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ OsmAnd+ è la versione a pagamento dell\'applicazione. Acquistandola voi sostenete il progetto, finanziate lo sviluppo di nuove caratteristiche e ricevete gli ultimi aggiornamenti. Potete provare l\'applicazione prima di acquistarla installando la versione gratuita chiamata OsmAnd.↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta punti intermedi dell\'itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia: informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenSteetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ ↵ Caratteristiche per la di sicurezza↵ - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi↵ - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali) ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala errori della mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ - OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando errori, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! E\' anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ Qualità della mappa e copertura approssimativa:↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: ***↵ - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: * ↵ ↵ Lista delle regioni supportate (fondamentalmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ "
+ " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le principali funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ OsmAnd+ è la versione a pagamento dell\'applicazione. Acquistandola voi sostenete il progetto, finanziate lo sviluppo di nuove caratteristiche e ricevete gli ultimi aggiornamenti. Potete provare l\'applicazione prima di acquistarla installando la versione gratuita chiamata OsmAnd.↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta le destinazioni intermedie del tuo itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia: informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenSteetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ ↵ Caratteristiche per la di sicurezza↵ - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi↵ - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali) ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala errori della mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ - OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando errori, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! E\' anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ Qualità della mappa e copertura approssimativa:↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: ***↵ - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: * ↵ ↵ Lista delle regioni supportate (fondamentalmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ "
Nome strada
@@ -1102,7 +1102,7 @@
Backup come modifica OSM
Cerca la strada nelle località vicine
- Punti intermedi riordinati in modo da ottimizzare il percorso dalla posizione attuale verso la destinazione.
+ Destinazioni intermedie riordinate in modo da ottimizzare il percorso dalla posizione attuale verso la destinazione.
Ordina porta a porta
Scegli prima la città o la strada
Imposta come destinazione
@@ -1125,9 +1125,9 @@
Avvisi di traffico
Prego specificare il nome utente OSM e la password nelle Impostazioni
- Cancella i punti intermedi
- Mantieni i punti intermedi
- Hai già dei punti intermedi impostati.
+ Cancella le destinazioni intermedie
+ Mantieni le destinazioni intermedie
+ Hai già delle destinazioni intermedie impostate.
Indicazioni verso
Indicazioni da
Mappa:
@@ -1174,8 +1174,7 @@
Ingrandimento mappa
- Il calcolo del percorso offline di OsmAnd potrebbe richiedere molto tempo (o talvolta non funzionare) su distanze più lunghe di 200 km.
-Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestazioni.
+ Il calcolo del percorso offline di OsmAnd potrebbe richiedere molto tempo (o talvolta non funzionare) su distanze più lunghe di 200 km. Si consiglia di aggiungere uno o più destinazioni per migliorarne le prestazioni.
No zoom automatico
A corto raggio
A medio raggio
@@ -1422,7 +1421,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
Avvia la navigazione passo per passo automaticamente
Orario attuale
Salva come gruppo di preferiti
- Scegli le tappe
+ Scegli le destinazioni
Etichette dei punti
Mostra i pulsanti dello zoom
Mostra i pulsanti dello zoom durante la navigazione
@@ -2095,4 +2094,9 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
Scegli il bitrate dell\'audio
Percorsi a cavallo
Nessun indirizzo trovato
-
+ Ricerca in corso dell\'indirizzo
+ Non superare i confini
+ Aggiorna ogni
+ Scarica solo da rete WiFi
+ Aggiornamenti in tempo reale
+
diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml
index 1187d4062d..e87db739d8 100644
--- a/OsmAnd/res/values-large/sizes.xml
+++ b/OsmAnd/res/values-large/sizes.xml
@@ -7,7 +7,7 @@
90dp
81dp
72dp
- 400dp
+ 450dp
160dp
510dp
diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml
index 311fc0fa7e..ae1d876b46 100644
--- a/OsmAnd/res/values-nl/phrases.xml
+++ b/OsmAnd/res/values-nl/phrases.xml
@@ -747,8 +747,8 @@
Graf
Hanami
Wijnkelder
- Alpijns skiën
- Wandelen
+ Skipiste
+ Winterwandelweg
Schaatsen
Skiverhuur
@@ -835,7 +835,7 @@
Papieren verpakkingen
Kleine apparaten
Hout
-
+ Boeken
Schoenen
Aluminium
Organische materialen
@@ -880,7 +880,7 @@
Luiers
Accu\'s
Auto \'s
-
+ Fietsen
Nucleair afval
Waterbekken
@@ -971,4 +971,15 @@
Georgisch Orthodox
Scientisme
Roemeens Orthodox
+ Ethiopisch Orthodox
+ Unitarisch
+ Koptisch-orthodox
+ Wesleyan
+ Shaktisme
+ Internettoegang: ja
+ Internettoegang: nee
+
+ Piste
+ Langlaufpiste
+ Tourski piste
diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml
index c289bbe951..d5ea869271 100644
--- a/OsmAnd/res/values-nl/strings.xml
+++ b/OsmAnd/res/values-nl/strings.xml
@@ -155,7 +155,7 @@
Nodig voor openstreetmap.org aanmelding
OSM wachtwoord
Nodig voor openstreetmap.org aanmelding
- Achtergrondstand
+ Achtergrondmodus
OsmAnd werkt op de achtergrond als het scherm uit is
@@ -252,7 +252,7 @@
Gesproken aanwijzingen (TTS)
Gesproken aanwijzingen (opgenomen)
- Online en bewaarde tegelkaarten
+ Online en opgeslagen tegelkaarten
Normale kaarten (vector)
Interessepunt-gegevens
Stemmen van spraaksynthese
@@ -1513,7 +1513,7 @@
Onderbreek
GPS slaapstand inschakelen
GPS ontwaak-interval
- Onderbreek GPS achtergond-stand?
+ Onderbreek GPS op achtergrond?
Perzisch
Albanees
Arabisch
@@ -1818,7 +1818,7 @@
Filter op naam
Tik om alles te doorzoeken
Open
- OSM cartografie-assistent
+ OSM kaart-assistent
Beheer
Bewerk
Plaatsen
@@ -1832,7 +1832,7 @@
In de opgegeven directory kunnen geen kaarten opgeslagen worden
Het kopiëren van bestanden is niet gelukt
Externe opslag
- Opslag voor meer gebruikers
+ Opslag voor meerdere gebruikers
Intern applicatie-geheugen
Handmatig opgegeven
Interne opslag
@@ -1909,7 +1909,7 @@
Gevaar
Dik omlijnd
Geen updates beschikbaar
- Automatische updates
+ Live Updates
Ossetisch
Noors (Bokmål)
Volapük
@@ -1928,7 +1928,7 @@
Vertel ons wat u veranderd wilt hebben in deze app.
Uploaden mislukt
Verwijder wijziging
- Succesvol geupload {0}/{1}
+ Succesvol geüpload {0}/{1}
Probeer het opnieuw
Fout: {0}
Wilt u OsmAnd beoordelen op Google Play? Alvast heel erg bedankt.
@@ -1957,10 +1957,10 @@
min/km
m/s
- Spoor registreren
+ GPX-Track opnemen
Navigatie
- Eigenschappen van favoriet
- Stop simuleren van positie
+ Informatie over favoriet
+ Stop simulatie
Simuleer met een GPX-spoor of een berekende route
GPX-bestand met aantekeningen
Locaties
@@ -2022,7 +2022,7 @@
Wegen
Downloaden - %1$d bestand
Toon de balk \"Gratis Versie\"
- Ook als u betaald heeft kunt u nog steeds de balk \"Gratis Versie\" tonen
+ In de betaalde versie toch de balk \"Gratis Versie\" tonen
Kopen
Later
Downloads
@@ -2042,7 +2042,7 @@
Help met het verbeteren van OsmAnd
Overige
Plugins
- Eerste keer gebruiken
+ Eerste gebruik
Hoe kaarten te downloaden en basisinstellingen
Navigatie instellen
Een reis plannen
@@ -2057,7 +2057,7 @@
Neem contact op
Legenda
Meer lezen
- Wat is nieuw in
+ Wat is er nieuw in
Verberg voorgestelde objecten
Via OsmAnd gedeelde OSM-bewerkingen
Nederduits
@@ -2086,7 +2086,7 @@
Kies tussen het flexibele dashboard of een vast menu. Dit is altijd te wijzigen via de dashboard-instellingen.
Gekopieerd naar klembord
" • Nieuw contextmenu bij het aantikken van plekken op de kaart en op andere schermen\n\n • De kaart wordt direct getoond, tenzij \'Toon dashboard bij starten van de app\' is gekozen\n\n • Kies welke kaarten worden getoond op het dashboard\n\n • Mogelijkheid menu te gebruiken in plaats van het dashboard\n\n • Kaarten downloaden door op de wereldkaart te tikken\n\n • Fijnmaziger zoeken van POI\n\n • Betere bewerkingsmogelijkheden van POI en OSM\n\n • Kaarten downloaden is makkelijker en overzichtelijker\n\n en meer… "
- Verstuur
+ Bijdrage versturen
GPX routepunt wissen?
GPX routepunt bewerken
@@ -2122,4 +2122,7 @@
Kies audio bitrate
Adres wordt gezocht
Ruiterroutes
-
+ Update elke
+ "Alleen downloaden via WiFi"
+ Live Update
+
diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml
index 1cd1000d61..56f5f93e80 100644
--- a/OsmAnd/res/values-pt-rBR/strings.xml
+++ b/OsmAnd/res/values-pt-rBR/strings.xml
@@ -1936,7 +1936,7 @@
Modificar alteração no OSM
Usar painel de controle
Usar menu
- Painel de controle ou controle por menu
+ Controle pelo painel ou menu
Há uma nova opção para controlar principalmente o app via painel de controle flexível ou um menu estático. Sua escolha sempre pode ser alterada nas configurações do painel de controle.
Ocultar
Menor qualidade
@@ -1951,4 +1951,7 @@
Sem endereço determinado
Endereço procurado
Rotas a cavalo
-
+ Atualizar tudo
+ Somente baixar via Wi-Fi
+ Atualização ao vivo
+
diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml
index a3d4358145..3d1e5477ab 100644
--- a/OsmAnd/res/values-sv/strings.xml
+++ b/OsmAnd/res/values-sv/strings.xml
@@ -2030,4 +2030,7 @@
Ingen adress angiven
Slår upp adressen
Hästleder
-
+ Uppdatera varje
+ Hämta endast via WiFi
+ Direktuppdatering
+
diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml
index b373e02f94..3a429b697b 100644
--- a/OsmAnd/res/values-tr/strings.xml
+++ b/OsmAnd/res/values-tr/strings.xml
@@ -1989,4 +1989,7 @@
Yetkilendirme başarısız oldu
OsMo yetkilendirme hata oluştu: %1$s.\nAşağı bir geçici olarak hizmet olabilir veya kayıt süresi.\nYeni kayıt devam etmek istiyor musunuz?
" -Tüm oluşturulan grupları genel! Anonim olmak istiyorsan, izci kimlikleri üzerinden doğrudan aygıtlarını bağlayın.\n-Özel gruplar için 8 kişi sınırlıdır\nHareketsizlik ya da 2 hafta için sadece 1 kişi faaliyet-grup-ecek var olmak silmek.\n-Sadece davet, ama kontrol grubuna yönetici konsolu için gitmek gerekir gibi grup giriş, sınırlayabilirsiniz.\n-Bir grup oluşturun, ancak diğer koşulları ile lütfen http://osmo.mobi başvurun gerekiyorsa"
-
+ Bütün Güncellemler
+ Sadece WiFi üzerinden İndir
+ Canlı güncelleştirme
+
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 1b953c6200..c2eb76efb7 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -2029,4 +2029,7 @@
沒有確定地址
查尋地址
馬道
-
+ 更新全部
+ 只在 WiFi 連線下載
+ 即時更新
+
diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml
index e21f98920e..68eb36dd58 100644
--- a/OsmAnd/res/values/sizes.xml
+++ b/OsmAnd/res/values/sizes.xml
@@ -86,7 +86,7 @@
1dp
1dp
320dp
- 280dp
+ 330dp
100dp
diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java
index b51db8c71a..577da3300e 100644
--- a/OsmAnd/src/net/osmand/plus/AppInitializer.java
+++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java
@@ -289,7 +289,7 @@ public class AppInitializer implements IProgress {
return app.getString(in);
}
} catch (Exception e) {
- System.err.println(e.getMessage());
+ System.err.println("No translation for "+ type.getIconKeyName() + " " + e.getMessage());
}
return null;
}
diff --git a/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java b/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java
index 08f8ba4a37..287f72ed32 100644
--- a/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java
+++ b/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java
@@ -126,7 +126,7 @@ public class TargetPointsHelper {
public List getIntermediatePointsNavigation() {
List intermediatePoints = new ArrayList<>();
if (settings.USE_INTERMEDIATE_POINTS_NAVIGATION.get()) {
- for (TargetPoint t : intermediatePoints) {
+ for (TargetPoint t : this.intermediatePoints) {
intermediatePoints.add(t);
}
}
@@ -135,7 +135,7 @@ public class TargetPointsHelper {
public List getIntermediatePointsLatLon() {
List intermediatePointsLatLon = new ArrayList();
- for (TargetPoint t : intermediatePoints) {
+ for (TargetPoint t : this.intermediatePoints) {
intermediatePointsLatLon.add(t.point);
}
return intermediatePointsLatLon;
@@ -144,7 +144,7 @@ public class TargetPointsHelper {
public List getIntermediatePointsLatLonNavigation() {
List intermediatePointsLatLon = new ArrayList();
if (settings.USE_INTERMEDIATE_POINTS_NAVIGATION.get()) {
- for (TargetPoint t : intermediatePoints) {
+ for (TargetPoint t : this.intermediatePoints) {
intermediatePointsLatLon.add(t.point);
}
}
@@ -153,7 +153,7 @@ public class TargetPointsHelper {
public List getIntermediatePointsWithTarget() {
List res = new ArrayList();
- res.addAll(intermediatePoints);
+ res.addAll(this.intermediatePoints);
if(pointToNavigate != null) {
res.add(pointToNavigate);
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
index ff51b366d1..011667d67f 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
@@ -646,15 +646,7 @@ public class MapActivityActions implements DialogProvider {
return false;
}
}).reg();
- optionsMenuHelper.item(R.string.download_live_updates).iconColor(R.drawable.ic_configure_screen_dark)
- .listen(new OnContextMenuClick() {
- @Override
- public boolean onContextMenuClick(ArrayAdapter> adapter, int itemId, int pos, boolean isChecked) {
- Intent intent = new Intent(mapActivity, LiveUpdatesActivity.class);
- mapActivity.startActivity(intent);
- return false;
- }
- }).reg();
+
String d = getString(R.string.index_settings);
if (app.getDownloadThread().getIndexes().isDownloadedFromInternet) {
List updt = app.getDownloadThread().getIndexes().getItemsToUpdate();
@@ -674,6 +666,15 @@ public class MapActivityActions implements DialogProvider {
}
}).reg();
+ optionsMenuHelper.item(R.string.download_live_updates).iconColor(R.drawable.ic_configure_screen_dark)
+ .listen(new OnContextMenuClick() {
+ @Override
+ public boolean onContextMenuClick(ArrayAdapter> adapter, int itemId, int pos, boolean isChecked) {
+ Intent intent = new Intent(mapActivity, LiveUpdatesActivity.class);
+ mapActivity.startActivity(intent);
+ return false;
+ }
+ }).reg();
optionsMenuHelper.item(R.string.prefs_plugins).iconColor(R.drawable.ic_extension_dark)
.listen(new OnContextMenuClick() {
diff --git a/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java b/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java
index 81dccaf93c..e7b5a0e263 100644
--- a/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java
@@ -22,7 +22,7 @@ import net.osmand.plus.R;
import net.osmand.plus.routing.RouteDirectionInfo;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.views.TurnPathHelper;
-import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
+import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
import net.osmand.util.Algorithms;
import android.content.Intent;
import android.net.Uri;
@@ -144,7 +144,7 @@ public class ShowRouteInfoActivity extends OsmandListActivity {
RouteDirectionInfo item = ((RouteInfoAdapter)getListAdapter()).getItem(position - 1);
Location loc = helper.getLocationFromRouteDirection(item);
if(loc != null){
- MapRouteInfoControl.directionInfo = position - 1;
+ MapRouteInfoMenu.directionInfo = position - 1;
OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings();
settings.setMapLocationToShow(loc.getLatitude(),loc.getLongitude(),
Math.max(13, settings.getLastKnownMapZoom()),
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
index 880cdd909a..9527b1398d 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
@@ -362,7 +362,6 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
if (loc != null && loc.hasAltitude()) {
double alt = loc.getAltitude();
String altString = (int) (Math.abs(alt) * 100.0) + "/100";
- System.err.println(altString);
setAttribute.invoke(exInstance, "GPSAltitude", altString);
setAttribute.invoke(exInstance, "GPSAltitudeRef", alt < 0 ? "1" : "0");
}
diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java
index a0cfd4079d..4a676e8bfb 100644
--- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java
+++ b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java
@@ -13,7 +13,6 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.util.DisplayMetrics;
import net.osmand.plus.R;
@@ -36,30 +35,22 @@ public class FavoriteImageDrawable extends Drawable {
this.withShadow = withShadow;
this.resources = ctx.getResources();
this.color = color;
- paintIcon = new Paint();
- int col = color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) : color;
- paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN));
paintBackground = new Paint();
+ int col = color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) : color;
+ paintBackground.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY));
+ paintIcon = new Paint();
favIcon = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_favorite);
favBackground = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_white_favorite_shield);
-
-
listDrawable = getResources().getDrawable(R.drawable.ic_action_fav_dark).mutate();
- listDrawable.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN));
- DisplayMetrics metrics = getResources().getDisplayMetrics();
+
paintOuter = new Paint();
paintOuter.setAntiAlias(true);
paintOuter.setStyle(Style.FILL_AND_STROKE);
paintInnerCircle = new Paint();
paintInnerCircle.setStyle(Style.FILL_AND_STROKE);
- if(metrics != null && metrics.density > 0) {
- paintOuter.setStrokeWidth(metrics.density * 1);
- } else {
- paintOuter.setStrokeWidth(1);
- }
-// paintOuter.setColor(color == 0 || color == Color.BLACK ? 0x88555555 : color);
- paintOuter.setColor(0xffbbbbbb);
- paintInnerCircle.setColor(Color.WHITE);
+ paintOuter.setColor(color == 0 || color == Color.BLACK ? 0x88555555 : color);
+ paintInnerCircle.setColor(color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite)
+ : color);
paintInnerCircle.setAntiAlias(true);
}
diff --git a/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java b/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java
index 47093cade9..e82bc4ffcc 100644
--- a/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java
+++ b/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java
@@ -433,7 +433,7 @@ public class SearchHistoryHelper {
st.put(p, e);
} while (query.moveToNext());
if(reinsert) {
- System.err.println("Reinsert all values");
+ System.err.println("Reinsert all values for search history");
db.execSQL("DELETE FROM " + HISTORY_TABLE_NAME); //$NON-NLS-1$
entries.clear();
entries.addAll(st.values());
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java
similarity index 73%
rename from OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoControl.java
rename to OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java
index 763bacd5f4..866d8ea90d 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoControl.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java
@@ -5,12 +5,13 @@ import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.graphics.PointF;
+import android.graphics.drawable.Drawable;
+import android.support.v4.app.Fragment;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
-import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
@@ -21,10 +22,9 @@ import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.ApplicationMode;
+import net.osmand.plus.IconsCache;
import net.osmand.plus.OsmAndFormatter;
-import net.osmand.plus.OsmAndLocationProvider;
import net.osmand.plus.OsmandApplication;
-import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
@@ -34,7 +34,6 @@ import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.ShowRouteInfoActivity;
import net.osmand.plus.activities.actions.AppModeDialog;
import net.osmand.plus.activities.search.SearchAddressActivity;
-import net.osmand.plus.development.OsmandDevelopmentPlugin;
import net.osmand.plus.dialogs.FavoriteDialogs;
import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.routing.RouteDirectionInfo;
@@ -43,27 +42,27 @@ import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener;
import net.osmand.plus.views.MapControlsLayer;
import net.osmand.plus.views.OsmandMapTileView;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-public class MapRouteInfoControl implements IRouteInformationListener {
+public class MapRouteInfoMenu implements IRouteInformationListener {
public static int directionInfo = -1;
public static boolean controlVisible = false;
private final MapContextMenu contextMenu;
private final RoutingHelper routingHelper;
private OsmandMapTileView mapView;
- private Dialog dialog;
- private boolean selectFromMapTouch;
+ private boolean selectFromMapTouch;
private boolean selectFromMapForTarget;
- private boolean showDialog = false;
+ private boolean showMenu = false;
private MapActivity mapActivity;
private MapControlsLayer mapControlsLayer;
public static final String TARGET_SELECT = "TARGET_SELECT";
- public MapRouteInfoControl(MapActivity mapActivity, MapControlsLayer mapControlsLayer) {
+ public MapRouteInfoMenu(MapActivity mapActivity, MapControlsLayer mapControlsLayer) {
this.mapActivity = mapActivity;
this.mapControlsLayer = mapControlsLayer;
contextMenu = mapActivity.getContextMenu();
@@ -71,61 +70,59 @@ public class MapRouteInfoControl implements IRouteInformationListener {
mapView = mapActivity.getMapView();
routingHelper.addListener(this);
}
-
+
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
- if(selectFromMapTouch) {
+ if (selectFromMapTouch) {
LatLon latlon = tileBox.getLatLonFromPixel(point.x, point.y);
selectFromMapTouch = false;
- if(selectFromMapForTarget) {
+ if (selectFromMapForTarget) {
getTargets().navigateToPoint(latlon, true, -1);
} else {
getTargets().setStartPoint(latlon, true, null);
}
contextMenu.showMinimized(latlon, null, null);
- showDialog();
+ show();
return true;
}
return false;
}
-
+
public void setVisible(boolean visible) {
- if(visible) {
- if (showDialog){
- //if (getTargets().getPointToNavigate() == null){
- showDialog();
- //}
- showDialog = false;
+ if (visible) {
+ if (showMenu) {
+ show();
+ showMenu = false;
}
controlVisible = true;
} else {
- hideDialog();
+ hide();
controlVisible = false;
}
}
-
-
- public void showHideDialog() {
- if(dialog != null) {
- hideDialog();
+
+
+ public void showHideMenu() {
+ if (isVisible()) {
+ hide();
} else {
- showDialog();
+ show();
}
}
-
- public void updateDialog() {
- if(dialog != null) {
- updateInfo(dialog.findViewById(R.id.plan_route_info));
- }
+
+ public void updateMenu() {
+ WeakReference fragmentRef = findMenuFragment();
+ if (fragmentRef != null)
+ fragmentRef.get().updateInfo();
}
-
- private void updateInfo(final View main) {
+
+ public void updateInfo(final View main) {
updateViaView(main);
updateFromSpinner(main);
updateToSpinner(main);
updateApplicationModes(main);
mapControlsLayer.updateRouteButtons(main, true);
boolean addButtons = routingHelper.isRouteCalculated();
- if(addButtons) {
+ if (addButtons) {
updateRouteButtons(main);
} else {
updateRouteCalcProgress(main);
@@ -134,7 +131,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
private void updateRouteCalcProgress(final View main) {
TargetPointsHelper targets = getTargets();
- if(targets.hasTooLongDistanceToNavigate()) {
+ if (targets.hasTooLongDistanceToNavigate()) {
main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
TextView textView = (TextView) main.findViewById(R.id.InfoTextView);
ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon);
@@ -143,7 +140,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
textView.setText(R.string.route_is_too_long);
textView.setVisibility(View.VISIBLE);
iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning));
- } else{
+ } else {
main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
}
}
@@ -151,7 +148,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
private void updateApplicationModes(final View parentView) {
final OsmandSettings settings = mapActivity.getMyApplication().getSettings();
ApplicationMode am = settings.APPLICATION_MODE.get();
- final Set selected = new HashSet();
+ final Set selected = new HashSet<>();
selected.add(am);
ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes);
vg.removeAllViews();
@@ -165,17 +162,26 @@ public class MapRouteInfoControl implements IRouteInformationListener {
mapActivity.getRoutingHelper().recalculateRouteDueToSettingsChange();
}
}
- });
+ });
}
private void updateViaView(final View parentView) {
String via = generateViaDescription();
- if(via.length() == 0){
+ if (via.length() == 0) {
parentView.findViewById(R.id.ViaLayout).setVisibility(View.GONE);
+ parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.GONE);
} else {
parentView.findViewById(R.id.ViaLayout).setVisibility(View.VISIBLE);
+ parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.VISIBLE);
((TextView) parentView.findViewById(R.id.ViaView)).setText(via);
}
+
+ ImageView viaIcon = (ImageView) parentView.findViewById(R.id.viaIcon);
+ if (isLight()) {
+ viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_day));
+ } else {
+ viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_night));
+ }
}
private void updateToSpinner(final View parentView) {
@@ -183,24 +189,41 @@ public class MapRouteInfoControl implements IRouteInformationListener {
toSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
- if(position == 1) {
+ if (position == 1) {
selectFavorite(parentView, true);
- } else if(position == 2) {
- selectOnScreen(parentView, true);
- } else if(position == 3) {
+ } else if (position == 2) {
+ selectOnScreen(true);
+ } else if (position == 3) {
Intent intent = new Intent(mapActivity, SearchAddressActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra(TARGET_SELECT, true);
mapActivity.startActivityForResult(intent, MapControlsLayer.REQUEST_ADDRESS_SELECT);
- }
+ }
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
+
+ ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon);
+ if (isLight()) {
+ toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_day));
+ } else {
+ toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_night));
+ }
+
+ ImageView toDropDownIcon = (ImageView) parentView.findViewById(R.id.toDropDownIcon);
+ toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down));
+ toDropDownIcon.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ toSpinner.performClick();
+ }
+ });
}
+ @SuppressWarnings("deprecation")
private void updateFromSpinner(final View parentView) {
final TargetPointsHelper targets = getTargets();
final Spinner fromSpinner = setupFromSpinner(parentView);
@@ -208,43 +231,56 @@ public class MapRouteInfoControl implements IRouteInformationListener {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
- if(position == 0) {
- if(targets.getPointToStart() != null) {
+ if (position == 0) {
+ if (targets.getPointToStart() != null) {
targets.clearStartPoint(true);
}
- } else if(position == 1) {
+ } else if (position == 1) {
selectFavorite(parentView, false);
- } else if(position == 2) {
- selectOnScreen(parentView, false);
- } else if(position == 3) {
+ } else if (position == 2) {
+ selectOnScreen(false);
+ } else if (position == 3) {
Intent intent = new Intent(mapActivity, SearchAddressActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra(TARGET_SELECT, false);
mapActivity.startActivityForResult(intent, MapControlsLayer.REQUEST_ADDRESS_SELECT);
- }
+ }
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
+
+ ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon);
+ ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode();
+ fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay()));
+
+ ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon);
+ fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down));
+ fromDropDownIcon.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ fromSpinner.performClick();
+ }
+ });
}
- protected void selectOnScreen(View parentView, boolean target) {
+ protected void selectOnScreen(boolean target) {
selectFromMapTouch = true;
- selectFromMapForTarget = target;
- hideDialog();
+ selectFromMapForTarget = target;
+ hide();
}
-
+
public void selectAddress(String name, LatLon l, final boolean target) {
PointDescription pd = new PointDescription(PointDescription.POINT_TYPE_ADDRESS, name);
- if(target) {
+ if (target) {
getTargets().navigateToPoint(l, true, -1, pd);
} else {
getTargets().setStartPoint(l, true, pd);
}
- hideDialog();
- showDialog();
+ hide();
+ show();
}
protected void selectFavorite(final View parentView, final boolean target) {
@@ -267,26 +303,34 @@ public class MapRouteInfoControl implements IRouteInformationListener {
FavoriteDialogs.showFavoritesDialog(mapActivity, favouritesAdapter, click, dismissListener, dlgHolder, true);
}
+ private boolean isLight() {
+ return mapActivity.getMyApplication().getSettings().isLightContent();
+ }
+
+ private Drawable getIconOrig(int iconId) {
+ IconsCache iconsCache = mapActivity.getMyApplication().getIconsCache();
+ return iconsCache.getIcon(iconId, 0, 0f);
+ }
private OnItemClickListener getOnClickListener(final boolean target, final FavouritesAdapter favouritesAdapter,
- final Dialog[] dlg) {
+ final Dialog[] dlg) {
return new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
FavouritePoint fp = favouritesAdapter.getItem(position);
LatLon point = new LatLon(fp.getLatitude(), fp.getLongitude());
- if(target) {
+ if (target) {
getTargets().navigateToPoint(point, true, -1, fp.getPointDescription());
} else {
getTargets().setStartPoint(point, true, fp.getPointDescription());
}
- if(dlg != null && dlg.length > 0 && dlg[0] != null) {
+ if (dlg != null && dlg.length > 0 && dlg[0] != null) {
dlg[0].dismiss();
}
//Next 2 lines ensure Dialog is shown in the right correct position after a selection been made
- hideDialog();
- showDialog();
+ hide();
+ show();
}
};
}
@@ -294,15 +338,24 @@ public class MapRouteInfoControl implements IRouteInformationListener {
public static int getDirectionInfo() {
return directionInfo;
}
-
- public boolean isDialogVisible() {
- return dialog != null && dialog.isShowing();
+
+ public boolean isVisible() {
+ return findMenuFragment() != null;
+ }
+
+ public WeakReference findMenuFragment() {
+ Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag(MapRouteInfoMenuFragment.TAG);
+ if (fragment != null && !fragment.isDetached()) {
+ return new WeakReference<>((MapRouteInfoMenuFragment) fragment);
+ } else {
+ return null;
+ }
}
public static boolean isControlVisible() {
return controlVisible;
}
-
+
private void updateRouteButtons(final View mainView) {
mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
final OsmandApplication ctx = mapActivity.getMyApplication();
@@ -337,10 +390,10 @@ public class MapRouteInfoControl implements IRouteInformationListener {
ImageView next = (ImageView) mainView.findViewById(R.id.Next);
next.setVisibility(View.VISIBLE);
next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next));
- next.setOnClickListener(new View.OnClickListener(){
+ next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if(routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size() - 1){
+ if (routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size() - 1) {
directionInfo++;
RouteDirectionInfo info = routingHelper.getRouteDirections().get(directionInfo);
net.osmand.Location l = routingHelper.getLocationFromRouteDirection(info);
@@ -350,10 +403,10 @@ public class MapRouteInfoControl implements IRouteInformationListener {
mapView.refreshMap();
updateInfo(mainView);
}
-
+
});
View info = mainView.findViewById(R.id.Info);
- info.setOnClickListener(new View.OnClickListener(){
+ info.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mapView.getContext(), ShowRouteInfoActivity.class);
@@ -361,10 +414,10 @@ public class MapRouteInfoControl implements IRouteInformationListener {
mapView.getContext().startActivity(intent);
}
});
-
+
TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView);
ImageView iconView = (ImageView) mainView.findViewById(R.id.InfoIcon);
- if(directionInfo >= 0) {
+ if (directionInfo >= 0) {
iconView.setVisibility(View.GONE);
} else {
iconView.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_info_dark));
@@ -379,81 +432,52 @@ public class MapRouteInfoControl implements IRouteInformationListener {
}
}
- private Button attachSimulateRoute(final View mainView, final OsmandApplication ctx) {
- final Button simulateRoute = null;//(Button) mainView.findViewById(R.id.SimulateRoute);
- final OsmAndLocationProvider loc = ctx.getLocationProvider();
- if(mapActivity.getRoutingHelper().isFollowingMode()) {
- simulateRoute.setVisibility(View.GONE);
- }
- if (OsmandPlugin.getEnabledPlugin(OsmandDevelopmentPlugin.class) == null) {
- simulateRoute.setVisibility(View.GONE);
- }
- simulateRoute.setText(loc.getLocationSimulation().isRouteAnimating() ? R.string.animate_route_off : R.string.animate_route);
- simulateRoute.setOnClickListener(new View.OnClickListener() {
-
- @Override
- public void onClick(View v) {
- mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
- if(loc.getLocationSimulation().isRouteAnimating()) {
- loc.getLocationSimulation().startStopRouteAnimation(mapActivity);
- hideDialog();
- } else {
- simulateRoute.setText(R.string.animate_route_off);
- loc.getLocationSimulation().startStopRouteAnimation(mapActivity);
- }
-
- }
- });
- return simulateRoute;
- }
-
-
@Override
public void newRouteIsCalculated(boolean newRoute, ValueHolder showToast) {
directionInfo = -1;
- updateDialog();
- if(isDialogVisible()) {
+ updateMenu();
+ if (isVisible()) {
showToast.value = false;
}
}
-
+
public String generateViaDescription() {
TargetPointsHelper targets = getTargets();
- String via = "";
List points = targets.getIntermediatePointsNavigation();
if (points.size() == 0) {
- return via;
+ return "";
}
+ StringBuilder via = new StringBuilder();
for (int i = 0; i < points.size(); i++) {
if (i > 0) {
- via += "\n";
+ via.append(" ");
}
- via += " " + getRoutePointDescription(points.get(i).point, points.get(i).getOnlyName());
+ via.append(getRoutePointDescription(points.get(i).point, points.get(i).getOnlyName()));
}
- return via;
+ return via.toString();
}
-
+
public String getRoutePointDescription(double lat, double lon) {
return mapActivity.getString(R.string.route_descr_lat_lon, lat, lon);
}
-
+
public String getRoutePointDescription(LatLon l, String d) {
- if(d != null && d.length() > 0) {
+ if (d != null && d.length() > 0) {
return d.replace(':', ' ');
}
- if(l != null) {
+ if (l != null) {
return mapActivity.getString(R.string.route_descr_lat_lon, l.getLatitude(), l.getLongitude());
}
return "";
}
-
- private Spinner setupFromSpinner( View view) {
- ArrayList fromActions = new ArrayList();
+
+ private Spinner setupFromSpinner(View view) {
+ ArrayList fromActions = new ArrayList<>();
fromActions.add(mapActivity.getString(R.string.route_descr_current_location));
fromActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis));
fromActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
fromActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis));
-
+
TargetPoint start = getTargets().getPointToStart();
if (start != null) {
String oname = start.getOnlyName().length() > 0 ? start.getOnlyName()
@@ -461,43 +485,43 @@ public class MapRouteInfoControl implements IRouteInformationListener {
fromActions.add(oname);
}
final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner));
- ArrayAdapter fromAdapter = new ArrayAdapter(view.getContext(),
- android.R.layout.simple_spinner_item,
+ ArrayAdapter fromAdapter = new ArrayAdapter<>(view.getContext(),
+ android.R.layout.simple_spinner_item,
fromActions
- );
+ );
fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fromSpinner.setAdapter(fromAdapter);
- if(start != null) {
+ if (start != null) {
fromSpinner.setSelection(fromActions.size() - 1);
} else {
- if(mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() == null) {
+ if (mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() == null) {
fromSpinner.setPromptId(R.string.search_poi_location);
}
//fromSpinner.setSelection(0);
}
return fromSpinner;
}
-
+
private Spinner setupToSpinner(View view) {
final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner));
final TargetPointsHelper targets = getTargets();
- ArrayList toActions = new ArrayList();
+ ArrayList toActions = new ArrayList<>();
if (targets.getPointToNavigate() != null) {
toActions.add(mapActivity.getString(R.string.route_descr_destination) + " "
- + getRoutePointDescription(targets.getPointToNavigate().point,
- targets.getPointToNavigate().getOnlyName()));
+ + getRoutePointDescription(targets.getPointToNavigate().point,
+ targets.getPointToNavigate().getOnlyName()));
} else {
toSpinner.setPromptId(R.string.route_descr_select_destination);
- toActions.add(mapActivity.getString(R.string.route_descr_select_destination));
+ toActions.add(mapActivity.getString(R.string.route_descr_select_destination));
}
toActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis));
toActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
toActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis));
-
- ArrayAdapter toAdapter = new ArrayAdapter(view.getContext(),
- android.R.layout.simple_spinner_item,
+
+ ArrayAdapter toAdapter = new ArrayAdapter<>(view.getContext(),
+ android.R.layout.simple_spinner_item,
toActions
- );
+ );
toAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
toSpinner.setAdapter(toAdapter);
return toSpinner;
@@ -510,36 +534,22 @@ public class MapRouteInfoControl implements IRouteInformationListener {
@Override
public void routeWasCancelled() {
directionInfo = -1;
- // do not hide dialog (needed for use case entering Planning mode without destination)
+ // do not hide fragment (needed for use case entering Planning mode without destination)
}
-
-
- public void showDialog() {
- final View ll = mapActivity.getLayoutInflater().inflate(R.layout.plan_route_info, null);
- updateInfo(ll);
- dialog = MapRoutePreferencesControl.showDialog(mapControlsLayer, mapActivity, ll, new OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface d) {
- dialog = null;
- }
- });
+
+ public void show() {
+ MapRouteInfoMenuFragment.showInstance(mapActivity);
}
-
- public void hideDialog() {
- Dialog dialog = this.dialog;
- if (dialog != null) {
- if(dialog instanceof MapRoutePreferencesControl.RoutePrepareDialog &&
- ((MapRoutePreferencesControl.RoutePrepareDialog) dialog).getListener() != null) {
- ((MapRoutePreferencesControl.RoutePrepareDialog) dialog).getListener().onDismiss(dialog);
- ((MapRoutePreferencesControl.RoutePrepareDialog) dialog).cancelDismissListener();
- }
- dialog.dismiss();
- this.dialog = null;
+
+ public void hide() {
+ WeakReference fragmentRef = findMenuFragment();
+ if (fragmentRef != null) {
+ fragmentRef.get().dismiss();
}
}
- public void setShowDialog() {
- showDialog = true;
+ public void setShowMenu() {
+ showMenu = true;
}
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java
new file mode 100644
index 0000000000..207c851810
--- /dev/null
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java
@@ -0,0 +1,109 @@
+package net.osmand.plus.mapcontextmenu.other;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import net.osmand.plus.R;
+import net.osmand.plus.activities.MapActivity;
+import net.osmand.plus.helpers.AndroidUiHelper;
+
+public class MapRouteInfoMenuFragment extends Fragment {
+ public static final String TAG = "MapRouteInfoMenuFragment";
+
+ private MapRouteInfoMenu menu;
+ private View mainView;
+
+ private MapActivity getMapActivity() {
+ return (MapActivity) getActivity();
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ MapActivity mapActivity = getMapActivity();
+
+ menu = mapActivity.getMapLayers().getMapControlsLayer().getMapRouteInfoMenu();
+ View view = inflater.inflate(R.layout.plan_route_info, container, false);
+ if (menu == null) {
+ return view;
+ }
+
+ view.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dismiss();
+ }
+ });
+
+ mainView = view.findViewById(R.id.main_view);
+ updateInfo();
+
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (menu == null) {
+ dismiss();
+ }
+ }
+
+ public void updateInfo() {
+ menu.updateInfo(mainView);
+ }
+
+ public void show(MapActivity mapActivity) {
+ int slideInAnim = R.anim.slide_in_bottom;
+ int slideOutAnim = R.anim.slide_out_bottom;
+
+ mapActivity.getSupportFragmentManager().beginTransaction()
+ .setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
+ .add(R.id.routeMenuContainer, this, TAG)
+ .addToBackStack(TAG)
+ .commitAllowingStateLoss();
+ }
+
+ public void dismiss() {
+ FragmentActivity activity = getActivity();
+ if (activity != null) {
+ try {
+ activity.getSupportFragmentManager().popBackStack(TAG,
+ FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ } catch (Exception e) {
+ //
+ }
+ }
+ }
+
+ public static boolean showInstance(final MapActivity mapActivity) {
+ try {
+ boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
+ int slideInAnim;
+ int slideOutAnim;
+ if (portrait) {
+ slideInAnim = R.anim.slide_in_bottom;
+ slideOutAnim = R.anim.slide_out_bottom;
+ } else {
+ slideInAnim = R.anim.slide_in_left;
+ slideOutAnim = R.anim.slide_out_left;
+ }
+
+ MapRouteInfoMenuFragment fragment = new MapRouteInfoMenuFragment();
+ mapActivity.getSupportFragmentManager().beginTransaction()
+ .setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
+ .add(R.id.routeMenuContainer, fragment, TAG)
+ .addToBackStack(TAG).commitAllowingStateLoss();
+
+ return true;
+
+ } catch (RuntimeException e) {
+ return false;
+ }
+ }
+}
diff --git a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java
index fc38eb62b4..52df922fbe 100644
--- a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java
@@ -3,8 +3,11 @@ package net.osmand.plus.views;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
+import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PointF;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
@@ -33,6 +36,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
private MapTextLayer textLayer;
private Paint paintIcon;
private Bitmap pointSmall;
+ private int defaultColor;
private OsmandSettings settings;
@@ -60,6 +64,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
textLayer = view.getLayerByClass(MapTextLayer.class);
paintIcon = new Paint();
pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_shield_small);
+ defaultColor = view.getResources().getColor(R.color.color_favorite);
}
private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) {
@@ -101,6 +106,8 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude());
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
+ int col = o.getColor() == 0 || o.getColor() == Color.BLACK ? defaultColor : o.getColor();
+ paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY));
canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon);
} else {
fullObjects.add(o);
diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java
index e59d4af503..2d571d1a3f 100644
--- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java
@@ -10,6 +10,7 @@ import android.graphics.Paint.Align;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.PointF;
+import android.graphics.PorterDuff;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffColorFilter;
import android.support.annotation.NonNull;
@@ -294,6 +295,9 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex
float y = tileBox.getPixYFromLatLon(o.lat, o.lon);
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
+ boolean visit = isPointVisited(o);
+ int col = visit ? visitedColor : o.getColor(fcolor);
+ paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY));
canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon);
} else {
fullObjects.add(o);
diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java
index 6bb0d6e9cf..6497bef979 100644
--- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java
@@ -41,7 +41,7 @@ import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.search.SearchAddressFragment;
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
import net.osmand.plus.helpers.AndroidUiHelper;
-import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
+import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.views.corenative.NativeCoreContext;
@@ -76,7 +76,7 @@ public class MapControlsLayer extends OsmandMapLayer {
private OsmandSettings settings;
private MapRoutePreferencesControl optionsRouteControlDialog;
- private MapRouteInfoControl mapRouteInfoControlDialog;
+ private MapRouteInfoMenu mapRouteInfoMenu;
private MapHudButton backToLocationControl;
private MapHudButton menuControl;
private MapHudButton compassHud;
@@ -103,6 +103,10 @@ public class MapControlsLayer extends OsmandMapLayer {
mapView = mapActivity.getMapView();
}
+ public MapRouteInfoMenu getMapRouteInfoMenu() {
+ return mapRouteInfoMenu;
+ }
+
@Override
public boolean drawInScreenPixels() {
return true;
@@ -217,7 +221,7 @@ public class MapControlsLayer extends OsmandMapLayer {
}
private void initRouteControls() {
- mapRouteInfoControlDialog = new MapRouteInfoControl(mapActivity, this);
+ mapRouteInfoMenu = new MapRouteInfoMenu(mapActivity, this);
optionsRouteControlDialog = new MapRoutePreferencesControl(mapActivity, this);
}
@@ -252,8 +256,8 @@ public class MapControlsLayer extends OsmandMapLayer {
TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button);
routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null);
- routeGoButton.setText(AndroidUiHelper.isOrientationPortrait(mapActivity) ?
- mapActivity.getString(R.string.shared_string_go) : "");
+ routeGoButton.setText(/*AndroidUiHelper.isOrientationPortrait(mapActivity) ?*/
+ mapActivity.getString(R.string.shared_string_go) /*: ""*/);
routeGoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -274,25 +278,25 @@ public class MapControlsLayer extends OsmandMapLayer {
protected void clickRouteParams() {
notifyClicked();
- mapRouteInfoControlDialog.hideDialog();
- optionsRouteControlDialog.showAndHideDialog();
+ if (optionsRouteControlDialog.isDialogVisible()) {
+ optionsRouteControlDialog.hideDialog();
+ mapRouteInfoMenu.showHideMenu();
+ } else {
+ mapRouteInfoMenu.hide();
+ optionsRouteControlDialog.showAndHideDialog();
+ }
}
protected void clickRouteWaypoints() {
if (getTargets().checkPointToNavigateShort()) {
notifyClicked();
- if (optionsRouteControlDialog.isDialogVisible()) {
- optionsRouteControlDialog.hideDialog();
- } else if (mapRouteInfoControlDialog.isDialogVisible()) {
- mapRouteInfoControlDialog.hideDialog();
- }
mapActivity.getMapActions().openIntermediatePointsDialog();
}
}
protected void clickRouteCancel() {
notifyClicked();
- mapRouteInfoControlDialog.hideDialog();
+ mapRouteInfoMenu.hide();
optionsRouteControlDialog.hideDialog();
if (mapActivity.getRoutingHelper().isFollowingMode()) {
mapActivity.getMapActions().stopNavigationActionConfirm();
@@ -303,7 +307,7 @@ public class MapControlsLayer extends OsmandMapLayer {
protected void clickRouteGo() {
notifyClicked();
- mapRouteInfoControlDialog.hideDialog();
+ mapRouteInfoMenu.hide();
optionsRouteControlDialog.hideDialog();
// RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper();
// if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
@@ -315,11 +319,11 @@ public class MapControlsLayer extends OsmandMapLayer {
}
public void showRouteInfoControlDialog() {
- mapRouteInfoControlDialog.showHideDialog();
+ mapRouteInfoMenu.showHideMenu();
}
public void showDialog() {
- mapRouteInfoControlDialog.setShowDialog();
+ mapRouteInfoMenu.setShowMenu();
}
private void initControls() {
@@ -462,7 +466,7 @@ public class MapControlsLayer extends OsmandMapLayer {
switchToRouteFollowingLayout();
} else {
if (!app.getTargetPointsHelper().checkPointToNavigateShort()) {
- mapRouteInfoControlDialog.showDialog();
+ mapRouteInfoMenu.show();
} else {
touchEvent = 0;
mapActivity.getMapViewTrackingUtilities().backToLocationImpl();
@@ -531,7 +535,7 @@ public class MapControlsLayer extends OsmandMapLayer {
int textColor = isNight ? mapActivity.getResources().getColor(R.color.widgettext_night) : Color.BLACK;
if (shadowColor != shadw) {
shadowColor = shadw;
- // TODO
+ // TODOnightMode
// updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls);
}
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
@@ -544,7 +548,7 @@ public class MapControlsLayer extends OsmandMapLayer {
routePlanningMode = true;
}
boolean routeFollowingMode = !routePlanningMode && rh.isFollowingMode();
- boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoControlDialog.isDialogVisible();
+ boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoMenu.isVisible();
boolean showRouteCalculationControls = routePlanningMode ||
((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode);
updateMyLocation(rh, dialogOpened);
@@ -581,7 +585,7 @@ public class MapControlsLayer extends OsmandMapLayer {
}
}
- mapRouteInfoControlDialog.setVisible(showRouteCalculationControls);
+ mapRouteInfoMenu.setVisible(showRouteCalculationControls);
if (showRouteCalculationControls) {
if (!mapActivity.getRoutingHelper().isFollowingMode()
&& !mapActivity.getRoutingHelper().isPauseNavigation()) {
@@ -634,7 +638,7 @@ public class MapControlsLayer extends OsmandMapLayer {
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
- if (mapRouteInfoControlDialog.onSingleTap(point, tileBox)) {
+ if (mapRouteInfoMenu.onSingleTap(point, tileBox)) {
return true;
}
stopCounter();
@@ -933,14 +937,14 @@ public class MapControlsLayer extends OsmandMapLayer {
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_ADDRESS_SELECT && resultCode == SearchAddressFragment.SELECT_ADDRESS_POINT_RESULT_OK) {
String name = data.getStringExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_INTENT_KEY);
- boolean target = data.getBooleanExtra(MapRouteInfoControl.TARGET_SELECT, true);
+ boolean target = data.getBooleanExtra(MapRouteInfoMenu.TARGET_SELECT, true);
LatLon latLon = new LatLon(
data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LAT, 0),
data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LON, 0));
if (name != null) {
- mapRouteInfoControlDialog.selectAddress(name, latLon, target);
+ mapRouteInfoMenu.selectAddress(name, latLon, target);
} else {
- mapRouteInfoControlDialog.selectAddress("", latLon, target);
+ mapRouteInfoMenu.selectAddress("", latLon, target);
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java
index 8973ad6940..2ee086a761 100644
--- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java
+++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java
@@ -33,7 +33,7 @@ import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
import net.osmand.plus.routing.RouteDirectionInfo;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
-import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
+import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
import net.osmand.plus.views.mapwidgets.NextTurnInfoWidget.TurnDrawable;
import net.osmand.router.TurnType;
@@ -237,8 +237,8 @@ public class MapInfoWidgetsFactory {
}
}
} else {
- int di = MapRouteInfoControl.getDirectionInfo();
- if (di >= 0 && MapRouteInfoControl.isControlVisible() &&
+ int di = MapRouteInfoMenu.getDirectionInfo();
+ if (di >= 0 && MapRouteInfoMenu.isControlVisible() &&
di < routingHelper.getRouteDirections().size()) {
showNextTurn = true;
RouteDirectionInfo next = routingHelper.getRouteDirections().get(di);
diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java
index 94c63a80f2..b89b255e68 100644
--- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java
+++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java
@@ -30,7 +30,7 @@ import net.osmand.plus.views.AnimateDraggingMapThread;
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.TurnPathHelper;
-import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
+import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
import net.osmand.router.RouteResultPreparation;
import net.osmand.router.TurnType;
import net.osmand.util.Algorithms;
@@ -583,8 +583,8 @@ public class RouteInfoWidgetsFactory {
dist = r.distanceTo;
}
} else {
- int di = MapRouteInfoControl.getDirectionInfo();
- if (di >= 0 && MapRouteInfoControl.isControlVisible()
+ int di = MapRouteInfoMenu.getDirectionInfo();
+ if (di >= 0 && MapRouteInfoMenu.isControlVisible()
&& di < rh.getRouteDirections().size()) {
RouteDirectionInfo next = rh.getRouteDirections().get(di);
if (next != null) {