Merge branch 'master' into fix_plan_route_option

# Conflicts:
#	OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java
This commit is contained in:
Dima-1 2020-08-12 17:04:39 +03:00
commit 4a40813edc
65 changed files with 1161 additions and 492 deletions

View file

@ -25,15 +25,15 @@ public class LocationsHolder {
this.locationType = resolveLocationType(locations); this.locationType = resolveLocationType(locations);
switch (locationType) { switch (locationType) {
case LOCATION_TYPE_LATLON: case LOCATION_TYPE_LATLON:
latLonList = (List<LatLon>) locations; latLonList = new ArrayList<>((List<LatLon>) locations);
size = locations.size(); size = locations.size();
break; break;
case LOCATION_TYPE_LOCATION: case LOCATION_TYPE_LOCATION:
locationList = (List<Location>) locations; locationList = new ArrayList<>((List<Location>) locations);
size = locations.size(); size = locations.size();
break; break;
case LOCATION_TYPE_WPTPT: case LOCATION_TYPE_WPTPT:
wptPtList = (List<WptPt>) locations; wptPtList = new ArrayList<>((List<WptPt>) locations);
size = locations.size(); size = locations.size();
break; break;
} }

View file

@ -4,6 +4,7 @@ package net.osmand.router;
import net.osmand.LocationsHolder; import net.osmand.LocationsHolder;
import net.osmand.NativeLibrary; import net.osmand.NativeLibrary;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.binary.BinaryMapIndexReader; import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.binary.BinaryMapRouteReaderAdapter; import net.osmand.binary.BinaryMapRouteReaderAdapter;
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion; import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion;
@ -62,17 +63,29 @@ public class RoutePlannerFrontEnd {
public int routeDistance; public int routeDistance;
public int routeGapDistance; public int routeGapDistance;
public int routeDistanceUnmatched; public int routeDistanceUnmatched;
public boolean calculationCancelled;
private boolean calculationDone;
public GpxRouteApproximation(RoutingContext ctx) { public GpxRouteApproximation(RoutingContext ctx) {
this.ctx = ctx; this.ctx = ctx;
} }
public GpxRouteApproximation(GpxRouteApproximation gctx) {
this.ctx = gctx.ctx;
this.routeDistance = gctx.routeDistance;
}
@Override @Override
public String toString() { public String toString() {
return String.format(">> GPX approximation (%d of %d m route calcs, %d route points searched) for %d m: %d m umatched", return String.format(">> GPX approximation (%d of %d m route calcs, %d route points searched) for %d m: %d m umatched",
routeCalculations, routeDistCalculations, routePointsSearched, routeDistance, routeDistanceUnmatched); routeCalculations, routeDistCalculations, routePointsSearched, routeDistance, routeDistanceUnmatched);
} }
public boolean isCalculationDone() {
return calculationDone;
}
public double distFromLastPoint(LatLon startPoint) { public double distFromLastPoint(LatLon startPoint) {
if (result.size() > 0) { if (result.size() > 0) {
return MapUtils.getDistance(getLastPoint(), startPoint); return MapUtils.getDistance(getLastPoint(), startPoint);
@ -87,7 +100,7 @@ public class RoutePlannerFrontEnd {
return null; return null;
} }
} }
public static class GpxPoint { public static class GpxPoint {
public int ind; public int ind;
public LatLon loc; public LatLon loc;
@ -97,6 +110,15 @@ public class RoutePlannerFrontEnd {
public List<RouteSegmentResult> stepBackRoute; public List<RouteSegmentResult> stepBackRoute;
public int targetInd = -1; public int targetInd = -1;
public boolean straightLine = false; public boolean straightLine = false;
public GpxPoint() {
}
public GpxPoint(GpxPoint point) {
this.ind = point.ind;
this.loc = point.loc;
this.cumDist = point.cumDist;
}
} }
public RoutingContext buildRoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode rm) { public RoutingContext buildRoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode rm) {
@ -206,7 +228,6 @@ public class RoutePlannerFrontEnd {
return null; return null;
} }
public List<RouteSegmentResult> searchRoute(final RoutingContext ctx, LatLon start, LatLon end, List<LatLon> intermediates) throws IOException, InterruptedException { public List<RouteSegmentResult> searchRoute(final RoutingContext ctx, LatLon start, LatLon end, List<LatLon> intermediates) throws IOException, InterruptedException {
return searchRoute(ctx, start, end, intermediates, null); return searchRoute(ctx, start, end, intermediates, null);
} }
@ -215,19 +236,16 @@ public class RoutePlannerFrontEnd {
useSmartRouteRecalculation = use; useSmartRouteRecalculation = use;
} }
public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints) throws IOException, InterruptedException { public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints, ResultMatcher<GpxRouteApproximation> resultMatcher) throws IOException, InterruptedException {
long timeToCalculate = System.nanoTime(); long timeToCalculate = System.nanoTime();
if (gctx.ctx.calculationProgress == null) {
gctx.ctx.calculationProgress = new RouteCalculationProgress();
}
gctx.ctx.keepNativeRoutingContext = true; gctx.ctx.keepNativeRoutingContext = true;
GpxPoint start = null; GpxPoint start = null;
GpxPoint prev = null; GpxPoint prev = null;
if(gpxPoints.size() > 0) { if (gpxPoints.size() > 0) {
gctx.ctx.calculationProgress.totalIterations = (int) (gpxPoints.get(gpxPoints.size() - 1).cumDist / gctx.MAXIMUM_STEP_APPROXIMATION + 1); gctx.ctx.calculationProgress.totalIterations = (int) (gpxPoints.get(gpxPoints.size() - 1).cumDist / gctx.MAXIMUM_STEP_APPROXIMATION + 1);
start = gpxPoints.get(0); start = gpxPoints.get(0);
} }
while (start != null) { while (start != null && !gctx.calculationCancelled) {
double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION; double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION;
GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist);
boolean routeFound = false; boolean routeFound = false;
@ -287,10 +305,14 @@ public class RoutePlannerFrontEnd {
gctx.ctx.deleteNativeRoutingContext(); gctx.ctx.deleteNativeRoutingContext();
BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx); BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx);
calculateGpxRoute(gctx, gpxPoints); calculateGpxRoute(gctx, gpxPoints);
if (!gctx.result.isEmpty()) { if (!gctx.result.isEmpty() && !gctx.calculationCancelled) {
new RouteResultPreparation().printResults(gctx.ctx, gpxPoints.get(0).loc, gpxPoints.get(gpxPoints.size() - 1).loc, gctx.result); new RouteResultPreparation().printResults(gctx.ctx, gpxPoints.get(0).loc, gpxPoints.get(gpxPoints.size() - 1).loc, gctx.result);
System.out.println(gctx); System.out.println(gctx);
} }
if (resultMatcher != null) {
resultMatcher.publish(gctx);
}
gctx.calculationDone = true;
return gctx; return gctx;
} }
@ -343,7 +365,7 @@ public class RoutePlannerFrontEnd {
reg.initRouteEncodingRule(0, "highway", RouteResultPreparation.UNMATCHED_HIGHWAY_TYPE); reg.initRouteEncodingRule(0, "highway", RouteResultPreparation.UNMATCHED_HIGHWAY_TYPE);
List<LatLon> lastStraightLine = null; List<LatLon> lastStraightLine = null;
GpxPoint straightPointStart = null; GpxPoint straightPointStart = null;
for (int i = 0; i < gpxPoints.size(); ) { for (int i = 0; i < gpxPoints.size() && !gctx.calculationCancelled; ) {
GpxPoint pnt = gpxPoints.get(i); GpxPoint pnt = gpxPoints.get(i);
if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) {
LatLon startPoint = pnt.routeToTarget.get(0).getStartPoint(); LatLon startPoint = pnt.routeToTarget.get(0).getStartPoint();
@ -402,7 +424,7 @@ public class RoutePlannerFrontEnd {
private void cleanupResultAndAddTurns(GpxRouteApproximation gctx) { private void cleanupResultAndAddTurns(GpxRouteApproximation gctx) {
// cleanup double joints // cleanup double joints
int LOOK_AHEAD = 4; int LOOK_AHEAD = 4;
for(int i = 0; i < gctx.result.size(); i++) { for(int i = 0; i < gctx.result.size() && !gctx.calculationCancelled; i++) {
RouteSegmentResult s = gctx.result.get(i); RouteSegmentResult s = gctx.result.get(i);
for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.result.size(); j++) { for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.result.size(); j++) {
RouteSegmentResult e = gctx.result.get(j); RouteSegmentResult e = gctx.result.get(j);
@ -419,7 +441,9 @@ public class RoutePlannerFrontEnd {
r.setTurnType(null); r.setTurnType(null);
r.setDescription(""); r.setDescription("");
} }
preparation.prepareTurnResults(gctx.ctx, gctx.result); if (!gctx.calculationCancelled) {
preparation.prepareTurnResults(gctx.ctx, gctx.result);
}
} }
private void addStraightLine(GpxRouteApproximation gctx, List<LatLon> lastStraightLine, GpxPoint strPnt, RouteRegion reg) { private void addStraightLine(GpxRouteApproximation gctx, List<LatLon> lastStraightLine, GpxPoint strPnt, RouteRegion reg) {

View file

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M10,16L8.5,11H7.5L6,16H7L7.3,15H8.7L9,16H10ZM8.4,14L8,12.6667L7.6,14H8.4Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M16,11V13.3333L17,11H18L16.75,13.9167L18,16H17L16.1,14.5H16V16H15V11H16Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M13,11H11V16H12V15H13C13.5523,15 14,14.5523 14,14V12C14,11.4477 13.5523,11 13,11ZM12,14H13V12H12V14Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M3.3167,6.3666C3.1084,6.7831 3,7.2425 3,7.7082V19C3,20.1046 3.8954,21 5,21H19C20.1046,21 21,20.1046 21,19V7.7082C21,7.2425 20.8916,6.7831 20.6833,6.3666L19.4472,3.8944C19.1731,3.3463 18.6129,3 18,3H6C5.3871,3 4.8269,3.3463 4.5528,3.8944L3.3167,6.3666ZM5,8L5,19H19V8H5Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</vector>

View file

@ -0,0 +1,32 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M4,6H20V18H4V6Z"
android:strokeAlpha="0.3"
android:fillColor="#ffffff"
android:fillAlpha="0.3"/>
<path
android:pathData="M20,6H4V18H20V6ZM4,4C2.8954,4 2,4.8954 2,6V20H22V6C22,4.8954 21.1046,4 20,4H4Z"
android:strokeAlpha="0.7"
android:fillColor="#ffffff"
android:fillType="evenOdd"
android:fillAlpha="0.7"/>
<path
android:pathData="M1,18H23V19C23,19.5523 22.5523,20 22,20H2C1.4477,20 1,19.5523 1,19V18Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M14,8H6V10H14V8Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M18,8H16V10H18V8Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M6,12H9V14H6V12Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M18,12H11V14H18V12Z"
android:fillColor="#ffffff"/>
</vector>

View file

@ -34,8 +34,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding" android:layout_marginTop="@dimen/content_padding"
android:text="@string/waypoint_one" android:text="@string/waypoint_one"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
<TextView <TextView
android:id="@+id/description" android:id="@+id/description"
@ -47,8 +47,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding_half" android:layout_marginTop="@dimen/content_padding_half"
tools:text="Lat: 50.45375 Lon: 30.48693" tools:text="Lat: 50.45375 Lon: 30.48693"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
</LinearLayout> </LinearLayout>
@ -68,5 +68,5 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:text="@string/shared_string_cancel" android:text="@string/shared_string_cancel"
android:layout_marginEnd="@dimen/content_padding" /> android:layout_marginEnd="@dimen/content_padding" />
</LinearLayout> </LinearLayout>

View file

@ -147,7 +147,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/map_transparency_slider" android:id="@+id/map_transparency_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="@dimen/map_trans_seek_size" android:layout_width="@dimen/map_trans_seek_size"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"/> android:layout_gravity="center"/>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout xmlns:osmand="http://schemas.android.com/apk/res-auto"
xmlns:osmand="http://schemas.android.com/apk/res-auto"
android:id="@+id/move_marker_bottom_sheet" android:id="@+id/move_marker_bottom_sheet"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
@ -17,7 +16,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/content_padding" android:padding="@dimen/content_padding"
osmand:srcCompat="@drawable/ic_action_photo_dark"/> osmand:srcCompat="@drawable/ic_action_photo_dark" />
<LinearLayout <LinearLayout
android:layout_weight="1" android:layout_weight="1"
@ -33,8 +32,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding" android:layout_marginTop="@dimen/content_padding"
android:text="@string/move_marker_bottom_sheet_title" android:text="@string/move_marker_bottom_sheet_title"
android:layout_marginStart="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding"
android:layout_marginEnd="@dimen/content_padding" /> android:layout_marginEnd="@dimen/content_padding" />
<TextView <TextView
android:id="@+id/description" android:id="@+id/description"
@ -46,8 +45,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding_half" android:layout_marginTop="@dimen/content_padding_half"
tools:text="Lat: 50.45375 Lon: 30.48693" tools:text="Lat: 50.45375 Lon: 30.48693"
android:layout_marginStart="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding"
android:layout_marginEnd="@dimen/content_padding" /> android:layout_marginEnd="@dimen/content_padding" />
</LinearLayout> </LinearLayout>
@ -57,7 +56,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:text="@string/shared_string_apply"/> android:text="@string/shared_string_apply" />
<androidx.appcompat.widget.AppCompatButton <androidx.appcompat.widget.AppCompatButton
android:id="@+id/cancel_button" android:id="@+id/cancel_button"
@ -67,5 +66,5 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:text="@string/shared_string_cancel" android:text="@string/shared_string_cancel"
android:layout_marginEnd="@dimen/content_padding" /> android:layout_marginEnd="@dimen/content_padding" />
</LinearLayout> </LinearLayout>

View file

@ -33,8 +33,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding" android:layout_marginTop="@dimen/content_padding"
tools:text="@string/waypoint_one" tools:text="@string/waypoint_one"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
<TextView <TextView
android:id="@+id/description" android:id="@+id/description"
@ -46,8 +46,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding_half" android:layout_marginTop="@dimen/content_padding_half"
tools:text="Lat: 50.45375\nLon: 30.48693" tools:text="Lat: 50.45375\nLon: 30.48693"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -55,20 +55,26 @@
android:layout_marginBottom="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding"
android:layout_marginLeft="@dimen/content_padding_small" android:layout_marginLeft="@dimen/content_padding_small"
android:layout_marginRight="@dimen/content_padding_small" android:layout_marginRight="@dimen/content_padding_small"
android:layout_marginStart="@dimen/content_padding_small" android:layout_marginStart="@dimen/content_padding_small"
android:layout_marginEnd="@dimen/content_padding_small"> android:layout_marginEnd="@dimen/content_padding_small">
<Button <androidx.appcompat.widget.AppCompatButton
android:id="@+id/create_button" android:id="@+id/create_button"
style="@style/DialogActionButton" style="@style/Widget.AppCompat.Button.Colored"
android:layout_marginRight="@dimen/content_padding_half" android:layout_width="wrap_content"
android:text="@string/shared_string_add" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/content_padding_half" /> android:layout_gravity="center_vertical"
android:text="@string/shared_string_add" />
<Button <androidx.appcompat.widget.AppCompatButton
android:id="@+id/cancel_button" android:id="@+id/cancel_button"
style="@style/DialogCancelButton" style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:text="@string/shared_string_cancel"/> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding"
android:text="@string/shared_string_cancel" />
</LinearLayout> </LinearLayout>

View file

@ -82,7 +82,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/speed_slider" android:id="@+id/speed_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding_small" android:layout_marginLeft="@dimen/content_padding_small"

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="fill_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dialog_content_margin" android:layout_marginLeft="@dimen/dialog_content_margin"
android:layout_marginTop="@dimen/content_padding" android:layout_marginTop="@dimen/content_padding"
@ -18,12 +18,12 @@
<LinearLayout <LinearLayout
android:id="@+id/layout_animate_gpx" android:id="@+id/layout_animate_gpx"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="fill_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dialog_content_margin" android:layout_marginLeft="@dimen/dialog_content_margin"
android:layout_marginTop="@dimen/map_small_button_margin" android:layout_marginTop="@dimen/map_small_button_margin"
@ -36,7 +36,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/Speedup" android:id="@+id/Speedup"
style="@style/Widget.Styled.Slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dialog_content_margin" android:layout_marginLeft="@dimen/dialog_content_margin"
@ -46,7 +45,7 @@
android:layout_marginEnd="@dimen/content_padding" /> android:layout_marginEnd="@dimen/content_padding" />
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dialog_content_margin" android:layout_marginLeft="@dimen/dialog_content_margin"
android:layout_marginTop="@dimen/map_small_button_margin" android:layout_marginTop="@dimen/map_small_button_margin"

View file

@ -36,7 +36,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/slider" android:id="@+id/slider"
style="@style/Widget.Styled.Slider"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -1,40 +1,39 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="fill_parent" android:layout_height="match_parent"
android:paddingTop="@dimen/content_padding" android:paddingTop="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding" android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding" android:paddingRight="@dimen/content_padding"
android:orientation="vertical" android:orientation="vertical"
android:paddingEnd="@dimen/content_padding" android:paddingEnd="@dimen/content_padding"
android:paddingStart="@dimen/content_padding"> android:paddingStart="@dimen/content_padding">
<TextView <TextView
android:text="@string/select_max_zoom_preload_area" android:text="@string/select_max_zoom_preload_area"
android:gravity="center" android:gravity="center"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="?android:textColorSecondary" android:textColor="?android:textColorSecondary"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginEnd="10dp" android:layout_marginEnd="10dp"
android:layout_marginStart="10dp" /> android:layout_marginStart="10dp" />
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/ZoomToDownload" android:id="@+id/ZoomToDownload"
style="@style/Widget.Styled.Slider" android:layout_width="match_parent"
android:layout_width="fill_parent"
android:stepSize="1" android:stepSize="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding_small" android:layout_marginTop="@dimen/content_padding_small"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
@ -47,8 +46,8 @@
android:paddingRight="@dimen/content_padding_small" android:paddingRight="@dimen/content_padding_small"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingEnd="@dimen/content_padding_small" android:paddingEnd="@dimen/content_padding_small"
android:paddingStart="@dimen/content_padding_small" /> android:paddingStart="@dimen/content_padding_small" />
<TextView <TextView
android:text="15" android:text="15"
@ -60,8 +59,8 @@
android:paddingRight="@dimen/content_padding_small" android:paddingRight="@dimen/content_padding_small"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/content_padding_small" android:paddingStart="@dimen/content_padding_small"
android:paddingEnd="@dimen/content_padding_small" /> android:paddingEnd="@dimen/content_padding_small" />
</LinearLayout> </LinearLayout>
<TextView <TextView
@ -70,17 +69,17 @@
android:id="@+id/DownloadDescription" android:id="@+id/DownloadDescription"
android:layout_marginTop="@dimen/content_padding_small" android:layout_marginTop="@dimen/content_padding_small"
android:textColor="?android:textColorSecondary" android:textColor="?android:textColorSecondary"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="fill_parent" android:layout_height="match_parent"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:id="@+id/AreaPreview" android:id="@+id/AreaPreview"
android:layout_marginEnd="10dp" android:layout_marginEnd="10dp"
android:layout_marginStart="10dp" /> android:layout_marginStart="10dp" />
</LinearLayout> </LinearLayout>

View file

@ -18,6 +18,7 @@
android:gravity="start|center_vertical" android:gravity="start|center_vertical"
android:textSize="@dimen/default_list_text_size" android:textSize="@dimen/default_list_text_size"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="?attr/textColorAlertDialogListItem"
android:paddingStart="10dp" android:paddingStart="10dp"
android:paddingEnd="10dp" /> android:paddingEnd="10dp" />

View file

@ -90,10 +90,13 @@
android:layout_weight="1" android:layout_weight="1"
android:layout_marginStart="24dp"> android:layout_marginStart="24dp">
<AutoCompleteTextView <com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/poiTypeEditText" android:id="@+id/poiTypeEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="@dimen/wpt_list_item_height"
android:gravity="bottom|start"
android:paddingBottom="@dimen/text_margin_small"
android:completionThreshold="1" android:completionThreshold="1"
app:drawableRightCompat="@drawable/ic_action_arrow_drop_down" app:drawableRightCompat="@drawable/ic_action_arrow_drop_down"
app:drawableEndCompat="@drawable/ic_action_arrow_drop_down" app:drawableEndCompat="@drawable/ic_action_arrow_drop_down"

View file

@ -18,8 +18,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<include layout="@layout/plan_route_progress_bar"/>
<net.osmand.plus.LockableScrollView <net.osmand.plus.LockableScrollView
android:id="@+id/route_menu_bottom_scroll" android:id="@+id/route_menu_bottom_scroll"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -37,6 +35,9 @@
</LinearLayout> </LinearLayout>
</net.osmand.plus.LockableScrollView> </net.osmand.plus.LockableScrollView>
<include layout="@layout/plan_route_progress_bar"/>
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>

View file

@ -152,7 +152,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/transparency_slider" android:id="@+id/transparency_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/list_header_settings_top_margin" android:paddingTop="@dimen/list_header_settings_top_margin"
@ -232,7 +231,6 @@
<com.google.android.material.slider.RangeSlider <com.google.android.material.slider.RangeSlider
android:id="@+id/zoom_slider" android:id="@+id/zoom_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"

View file

@ -2,7 +2,7 @@
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/bg_color" android:background="?attr/bg_color"
android:descendantFocusability="blocksDescendants" android:descendantFocusability="blocksDescendants"
@ -35,7 +35,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/slider" android:id="@+id/slider"
style="@style/Widget.Styled.Slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:valueFrom="0" android:valueFrom="0"

View file

@ -72,7 +72,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/map_transparency_slider" android:id="@+id/map_transparency_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="@dimen/map_trans_seek_size" android:layout_width="@dimen/map_trans_seek_size"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout xmlns:osmand="http://schemas.android.com/apk/res-auto"
xmlns:osmand="http://schemas.android.com/apk/res-auto"
android:id="@+id/move_marker_bottom_sheet" android:id="@+id/move_marker_bottom_sheet"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
@ -17,7 +16,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/content_padding" android:padding="@dimen/content_padding"
osmand:srcCompat="@drawable/ic_action_photo_dark"/> osmand:srcCompat="@drawable/ic_action_photo_dark" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -32,8 +31,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding" android:layout_marginTop="@dimen/content_padding"
android:text="@string/move_marker_bottom_sheet_title" android:text="@string/move_marker_bottom_sheet_title"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
<TextView <TextView
android:id="@+id/description" android:id="@+id/description"
@ -45,8 +44,8 @@
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding_half" android:layout_marginTop="@dimen/content_padding_half"
tools:text="Lat: 50.45375\nLon: 30.48693" tools:text="Lat: 50.45375\nLon: 30.48693"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -54,22 +53,28 @@
android:layout_marginBottom="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding"
android:layout_marginLeft="@dimen/content_padding_small" android:layout_marginLeft="@dimen/content_padding_small"
android:layout_marginRight="@dimen/content_padding_small" android:layout_marginRight="@dimen/content_padding_small"
android:layout_marginStart="@dimen/content_padding_small" android:layout_marginStart="@dimen/content_padding_small"
android:layout_marginEnd="@dimen/content_padding_small"> android:layout_marginEnd="@dimen/content_padding_small">
<Button <androidx.appcompat.widget.AppCompatButton
android:id="@+id/apply_button" android:id="@+id/apply_button"
style="@style/DialogActionButton" style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="@dimen/content_padding_half" android:layout_marginRight="@dimen/content_padding_half"
android:text="@string/shared_string_apply" android:text="@string/shared_string_apply"
android:layout_marginEnd="@dimen/content_padding_half" /> android:layout_marginEnd="@dimen/content_padding_half" />
<Button <androidx.appcompat.widget.AppCompatButton
android:id="@+id/cancel_button" android:id="@+id/cancel_button"
style="@style/DialogCancelButton" style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:text="@string/shared_string_cancel"/> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/content_padding"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/content_padding"
android:text="@string/shared_string_cancel" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View file

@ -16,6 +16,7 @@
android:contentDescription="@string/quick_action_new_action" android:contentDescription="@string/quick_action_new_action"
app:srcCompat="@drawable/ic_action_plus" app:srcCompat="@drawable/ic_action_plus"
app:backgroundTint="?attr/active_color_basic" app:backgroundTint="?attr/active_color_basic"
app:tint="?attr/app_bar_primary_item_color"
app:fabSize="normal" app:fabSize="normal"
app:useCompatPadding="true"/> app:useCompatPadding="true"/>
@ -33,6 +34,7 @@
app:srcCompat="@drawable/ic_action_marker_dark" app:srcCompat="@drawable/ic_action_marker_dark"
android:visibility="gone" android:visibility="gone"
app:backgroundTint="@color/fab_green" app:backgroundTint="@color/fab_green"
app:tint="?attr/app_bar_primary_item_color"
app:fabSize="mini" app:fabSize="mini"
app:useCompatPadding="true" app:useCompatPadding="true"
tools:visibility="visible"/> tools:visibility="visible"/>
@ -78,6 +80,7 @@
app:srcCompat="@drawable/ic_action_markers_dark" app:srcCompat="@drawable/ic_action_markers_dark"
android:visibility="gone" android:visibility="gone"
app:backgroundTint="@color/fab_green" app:backgroundTint="@color/fab_green"
app:tint="?attr/app_bar_primary_item_color"
app:fabSize="mini" app:fabSize="mini"
app:useCompatPadding="true" app:useCompatPadding="true"
tools:visibility="visible"/> tools:visibility="visible"/>
@ -123,6 +126,7 @@
app:srcCompat="@drawable/ic_action_polygom_dark" app:srcCompat="@drawable/ic_action_polygom_dark"
android:visibility="gone" android:visibility="gone"
app:backgroundTint="@color/fab_green" app:backgroundTint="@color/fab_green"
app:tint="?attr/app_bar_primary_item_color"
app:fabSize="mini" app:fabSize="mini"
app:useCompatPadding="true" app:useCompatPadding="true"
tools:visibility="visible"/> tools:visibility="visible"/>

View file

@ -37,7 +37,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/slider" android:id="@+id/slider"
style="@style/Widget.Styled.Slider"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -6,17 +6,17 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:osmand="http://schemas.android.com/apk/res-auto" xmlns:osmand="http://schemas.android.com/apk/res-auto"
android:background="?attr/bg_color" android:background="?attr/bg_color"
android:minHeight="48dp" android:minHeight="@dimen/card_row_min_height"
android:clickable="false" android:clickable="false"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="48dp" android:layout_height="@dimen/card_row_min_height"
android:gravity="center" android:gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingRight="@dimen/content_padding" android:paddingRight="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"> android:paddingEnd="@dimen/content_padding">
<LinearLayout <LinearLayout
android:layout_width="54dp" android:layout_width="54dp"
@ -25,8 +25,8 @@
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon" android:id="@+id/icon"
android:layout_width="24dp" android:layout_width="@dimen/standard_icon_size"
android:layout_height="24dp" android:layout_height="@dimen/standard_icon_size"
osmand:srcCompat="@drawable/ic_action_search_dark"/> osmand:srcCompat="@drawable/ic_action_search_dark"/>
</LinearLayout> </LinearLayout>
@ -107,6 +107,6 @@
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginLeft="54dp" android:layout_marginLeft="54dp"
android:background="?attr/dashboard_divider" android:background="?attr/dashboard_divider"
android:layout_marginStart="54dp" /> android:layout_marginStart="54dp" />
</LinearLayout> </LinearLayout>

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -14,14 +13,17 @@
android:layout_marginLeft="@dimen/content_padding_small" android:layout_marginLeft="@dimen/content_padding_small"
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_weight="1" android:layout_weight="1"
android:layout_marginStart="@dimen/content_padding_small" android:layout_marginStart="@dimen/content_padding_small"
android:layout_marginEnd="@dimen/content_padding"> android:layout_marginEnd="@dimen/content_padding">
<AutoCompleteTextView <com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/tagEditText" android:id="@+id/tagEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="@dimen/wpt_list_item_height"
android:hint="@string/hint_tag" android:hint="@string/hint_tag"
android:gravity="bottom"
android:paddingBottom="@dimen/text_margin_small"
tools:text="Tag text"/> tools:text="Tag text"/>
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
@ -31,11 +33,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"> android:layout_weight="1">
<AutoCompleteTextView <com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/valueEditText" android:id="@+id/valueEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/hint_value"/> android:minHeight="@dimen/wpt_list_item_height"
android:gravity="bottom"
android:paddingBottom="@dimen/text_margin_small"
android:hint="@string/hint_value"
tools:text="Value text"/>
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>

View file

@ -1,14 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:osmand="http://schemas.android.com/apk/res-auto" xmlns:osmand="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:theme="?attr/new_app_theme"> android:theme="?attr/new_app_theme">
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
@ -17,12 +15,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/bg_color" android:background="?attr/bg_color"
android:minHeight="56dp" android:minHeight="@dimen/wpt_list_item_height"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/textView3" android:id="@+id/textView3"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_weight="1" android:layout_weight="1"
@ -38,8 +36,8 @@
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"
android:layout_marginEnd="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding"
android:layout_marginStart="@dimen/content_padding" /> android:layout_marginStart="@dimen/content_padding" />
</LinearLayout> </LinearLayout>
@ -82,12 +80,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"
android:layout_weight="1" android:layout_weight="1"
android:layout_marginStart="@dimen/content_padding"> android:layout_marginStart="@dimen/content_padding">
<AutoCompleteTextView <com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/poiTypeEditText" android:id="@+id/poiTypeEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="@dimen/wpt_list_item_height"
android:gravity="bottom"
android:paddingBottom="@dimen/text_margin_small"
android:completionThreshold="1" android:completionThreshold="1"
osmand:drawableTint="@color/osmand_orange" osmand:drawableTint="@color/osmand_orange"
osmand:drawableRightCompat="@drawable/ic_action_arrow_drop_down" osmand:drawableRightCompat="@drawable/ic_action_arrow_drop_down"
@ -95,17 +96,15 @@
android:hint="@string/poi_dialog_poi_type" android:hint="@string/poi_dialog_poi_type"
android:imeOptions="actionSend" android:imeOptions="actionSend"
android:inputType="text" android:inputType="text"
android:layout_marginLeft="-4dp" tools:text="@string/lorem_ipsum" />
tools:text="@string/lorem_ipsum"
android:layout_marginStart="-4dp" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<ImageButton <ImageButton
android:id="@+id/onlineDocumentationButton" android:id="@+id/onlineDocumentationButton"
android:contentDescription="@string/shared_string_help" android:contentDescription="@string/shared_string_help"
android:layout_width="48dp" android:layout_width="@dimen/dashboard_parking_icon_size"
android:layout_height="48dp" android:layout_height="@dimen/dashboard_parking_icon_size"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="@null" android:background="@null"
osmand:srcCompat="@drawable/ic_action_help"/> osmand:srcCompat="@drawable/ic_action_help"/>
@ -153,9 +152,9 @@
android:textColor="@color/color_white" android:textColor="@color/color_white"
android:textSize="@dimen/default_sub_text_size" android:textSize="@dimen/default_sub_text_size"
osmand:typeface="@string/font_roboto_medium" osmand:typeface="@string/font_roboto_medium"
android:layout_marginStart="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding" android:paddingEnd="@dimen/content_padding"
android:paddingStart="@dimen/content_padding" /> android:paddingStart="@dimen/content_padding" />
<!--<net.osmand.plus.widgets.ButtonEx--> <!--<net.osmand.plus.widgets.ButtonEx-->
<!--android:id="@+id/addTypeButton"--> <!--android:id="@+id/addTypeButton"-->

View file

@ -120,7 +120,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/angle_slider" android:id="@+id/angle_slider"
style="@style/Widget.Styled.Slider"
android:valueTo="90" android:valueTo="90"
android:stepSize="5" android:stepSize="5"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -105,7 +105,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/activity_background_color" android:background="?attr/activity_background_color"
android:theme="?attr/search_tabbar_layout_theme" style="?attr/search_tabbar_layout_theme"
app:tabGravity="fill" app:tabGravity="fill"
app:tabMaxWidth="0dp" app:tabMaxWidth="0dp"
app:tabMode="fixed"/> app:tabMode="fixed"/>

View file

@ -6,7 +6,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/slider" android:id="@+id/slider"
style="@style/Widget.Styled.Slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />

View file

@ -96,7 +96,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/split_slider" android:id="@+id/split_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"

View file

@ -95,7 +95,6 @@
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/width_slider" android:id="@+id/width_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"

View file

@ -73,7 +73,6 @@
<com.google.android.material.slider.RangeSlider <com.google.android.material.slider.RangeSlider
android:id="@+id/zoom_slider" android:id="@+id/zoom_slider"
style="@style/Widget.Styled.Slider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding" android:layout_marginLeft="@dimen/content_padding"

View file

@ -41,7 +41,7 @@
<string name="shared_string_ok">Γas</string> <string name="shared_string_ok">Γas</string>
<string name="shared_string_yes">Ih</string> <string name="shared_string_yes">Ih</string>
<string name="shared_string_no">Ala</string> <string name="shared_string_no">Ala</string>
<string name="shared_string_never">Warǧin</string> <string name="shared_string_never">Werǧin</string>
<string name="shared_string_none">Ulac</string> <string name="shared_string_none">Ulac</string>
<string name="shared_string_and">d</string> <string name="shared_string_and">d</string>
<string name="shared_string_or">naɣ</string> <string name="shared_string_or">naɣ</string>
@ -260,7 +260,7 @@
<string name="mapillary_menu_title_username">Isem n useqdac</string> <string name="mapillary_menu_title_username">Isem n useqdac</string>
<string name="nearest_cities">Timdinin ig qarben</string> <string name="nearest_cities">Timdinin ig qarben</string>
<string name="shared_string_add_to_map_markers">Rnu ar ticṛaḍ</string> <string name="shared_string_add_to_map_markers">Rnu ar ticṛaḍ</string>
<string name="map_markers">Ticṛaḍ</string> <string name="map_markers">Ticraḍ n tkarḍa</string>
<string name="lang_kab">Taqbaylit</string> <string name="lang_kab">Taqbaylit</string>
<string name="lang_ber">Tifinaɣ</string> <string name="lang_ber">Tifinaɣ</string>
<string name="shared_string_cancel">Sefsex</string> <string name="shared_string_cancel">Sefsex</string>
@ -273,7 +273,7 @@
<string name="rendering_category_details">Talqayt</string> <string name="rendering_category_details">Talqayt</string>
<string name="rendering_category_transport">Amesni</string> <string name="rendering_category_transport">Amesni</string>
<string name="text_size">Tiddi n waḍris</string> <string name="text_size">Tiddi n waḍris</string>
<string name="speak_street_names">Ismawen n iberdan (TTS)</string> <string name="speak_street_names">Ismawen n yiberdan (TTS)</string>
<string name="context_menu_item_directions_to">Iwellihen ɣer</string> <string name="context_menu_item_directions_to">Iwellihen ɣer</string>
<string name="context_menu_item_directions_from">Tinilwin seg</string> <string name="context_menu_item_directions_from">Tinilwin seg</string>
<string name="street_name">Isem n webrid</string> <string name="street_name">Isem n webrid</string>
@ -468,7 +468,7 @@
<string name="home">Tafelwit n usenqed</string> <string name="home">Tafelwit n usenqed</string>
<string name="rendering_attr_moreDetailed_name">Ugar n telqayt</string> <string name="rendering_attr_moreDetailed_name">Ugar n telqayt</string>
<string name="sort_by_name">Smizzwer s yisem</string> <string name="sort_by_name">Smizzwer s yisem</string>
<string name="map_widget_plain_time">Tasaɛet imir-a</string> <string name="map_widget_plain_time">Akud amiran</string>
<string name="selected_gpx_info_show">" <string name="selected_gpx_info_show">"
\n \n
\nAsiti ɣezzifen akken ad d-sekneḍ ɣef tkarḍa"</string> \nAsiti ɣezzifen akken ad d-sekneḍ ɣef tkarḍa"</string>
@ -505,7 +505,7 @@
<string name="distance_measurement_start_editing">Bdu taẓrigt</string> <string name="distance_measurement_start_editing">Bdu taẓrigt</string>
<string name="other_location">Nniḍen</string> <string name="other_location">Nniḍen</string>
<string name="website">Asmel n web</string> <string name="website">Asmel n web</string>
<string name="prefer_in_routing_title">Smenyifi </string> <string name="prefer_in_routing_title">Smenyif…</string>
<string name="recording_unavailable">ulac</string> <string name="recording_unavailable">ulac</string>
<string name="recording_context_menu_play">Urar</string> <string name="recording_context_menu_play">Urar</string>
<string name="poi_filter_parking">Aneɣsar</string> <string name="poi_filter_parking">Aneɣsar</string>
@ -1143,8 +1143,8 @@
<string name="local_openstreetmap_delete">Kkes</string> <string name="local_openstreetmap_delete">Kkes</string>
<string name="local_openstreetmap_uploadall">Ali</string> <string name="local_openstreetmap_uploadall">Ali</string>
<string name="local_openstreetmap_were_uploaded">{0} POI/Tizmilin ulin</string> <string name="local_openstreetmap_were_uploaded">{0} POI/Tizmilin ulin</string>
<string name="arrival_distance_factor_late">Aneḍru yettwaheggan iɛedda fell-as lḥal</string> <string name="arrival_distance_factor_late">Iɛedda lḥal</string>
<string name="arrival_distance_factor_early">Détection SKIP précoce sur images P</string> <string name="arrival_distance_factor_early">Zik</string>
<string name="no_info">talɣut</string> <string name="no_info">talɣut</string>
<string name="front_left">ɣer zdat</string> <string name="front_left">ɣer zdat</string>
<string name="zoomIs">Seggem aswir n usemɣer/asemẓi</string> <string name="zoomIs">Seggem aswir n usemɣer/asemẓi</string>
@ -1153,8 +1153,8 @@
<string name="map_widget_next_turn">ar zdat</string> <string name="map_widget_next_turn">ar zdat</string>
<string name="map_widget_monitoring">Aɣmis</string> <string name="map_widget_monitoring">Aɣmis</string>
<string name="int_continuosly">A_maɣlal</string> <string name="int_continuosly">A_maɣlal</string>
<string name="avoid_in_routing_title">Zgel tulsa n wawalen d yisekkilen.</string> <string name="avoid_in_routing_title">Zgel</string>
<string name="show_warnings_title">Ilɣa</string> <string name="show_warnings_title">Sken ilɣa…</string>
<string name="poi_filter_food_shop">Tuččit</string> <string name="poi_filter_food_shop">Tuččit</string>
<string name="poi_filter_emergency">Annar n trusi n utrab</string> <string name="poi_filter_emergency">Annar n trusi n utrab</string>
<string name="btn_advanced_mode">Talqayt…</string> <string name="btn_advanced_mode">Talqayt…</string>
@ -1197,7 +1197,7 @@
<string name="traffic_warning_stop">Seḥbes</string> <string name="traffic_warning_stop">Seḥbes</string>
<string name="search_radius_proximity">Deg</string> <string name="search_radius_proximity">Deg</string>
<string name="configure_map">Swel…</string> <string name="configure_map">Swel…</string>
<string name="map_widget_left">Tafelwit n yiri, tattayt, ukessar, ufella, ɣumm, tiddi, amrussu</string> <string name="map_widget_left">Agalis azelmaḍ</string>
<string name="download_tab_downloads">Sken akkw isidar</string> <string name="download_tab_downloads">Sken akkw isidar</string>
<string name="rendering_attr_roadStyle_description">Aɣanib:</string> <string name="rendering_attr_roadStyle_description">Aɣanib:</string>
<string name="rendering_attr_roadStyle_name">Aɣanib:</string> <string name="rendering_attr_roadStyle_name">Aɣanib:</string>
@ -1329,4 +1329,13 @@
<string name="select_track_width">Fren tehri</string> <string name="select_track_width">Fren tehri</string>
<string name="gpx_direction_arrows">Ineccaben n tnila</string> <string name="gpx_direction_arrows">Ineccaben n tnila</string>
<string name="plan_route_create_new_route">Rnu abrid amaynut</string> <string name="plan_route_create_new_route">Rnu abrid amaynut</string>
<string name="default_speed_system">Tayunt n urured</string>
<string name="screen_alerts">Ilɣa n ugdil</string>
<string name="fast_route_mode">Abrid arurad akk</string>
<string name="arrival_distance_factor_at_last">Deg lmitrat tineggura</string>
<string name="speak_speed_limit">Talast n urured</string>
<string name="show_lanes">Izirigen</string>
<string name="layer_map_appearance">Swel agdil</string>
<string name="map_widget_right">Agalis ayeffus</string>
<string name="map_widget_appearance_rem">Iferdisen i d-iqqimen</string>
</resources> </resources>

View file

@ -3610,10 +3610,10 @@ Abasta l\'àrea: %1$s x %2$s</string>
<string name="download_slope_maps">Pistes</string> <string name="download_slope_maps">Pistes</string>
<string name="custom_osmand_plugin">Connector d\'OsmAnd adaptat</string> <string name="custom_osmand_plugin">Connector d\'OsmAnd adaptat</string>
<string name="replace_point_descr">Substitueix un altre punt per aquest</string> <string name="replace_point_descr">Substitueix un altre punt per aquest</string>
<string name="changes_applied_to_profile">S\'han fet els canvis al perfil %1$s.</string> <string name="changes_applied_to_profile">S\'han fet els canvis al perfil \'%1$s\'.</string>
<string name="settings_item_read_error">No s\'ha pogut llegir %1$s.</string> <string name="settings_item_read_error">No s\'ha pogut llegir des de \'%1$s\'.</string>
<string name="settings_item_write_error">No s\'ha pogut escriure %1$s.</string> <string name="settings_item_write_error">No s\'ha pogut escriure %1$s.</string>
<string name="settings_item_import_error">No s\'ha pogut importar %1$s.</string> <string name="settings_item_import_error">No s\'ha pogut importar des de \'%1$s\'.</string>
<string name="select_track_file">Seleccioneu fitxer de la traça</string> <string name="select_track_file">Seleccioneu fitxer de la traça</string>
<string name="shared_string_languages">Idiomes</string> <string name="shared_string_languages">Idiomes</string>
<string name="shared_string_language">Llengua</string> <string name="shared_string_language">Llengua</string>
@ -3626,7 +3626,7 @@ Abasta l\'àrea: %1$s x %2$s</string>
<string name="divider_descr">Elements per sota daquest punt separats per un divisor.</string> <string name="divider_descr">Elements per sota daquest punt separats per un divisor.</string>
<string name="shared_string_hidden">Amagat</string> <string name="shared_string_hidden">Amagat</string>
<string name="hidden_items_descr">Aquests elements no es mostren al menú, però les opcions o els connectors que representen continuaran funcionant.</string> <string name="hidden_items_descr">Aquests elements no es mostren al menú, però les opcions o els connectors que representen continuaran funcionant.</string>
<string name="reset_items_descr">La configuració es restablirà a l\'estat original després d\'amagar-se.</string> <string name="reset_items_descr">Si s\'amaga la configuració es restablirà al seus valors originals.</string>
<string name="main_actions_descr">Les accions principals només contenen 4 botons.</string> <string name="main_actions_descr">Les accions principals només contenen 4 botons.</string>
<string name="main_actions">Accions principals</string> <string name="main_actions">Accions principals</string>
<string name="move_inside_category">Només podeu moure els elements dins d\'aquesta categoria.</string> <string name="move_inside_category">Només podeu moure els elements dins d\'aquesta categoria.</string>
@ -3748,4 +3748,45 @@ Abasta l\'àrea: %1$s x %2$s</string>
<string name="next_segment">Següent segment</string> <string name="next_segment">Següent segment</string>
<string name="threshold_distance">Llindar de distància</string> <string name="threshold_distance">Llindar de distància</string>
<string name="navigation_profile">Perfil de navegació</string> <string name="navigation_profile">Perfil de navegació</string>
<string name="additional_actions_descr">Podeu accedir a aquestes accions prement el botó \"%1$s\".</string>
<string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string>
<string name="search_poi_types">Cerca per tipus de PDI</string>
<string name="download_unsupported_action">L\'acció %1$s no s\'admet</string>
<string name="mapillary_item">OsmAnd + Mapillary</string>
<string name="quick_action_item">Acció directa</string>
<string name="radius_ruler_item">Radi de distància</string>
<string name="measure_distance_item">Mesura la distància</string>
<string name="travel_item">Viatges (Viquiviatges i Viquipèdia)</string>
<string name="map_markers_item">Marcadors de mapa</string>
<string name="favorites_item">Preferits</string>
<string name="subscription_osmandlive_item">Subscripció - OsmAnd Live</string>
<string name="osmand_purchases_item">Compres OsmAnd</string>
<string name="navigation_profiles_item">Perfils de navegació</string>
<string name="quick_action_transport_hide">Amaga el transport públic</string>
<string name="quick_action_show_hide_transport">Mostra/amaga el transport públic</string>
<string name="quick_action_transport_descr">Botó que mostra o oculta el transport públic al mapa.</string>
<string name="create_edit_poi">Crea / Edita PDI</string>
<string name="parking_positions">Posicions daparcament</string>
<string name="add_edit_favorite">Afegeix / Edita Preferits</string>
<string name="reset_deafult_order">Restableix la ordenació dels elements predeterminats</string>
<string name="back_to_editing">Torna a l\'edició</string>
<string name="turn_screen_on_navigation_instructions_descr">A cada instrucció de navegació s\'activarà la pantalla.</string>
<string name="turn_screen_on_navigation_instructions">Instruccions de navegació</string>
<string name="turn_screen_on_proximity_sensor">Sensor de proximitat</string>
<string name="keep_screen_on">Manté la pantalla activada</string>
<string name="pseudo_mercator_projection">Projecció Pseudo-Mercator</string>
<string name="one_image_per_tile">Un fitxer d\'imatge per tessel·la</string>
<string name="sqlite_db_file">Fitxer SQLiteDB</string>
<string name="online_map_name_helper_text">Proporcioneu un nom per a lorigen del mapa en línia.</string>
<string name="online_map_url_helper_text">Introduïu o enganxeu lURL de la font en línia.</string>
<string name="edit_online_source">Edita la font en línia</string>
<string name="expire_time">Caducitat</string>
<string name="mercator_projection">Projecció de Mercator</string>
<string name="storage_format">Format d\'emmagatzematge</string>
<string name="map_source_zoom_levels">Establiu un nivell de zoom mínim i màxim per a mostrar o carregar el mapa en línia.</string>
<string name="expire_time_descr">Les tessel·les de la memòria cau s\'actualitzaran transcorregut el nombre de minuts especificat. Deixeu aquest camp buit per no actualitzar mai les tessel·les d\'aquesta font.
\n
\nUn dia equival a 1.440 minuts.
\nUna setmana té 10.080 minuts.
\nUn mes dura 43.829 minuts.</string>
</resources> </resources>

View file

@ -806,7 +806,7 @@
<string name="poi_internet_access_service">Πρόσβαση διαδικτύου: υπηρεσία</string> <string name="poi_internet_access_service">Πρόσβαση διαδικτύου: υπηρεσία</string>
<string name="poi_internet_access_yes">Πρόσβαση διαδικτύου: ναι</string> <string name="poi_internet_access_yes">Πρόσβαση διαδικτύου: ναι</string>
<string name="poi_internet_access_no">Πρόσβαση διαδικτύου: όχι</string> <string name="poi_internet_access_no">Πρόσβαση διαδικτύου: όχι</string>
<string name="poi_internet_access_fee_yes">Πρόσβαση διαδικτύου - με χρέωση</string> <string name="poi_internet_access_fee_yes">Πρόσβαση διαδικτύου : με χρέωση</string>
<string name="poi_internet_access_fee_no">Πρόσβαση διαδικτύου - χωρίς χρέωση</string> <string name="poi_internet_access_fee_no">Πρόσβαση διαδικτύου - χωρίς χρέωση</string>
<string name="poi_monastery">Μοναστήρι</string> <string name="poi_monastery">Μοναστήρι</string>
<string name="poi_religious">Θρησκευτική περιοχή</string> <string name="poi_religious">Θρησκευτική περιοχή</string>
@ -1371,7 +1371,7 @@
<string name="poi_pump_no">Χωρίς αντλία</string> <string name="poi_pump_no">Χωρίς αντλία</string>
<string name="poi_pump_yes">Ναι</string> <string name="poi_pump_yes">Ναι</string>
<string name="poi_water_characteristic_mineral">Μεταλλικό</string> <string name="poi_water_characteristic_mineral">Μεταλλικό</string>
<string name="poi_water_characteristic_mud">Χαρακτηριστικό νερού: λάσπη</string> <string name="poi_water_characteristic_mud">Λάσπη</string>
<string name="poi_water_characteristic_sulfuric">Θειικό</string> <string name="poi_water_characteristic_sulfuric">Θειικό</string>
<string name="poi_water_point">Σημείο νερού</string> <string name="poi_water_point">Σημείο νερού</string>
<string name="poi_information_guidepost">Οδοδείκτης</string> <string name="poi_information_guidepost">Οδοδείκτης</string>
@ -1411,7 +1411,7 @@
<string name="poi_tactile_paving_yes">Ναι</string> <string name="poi_tactile_paving_yes">Ναι</string>
<string name="poi_tactile_paving_no">Χωρίς απτικό πλακόστρωτο</string> <string name="poi_tactile_paving_no">Χωρίς απτικό πλακόστρωτο</string>
<string name="poi_traffic_signals_sound_yes">Ναι</string> <string name="poi_traffic_signals_sound_yes">Ναι</string>
<string name="poi_traffic_signals_sound_no">Όχι</string> <string name="poi_traffic_signals_sound_no">Ήχος: όχι</string>
<string name="poi_traffic_signals_sound_walk">Μόνο όταν επιτρέπεται το περπάτημα</string> <string name="poi_traffic_signals_sound_walk">Μόνο όταν επιτρέπεται το περπάτημα</string>
<string name="poi_rescue_station">Σταθμός διάσωσης</string> <string name="poi_rescue_station">Σταθμός διάσωσης</string>
<string name="poi_services">ΣΕΑ</string> <string name="poi_services">ΣΕΑ</string>
@ -1706,7 +1706,7 @@
<string name="poi_service_electrical">Επισκευή ηλεκτρικών οχημάτων</string> <string name="poi_service_electrical">Επισκευή ηλεκτρικών οχημάτων</string>
<string name="poi_motorcycle_repair">Επισκευή μοτοσικλετών</string> <string name="poi_motorcycle_repair">Επισκευή μοτοσικλετών</string>
<string name="poi_self_service_yes">Ναι</string> <string name="poi_self_service_yes">Ναι</string>
<string name="poi_self_service_no">Χωρίς αυτοεξυπηρέτηση</string> <string name="poi_self_service_no">Όχι</string>
<string name="poi_automated_yes">Ναι</string> <string name="poi_automated_yes">Ναι</string>
<string name="poi_automated_no">Μη αυτόματο</string> <string name="poi_automated_no">Μη αυτόματο</string>
<string name="poi_full_service_yes">Πλήρης εξυπηρέτηση</string> <string name="poi_full_service_yes">Πλήρης εξυπηρέτηση</string>
@ -2060,7 +2060,7 @@
<string name="poi_fuel_100ll">Καύσιμο 100LL</string> <string name="poi_fuel_100ll">Καύσιμο 100LL</string>
<string name="poi_fuel_autogas">Υγραέριο κίνησης</string> <string name="poi_fuel_autogas">Υγραέριο κίνησης</string>
<string name="poi_fuel_jeta1">Καύσιμο Jet A-1</string> <string name="poi_fuel_jeta1">Καύσιμο Jet A-1</string>
<string name="poi_fuel_adblue">Καύσιμο AdBlue</string> <string name="poi_fuel_adblue">Υγρό καυσαερίων ντίζελ</string>
<string name="poi_fuel_wood">Καύσιμο: ξύλο</string> <string name="poi_fuel_wood">Καύσιμο: ξύλο</string>
<string name="poi_fuel_charcoal">Καύσιμο: κάρβουνο</string> <string name="poi_fuel_charcoal">Καύσιμο: κάρβουνο</string>
<string name="poi_fuel_coal">Καύσιμο: γαιάνθρακας</string> <string name="poi_fuel_coal">Καύσιμο: γαιάνθρακας</string>
@ -3565,4 +3565,131 @@
<string name="poi_bath_type">Πληκτρολογήστε</string> <string name="poi_bath_type">Πληκτρολογήστε</string>
<string name="poi_volcano_type">Πληκτρολογήστε</string> <string name="poi_volcano_type">Πληκτρολογήστε</string>
<string name="poi_volcano_status">Κατάσταση</string> <string name="poi_volcano_status">Κατάσταση</string>
<string name="poi_mofa_yes">Ναι</string>
<string name="poi_moped_designated">Δηλωμένη</string>
<string name="poi_moped_yes">Ναι</string>
<string name="poi_motorcycle_designated">Δηλωμένη</string>
<string name="poi_motorcycle_destination">Προορισμός</string>
<string name="poi_motorcycle_permissive">Ανεκτή</string>
<string name="poi_motorcycle_yes">Ναι</string>
<string name="poi_trailer_designated">Δηλωμένη</string>
<string name="poi_trailer_yes">Ναι</string>
<string name="poi_motorhome_designated">Δηλωμένη</string>
<string name="poi_motorhome_yes">Ναι</string>
<string name="poi_caravan_designated">Δηλωμένη</string>
<string name="poi_caravan_yes">Ναι</string>
<string name="poi_bus_designated">Δηλωμένη</string>
<string name="poi_bus_yes">Ναι</string>
<string name="poi_snowmobile_permissive">Ανεκτή</string>
<string name="poi_snowmobile_designated">Δηλωμένη</string>
<string name="poi_snowmobile_yes">Ναι</string>
<string name="poi_disabled_no">Πρόσβαση αναπήρων: όχι</string>
<string name="poi_taxi_no">Πρόσβαση ταξί: όχι</string>
<string name="poi_taxi_designated">Πρόσβαση ταξί: δηλωμένη</string>
<string name="poi_taxi_yes">Πρόσβαση ταξί: ναι</string>
<string name="poi_agricultural_no">Πρόσβαση αγροτικών οχημάτων: όχι</string>
<string name="poi_agricultural_yes">Πρόσβαση αγροτικών οχημάτων: ναι</string>
<string name="poi_snowmobile_no">Πρόσβαση χιονοοχήματος: όχι</string>
<string name="poi_ski_no">Χιονοδρομική πρόσβαση: όχι</string>
<string name="poi_rtsa_scale_3b_asterisk">3Б*</string>
<string name="poi_rtsa_scale_3a_asterisk">3А*</string>
<string name="poi_rtsa_scale_2b_asterisk">2Б*</string>
<string name="poi_rtsa_scale_2a_asterisk">2А*</string>
<string name="poi_rtsa_scale_1b_asterisk">1Б*</string>
<string name="poi_rtsa_scale_1a_asterisk">1А*</string>
<string name="poi_rtsa_scale_nc_asterisk">н/к*</string>
<string name="poi_coach_no">Πρόσβαση λεωφορείων: όχι</string>
<string name="poi_coach_yes">Πρόσβαση λεωφορείων: ναι</string>
<string name="poi_tourist_bus_no">Πρόσβαση τουριστικών λεωφορείων: όχι</string>
<string name="poi_tourist_bus_designated">Πρόσβαση τουριστικών λεωφορείων: δηλωμένη</string>
<string name="poi_tourist_bus_yes">Πρόσβαση τουριστικών λεωφορείων: ναι</string>
<string name="poi_bus_no">Πρόσβαση λεωφορείων: όχι</string>
<string name="poi_psv_no">Πρόσβαση δημόσιων συγκοινωνιών: όχι</string>
<string name="poi_psv_designated">Πρόσβαση δημόσιων συγκοινωνιών: δηλωμένη</string>
<string name="poi_psv_yes">Πρόσβαση δημόσιων συγκοινωνιών: ναι</string>
<string name="poi_trailer_no">Πρόσβαση καρότσας: όχι</string>
<string name="poi_caravan_no">Πρόσβαση καραβανιού: όχι</string>
<string name="poi_motorhome_no">Πρόσβαση τροχόσπιτου: όχι</string>
<string name="poi_foot_customers">Πρόσβαση πεζών: πελάτες</string>
<string name="poi_foot_permissive">Πρόσβαση πεζών: ανεκτή</string>
<string name="poi_foot_destination">Πρόσβαση πεζών: προορισμός</string>
<string name="poi_foot_no">Πρόσβαση πεζών: όχι</string>
<string name="poi_foot_private">Πρόσβαση πεζών: ιδιωτική</string>
<string name="poi_foot_yes">Πρόσβαση πεζών: ναι</string>
<string name="poi_horse_forestry">Πρόσβαση αλόγων: δασοκομική</string>
<string name="poi_horse_permissive">Πρόσβαση αλόγων: ανεκτή</string>
<string name="poi_horse_destination">Πρόσβαση αλόγων: προορισμός</string>
<string name="poi_horse_private">Πρόσβαση αλόγων: ιδιωτική</string>
<string name="poi_bicycle_customers">Πρόσβαση ποδηλάτων: πελάτες</string>
<string name="poi_bicycle_permissive">Πρόσβαση ποδηλάτων: ανεκτή</string>
<string name="poi_bicycle_destination">Πρόσβαση ποδηλάτων: προορισμός</string>
<string name="poi_bicycle_dismount">Πρόσβαση ποδηλάτων: πεζή</string>
<string name="poi_bicycle_private">Πρόσβαση ποδηλάτων: ιδιωτική</string>
<string name="poi_mofa_no">Πρόσβαση μικρών μοτοποδηλάτων: όχι</string>
<string name="poi_moped_no">Πρόσβαση μοτοποδηλάτων: όχι</string>
<string name="poi_motorcycle_no">Πρόσβαση μοτοσικλέτας: όχι</string>
<string name="poi_motorcycle_private">Πρόσβαση μοτοσικλέτας: ιδιωτική</string>
<string name="poi_goods_no">Πρόσβαση ελαφρών φορτηγών: όχι</string>
<string name="poi_hgv_unsuitable">Πρόσβαση βαρέων οχημάτων: ακατάλληλη</string>
<string name="poi_hgv_discouraged">Πρόσβαση βαρέων οχημάτων: δεν συνιστάται</string>
<string name="poi_hgv_agricultural">Πρόσβαση βαρέων οχημάτων: αγροτική</string>
<string name="poi_hgv_no">Πρόσβαση βαρέων οχημάτων: όχι</string>
<string name="poi_hgv_private">Πρόσβαση βαρέων οχημάτων: ιδιωτική</string>
<string name="poi_motor_vehicle_agricultural">Πρόσβαση μηχανοκίνητου οχήματος: αγροτική</string>
<string name="poi_motor_vehicle_forestry">Πρόσβαση μηχανοκίνητου οχήματος: δασοκομική</string>
<string name="poi_motor_vehicle_delivery">Πρόσβαση μηχανοκίνητου οχήματος: διανομή</string>
<string name="poi_motor_vehicle_military">Πρόσβαση μηχανοκίνητου οχήματος: στρατιωτική</string>
<string name="poi_motor_vehicle_customers">Πρόσβαση μηχανοκίνητου οχήματος: πελάτες</string>
<string name="poi_motor_vehicle_permissive">Πρόσβαση μηχανοκίνητου οχήματος: ανεκτός</string>
<string name="poi_motor_vehicle_destination">Πρόσβαση μηχανοκίνητου οχήματος: προορισμός</string>
<string name="poi_motor_vehicle_no">Πρόσβαση μηχανοκίνητου οχήματος: όχι</string>
<string name="poi_motor_vehicle_private">Πρόσβαση μηχανοκίνητου οχήματος: ιδιωτική</string>
<string name="poi_flare">Φλόγα υψικαμίνου;Πυρσός καύσης</string>
<string name="poi_motor_vehicle_yes">Πρόσβαση μηχανοκίνητου οχήματος: ναι</string>
<string name="poi_motorcar_forestry">Πρόσβαση αυτοκινήτου: δασοκομική</string>
<string name="poi_motorcar_customers">Πρόσβαση αυτοκινήτου: πελάτες</string>
<string name="poi_motorcar_permissive">Πρόσβαση αυτοκινήτου: ανεκτή</string>
<string name="poi_motorcar_destination">Πρόσβαση αυτοκινήτου: προορισμός</string>
<string name="poi_motorcar_no">Πρόσβαση αυτοκινήτου: όχι</string>
<string name="poi_motorcar_private">Πρόσβαση αυτοκινήτου: ιδιωτική</string>
<string name="poi_motorcar_yes">Πρόσβαση αυτοκινήτου:</string>
<string name="poi_vehicle_forestry">Πρόσβαση οχήματος: δασοκομική</string>
<string name="poi_vehicle_delivery">Πρόσβαση οχήματος: διανομή</string>
<string name="poi_vehicle_military">Πρόσβαση οχήματος: στρατιωτική</string>
<string name="poi_vehicle_customers">Πρόσβαση οχήματος: πελάτες</string>
<string name="poi_vehicle_permissive">Πρόσβαση οχήματος: ανεκτική</string>
<string name="poi_vehicle_destination">Πρόσβαση οχήματος: προορισμός</string>
<string name="poi_vehicle_no">Πρόσβαση οχήματος: όχι</string>
<string name="poi_vehicle_private">Πρόσβαση οχήματος: ιδιωτική</string>
<string name="poi_vehicle_yes">Πρόσβαση οχήματος: ναι</string>
<string name="poi_taxi_office">Γραφείο ταξί</string>
<string name="poi_hookah_lounge">Αίθουσα ναργιλέ</string>
<string name="poi_charcoal_pile">Σωρός κάρβουνου</string>
<string name="poi_changing_table_fee_no">Αλλαξιέρα με πληρωμή: όχι</string>
<string name="poi_changing_table_fee_yes">Αλλαξιέρα με πληρωμή: ναι</string>
<string name="poi_changing_table_count">Αριθμός αλλαξιέρων</string>
<string name="poi_changing_table_location_unisex_toilet">Τοποθεσία αλλαξιέρας: μικτή τουαλέτα</string>
<string name="poi_changing_table_location_female_toilet">Τοποθεσία αλλαξιέρας: τουαλέτα γυναικών</string>
<string name="poi_changing_table_location_male_toilet">Τοποθεσία αλλαξιέρας: τουαλέτα ανδρών</string>
<string name="poi_changing_table_location_room">Τοποθεσία αλλαξιέρας: δωμάτιο</string>
<string name="poi_changing_table_limited">Αλλαξιέρα: περιορισμένη</string>
<string name="poi_changing_table_no">Αλλαξιέρα: όχι</string>
<string name="poi_changing_table_yes">Αλλαξιέρα: ναι</string>
<string name="poi_defibrillator_location">Τοποθεσία</string>
<string name="poi_hazard_additional_contamination">Κίνδυνος: μόλυνση</string>
<string name="poi_hazard_additional_minefield">Κίνδυνος: ναρκοπέδιο</string>
<string name="poi_hazard_additional_avalanche">Κίνδυνος: χιονοστιβάδα</string>
<string name="poi_hazard_additional_flood">Κίνδυνος; πλημμύρα</string>
<string name="poi_hazard_additional_nuclear">Κίνδυνος: πυρηνικά</string>
<string name="poi_hazard_additional_rockfall">Κίνδυνος: πτώση βράχων</string>
<string name="poi_hazard_additional_erosion">Κίνδυνος: διάβρωση</string>
<string name="poi_rescue_box">Κουτί διάσωσης</string>
<string name="poi_change_delete">Διαγραμμένο αντικείμενο</string>
<string name="poi_park_ride_hov">Όχημα υψηλής πληρότητας</string>
<string name="poi_traffic_signals_arrow">Βέλος</string>
<string name="poi_traffic_signals_vibration">Δόνηση</string>
<string name="poi_fire_hydrant_pressure_filter">Πίεση</string>
<string name="poi_video_telephone">Βίντεο</string>
<string name="poi_sms">SMS</string>
<string name="poi_bath_open_air">Σε ανοιχτό χώρο</string>
</resources> </resources>

View file

@ -1015,23 +1015,23 @@
<string name="driving_region_japan">Ιαπωνία</string> <string name="driving_region_japan">Ιαπωνία</string>
<string name="driving_region_us">ΗΠΑ</string> <string name="driving_region_us">ΗΠΑ</string>
<string name="driving_region_canada">Καναδάς</string> <string name="driving_region_canada">Καναδάς</string>
<string name="driving_region_europe_asia">Ευρώπη, Ασία, Λατινική Αμερική κ.ο.κ.</string> <string name="driving_region_europe_asia">Ευρώπη, Ασία, Λατινική Αμερική και παρόμοια</string>
<string name="driving_region_uk">ΗΒ, Ινδία κ.ο</string> <string name="driving_region_uk">ΗΒ, Ινδία και παρόμοια</string>
<string name="about_version">Έκδοση:</string> <string name="about_version">Έκδοση:</string>
<string name="shared_string_about">Περί</string> <string name="shared_string_about">Περί</string>
<string name="about_settings_descr">Πληροφορίες έκδοσης, άδειες, μέλη έργου</string> <string name="about_settings_descr">Πληροφορίες έκδοσης, άδειες, μέλη έργου</string>
<string name="local_index_tile_data_expire">Λήξη (λεπτά): %1$s</string> <string name="local_index_tile_data_expire">Χρόνος λήξης (σε λεπτά): %1$s</string>
<string name="local_index_tile_data_maxzoom">Μέγιστη εστίαση: %1$s</string> <string name="local_index_tile_data_maxzoom">Μέγιστη εστίαση: %1$s</string>
<string name="local_index_tile_data_minzoom">Ελάχιστη εστίαση: %1$s</string> <string name="local_index_tile_data_minzoom">Ελάχιστη εστίαση: %1$s</string>
<string name="edit_tilesource_maxzoom">Μέγιστη εστίαση</string> <string name="edit_tilesource_maxzoom">Μέγιστη εστίαση</string>
<string name="edit_tilesource_expiration_time">Λήξη (λεπτά)</string> <string name="edit_tilesource_expiration_time">Χρόνος λήξης (σε λεπτά)</string>
<string name="edit_tilesource_minzoom">Ελάχιστη εστίαση</string> <string name="edit_tilesource_minzoom">Ελάχιστη εστίαση</string>
<string name="maps_define_edit">Καθορισμός/Επεξεργασία…</string> <string name="maps_define_edit">Καθορισμός/Επεξεργασία…</string>
<string name="local_index_tile_data_downloadable">Διαθέσιμο για λήψη: %1$s</string> <string name="local_index_tile_data_downloadable">Διαθέσιμο για λήψη: %1$s</string>
<string name="local_index_tile_data_zooms">Μεγεθύνσεις που ελήφθησαν: %1$s</string> <string name="local_index_tile_data_zooms">Μεταφορτωμένα επίπεδα εστίασης: %1$s</string>
<string name="local_index_tile_data_name">Δεδομένα πλακιδίου: %1$s</string> <string name="local_index_tile_data_name">Δεδομένα πλακιδίου: %1$s</string>
<string name="edit_tilesource_successfully">Πάροχος πλακιδίων %1$s αποθηκεύτηκε</string> <string name="edit_tilesource_successfully">Αποθηκεύτηκε η πηγή πλακιδίων %1$s</string>
<string name="edit_tilesource_elliptic_tile">Ελλειπτικό Μερκάτωρ</string> <string name="edit_tilesource_elliptic_tile">Ελλειπτική μερκατορική προβολή</string>
<string name="edit_tilesource_url_to_load">URL</string> <string name="edit_tilesource_url_to_load">URL</string>
<string name="edit_tilesource_choose_existing">Επιλογή υπάρχοντος…</string> <string name="edit_tilesource_choose_existing">Επιλογή υπάρχοντος…</string>
<string name="driving_region_descr">Επιλέξτε περιοχή οδήγησης: ΗΠΑ, Ευρώπη, ΗΒ, Ασία κλπ.</string> <string name="driving_region_descr">Επιλέξτε περιοχή οδήγησης: ΗΠΑ, Ευρώπη, ΗΒ, Ασία κλπ.</string>
@ -1074,13 +1074,14 @@
<string name="selected_gpx_info_show">" <string name="selected_gpx_info_show">"
\n \n
\nΠαρατεταμένο πάτημα για προβολή στον χάρτη"</string> \nΠαρατεταμένο πάτημα για προβολή στον χάρτη"</string>
<string name="gpx_info_start_time">"Χρόνος έναρξης: %1$tF, %1$tT "</string> <string name="gpx_info_start_time">Χρόνος έναρξης: %1$tF, %1$tT</string>
<string name="gpx_info_end_time">"Χρόνος λήξης: %1$tF, %1$tT "</string> <string name="gpx_info_end_time">Χρόνος λήξης: %1$tF, %1$tT</string>
<string name="gpx_info_diff_altitude">Εύρος υψομέτρου: %1$s</string> <string name="gpx_info_diff_altitude">Εύρος υψομέτρου: %1$s</string>
<string name="gpx_info_asc_altitude">Κατηφόρα/Ανηφόρα: %1$s</string> <string name="gpx_info_asc_altitude">Κατηφόρα/Ανηφόρα: %1$s</string>
<string name="gpx_selection_number_of_points">%1$s σημεία</string> <string name="gpx_selection_number_of_points">%1$s σημεία</string>
<string name="gpx_selection_point">"Σημείο %1$s"</string> <string name="gpx_selection_point">Σημείο %1$s</string>
<string name="gpx_selection_route_points">"%1$s\nΣημεία διαδρομής %2$s"</string> <string name="gpx_selection_route_points">%1$s
\nΣημεία διαδρομής %2$s</string>
<string name="gpx_selection_points">%1$s\nΣημεία</string> <string name="gpx_selection_points">%1$s\nΣημεία</string>
<string name="osmo_edit_color">Χρώμα εμφάνισης</string> <string name="osmo_edit_color">Χρώμα εμφάνισης</string>
<string name="int_days">ημέρες</string> <string name="int_days">ημέρες</string>
@ -1089,7 +1090,7 @@
<string name="select_destination_and_intermediate_points">Ορίστε προορισμούς</string> <string name="select_destination_and_intermediate_points">Ορίστε προορισμούς</string>
<string name="shared_string_waypoint">Σημείο διαδρομής</string> <string name="shared_string_waypoint">Σημείο διαδρομής</string>
<string name="gpx_info_subtracks">Υποδεέστερα ίχνη: %1$s</string> <string name="gpx_info_subtracks">Υποδεέστερα ίχνη: %1$s</string>
<string name="gpx_info_waypoints">"Σημεία διαδρομής: %1$s "</string> <string name="gpx_info_waypoints">Σημεία διαδρομής: %1$s</string>
<string name="gpx_timespan">Χρονική διάρκεια: %1$s</string> <string name="gpx_timespan">Χρονική διάρκεια: %1$s</string>
<string name="gpx_timemoving">Χρόνος σε κίνηση: %1$s</string> <string name="gpx_timemoving">Χρόνος σε κίνηση: %1$s</string>
<string name="gpx_selection_segment_title">Τμήμα</string> <string name="gpx_selection_segment_title">Τμήμα</string>
@ -1226,7 +1227,7 @@
<string name="rendering_value_car_name">Αυτοκίνητο</string> <string name="rendering_value_car_name">Αυτοκίνητο</string>
<string name="rendering_value_bicycle_name">Ποδήλατο</string> <string name="rendering_value_bicycle_name">Ποδήλατο</string>
<string name="rendering_value_pedestrian_name">Πεζοπόρος</string> <string name="rendering_value_pedestrian_name">Πεζοπόρος</string>
<string name="gpx_monitoring_start">Έναρξη καταγραφής GPX</string> <string name="gpx_monitoring_start">Συνέχιση καταγραφής GPX</string>
<string name="gpx_monitoring_stop">Παύση καταγραφής GPX</string> <string name="gpx_monitoring_stop">Παύση καταγραφής GPX</string>
<string name="gpx_start_new_segment">Έναρξη νέου τμήματος</string> <string name="gpx_start_new_segment">Έναρξη νέου τμήματος</string>
<string name="shared_string_all">Όλα</string> <string name="shared_string_all">Όλα</string>
@ -1393,7 +1394,7 @@
<string name="share_note">Κοινή χρήση σημείωσης</string> <string name="share_note">Κοινή χρήση σημείωσης</string>
<string name="notes">Σημειώσεις A/V</string> <string name="notes">Σημειώσεις A/V</string>
<string name="roads_only">Μόνο δρόμοι</string> <string name="roads_only">Μόνο δρόμοι</string>
<string name="free">"Ελεύθερο %1$s "</string> <string name="free">Ελεύθερο %1$s</string>
<string name="device_memory">Μνήμη συσκευής</string> <string name="device_memory">Μνήμη συσκευής</string>
<string name="rendering_attr_streetLighting_name">Φωτισμός οδών</string> <string name="rendering_attr_streetLighting_name">Φωτισμός οδών</string>
<string name="rendering_attr_subwayMode_name">Διαδρομές μετρό</string> <string name="rendering_attr_subwayMode_name">Διαδρομές μετρό</string>
@ -1589,8 +1590,8 @@
<string name="one_tap_active_descr">Πατήστε ένα δείκτη στο χάρτη για να τον μετακινήσετε στην κορυφή των ενεργών δεικτών χωρίς να ανοίξει το συναφές μενού.</string> <string name="one_tap_active_descr">Πατήστε ένα δείκτη στο χάρτη για να τον μετακινήσετε στην κορυφή των ενεργών δεικτών χωρίς να ανοίξει το συναφές μενού.</string>
<string name="one_tap_active">Ενεργό το \'Ένα πάτημα\'</string> <string name="one_tap_active">Ενεργό το \'Ένα πάτημα\'</string>
<string name="empty_state_av_notes">Κρατήστε σημειώσεις!</string> <string name="empty_state_av_notes">Κρατήστε σημειώσεις!</string>
<string name="empty_state_av_notes_desc">Προσθέστε ήχο, βίντεο ή φωτοσημείωση για κάθε σημείο στο χάρτη, χρησιμοποιώντας το widget ή το συναφές μενού.</string> <string name="empty_state_av_notes_desc">Προσθέστε ήχο, βίντεο ή φωτοσημειώσεις για κάθε σημείο στο χάρτη, χρησιμοποιώντας τα γραφικά στοιχεία ή τα μενού περιβάλλοντος.</string>
<string name="notes_by_date">Σημειώσεις OSM κατά ημερομηνία</string> <string name="notes_by_date">Σημειώσεις ήχου/βίντεο κατά ημερομηνία</string>
<string name="download_maps_travel">Ταξιδιωτικοί οδηγοί</string> <string name="download_maps_travel">Ταξιδιωτικοί οδηγοί</string>
<string name="article_removed">Το άρθρο αφαιρέθηκε</string> <string name="article_removed">Το άρθρο αφαιρέθηκε</string>
<string name="wikivoyage_search_hint">Αναζήτηση για χώρα, πόλη, ή επαρχία</string> <string name="wikivoyage_search_hint">Αναζήτηση για χώρα, πόλη, ή επαρχία</string>
@ -1665,7 +1666,7 @@
<string name="show_guide_line_descr">Εμφάνιση κατευθυντήριας γραμμής από τη θέση σας προς τις ενεργές τοποθεσίες δείκτη.</string> <string name="show_guide_line_descr">Εμφάνιση κατευθυντήριας γραμμής από τη θέση σας προς τις ενεργές τοποθεσίες δείκτη.</string>
<string name="show_arrows_descr">Εμφάνιση ενός ή δύο βελών που δείχνουν την κατεύθυνση προς τους ενεργούς δείκτες.</string> <string name="show_arrows_descr">Εμφάνιση ενός ή δύο βελών που δείχνουν την κατεύθυνση προς τους ενεργούς δείκτες.</string>
<string name="distance_indication_descr">Επιλέξτε πώς θα εμφανίζεται η απόσταση προς τους ενεργούς δείκτες.</string> <string name="distance_indication_descr">Επιλέξτε πώς θα εμφανίζεται η απόσταση προς τους ενεργούς δείκτες.</string>
<string name="active_markers_descr">Προσδιορίστε τον αριθμό των δεικτών κατεύθυνσης:</string> <string name="active_markers_descr">Προσδιορίστε τον αριθμό των δεικτών κατεύθυνσης.</string>
<string name="digits_quantity">Αριθμός δεκαδικών ψηφίων</string> <string name="digits_quantity">Αριθμός δεκαδικών ψηφίων</string>
<string name="shared_string_right">Δεξιά</string> <string name="shared_string_right">Δεξιά</string>
<string name="shared_string_left">Αριστερά</string> <string name="shared_string_left">Αριστερά</string>
@ -1726,7 +1727,7 @@
<string name="order_by">Ταξινόμηση κατά:</string> <string name="order_by">Ταξινόμηση κατά:</string>
<string name="marker_show_distance_descr">Επιλογή υπόδειξης απόστασης και κατεύθυνσης σε σημειωτές χαρτών στον χάρτη:</string> <string name="marker_show_distance_descr">Επιλογή υπόδειξης απόστασης και κατεύθυνσης σε σημειωτές χαρτών στον χάρτη:</string>
<string name="map_orientation_change_in_accordance_with_speed">Όριο προσανατολισμού χάρτη</string> <string name="map_orientation_change_in_accordance_with_speed">Όριο προσανατολισμού χάρτη</string>
<string name="map_orientation_change_in_accordance_with_speed_descr">Επιλογή παρακάτω της ταχύτητας εναλλαγής προσανατολισμού από \'Κατεύθυνση κίνησης\' σε \'Κατεύθυνση πυξίδας\'.</string> <string name="map_orientation_change_in_accordance_with_speed_descr">Επιλέξτε την ταχύτητα εναλλαγής προσανατολισμού από \'Κατεύθυνση κίνησης\' σε \'Κατεύθυνση πυξίδας\' παρακάτω.</string>
<string name="all_markers_moved_to_history">Όλοι οι δείκτες χάρτη μετακινήθηκαν στο ιστορικό</string> <string name="all_markers_moved_to_history">Όλοι οι δείκτες χάρτη μετακινήθηκαν στο ιστορικό</string>
<string name="marker_moved_to_history">Ο δείκτης χάρτη μετακινήθηκε στο ιστορικό</string> <string name="marker_moved_to_history">Ο δείκτης χάρτη μετακινήθηκε στο ιστορικό</string>
<string name="marker_moved_to_active">Ο δείκτης χάρτη ενεργοποιήθηκε</string> <string name="marker_moved_to_active">Ο δείκτης χάρτη ενεργοποιήθηκε</string>
@ -1775,7 +1776,7 @@
<string name="import_gpx_failed_descr">Δεν μπορούσε να εισαχθεί το αρχείο. Παρακαλώ διαβεβαιώστε πως το OsmAnd επιτρέπεται να το αναγνώσει.</string> <string name="import_gpx_failed_descr">Δεν μπορούσε να εισαχθεί το αρχείο. Παρακαλώ διαβεβαιώστε πως το OsmAnd επιτρέπεται να το αναγνώσει.</string>
<string name="mapillary_image">Εικόνα Mapillary</string> <string name="mapillary_image">Εικόνα Mapillary</string>
<string name="improve_coverage_mapillary">Βελτίωση κάλυψης φωτογραφίας με Mapillary</string> <string name="improve_coverage_mapillary">Βελτίωση κάλυψης φωτογραφίας με Mapillary</string>
<string name="improve_coverage_install_mapillary_desc">Εγκαταστήστε το Mapillary για να προσθέσετε μία ή περισσότερες φωτογραφίες σε αυτήν την τοποθεσία του χάρτη.</string> <string name="improve_coverage_install_mapillary_desc">Εγκαταστήστε το Mapillary για να προσθέσετε φωτογραφίες σε αυτήν την τοποθεσία του χάρτη.</string>
<string name="no_photos_descr">Χωρίς φωτογραφίες εδώ.</string> <string name="no_photos_descr">Χωρίς φωτογραφίες εδώ.</string>
<string name="mapillary_action_descr">Μοιραστείτε την θέα σας στο δρόμο μέσω του Mapillary.</string> <string name="mapillary_action_descr">Μοιραστείτε την θέα σας στο δρόμο μέσω του Mapillary.</string>
<string name="mapillary_widget">Γραφικό στοιχείο Mapillary</string> <string name="mapillary_widget">Γραφικό στοιχείο Mapillary</string>
@ -1927,7 +1928,7 @@
<string name="gpx_add_track">Προσθήκη περισσότερων…</string> <string name="gpx_add_track">Προσθήκη περισσότερων…</string>
<string name="shared_string_appearance">Εμφάνιση</string> <string name="shared_string_appearance">Εμφάνιση</string>
<string name="trip_rec_notification_settings">Ενεργοποίηση γρήγορης καταγραφής</string> <string name="trip_rec_notification_settings">Ενεργοποίηση γρήγορης καταγραφής</string>
<string name="trip_rec_notification_settings_desc">Εμφάνιση ειδοποίησης συστήματος που επιτρέπει την καταγραφή ταξιδιού.</string> <string name="trip_rec_notification_settings_desc">Εμφάνιση ειδοποίησης συστήματος που επιτρέπει την έναρξη καταγραφής ταξιδιού.</string>
<string name="shared_string_notifications">Ειδοποιήσεις</string> <string name="shared_string_notifications">Ειδοποιήσεις</string>
<string name="shared_string_continue">Συνέχεια</string> <string name="shared_string_continue">Συνέχεια</string>
<string name="shared_string_pause">Παύση</string> <string name="shared_string_pause">Παύση</string>
@ -1965,7 +1966,7 @@
<string name="delete_filter">Διαγραφή φίλτρου</string> <string name="delete_filter">Διαγραφή φίλτρου</string>
<string name="new_filter">Νέο φίλτρο</string> <string name="new_filter">Νέο φίλτρο</string>
<string name="new_filter_desc">Παρακαλούμε, εισάγετε όνομα για το νέο φίλτρο, αυτό θα προστεθεί στην δική σας καρτέλα \'Κατηγορίες\'.</string> <string name="new_filter_desc">Παρακαλούμε, εισάγετε όνομα για το νέο φίλτρο, αυτό θα προστεθεί στην δική σας καρτέλα \'Κατηγορίες\'.</string>
<string name="osm_live_payment_desc">Τα τέλη εγγραφής επιβαρύνονται μηνιαία. Μπορείτε να ακυρώσετε την εγγραφή σας στο Google Play οποτεδήποτε.</string> <string name="osm_live_payment_desc">Η συνδρομή επιβαρύνεται ανά επιλεγμένη περίοδο. Μπορείτε να την ακυρώσετε στο Google Play οποτεδήποτε.</string>
<string name="donation_to_osm">Δωρεά στην κοινότητα OSM</string> <string name="donation_to_osm">Δωρεά στην κοινότητα OSM</string>
<string name="donation_to_osm_desc">Μέρος της δωρεάς σας θα σταλεί στους συντελεστές OSM. Το κόστος της εγγραφής παραμένει το ίδιο.</string> <string name="donation_to_osm_desc">Μέρος της δωρεάς σας θα σταλεί στους συντελεστές OSM. Το κόστος της εγγραφής παραμένει το ίδιο.</string>
<string name="osm_live_subscription_desc">Η εγγραφή ενεργοποιεί ωριαίες, ημερήσιες και εβδομαδιαίες ενημερώσεις και απεριόριστες λήψεις για όλους τους χάρτες παγκοσμίως.</string> <string name="osm_live_subscription_desc">Η εγγραφή ενεργοποιεί ωριαίες, ημερήσιες και εβδομαδιαίες ενημερώσεις και απεριόριστες λήψεις για όλους τους χάρτες παγκοσμίως.</string>
@ -2005,7 +2006,7 @@
<string name="back_to_search">Πίσω στην αναζήτηση</string> <string name="back_to_search">Πίσω στην αναζήτηση</string>
<string name="confirmation_to_delete_history_items">Να αφαιρεθούν τα επιλεγμένα στοιχεία από το \'Ιστορικό\';</string> <string name="confirmation_to_delete_history_items">Να αφαιρεθούν τα επιλεγμένα στοιχεία από το \'Ιστορικό\';</string>
<string name="show_something_on_map">Εμφάνιση του %1$s στον χάρτη</string> <string name="show_something_on_map">Εμφάνιση του %1$s στον χάρτη</string>
<string name="dist_away_from_my_location">"Αναζήτηση %1$s μακριά "</string> <string name="dist_away_from_my_location">Αναζήτηση %1$s μακριά</string>
<string name="share_history_subject">κοινόχρηστο μέσω του OsmAnd</string> <string name="share_history_subject">κοινόχρηστο μέσω του OsmAnd</string>
<string name="search_categories">Κατηγορίες</string> <string name="search_categories">Κατηγορίες</string>
<string name="postcode">Ταχυδρομικός κώδικας</string> <string name="postcode">Ταχυδρομικός κώδικας</string>
@ -2329,7 +2330,7 @@
<string name="search_radius_proximity">Μέσα σε</string> <string name="search_radius_proximity">Μέσα σε</string>
<string name="fav_point_emoticons_message">Το αγαπημενο μετονομάστηκε σε \'%1$s\' για να προφυλάξει την συμβολοσειρά που περιέχει emoticons σε αρχείο.</string> <string name="fav_point_emoticons_message">Το αγαπημενο μετονομάστηκε σε \'%1$s\' για να προφυλάξει την συμβολοσειρά που περιέχει emoticons σε αρχείο.</string>
<string name="fav_point_dublicate">Ορίστηκε διπλογραφή ονόματος Αγαπημένου</string> <string name="fav_point_dublicate">Ορίστηκε διπλογραφή ονόματος Αγαπημένου</string>
<string name="traffic_warning_calming">Ήπια κυκλοφορία</string> <string name="traffic_warning_calming">Χαλάρωση κυκλοφορίας</string>
<string name="save_global_track_interval_descr">Ορίστε τα χρονικά διαστήματα καταγραφής για τη γενική εγγραφή ιχνών (ενεργό μέσω του γραφικού στοιχείου καταγραφής GPX στον χάρτη).</string> <string name="save_global_track_interval_descr">Ορίστε τα χρονικά διαστήματα καταγραφής για τη γενική εγγραφή ιχνών (ενεργό μέσω του γραφικού στοιχείου καταγραφής GPX στον χάρτη).</string>
<string name="save_track_to_gpx_globally_headline">Καταγραφή ίχνους κατ΄ απαίτηση</string> <string name="save_track_to_gpx_globally_headline">Καταγραφή ίχνους κατ΄ απαίτηση</string>
<string name="enable_proxy_descr">Διαμόρφωση μεσολαβητή HTTP για όλες τις αιτήσεις δικτύου.</string> <string name="enable_proxy_descr">Διαμόρφωση μεσολαβητή HTTP για όλες τις αιτήσεις δικτύου.</string>
@ -2412,31 +2413,36 @@
\n</string> \n</string>
<string name="osmand_extended_description_part4">Χιονοδρομίες <string name="osmand_extended_description_part4">Χιονοδρομίες
\nΤο πρόσθετο χαρτών χιονοδρομιών σας επιτρέπει να δείτε ίχνη χιονοδρομιών με επίπεδο δυσκολίας και κάποιες πρόσθετες πληροφορίες, όπως τοποθεσίες αναβατορίων και άλλων εγκαταστάσεων.</string> \nΤο πρόσθετο χαρτών χιονοδρομιών σας επιτρέπει να δείτε ίχνη χιονοδρομιών με επίπεδο δυσκολίας και κάποιες πρόσθετες πληροφορίες, όπως τοποθεσίες αναβατορίων και άλλων εγκαταστάσεων.</string>
<string name="osmand_extended_description_part6">"Περπάτημα, πεζοπορία, γύρος της πόλης <string name="osmand_extended_description_part6">Περπάτημα, πεζοπορία, γύρος της πόλης
\n
\n • Ο χάρτης σας εμφανίζει διαδρομές περπατήματος και πεζοπορίας \n • Ο χάρτης σας εμφανίζει διαδρομές περπατήματος και πεζοπορίας
\n • Η βικιπαίδεια στην προτιμώμενη γλώσσα σας μπορεί να σας πει πολλά στον γύρο της πόλης \n
\n • Η βικιπαίδεια στην προτιμώμενη γλώσσα σας μπορεί να σας πει πολλά στον γύρο της πόλης
\n
\n • Οι στάσεις των δημόσιων συγκοινωνιών (λεωφορείου, τροχιόδρομου, σιδηρόδρομου), συμπεριλαμβάνοντας τα ονόματα γραμμών, βοηθούν στην πλοήγηση σε μια νέα πόλη \n • Οι στάσεις των δημόσιων συγκοινωνιών (λεωφορείου, τροχιόδρομου, σιδηρόδρομου), συμπεριλαμβάνοντας τα ονόματα γραμμών, βοηθούν στην πλοήγηση σε μια νέα πόλη
\n
\n • Η πλοήγηση GPS σε κατάσταση πεζού δημιουργεί τη διαδρομή σας χρησιμοποιώντας πεζοπορικές διαδρομές \n • Η πλοήγηση GPS σε κατάσταση πεζού δημιουργεί τη διαδρομή σας χρησιμοποιώντας πεζοπορικές διαδρομές
\n • Ανεβάσετε και ακολουθήσετε μια διαδρομή GPX ή καταγράψετε και μοιραστείτε τη δική σας \n
\n"</string> \n • Ανεβάσετε και ακολουθήσετε μια διαδρομή GPX ή καταγράψετε και μοιραστείτε τη δική σας
\n</string>
<string name="osmand_extended_description_part7">Συνεισφέρετε στο OSM <string name="osmand_extended_description_part7">Συνεισφέρετε στο OSM
\n • Αναφέρετε σφάλματα δεδομένων \n • Αναφέρετε σφάλματα δεδομένων
\n • Ανεβάστε ίχνη GPX στο OSM απευθείας από την εφαρμογή \n • Ανεβάστε ίχνη GPX στο OSM απευθείας από την εφαρμογή
\n • Προσθέστε ΣΕ και ανεβάστε τα απευθείας στο OSM (ή αργότερα εάν είσαστε χωρίς σύνδεση) \n • Προσθέστε ΣΕ και ανεβάστε τα απευθείας στο OSM (ή αργότερα εάν είσαστε χωρίς σύνδεση)
\n</string> \n</string>
<string name="osmand_extended_description_part8">Το OsmAnd αναπτύσσεται ενεργά από λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας μεταφράσεις ή κωδικοποιώντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται στις οικονομικές συνδρομές για να . Η πρόοδος του έργου βασίζεται επίσης στις οικονομικές συνεισφορές για να τροφοδοτήσει την κωδικοποίηση και τον έλεγχο των νέων λειτουργιών. <string name="osmand_extended_description_part8">Το OsmAnd αναπτύσσεται ενεργά από λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας μεταφράσεις ή κωδικοποιώντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται στις οικονομικές συνδρομές για χρηματοδότηση του κώδικα και των νέων λειτουργιών.
\n Προσεγγιστική κάλυψη χάρτη και ποιότητας: \n Προσεγγιστική κάλυψη χάρτη και ποιότητας:
\n • Δυτική Ευρώπη: **** \n • Δυτική Ευρώπη: ****
\n • Ανατολική Ευρώπη: *** \n • Ανατολική Ευρώπη: ***
\n • Ρωσία: *** \n • Ρωσία: ***
\n • Βόρεια Αμερική: *** \n • Βόρεια Αμερική: ***
\n • Νότια Αμερική: ** \n • Νότια Αμερική: **
\n • Ασία: ** \n • Ασία: **
\n • Ιαπωνία &amp; Κορέα: *** \n • Ιαπωνία &amp; Κορέα: ***
\n • Μέση Ανατολή ** \n • Μέση Ανατολή **
\n • Αφρική: ** \n • Αφρική: **
\n • Ανταρκτική * \n • Ανταρκτική *
\n Οι περισσότερες χώρες της Γης είναι διαθέσιμες για κατέβασμα! \n Οι περισσότερες χώρες της Γης είναι διαθέσιμες για κατέβασμα!
\n Πάρτε έναν αξιόπιστο πλοηγητή για τη χώρα σας - είτε είναι η Γαλλία, η Γερμανία, το Μεξικό, το Ενωμένο Βασίλειο, η Ισπανία, οι Κάτω Χώρες, οι ΗΠΑ, η Ρωσία, η Βραζιλία είτε οποιαδήποτε άλλη.</string> \n Πάρτε έναν αξιόπιστο πλοηγητή για τη χώρα σας - είτε είναι η Γαλλία, η Γερμανία, το Μεξικό, το Ενωμένο Βασίλειο, η Ισπανία, οι Κάτω Χώρες, οι ΗΠΑ, η Ρωσία, η Βραζιλία είτε οποιαδήποτε άλλη.</string>
<string name="osmand_plus_extended_description_part1">Το OsmAnd+ (OSM Automated Navigation Directions) είναι χάρτης και εφαρμογή πλοήγησης με πρόσβαση στα ελεύθερα, παγκόσμια και υψηλής ποιότητας δεδομένα του OSM. <string name="osmand_plus_extended_description_part1">Το OsmAnd+ (OSM Automated Navigation Directions) είναι χάρτης και εφαρμογή πλοήγησης με πρόσβαση στα ελεύθερα, παγκόσμια και υψηλής ποιότητας δεδομένα του OSM.
\n Απολαύστε φωνητική και οπτική καθοδήγηση, προβολή ΣΕ (σημείων ενδιαφέροντος), δημιουργία και διαχείριση ιχνών GPX, χρησιμοποιώντας ισοϋψείς γραμμές απεικόνισης και πληροφορίες υψομέτρου, επιλογή μεταξύ καταστάσεων οδήγησης, ποδηλάτου, πεζοπορίας, επεξεργασίας OSM και πολλών άλλων. \n Απολαύστε φωνητική και οπτική καθοδήγηση, προβολή ΣΕ (σημείων ενδιαφέροντος), δημιουργία και διαχείριση ιχνών GPX, χρησιμοποιώντας ισοϋψείς γραμμές απεικόνισης και πληροφορίες υψομέτρου, επιλογή μεταξύ καταστάσεων οδήγησης, ποδηλάτου, πεζοπορίας, επεξεργασίας OSM και πολλών άλλων.
@ -2482,11 +2488,16 @@
\n • Προαιρετική εμφάνιση ταχύτητας και υψομέτρου \n • Προαιρετική εμφάνιση ταχύτητας και υψομέτρου
\n • Εμφάνιση ισοϋψών γραμμών και σκίαση αναγλύφου (μέσω προσθέτου)</string> \n • Εμφάνιση ισοϋψών γραμμών και σκίαση αναγλύφου (μέσω προσθέτου)</string>
<string name="osmand_plus_extended_description_part7">"Απευθείας συνεισφορά στο OSM <string name="osmand_plus_extended_description_part7">"Απευθείας συνεισφορά στο OSM
\n
\n • Αναφορά σφαλμάτων δεδομένων \n • Αναφορά σφαλμάτων δεδομένων
\n
\n• Ανέβασμα ιχνών GPX στο OSM απευθείας από την εφαρμογή \n• Ανέβασμα ιχνών GPX στο OSM απευθείας από την εφαρμογή
\n • Προσθήκη ΣΕ και απευθείας ανέβασμα τους στο OSM (ή αργότερα εάν είναι χωρίς σύνδεση) \n
\n • Προσθήκη ΣΕ και απευθείας ανέβασμα τους στο OSM (ή αργότερα εάν είναι χωρίς σύνδεση)
\n
\n • Επίσης, προαιρετική καταγραφή ταξιδιού σε κατάσταση παρασκηνίου (ενώ η συσκευή είναι σε κατάσταση ύπνωσης) \n • Επίσης, προαιρετική καταγραφή ταξιδιού σε κατάσταση παρασκηνίου (ενώ η συσκευή είναι σε κατάσταση ύπνωσης)
\n Το OsmAnd είναι ενεργά αναπτυσσόμενο λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας τις μεταφράσεις, ή κωδικοποιόντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται επίσης στις χρηματικές συνεισφορές για χρηματοδότηση κωδικοποίησης και ελέγχου των νέων λειτουργιών. \n
\n Το OsmAnd είναι ενεργά αναπτυσσόμενο λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας τις μεταφράσεις, ή κωδικοποιώντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται επίσης στις χρηματικές συνεισφορές για χρηματοδότηση κωδικοποίησης και ελέγχου των νέων λειτουργιών.
\n"</string> \n"</string>
<string name="osmand_plus_extended_description_part8">Προσεγγιστική κάλυψη χαρτών και ποιότητα: <string name="osmand_plus_extended_description_part8">Προσεγγιστική κάλυψη χαρτών και ποιότητα:
\n • Δυτική Ευρώπη: **** \n • Δυτική Ευρώπη: ****
@ -2499,7 +2510,8 @@
\n • Μέση Ανατολή: ** \n • Μέση Ανατολή: **
\n • Αφρική ** \n • Αφρική **
\n • Ανταρκτική: * \n • Ανταρκτική: *
\n Οι περισσότερες χώρες της Γης είναι διαθέσεις για λήψη! Από το Αφγανιστάν μέχρι τη Ζιμπάμπουε, από την Αυστραλία μέχρι τις ΗΠΑ. Αργεντινή, Βραζιλία, Καναδάς, Γαλλία, Γερμανία, Μεξικό, Ενωμένο Βασίλειο, Ισπανία, … \n Οι περισσότερες χώρες της Γης είναι διαθέσεις για λήψη
\n Από το Αφγανιστάν μέχρι τη Ζιμπάμπουε, από την Αυστραλία μέχρι τις ΗΠΑ. Αργεντινή, Βραζιλία, Καναδάς, Γαλλία, Γερμανία, Μεξικό, Ενωμένο Βασίλειο, Ισπανία, …
\n</string> \n</string>
<string name="share_route_subject">Διαμοιρασμένη διαδρομή μέσω OsmAnd</string> <string name="share_route_subject">Διαμοιρασμένη διαδρομή μέσω OsmAnd</string>
<string name="local_index_description">Πατήστε οποιοδήποτε υφιστάμενο στοιχείο για να δείτε περισσότερες λεπτομέρειες, παρατεταμένο πάτημα για απενεργοποίηση ή διαγραφή. Τρέχοντα δεδομένα στη συσκευή (%1$s ελεύθερα):</string> <string name="local_index_description">Πατήστε οποιοδήποτε υφιστάμενο στοιχείο για να δείτε περισσότερες λεπτομέρειες, παρατεταμένο πάτημα για απενεργοποίηση ή διαγραφή. Τρέχοντα δεδομένα στη συσκευή (%1$s ελεύθερα):</string>
@ -2708,7 +2720,7 @@
<string name="empty_state_my_tracks">Προσθήκη αρχείων GPX</string> <string name="empty_state_my_tracks">Προσθήκη αρχείων GPX</string>
<string name="empty_state_my_tracks_desc">Εισαγωγή αρχείων GPX, ή καταγραφή ιχνών.</string> <string name="empty_state_my_tracks_desc">Εισαγωγή αρχείων GPX, ή καταγραφή ιχνών.</string>
<string name="empty_state_favourites">Προσθήκη αγαπημένων</string> <string name="empty_state_favourites">Προσθήκη αγαπημένων</string>
<string name="empty_state_favourites_desc">Εισαγωγή αγαπημένων, ή προσθήκη μέσω σημείων επισήμανσης στον χάρτη.</string> <string name="empty_state_favourites_desc">Εισαγωγή αγαπημένων, ή προσθήκη τους μέσω σημείων επισήμανσης στον χάρτη.</string>
<string name="import_track">Εισαγωγή αρχείου GPX</string> <string name="import_track">Εισαγωγή αρχείου GPX</string>
<string name="import_track_desc">Το αρχείο %1$s δεν περιέχει σημεία διαδρομής, να εισαχθεί ως ίχνος;</string> <string name="import_track_desc">Το αρχείο %1$s δεν περιέχει σημεία διαδρομής, να εισαχθεί ως ίχνος;</string>
<string name="move_point">Μετακίνηση σημείου</string> <string name="move_point">Μετακίνηση σημείου</string>
@ -2744,7 +2756,7 @@
<string name="update_is_available">Υπάρχει διαθέσιμη ενημέρωση</string> <string name="update_is_available">Υπάρχει διαθέσιμη ενημέρωση</string>
<string name="download_file">Λήψη αρχείου</string> <string name="download_file">Λήψη αρχείου</string>
<string name="start_editing_card_image_text">Ο ελεύθερος παγκόσμιος ταξιδιωτικός οδηγός που οποιοσδήποτε μπορεί να επεξεργαστεί.</string> <string name="start_editing_card_image_text">Ο ελεύθερος παγκόσμιος ταξιδιωτικός οδηγός που οποιοσδήποτε μπορεί να επεξεργαστεί.</string>
<string name="welcome_to_open_beta_description">"Το OsmAnd Travel βασίζεται, προς το παρόν, στα βικιταξίδια. Ελέγξτε όλα τα χαρακτηριστικά δωρεάν κατά την ανοικτή βήμα δοκιμή. Κατόπιν, οι οδηγοί ταξιδιού θα είναι διαθέσιμοι στους συνδρομητές του απεριόριστου OsmAnd και στους κατόχους του OsmAnd+."</string> <string name="welcome_to_open_beta_description">Το OsmAnd Travel βασίζεται, προς το παρόν, στα βικιταξίδια. Ελέγξτε όλα τα χαρακτηριστικά δωρεάν κατά την ανοικτή βήμα δοκιμή. Κατόπιν, οι οδηγοί ταξιδιού θα είναι διαθέσιμοι στους συνδρομητές του απεριόριστου OsmAnd και στους κατόχους του OsmAnd+.</string>
<string name="start_editing_card_description">Μπορείτε και πρέπει να επεξεργαστείτε οποιοδήποτε άρθρο στο βικιταξίδια, Μοιραστείτε τη γνώση, την εμπειρία, το ταλέντο και την προσοχή σας.</string> <string name="start_editing_card_description">Μπορείτε και πρέπει να επεξεργαστείτε οποιοδήποτε άρθρο στο βικιταξίδια, Μοιραστείτε τη γνώση, την εμπειρία, το ταλέντο και την προσοχή σας.</string>
<string name="start_editing">Έναρξη επεξεργασίας</string> <string name="start_editing">Έναρξη επεξεργασίας</string>
<string name="get_unlimited_access">Πάρτε απεριόριστη πρόσβαση</string> <string name="get_unlimited_access">Πάρτε απεριόριστη πρόσβαση</string>
@ -2824,7 +2836,7 @@
<string name="test_voice_desrc">Πιέστε ένα κουμπί και ακούστε την φωνητική προτροπή για να ταυτοποιήσετε αν απουσιάζει ή είναι εσφαλμένη</string> <string name="test_voice_desrc">Πιέστε ένα κουμπί και ακούστε την φωνητική προτροπή για να ταυτοποιήσετε αν απουσιάζει ή είναι εσφαλμένη</string>
<string name="osm_live_subscriptions">Συνδρομές</string> <string name="osm_live_subscriptions">Συνδρομές</string>
<string name="powered_by_osmand">Από το OsmAnd</string> <string name="powered_by_osmand">Από το OsmAnd</string>
<string name="osm_live_plan_pricing">"Δυνατότητες και τιμές"</string> <string name="osm_live_plan_pricing">Δυνατότητες και τιμές</string>
<string name="osm_live_payment_monthly_title">Μηνιαία</string> <string name="osm_live_payment_monthly_title">Μηνιαία</string>
<string name="osm_live_payment_3_months_title">Τριμηνιαία</string> <string name="osm_live_payment_3_months_title">Τριμηνιαία</string>
<string name="osm_live_payment_annual_title">Ετήσια</string> <string name="osm_live_payment_annual_title">Ετήσια</string>
@ -3078,7 +3090,7 @@
<string name="turn_screen_on_router">Ενεργοποίηση στη στροφή</string> <string name="turn_screen_on_router">Ενεργοποίηση στη στροφή</string>
<string name="turn_screen_on_time_descr">Ορίστε για πόσο χρόνο θα είναι ενεργοποιημένη η οθόνη.</string> <string name="turn_screen_on_time_descr">Ορίστε για πόσο χρόνο θα είναι ενεργοποιημένη η οθόνη.</string>
<string name="turn_screen_on_sensor">Χρήση του αισθητήρα προσέγγισης</string> <string name="turn_screen_on_sensor">Χρήση του αισθητήρα προσέγγισης</string>
<string name="turn_screen_on_sensor_descr">Κουνήστε το χέρι σας πάνω από την οθόνη για να την ενεργοποιήσετε κατά την πλοήγηση.</string> <string name="turn_screen_on_sensor_descr">Η κίνηση του χεριού σας πάνω από την οθόνη θα την ενεργοποιήσει.</string>
<string name="turn_on_profile_desc">Παρακαλώ ενεργοποιήστε τουλάχιστον ένα προφίλ για τη χρήση αυτής της ρύθμισης.</string> <string name="turn_on_profile_desc">Παρακαλώ ενεργοποιήστε τουλάχιστον ένα προφίλ για τη χρήση αυτής της ρύθμισης.</string>
<string name="rendering_attr_winter_road_name">Δρόμος του Χειμώνα</string> <string name="rendering_attr_winter_road_name">Δρόμος του Χειμώνα</string>
<string name="rendering_attr_ice_road_name">Παγωμένος δρόμος</string> <string name="rendering_attr_ice_road_name">Παγωμένος δρόμος</string>
@ -3245,7 +3257,7 @@
<string name="analytics_pref_title">Αναλυτικά στοιχεία</string> <string name="analytics_pref_title">Αναλυτικά στοιχεία</string>
<string name="turn_screen_on_info">Εμφάνιση χάρτη στην οθόνη κλειδώματος κατά την πλοήγηση.</string> <string name="turn_screen_on_info">Εμφάνιση χάρτη στην οθόνη κλειδώματος κατά την πλοήγηση.</string>
<string name="route_parameters_info">Ρυθμίσεις δρομολόγησης στο επιλεγμένο προφίλ \"%1$s\".</string> <string name="route_parameters_info">Ρυθμίσεις δρομολόγησης στο επιλεγμένο προφίλ \"%1$s\".</string>
<string name="wake_time">Ώρα αφύπνισης</string> <string name="wake_time">Αναμονή μετά την αφύπνιση</string>
<string name="units_and_formats">Μονάδες μέτρησης &amp; φορμά</string> <string name="units_and_formats">Μονάδες μέτρησης &amp; φορμά</string>
<string name="appearance">Εμφάνιση</string> <string name="appearance">Εμφάνιση</string>
<string name="map_look_descr">Εμφάνιση χάρτη</string> <string name="map_look_descr">Εμφάνιση χάρτη</string>
@ -3267,7 +3279,7 @@
<string name="map_during_navigation_info">Χάρτης κατά την πλοήγηση</string> <string name="map_during_navigation_info">Χάρτης κατά την πλοήγηση</string>
<string name="map_during_navigation">Χάρτης κατά την πλοήγηση</string> <string name="map_during_navigation">Χάρτης κατά την πλοήγηση</string>
<string name="shared_string_other">Άλλα</string> <string name="shared_string_other">Άλλα</string>
<string name="vehicle_parameters_descr">Βάρος, ύψος, ταχύτητα</string> <string name="vehicle_parameters_descr">Βάρος, ύψος, μήκος, ταχύτητα</string>
<string name="vehicle_parameters">Παράμετροι οχήματος</string> <string name="vehicle_parameters">Παράμετροι οχήματος</string>
<string name="voice_announces_info">Οι φωνητικές ανακοινώσεις να γίνονται μόνο κατά την πλοήγηση.</string> <string name="voice_announces_info">Οι φωνητικές ανακοινώσεις να γίνονται μόνο κατά την πλοήγηση.</string>
<string name="voice_announces_descr">Οδηγίες πλοήγησης και ανακοινώσεις</string> <string name="voice_announces_descr">Οδηγίες πλοήγησης και ανακοινώσεις</string>
@ -3466,7 +3478,7 @@
<string name="monitoring_min_speed_descr_side_effect">Παράπλευρο φαινόμενο: Θα λείπουν από τη διαδρομή σας όλες οι ενότητες όπου δεν καλύπτονται από το κριτήριο της ελάχιστης ταχύτητας (π.χ. όταν σπρώχνετε το μηχανάκι σας σε απότομο λόφο). Επίσης, δεν θα υπάρχουν πληροφορίες για περιόδους ακινησίας, όπως φρένα. Αυτό έχει συνέπειες στην ανάλυση ή την μετεπεξεργασία, όπως όταν προσπαθείτε να καθορίσετε το συνολικό μήκος του ταξιδιού σας, τον χρόνο κίνησης, ή την μέση ταχύτητά σας.</string> <string name="monitoring_min_speed_descr_side_effect">Παράπλευρο φαινόμενο: Θα λείπουν από τη διαδρομή σας όλες οι ενότητες όπου δεν καλύπτονται από το κριτήριο της ελάχιστης ταχύτητας (π.χ. όταν σπρώχνετε το μηχανάκι σας σε απότομο λόφο). Επίσης, δεν θα υπάρχουν πληροφορίες για περιόδους ακινησίας, όπως φρένα. Αυτό έχει συνέπειες στην ανάλυση ή την μετεπεξεργασία, όπως όταν προσπαθείτε να καθορίσετε το συνολικό μήκος του ταξιδιού σας, τον χρόνο κίνησης, ή την μέση ταχύτητά σας.</string>
<string name="monitoring_min_speed_descr_recommendation">Σύσταση: Προσπαθήστε να χρησιμοποιήσετε τον εντοπισμό ταχύτητας μέσω του φίλτρου μετατόπισης ελάχιστης καταγραφής (Β) πρώτα, μπορεί να παράξει καλύτερα αποτελέσματα και θα χάσετε λιγότερα δεδομένα. Εάν οι διαδρομές σας παραμένουν θορυβώδεις σε χαμηλές ταχύτητες, δοκιμάστε μη μηδενικές τιμές εδώ. Σημειώστε ότι κάποιες μετρήσεις μπορεί να μην αναφέρουν καθόλου τιμή ταχύτητας (κάποιες μέθοδοι που βασίζονται σε δίκτυα), οπότε δεν θα μπορέσετε να εγγράψετε τίποτα.</string> <string name="monitoring_min_speed_descr_recommendation">Σύσταση: Προσπαθήστε να χρησιμοποιήσετε τον εντοπισμό ταχύτητας μέσω του φίλτρου μετατόπισης ελάχιστης καταγραφής (Β) πρώτα, μπορεί να παράξει καλύτερα αποτελέσματα και θα χάσετε λιγότερα δεδομένα. Εάν οι διαδρομές σας παραμένουν θορυβώδεις σε χαμηλές ταχύτητες, δοκιμάστε μη μηδενικές τιμές εδώ. Σημειώστε ότι κάποιες μετρήσεις μπορεί να μην αναφέρουν καθόλου τιμή ταχύτητας (κάποιες μέθοδοι που βασίζονται σε δίκτυα), οπότε δεν θα μπορέσετε να εγγράψετε τίποτα.</string>
<string name="monitoring_min_speed_descr_remark">Σημείωση: ταχύτητα &gt; 0 ελέγξτε: Τα περισσότερα κυκλώματα GPS αναφέρουν τιμή ταχύτητας μόνο εάν ο αλγόριθμος καθορίζει ότι κινείστε και καμία όταν δεν κινείστε. Συνεπώς χρησιμοποιώντας τη ρύθμιση &gt; 0 σε αυτό το φίλτρο χρησιμοποιεί τον εντοπισμό κίνησης του κυκλώματος GPS. Αλλά ακόμα κι αν δεν φιλτραριστεί εδώ κατά τον χρόνο εγγραφής, εξακολουθούμε να χρησιμοποιούμε αυτό το γνώρισμα στην ανάλυση GPX για τον καθορισμό της διορθωμένης απόστασης, δηλ. η εμφανιζόμενη τιμή σε αυτό το πεδίο είναι η καταγραφόμενη απόσταση κατά την κίνηση.</string> <string name="monitoring_min_speed_descr_remark">Σημείωση: ταχύτητα &gt; 0 ελέγξτε: Τα περισσότερα κυκλώματα GPS αναφέρουν τιμή ταχύτητας μόνο εάν ο αλγόριθμος καθορίζει ότι κινείστε και καμία όταν δεν κινείστε. Συνεπώς χρησιμοποιώντας τη ρύθμιση &gt; 0 σε αυτό το φίλτρο χρησιμοποιεί τον εντοπισμό κίνησης του κυκλώματος GPS. Αλλά ακόμα κι αν δεν φιλτραριστεί εδώ κατά τον χρόνο εγγραφής, εξακολουθούμε να χρησιμοποιούμε αυτό το γνώρισμα στην ανάλυση GPX για τον καθορισμό της διορθωμένης απόστασης, δηλ. η εμφανιζόμενη τιμή σε αυτό το πεδίο είναι η καταγραφόμενη απόσταση κατά την κίνηση.</string>
<string name="monitoring_min_accuracy_descr">Αυτό θα καταγράψει μόνο μετρημένα σημεία με ελάχιστη ένδειξη ακρίβειας (σε μέτρα/πόδια, όπως αναφέρεται από το Android για το κύκλωμά σας). Η ακρίβεια αναφέρεται στη διασπορά των επαναλαμβανόμενων μετρήσεων και δεν σχετίζεται άμεσα με την ακρίβεια, που καθορίζει πόσο κοντά είναι οι μετρήσεις σας με την πραγματική σας θέση.</string> <string name="monitoring_min_accuracy_descr">Αυτό θα καταγράψει μόνο μετρημένα σημεία με ελάχιστη ένδειξη ακρίβειας (σε μέτρα/πόδια, όπως αναφέρεται από το Android για το κύκλωμά σας). Ακρίβεια είναι η εγγύτητα των μετρήσεων με την πραγματική θέση και δεν σχετίζεται άμεσα με τη διακύμανση που είναι η διασπορά των επαναλαμβανόμενων μετρήσεων.</string>
<string name="monitoring_min_accuracy_descr_side_effect">Παράπλευρο φαινόμενο: Ως αποτέλεσμα φιλτραρίσματος από ακρίβεια, μπορεί να λείπουν πλήρως σημεία, π.χ. κάτω από γέφυρες, κάτω από δένδρα, μεταξύ υψηλών κτιρίων, ή με συγκεκριμένες συνθήκες καιρού.</string> <string name="monitoring_min_accuracy_descr_side_effect">Παράπλευρο φαινόμενο: Ως αποτέλεσμα φιλτραρίσματος από ακρίβεια, μπορεί να λείπουν πλήρως σημεία, π.χ. κάτω από γέφυρες, κάτω από δένδρα, μεταξύ υψηλών κτιρίων, ή με συγκεκριμένες συνθήκες καιρού.</string>
<string name="monitoring_min_accuracy_descr_recommendation">Σύσταση: Είναι δύσκολο να προβλεφθεί τι θα εγγραφεί και τι όχι, ίσως είναι καλύτερο να απενεργοποιήσετε αυτό το φίλτρο.</string> <string name="monitoring_min_accuracy_descr_recommendation">Σύσταση: Είναι δύσκολο να προβλεφθεί τι θα εγγραφεί και τι όχι, ίσως είναι καλύτερο να απενεργοποιήσετε αυτό το φίλτρο.</string>
<string name="monitoring_min_accuracy_descr_remark">Παρατήρηση: Εάν το GPS είχε απενεργοποιηθεί αμέσως πριν μια εγγραφή, το πρώτο μετρούμενο σημείο μπορεί να έχει μειωμένη ακρίβεια, έτσι μπορεί να θέλουμε να περιμένουμε λιγάκι πριν την καταγραφή σημείου (ή να εγγράψουμε τα καλύτερα 3 διαδοχικά σημεία, κλπ.), αλλά αυτό δεν έχει ακόμα υλοποιηθεί.</string> <string name="monitoring_min_accuracy_descr_remark">Παρατήρηση: Εάν το GPS είχε απενεργοποιηθεί αμέσως πριν μια εγγραφή, το πρώτο μετρούμενο σημείο μπορεί να έχει μειωμένη ακρίβεια, έτσι μπορεί να θέλουμε να περιμένουμε λιγάκι πριν την καταγραφή σημείου (ή να εγγράψουμε τα καλύτερα 3 διαδοχικά σημεία, κλπ.), αλλά αυτό δεν έχει ακόμα υλοποιηθεί.</string>
@ -3478,32 +3490,32 @@
<string name="live_monitoring_tracking_interval">Χρονικά διαστήματα ιχνηλάτησης</string> <string name="live_monitoring_tracking_interval">Χρονικά διαστήματα ιχνηλάτησης</string>
<string name="search_offline_geo_error">Αδυναμία ανάλυσης γεωγραφικού στόχου \'%s\'.</string> <string name="search_offline_geo_error">Αδυναμία ανάλυσης γεωγραφικού στόχου \'%s\'.</string>
<string name="rearrange_categories">Αναδιάταξη κατηγοριών</string> <string name="rearrange_categories">Αναδιάταξη κατηγοριών</string>
<string name="create_custom_categories_list_promo">Μπορείτε να προσθέσετε προσαρμοσμένες κατηγορίες να απόκρυψεται κατηγορίες που δεν βρίσκεται απαραίτητες και να αλλάξετε τη σειρά ταξινόμησης του καταλόγου. Ο κατάλογος μπορεί να εισαχθεί και να εξαχθεί με προφίλ.</string> <string name="create_custom_categories_list_promo">Η αλλαγή της σειράς διάταξης του καταλόγου, αποκρύπτει τις κατηγορίες. Μπορείτε να εισάγετε ή να εξάγετε όλες τις αλλαγές με κατατομές (προφίλ).</string>
<string name="add_new_custom_category_button_promo">Μπορείτε να προσθέσετε μια νέα προσαρμοσμένη κατηγορία επιλέγοντας μία ή μερικές απαιτούμενες κατηγορίες.</string> <string name="add_new_custom_category_button_promo">Μπορείτε να προσθέσετε μια νέα προσαρμοσμένη κατηγορία επιλέγοντας μία ή περισσότερες κατηγορίες.</string>
<string name="reset_to_default_category_button_promo">Επαναφορά στην προεπιλογή θα επαναφέρει τη ταξινόμηση στην προεπιλεγμένη κατάσταση μετά την εγκατάσταση.</string> <string name="reset_to_default_category_button_promo">Το \'Επαναφορά στην προεπιλογή\' θα επαναφέρει τη σειρά ταξινόμησης στην προεπιλεγμένη εγκατάσταση.</string>
<string name="shared_string_available">Διαθέσιμα</string> <string name="shared_string_available">Διαθέσιμα</string>
<string name="add_custom_category">Προσθήκη προσαρμοσμένης κατηγορίας</string> <string name="add_custom_category">Προσθήκη προσαρμοσμένης κατηγορίας</string>
<string name="rendering_attr_streetLightingNight_name">Εμφάνιση μόνο τη νύχτα</string> <string name="rendering_attr_streetLightingNight_name">Εμφάνιση μόνο τη νύχτα</string>
<string name="plugin_prefs_reset_successful">Όλες οι ρυθμίσεις πρόσθετων επαναφέρθηκαν στην προεπιλεγμένη κατάσταση.</string> <string name="plugin_prefs_reset_successful">Όλες οι ρυθμίσεις πρόσθετων επαναφέρθηκαν στην προεπιλογή.</string>
<string name="profile_prefs_reset_successful">Όλες οι ρυθμίσεις προφίλ επαναφέρθηκαν στην προεπιλεγμένη κατάσταση.</string> <string name="profile_prefs_reset_successful">Όλες οι ρυθμίσεις κατατομών (προφίλ) επαναφέρθηκαν στην προεπιλογή.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string> <string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Ηλιοβασίλεμα στις %1$s</string> <string name="sunset_at">Ηλιοβασίλεμα στις %1$s</string>
<string name="sunrise_at">Ανατολή του ηλίου στις %1$s</string> <string name="sunrise_at">Ανατολή του ηλίου στις %1$s</string>
<string name="accessibility_mode_disabled">Η λειτουργία προσβασιμότητας απενεργοποιήθηκε στο σύστημά σας.</string> <string name="accessibility_mode_disabled">Η λειτουργία προσβασιμότητας απενεργοποιήθηκε στο Android σύστημά σας.</string>
<string name="use_system_screen_timeout">Χρήση χρονικού ορίου της οθόνης από το σύστημα</string> <string name="use_system_screen_timeout">Χρήση του χρονικού ορίου της οθόνης του συστήματος</string>
<string name="clear_recorded_data">Εκκαθάριση κατεγραμμένων δεδομένων</string> <string name="clear_recorded_data">Εκκαθάριση κατεγραμμένων δεδομένων</string>
<string name="copy_coordinates">Αντέγραψε συντεταγμένες</string> <string name="copy_coordinates">Αντέγραψε συντεταγμένες</string>
<string name="routing_profile_direct_to">Άμεσα-στο-σημείο</string> <string name="routing_profile_direct_to">Άμεσα-στο-σημείο</string>
<string name="please_provide_profile_name_message">Καταχωρίστε ένα όνομα για το προφίλ</string> <string name="please_provide_profile_name_message">Καταχωρίστε ένα όνομα για το προφίλ</string>
<string name="open_settings">Άνοιγμα ρυθμίσεων</string> <string name="open_settings">Άνοιγμα ρυθμίσεων</string>
<string name="plugin_disabled">Πρόσθετο απενεργοποιημένο</string> <string name="plugin_disabled">Ανενεργό πρόσθετο</string>
<string name="plugin_disabled_descr">Αυτο το πρόσθετο είναι ξεχωριστή εφαρμογή, θα πρέπει να το απεγκαταστήσετε ξεχωριστά αν πλέον δεν το χρησιμοποιήτε. <string name="plugin_disabled_descr">Αυτό το πρόσθετο είναι ξεχωριστή εφαρμογή, θα πρέπει να το αφαιρέσετε ξεχωριστά εάν πλέον δεν σκοπεύετε να το χρησιμοποιήσετε.
\n \n
\nΤο πρόσθετο θα παραμείνει στη συσκευή μετά την απεγκατάσταση του OsmAnd.</string> \nΤο πρόσθετο θα παραμείνει στη συσκευή μετά την απεγκατάσταση του OsmAnd.</string>
<string name="shared_string_menu">Μενού</string> <string name="shared_string_menu">Μενού</string>
<string name="ltr_or_rtl_triple_combine_via_dash">%1$s — %2$s — %3$s</string> <string name="ltr_or_rtl_triple_combine_via_dash">%1$s — %2$s — %3$s</string>
<string name="shared_string_app_default_w_val">Προεπιλογή της εφαρμογής (%s)</string> <string name="shared_string_app_default_w_val">Προεπιλογή της εφαρμογής (%s)</string>
<string name="no_recalculation_setting">Απενεργοποίησε τον επανυπολογισμό</string> <string name="no_recalculation_setting">Χωρίς επανυπολογισμό</string>
<string name="route_recalculation_dist_title">Ελάχιστη απόσταση για επανυπολογισμό διαδρομής</string> <string name="route_recalculation_dist_title">Ελάχιστη απόσταση για επανυπολογισμό διαδρομής</string>
<string name="route_recalculation_dist_descr">Η διαδρομή θα επανυπολογισθεί αν η απόσταση από την διαδρομή είναι μακρύτερη από μια συγκεκριμένη παράμετρο</string> <string name="route_recalculation_dist_descr">Η διαδρομή θα επανυπολογισθεί αν η απόσταση από την διαδρομή είναι μακρύτερη από μια συγκεκριμένη παράμετρο</string>
<string name="profile_type_custom_string">Προσαρμοσμένη κατανομή</string> <string name="profile_type_custom_string">Προσαρμοσμένη κατανομή</string>
@ -3520,7 +3532,7 @@
<string name="replace_all_desc">Τα τρέχοντα αντικείμενα θα αντικατασταθούν με αντικείμενα από το αρχείο</string> <string name="replace_all_desc">Τα τρέχοντα αντικείμενα θα αντικατασταθούν με αντικείμενα από το αρχείο</string>
<string name="replace_all">Αντικατάσταση όλων</string> <string name="replace_all">Αντικατάσταση όλων</string>
<string name="keep_both">Διατήρηση και των δύο</string> <string name="keep_both">Διατήρηση και των δύο</string>
<string name="keep_both_desc">Τα εισαχθέντα αντικείμενα θα προστεθούν με πρόθεμα</string> <string name="keep_both_desc">Τα εισαχθέντα στοιχεία θα προστεθούν με πρόθεμα</string>
<string name="import_duplicates_description">Το OsmAnd έχει ήδη στοιχεία με το ίδιο όνομα όπως τα εισηχθέντα. <string name="import_duplicates_description">Το OsmAnd έχει ήδη στοιχεία με το ίδιο όνομα όπως τα εισηχθέντα.
\n \n
\nΕπιλέξτε μια ενέργεια.</string> \nΕπιλέξτε μια ενέργεια.</string>
@ -3736,4 +3748,117 @@
<string name="lang_uz">Ουζμπέκικα</string> <string name="lang_uz">Ουζμπέκικα</string>
<string name="lang_ur">Ουρντού</string> <string name="lang_ur">Ουρντού</string>
<string name="lang_tt">Ταταρικά</string> <string name="lang_tt">Ταταρικά</string>
<string name="use_system_screen_timeout_promo">Προεπιλεγμένη απενεργοποίηση: Όσο εκτελείται το OsmAnd στο προσκήνιο, η οθόνη δεν θα σβήσει.
\n
\nΕάν είναι ενεργό, το OsmAnd θα χρησιμοποιήσει τη ρύθμιση χρόνου αδράνειας του συστήματος.</string>
<string name="release_3_6">• Κατατομές (προφίλ): τώρα μπορείτε να αλλάξετε τη σειρά, να ορίσετε εικονίδιο για τον χάρτη, να αλλάξετε όλες τις ρυθμίσεις για κατατομές βάσης και να τις επαναφέρετε στις προεπιλογές.
\n
\n • Προστέθηκε αριθμός εξόδου στην πλοήγηση
\n
\n • Ξαναδουλεύτηκαν οι ρυθμίσεις προσθέτου
\n
\n • Ξαναδουλεύτηκε η οθόνη ρυθμίσεων για γρήγορη πρόσβαση σε όλες τις κατατομές
\n
\n • Προστέθηκε επιλογή αντιγραφής ρυθμίσεων από άλλη κατατομή
\n
\n • Προστέθηκε η δυνατότητα αλλαγής σειράς ή απόκρυψης κατηγοριών ΣΕ στην αναζήτηση
\n
\n • Καλύτερη στοίχιση εικονιδίων ΣΕ στον χάρτη
\n
\n • Προστέθηκαν δεδομένα δύσης / ανατολής για τον χάρτη διαμόρφωσης
\n
\n • Προστέθηκαν εικονίδια οικίας/εργασίας στον χάρτη
\n
\n • Προστέθηκε υποστήριξη για περιγραφή πολλών γραμμών στις ρυθμίσεις
\n
\n • Προστέθηκε σωστή μεταγραφή στον χάρτη Ιαπωνίας
\n
\n • Προστέθηκε χάρτης της Ανταρκτικής
\n
\n</string>
<string name="index_name_antarctica">Ανταρκτική</string>
<string name="sort_by_category">Ταξινόμηση κατά κατηγορία</string>
<string name="shared_string_resume">Συνέχιση</string>
<string name="export_profile_dialog_description">Μπορείτε να επιλέξετε πρόσθετα δεδομένα για εξαγωγή μαζί με την κατατομή (προφίλ).</string>
<string name="import_profile_dialog_description">Η εισαγόμενη κατατομή (προφίλ) περιέχει πρόσθετα δεδομένα. Πατήστε \"Εισαγωγή\" για να εισάγετε μόνο δεδομένα κατατομής, ή επιλέξτε πρόσθετα δεδομένα.</string>
<string name="shared_string_include_data">Να συμπεριλαμβάνονται πρόσθετα δεδομένα</string>
<string name="shared_string_rendering_style">Τεχνοτροπία απόδοσης</string>
<string name="shared_string_routing">Δρομολόγηση</string>
<string name="import_rendering_file">Εισαγωγή αρχείου απόδοσης</string>
<string name="shared_string_terrain">Έδαφος</string>
<string name="hillshade_description">Η σκίαση αναγλύφου με σκούρες σκιές για την εμφάνιση κλίσεων, κορυφών και πεδινών.</string>
<string name="slope_description">Η κλίση χρησιμοποιεί χρώματα για να οπτικοποιήσει την κλίση του εδάφους.</string>
<string name="terrain_slider_description">Ορίστε το μέγιστο και το ελάχιστο επίπεδο εστίασης στον οποίο θα εμφανίζεται η στρώση.</string>
<string name="hillshade_download_description">Απαιτούνται πρόσθετοι χάρτες για να προβάλετε τη σκίαση αναγλύφου στον χάρτη.</string>
<string name="slope_download_description">Απαιτούνται πρόσθετοι χάρτες για να προβάλετε τις κλίσεις στον χάρτη.</string>
<string name="slope_read_more">Μπορείτε να διαβάσετε περισσότερα για τις κλίσεις στο %1$s.</string>
<string name="shared_string_transparency">Διαφάνεια</string>
<string name="shared_string_zoom_levels">Επίπεδα εστίασης</string>
<string name="shared_string_legend">Υπόμνημα</string>
<string name="terrain_empty_state_text">Ενεργοποιήστε το για να προβάλετε σκίαση αναγλύφου ή χάρτη κλίσεων. Μπορείτε να διαβάσετε περισσότερα για αυτούς τους τύπους χάρτη στον ιστότοπό μας.</string>
<string name="shared_string_hillshade">Σκίαση ανάγλυφου</string>
<string name="import_complete_description">Εισήχθησαν όλα τα δεδομένα από το %1$s, μπορείτε να χρησιμοποιήσετε τα παρακάτω πλήκτρα για να ανοίξετε το απαιτούμενο τμήμα της εφαρμογής για να το διαχειριστείτε.</string>
<string name="shared_string_import_complete">Ολοκλήρωση εισαγωγής</string>
<string name="items_added">Προστέθηκαν στοιχεία</string>
<string name="checking_for_duplicate_description">Το OsmAnd ελέγχει το %1$s για διπλότυπα με υφιστάμενα στοιχεία στην εφαρμογή.
\n
\nΜπορεί να πάρει κάποιο χρόνο.</string>
<string name="shared_string_importing">Εισάγεται</string>
<string name="importing_from">Εισαγωγή δεδομένων από το %1$s</string>
<string name="profile_backup_failed">Αδυναμία δημιουργίας αντιγράφου κατατομής.</string>
<string name="saving_new_profile">Αποθήκευση νέας κατατομής (προφίλ)</string>
<string name="restore_all_profile_settings">Να επαναφερθούν όλες οι ρυθμίσεις κατατομών (προφίλ);</string>
<string name="restore_all_profile_settings_descr">Όλες οι ρυθμίσεις κατατομής (προφίλ) θα επαναφερθούν στην αρχική τους κατάσταση μετά τη δημιουργία/εισαγωγή αυτής της κατατομής.</string>
<string name="clear_recorded_data_warning">Είσαστε σίγουρος ότι θέλετε να καθαρίσετε τα καταγεγραμμένα δεδομένα;</string>
<string name="recalculate_route_in_deviation">Επανυπολογισμός διαδρομής σε περίπτωση απόκλισης</string>
<string name="select_distance_route_will_recalc">Επιλέξτε την απόσταση μετά την οποία η διαδρομή θα επανυπολογιστεί.</string>
<string name="recalculate_route_distance_promo">Η διαδρομή θα επανυπολογιστεί εάν η απόσταση από τη διαδρομή στην τρέχουσα θέση είναι μεγαλύτερη από την επιλεγμένη τιμή.</string>
<string name="n_items_of_z">%1$s από %2$s</string>
<string name="download_slope_maps">Πλαγιές</string>
<string name="quick_action_show_hide_terrain">Εμφάνιση / απόκρυψη εδάφους</string>
<string name="quick_action_terrain_hide">Απόκρυψη εδάφους</string>
<string name="quick_action_terrain_show">Εμφάνιση εδάφους</string>
<string name="quick_action_terrain_descr">Ένα πλήκτρο εμφάνισης ή απόκρυψης της στρώσης εδάφους στον χάρτη.</string>
<string name="delete_description">Διαγραφή περιγραφής</string>
<string name="add_description">Προσθήκη περιγραφής</string>
<string name="select_group">Επιλογή ομάδας</string>
<string name="select_shape">Επιλογή σχήματος</string>
<string name="shared_string_circle">Κύκλος</string>
<string name="shared_string_octagon">Οκτάγωνο</string>
<string name="shared_string_square">Τετράγωνο</string>
<string name="shared_string_min">Ελαχ</string>
<string name="ui_customization_description">Προσαρμογή της ποσότητας στοιχείων στον \"Σχεδιαστή\", \"Χάρτη διαμόρφωσης\" και \"Μενού περιβάλλοντος\".
\n
\nΑπενεργοποιήστε τα μη χρησιμοποιούμενα πρόσθετα για να αποκρύψετε όλα τα στοιχεία ελέγχου τους. %1$s.</string>
<string name="ui_customization_short_descr">Στοιχεία σχεδιαστή, μενού περιβάλλοντος</string>
<string name="ui_customization">Προσαρμογή UI</string>
<string name="shared_string_drawer">Σχεδιαστής</string>
<string name="context_menu_actions">Ενέργειες μενού περιβάλλοντος</string>
<string name="reorder_or_hide_from">Αναδιάταξη ή απόκρυψη στοιχείων από το %1$s.</string>
<string name="shared_string_divider">Διαχωριστικό</string>
<string name="divider_descr">Τα στοιχεία κάτω από αυτό το σημείο χωρίζονται με διαχωριστικό.</string>
<string name="shared_string_hidden">Κρυφά</string>
<string name="hidden_items_descr">Αυτά τα στοιχεία κρύβονται από το μενού, αλλά οι αντίστοιχες επιλογές ή πρόσθετα θα συνεχίσουν να δουλεύουν.</string>
<string name="reset_items_descr">Η απόκρυψη ρυθμίσεων τις επαναφέρει στην αρχική τους κατάσταση.</string>
<string name="main_actions_descr">Έχει μόνο τέσσερα πλήκτρα.</string>
<string name="main_actions">Κύριες ενέργειες</string>
<string name="additional_actions_descr">Μπορείτε να προσπελάσετε αυτές τις ενέργειες πατώντας το πλήκτρο “%1$s”.</string>
<string name="move_inside_category">Μπορείτε να μετακινήσετε στοιχεία μόνο μέσα σε αυτήν τη κατηγορία.</string>
<string name="developer_plugin">Πρόσθετο ανάπτυξης</string>
<string name="replace_point_descr">Αντικατάσταση σημείου με αυτό.</string>
<string name="app_mode_ski_touring">Χιονοδρομικές βόλτες</string>
<string name="app_mode_ski_snowmobile">Χιονοόχημα</string>
<string name="custom_osmand_plugin">Προσαρμοσμένο πρόσθετο OsmAnd</string>
<string name="shared_string_items">Στοιχεία</string>
<string name="changes_applied_to_profile">Αλλαγές που εφαρμόστηκαν στην κατατομή (προφίλ) \'%1$s\'.</string>
<string name="settings_item_read_error">Αδυναμία ανάγνωσης από το \'%1$s\'.</string>
<string name="settings_item_write_error">Αδυναμία εγγραφής στο \'%1$s\'.</string>
<string name="settings_item_import_error">Αδυναμία εισαγωγής από \'%1$s\'.</string>
<string name="select_track_file">Επιλέξτε αρχείο ίχνους</string>
<string name="shared_string_languages">Γλώσσες</string>
<string name="shared_string_language">Γλώσσα</string>
<string name="shared_string_all_languages">Όλες οι γλώσσες</string>
<string name="wiki_menu_download_descr">Απαιτούνται πρόσθετοι χάρτες για να προβάλετε τα ΣΕ της Wikipedia στον χάρτη.</string>
<string name="select_wikipedia_article_langs">Επιλέξτε τις γλώσσες για τα άρθρα Wikipedia στον χάρτη. Αλλάξτε σε οποιαδήποτε διαθέσιμη γλώσσα κατά την ανάγνωση του άρθρου.</string>
<string name="radius_ruler_item">Χάρακας ακτίνας</string>
</resources> </resources>

View file

@ -26,7 +26,7 @@
<string name="add_group_descr">You can import groups from favourites or track waypoints.</string> <string name="add_group_descr">You can import groups from favourites or track waypoints.</string>
<string name="empty_state_markers_groups_desc">You can import favourite groups or track waypoints as markers.</string> <string name="empty_state_markers_groups_desc">You can import favourite groups or track waypoints as markers.</string>
<string name="empty_state_favourites">Add Favourites</string> <string name="empty_state_favourites">Add Favourites</string>
<string name="empty_state_favourites_desc">Add favourites on the map or import them from a file.</string> <string name="empty_state_favourites_desc">Import Favourites or add them by marking points on the map.</string>
<string name="import_gpx_file_description">can be imported as Favourites points, or as track file.</string> <string name="import_gpx_file_description">can be imported as Favourites points, or as track file.</string>
<string name="import_as_favorites">Import as Favourites</string> <string name="import_as_favorites">Import as Favourites</string>
<string name="search_favorites">Search favourites</string> <string name="search_favorites">Search favourites</string>
@ -99,8 +99,10 @@
<string name="quick_action_showhide_favorites_title">Show/hide favourites</string> <string name="quick_action_showhide_favorites_title">Show/hide favourites</string>
<string name="quick_action_favorites_show">Show Favourites</string> <string name="quick_action_favorites_show">Show Favourites</string>
<string name="quick_action_favorites_hide">Hide Favourites</string> <string name="quick_action_favorites_hide">Hide Favourites</string>
<string name="quick_action_category_descr">Select the category to save the favourite in.</string> <string name="quick_action_category_descr">Category to save the Favourite in:</string>
<string name="analyze_on_map">Analyse on map</string> <string name="analyze_on_map">Analyse on map</string>
<string name="purchase_cancelled_dialog_title">You have cancelled your OsmAnd Live subscription</string> <string name="purchase_cancelled_dialog_title">You have cancelled your OsmAnd Live subscription</string>
<string name="show_transparency_seekbar">Show transparency slider</string> <string name="show_transparency_seekbar">Show transparency slider</string>
</resources> <string name="app_mode_camper">Camper</string>
<string name="osm_live_payment_discount_descr">Save %1$s</string>
</resources>

View file

@ -590,7 +590,7 @@
<string name="show_more_map_detail_descr">Erakutsi bektore mapen xehetasun gehiago (bideak etab.) zoom maila baxuetan.</string> <string name="show_more_map_detail_descr">Erakutsi bektore mapen xehetasun gehiago (bideak etab.) zoom maila baxuetan.</string>
<string name="favourites_delete_multiple_succesful">Gogoko puntuak ezabatu dira.</string> <string name="favourites_delete_multiple_succesful">Gogoko puntuak ezabatu dira.</string>
<string name="favorite_delete_multiple">Ziur %1$d gogoko eta %2$d gogokoen talde ezabatu nahi dituzula\?</string> <string name="favorite_delete_multiple">Ziur %1$d gogoko eta %2$d gogokoen talde ezabatu nahi dituzula\?</string>
<string name="favorite_home_category">Hasiera</string> <string name="favorite_home_category">Etxea</string>
<string name="favorite_friends_category">Lagunak</string> <string name="favorite_friends_category">Lagunak</string>
<string name="favorite_places_category">Lekuak</string> <string name="favorite_places_category">Lekuak</string>
<string name="shared_string_name">Izena</string> <string name="shared_string_name">Izena</string>
@ -1772,7 +1772,7 @@ Lorratza %2$s</string>
<string name="use_opengl_render">Erabili OpenGL marrazketa</string> <string name="use_opengl_render">Erabili OpenGL marrazketa</string>
<string name="use_opengl_render_descr">Erabili hardware bidez azkartutako OpenGL marrazketa (bateria gehiago erabili lezake, eta ez dabil gailu oso zaharretan).</string> <string name="use_opengl_render_descr">Erabili hardware bidez azkartutako OpenGL marrazketa (bateria gehiago erabili lezake, eta ez dabil gailu oso zaharretan).</string>
<string name="error_avoid_specific_road">Ez da saihesbiderik aurkitu</string> <string name="error_avoid_specific_road">Ez da saihesbiderik aurkitu</string>
<string name="home_button">Hasiera</string> <string name="home_button">Etxea</string>
<string name="map_update">Eguneraketak eskuragarri %1$s mapentzako</string> <string name="map_update">Eguneraketak eskuragarri %1$s mapentzako</string>
<string name="search_for">Bilatu</string> <string name="search_for">Bilatu</string>
<string name="coordinates">Koordenatuak</string> <string name="coordinates">Koordenatuak</string>
@ -2903,8 +2903,8 @@ Area honi dagokio: %1$s x %2$s</string>
<string name="routeInfo_smoothness_name">Lausotasuna</string> <string name="routeInfo_smoothness_name">Lausotasuna</string>
<string name="routeInfo_steepness_name">Aldapa</string> <string name="routeInfo_steepness_name">Aldapa</string>
<string name="add_home">Gehitu etxea</string> <string name="add_home">Gehitu etxea</string>
<string name="add_work">Gehitu lana</string> <string name="add_work">Gehitu lantokia</string>
<string name="work_button">Lana</string> <string name="work_button">Lantokia</string>
<string name="avoid_roads_descr">Hautatu saihestu nahi duzun bidea mapan edo beheko zerrendan:</string> <string name="avoid_roads_descr">Hautatu saihestu nahi duzun bidea mapan edo beheko zerrendan:</string>
<string name="quick_action_switch_day_night_descr">OsmAnd egun eta gau moduen artean txandakatzeko botoia.</string> <string name="quick_action_switch_day_night_descr">OsmAnd egun eta gau moduen artean txandakatzeko botoia.</string>
<string name="use_osm_live_public_transport_description">Gaitu garraio publikoa OsmAnd Live aldaketetan.</string> <string name="use_osm_live_public_transport_description">Gaitu garraio publikoa OsmAnd Live aldaketetan.</string>
@ -3484,7 +3484,7 @@ Area honi dagokio: %1$s x %2$s</string>
\n \n
\n• Ilunabarra / egunsentia datuak gehitu da maparen konfigurazioan \n• Ilunabarra / egunsentia datuak gehitu da maparen konfigurazioan
\n \n
\n• Hasiera/Lana ikonoak mapara gehitu dira \n• Etxea/Lantokia ikonoak mapara gehitu dira
\n \n
\n• Hainbat lerroko deskripzioa gehitzeko euskarria gehitu da ezarpenetan \n• Hainbat lerroko deskripzioa gehitzeko euskarria gehitu da ezarpenetan
\n \n
@ -3787,4 +3787,36 @@ Area honi dagokio: %1$s x %2$s</string>
<string name="quick_action_mapillary_hide">Ezkutatu Mapillary</string> <string name="quick_action_mapillary_hide">Ezkutatu Mapillary</string>
<string name="quick_action_mapillary_show">Erakutsi Mapillary</string> <string name="quick_action_mapillary_show">Erakutsi Mapillary</string>
<string name="shared_string_done">Egina</string> <string name="shared_string_done">Egina</string>
<string name="quick_action_remove_next_destination">Ezabatu hurrengo norako puntua.</string>
<string name="use_volume_buttons_as_zoom">Bolumen botoiak zoom egiteko</string>
<string name="quick_action_remove_next_destination_descr">Uneko ibilbidearen norako puntua ezabatuko da. Ibilbidearen helmuga bada nabigazioa geldituko da.</string>
<string name="plugin_wikipedia_description">Eskuratu interesguneei buruzko Wikipediaren informazioa. Zure poltsikoko lineaz kanpoko gida da. Aski duzu Wikipediako plugina gaitu eta gozatu inguruko objektuen inguruko artikuluez.</string>
<string name="app_mode_enduro_motorcycle">Enduro motozikleta</string>
<string name="app_mode_wheelchair">Gurpil-aulkia</string>
<string name="app_mode_go_cart">Kart</string>
<string name="route_between_points">Puntuen arteko ibilbidea</string>
<string name="add_to_a_track">Gehitu arrasto batera</string>
<string name="select_track_width">Hautatu zabalera</string>
<string name="gpx_split_interval_none_descr">Hautatu zatiketa aukera: denboraren arabera edo distantziaren arabera.</string>
<string name="gpx_direction_arrows">Norabideko geziak</string>
<string name="plan_route_create_new_route">Sortu ibilbide berria</string>
<string name="threshold_distance">Distantzia margena</string>
<string name="rourte_between_points_warning_desc">Aukera hau erabiltzeko OsmAnd-ek zure arrastoak mapako errepideetara atxiki behar ditu.
\n
\nHurrengo urratsean, nabigazio profila hautatu beharko duzu baimendutako errepideak eta zure arrastoa errepideetara hurbiltzeko distantzia tartea atzemateko.</string>
<string name="plan_route_last_edited">Editatutako azkena</string>
<string name="plan_route_import_track">Inportatu arrastoa</string>
<string name="plan_route_open_existing_track">Ireki dagoen arrasto bat</string>
<string name="plan_route_select_track_file_for_open">Hautatu irekitzeko arrasto fitxategia</string>
<string name="overwrite_track">Gainidatzi arrastoa</string>
<string name="save_as_new_track">Gorde arrasto berri gisa</string>
<string name="reverse_route">Alderantzizko ibilbidea</string>
<string name="rourte_between_points_whole_track_button_desc">Arrasto osoa birkalkulatuko da hautatutako profilaren bidez.</string>
<string name="rourte_between_points_next_segment_button_desc">Bakarrik hurrengo segmentua birkalkulatuko da hautatutako profilaren bidez.</string>
<string name="rourte_between_points_desc">Hautatu nola konektatu puntuak, lerro zuzen batez, edo kalkulatu horien arteko ibilbidea hautatutako profilarekin.</string>
<string name="whole_track">Arrasto osoa</string>
<string name="next_segment">Hurrengo segmentua</string>
<string name="navigation_profile">Nabigazio profila</string>
<string name="rourte_between_points_add_track_desc">Hautatu zein arrasto fitxategiari gehituko zaion segmentu berria.</string>
<string name="set_working_days_to_continue">Ezarri behar dituzu lanegunak jarraitzeko</string>
</resources> </resources>

View file

@ -1373,7 +1373,7 @@
<string name="use_opengl_render">Utiliser le rendu OpenGL</string> <string name="use_opengl_render">Utiliser le rendu OpenGL</string>
<string name="use_opengl_render_descr">Utiliser le rendu matériel accéléré OpenGL (peut consommer plus de batterie et ne pas fonctionner sur les anciens appareils).</string> <string name="use_opengl_render_descr">Utiliser le rendu matériel accéléré OpenGL (peut consommer plus de batterie et ne pas fonctionner sur les anciens appareils).</string>
<string name="everything_up_to_date">Tous les fichiers sont à jour</string> <string name="everything_up_to_date">Tous les fichiers sont à jour</string>
<string name="shared_string_dismiss">Ignorer</string> <string name="shared_string_dismiss">Arrêter</string>
<string name="no_internet_connection">Téléchargement impossible, veuillez vérifier votre connexion Internet.</string> <string name="no_internet_connection">Téléchargement impossible, veuillez vérifier votre connexion Internet.</string>
<string name="download_tab_downloads">Tous les téléchargements</string> <string name="download_tab_downloads">Tous les téléchargements</string>
<string name="download_tab_updates">Mises à jour</string> <string name="download_tab_updates">Mises à jour</string>

View file

@ -58,7 +58,7 @@
</string> </string>
<string name="filterpoi_activity">Creează filtru POI</string> <string name="filterpoi_activity">Creează filtru POI</string>
<string name="recalculate_route_to_your_location">Mod de transport:</string> <string name="recalculate_route_to_your_location">Mod de transport:</string>
<string name="select_navigation_mode">Selectează modul de transport</string> <string name="select_navigation_mode">Mod transport:</string>
<string name="day_night_info_description">Răsărit : %1$s \nApus : %2$s</string> <string name="day_night_info_description">Răsărit : %1$s \nApus : %2$s</string>
<string name="day_night_info">Info zi/noapte</string> <string name="day_night_info">Info zi/noapte</string>
<string name="map_widget_vector_attributes">Atribute randare</string> <string name="map_widget_vector_attributes">Atribute randare</string>
@ -99,12 +99,12 @@
<string name="show_cameras">Arată camerele radar</string> <string name="show_cameras">Arată camerele radar</string>
<string name="show_traffic_warnings">Arată atenționări de trafic</string> <string name="show_traffic_warnings">Arată atenționări de trafic</string>
<string name="avoid_toll_roads">Evită drumuri cu taxă</string> <string name="avoid_toll_roads">Evită drumuri cu taxă</string>
<string name="continue_follow_previous_route_auto">"Navigarea anterioară nu s-a încheiat. Doriți s-o continuați (implicit \'Da\')? (%1$s seconds)"</string> <string name="continue_follow_previous_route_auto">Continuați să urmați navigarea anterioară neterminată\? (%1$s seconds)</string>
<string name="route_updated_loc_found">Ruta va fi calculată când se va stabili poziția curentă</string> <string name="route_updated_loc_found">Ruta va fi calculată când se va stabili poziția curentă</string>
<string name="osmand_parking_hours">Ore</string> <string name="osmand_parking_hours">Ore</string>
<string name="osmand_parking_minutes">Minute</string> <string name="osmand_parking_minutes">Minute</string>
<string name="osmand_parking_position_description_add_time">Mașina a fost parcată la:</string> <string name="osmand_parking_position_description_add_time">Mașina este parcată la</string>
<string name="select_animate_speedup">Selecție accelerare simulare rută</string> <string name="select_animate_speedup">Viteză simulare rută:</string>
<string name="global_app_allocated_memory_descr">Memorie alocată %1$s MB (limita Android %2$s MB, Dalvik %3$s MB).</string> <string name="global_app_allocated_memory_descr">Memorie alocată %1$s MB (limita Android %2$s MB, Dalvik %3$s MB).</string>
<string name="global_app_allocated_memory">Memorie alocată</string> <string name="global_app_allocated_memory">Memorie alocată</string>
<string name="native_app_allocated_memory_descr">Total memorie nativă alocată de aplicație %1$s MB (Dalvik %2$s MB, other %3$s MB). <string name="native_app_allocated_memory_descr">Total memorie nativă alocată de aplicație %1$s MB (Dalvik %2$s MB, other %3$s MB).
@ -150,7 +150,7 @@
<string name="rendering_attr_hmRendered_description">Crește nivelul de detalii ale hărții</string> <string name="rendering_attr_hmRendered_description">Crește nivelul de detalii ale hărții</string>
<string name="rendering_attr_hmRendered_name">Mai multe detalii pe hartă</string> <string name="rendering_attr_hmRendered_name">Mai multe detalii pe hartă</string>
<string name="local_index_routing_data">Date despre rutare</string> <string name="local_index_routing_data">Date despre rutare</string>
<string name="navigate_point_format">Format:</string> <string name="navigate_point_format">Format</string>
<string name="poi_search_desc">Caută POI (Puncte de Interes)</string> <string name="poi_search_desc">Caută POI (Puncte de Interes)</string>
<string name="address_search_desc">Căutare adresă</string> <string name="address_search_desc">Căutare adresă</string>
<string name="navpoint_search_desc">Coordonate</string> <string name="navpoint_search_desc">Coordonate</string>
@ -183,7 +183,7 @@
<string name="prefs_plugins">Manager de plugin-uri</string> <string name="prefs_plugins">Manager de plugin-uri</string>
<string name="osm_editing_plugin_description">Arată setările necesare pentru colectarea/modificarea de date openstreetmaps.org (POI, bug-uri, trasee) - necesită specificarea datelor de acces la OSM.</string> <string name="osm_editing_plugin_description">Arată setările necesare pentru colectarea/modificarea de date openstreetmaps.org (POI, bug-uri, trasee) - necesită specificarea datelor de acces la OSM.</string>
<string name="vector_maps_may_display_faster_on_some_devices">Hărțile vectoriale se afișează mai rapid de regulă. Posibil să nu funcționeze bine pe anumite dispozitive.</string> <string name="vector_maps_may_display_faster_on_some_devices">Hărțile vectoriale se afișează mai rapid de regulă. Posibil să nu funcționeze bine pe anumite dispozitive.</string>
<string name="play_commands_of_currently_selected_voice">Exemple de comenzi ale vocii selectate</string> <string name="play_commands_of_currently_selected_voice">Selectează o voce și testează redând anunțuri:</string>
<string name="debugging_and_development">Dezvoltare OsmAnd</string> <string name="debugging_and_development">Dezvoltare OsmAnd</string>
<string name="native_rendering">Randare nativă</string> <string name="native_rendering">Randare nativă</string>
<string name="test_voice_prompts">Testare instrucțiuni vocale</string> <string name="test_voice_prompts">Testare instrucțiuni vocale</string>
@ -329,7 +329,7 @@
<string name="file_can_not_be_renamed">Fișierul nu poate fi redenumit.</string> <string name="file_can_not_be_renamed">Fișierul nu poate fi redenumit.</string>
<string name="file_with_name_already_exists">Există un fișier cu același nume.</string> <string name="file_with_name_already_exists">Există un fișier cu același nume.</string>
<string name="shared_string_gpx_route">Rută GPX</string> <string name="shared_string_gpx_route">Rută GPX</string>
<string name="poi_query_by_name_matches_categories">Au foste găsite câteva categorii de POI care satisfac condițiile:</string> <string name="poi_query_by_name_matches_categories">Au fost găsite câteva categorii asemănătoare de POI.</string>
<string name="data_to_search_poi_not_available">Nu există date offline salvate pentru efectuarea căutării.</string> <string name="data_to_search_poi_not_available">Nu există date offline salvate pentru efectuarea căutării.</string>
<string name="poi_filter_by_name">Căutare după nume</string> <string name="poi_filter_by_name">Căutare după nume</string>
<string name="old_poi_file_should_be_deleted">Fișierul de date POI \'%1$s\' este redundant și poate fi șters.</string> <string name="old_poi_file_should_be_deleted">Fișierul de date POI \'%1$s\' este redundant și poate fi șters.</string>
@ -389,7 +389,7 @@
<string name="local_indexes_cat_poi">Date despre POI</string> <string name="local_indexes_cat_poi">Date despre POI</string>
<string name="ttsvoice">Voce TTS</string> <string name="ttsvoice">Voce TTS</string>
<string name="search_offline_clear_search">Căutare nouă</string> <string name="search_offline_clear_search">Căutare nouă</string>
<string name="map_text_size_descr">Selecția mărimii textului pentru denumirile afișate pe hartă</string> <string name="map_text_size_descr">Mărimea textului pentru denumirile afișate pe hartă:</string>
<string name="map_text_size">Mărime font hartă</string> <string name="map_text_size">Mărime font hartă</string>
<string name="trace_rendering">Info depanare randare</string> <string name="trace_rendering">Info depanare randare</string>
<string name="trace_rendering_descr">Afișare date despre performanțele procesului de randare</string> <string name="trace_rendering_descr">Afișare date despre performanțele procesului de randare</string>
@ -549,7 +549,7 @@
<string name="rotate_map_compass_opt">Către direcție busolă</string> <string name="rotate_map_compass_opt">Către direcție busolă</string>
<string name="rotate_map_bearing_opt">În direcția deplasării</string> <string name="rotate_map_bearing_opt">În direcția deplasării</string>
<string name="rotate_map_none_opt">Nord întotdeauna sus</string> <string name="rotate_map_none_opt">Nord întotdeauna sus</string>
<string name="rotate_map_to_bearing_descr">Aliniere hartă la ecran</string> <string name="rotate_map_to_bearing_descr">Aliniere hartă:</string>
<string name="rotate_map_to_bearing">Orientare hartă</string> <string name="rotate_map_to_bearing">Orientare hartă</string>
<string name="show_route">Detalii rută</string> <string name="show_route">Detalii rută</string>
<string name="fav_imported_sucessfully">Puncte favorite importate cu succes</string> <string name="fav_imported_sucessfully">Puncte favorite importate cu succes</string>
@ -581,9 +581,9 @@
<string name="gps_provider">GPS</string> <string name="gps_provider">GPS</string>
<string name="int_seconds">secunde</string> <string name="int_seconds">secunde</string>
<string name="int_min">min.</string> <string name="int_min">min.</string>
<string name="background_service_int_descr">Alegeți intervalul de timp pentru menținerea activă a serviciilor folosite în fundal</string> <string name="background_service_int_descr">Intervalul de timp pentru menținerea activă a serviciilor folosite în fundal:</string>
<string name="background_service_int">Interval menținere activă GPS</string> <string name="background_service_int">Interval menținere activă GPS</string>
<string name="background_service_provider_descr">Alege furnizorul serviciului de localizare pe timpul navigării în fundal</string> <string name="background_service_provider_descr">Metodă localizare folosită de serviciul în fundal:</string>
<string name="background_service_provider">Furnizorul serviciului de localizare</string> <string name="background_service_provider">Furnizorul serviciului de localizare</string>
<string name="background_router_service_descr">Rulează OsmAnd în fundal pentru determinarea poziției în timp ce ecranul este oprit</string> <string name="background_router_service_descr">Rulează OsmAnd în fundal pentru determinarea poziției în timp ce ecranul este oprit</string>
<string name="background_router_service">Rulează în fundal</string> <string name="background_router_service">Rulează în fundal</string>
@ -699,7 +699,7 @@
<string name="empty_route_calculated">Eroare: ruta calculată este vidă</string> <string name="empty_route_calculated">Eroare: ruta calculată este vidă</string>
<string name="new_route_calculated_dist">O nouă rută a fost calculată, distanța</string> <string name="new_route_calculated_dist">O nouă rută a fost calculată, distanța</string>
<string name="arrived_at_destination">Ați ajuns la destinație</string> <string name="arrived_at_destination">Ați ajuns la destinație</string>
<string name="invalid_locations">Coordonatele nu sunt valide!</string> <string name="invalid_locations">Coordonate invalide</string>
<string name="go_back_to_osmand">Înapoi la harta OsmAnd</string> <string name="go_back_to_osmand">Înapoi la harta OsmAnd</string>
<string name="shared_string_close">Închideți</string> <string name="shared_string_close">Închideți</string>
<string name="loading_data">Se încarcă date…</string> <string name="loading_data">Se încarcă date…</string>
@ -794,7 +794,7 @@
<string name="osb_comment_dialog_message">Mesaj</string> <string name="osb_comment_dialog_message">Mesaj</string>
<string name="osb_comment_dialog_author">Nume autor</string> <string name="osb_comment_dialog_author">Nume autor</string>
<string name="osb_comment_dialog_success">Comentariu adăugat</string> <string name="osb_comment_dialog_success">Comentariu adăugat</string>
<string name="osb_comment_dialog_error">Nu s-a putut adăuga comentariul</string> <string name="osb_comment_dialog_error">Nu s-a putut adăuga comentariul.</string>
<string name="poi_edit_title">Editare POI</string> <string name="poi_edit_title">Editare POI</string>
<string name="poi_create_title">Creează POI</string> <string name="poi_create_title">Creează POI</string>
<string name="poi_error_poi_not_found">POI-ul nu poate fi găsit sau punctul de interes nu este singular</string> <string name="poi_error_poi_not_found">POI-ul nu poate fi găsit sau punctul de interes nu este singular</string>
@ -825,7 +825,7 @@
<string name="native_library_not_running">Aplicația rulează în safe mode (se poate dezactiva de la Setări).</string> <string name="native_library_not_running">Aplicația rulează în safe mode (se poate dezactiva de la Setări).</string>
<string name="rendering_attr_showRoadMaps_description">Specificați când anume să fie afișate hărțile exclusiv cu drumuri:</string> <string name="rendering_attr_showRoadMaps_description">Specificați când anume să fie afișate hărțile exclusiv cu drumuri:</string>
<string name="rendering_attr_showRoadMaps_name">Hărți doar pentru drumuri</string> <string name="rendering_attr_showRoadMaps_name">Hărți doar pentru drumuri</string>
<string name="download_roads_only_item">"Drumuri "</string> <string name="download_roads_only_item">Doar drumuri</string>
<string name="download_regular_maps">Hărți complete</string> <string name="download_regular_maps">Hărți complete</string>
<string name="download_roads_only_maps">Hărți exclusiv drumuri</string> <string name="download_roads_only_maps">Hărți exclusiv drumuri</string>
<string name="incomplete_locale">incomplet</string> <string name="incomplete_locale">incomplet</string>
@ -868,11 +868,11 @@
<string name="srtm_paid_version_title">Plugin linii de nivel</string> <string name="srtm_paid_version_title">Plugin linii de nivel</string>
<string name="av_def_action_video">Înregistrare video</string> <string name="av_def_action_video">Înregistrare video</string>
<string name="av_def_action_audio">Înregistrare audio</string> <string name="av_def_action_audio">Înregistrare audio</string>
<string name="av_widget_action_descr">Selectați acțiunea implicită a iconiței</string> <string name="av_widget_action_descr">Acțiune implicită a iconiței:</string>
<string name="av_widget_action">Acțiune implicită iconiță</string> <string name="av_widget_action">Acțiune implicită iconiță</string>
<string name="av_video_format_descr">Selectați formatul video</string> <string name="av_video_format_descr">Format ieșire video:</string>
<string name="av_video_format">Format video</string> <string name="av_video_format">Format video</string>
<string name="av_use_external_recorder_descr">Folosește aplicația sistemului pt înregistrare video</string> <string name="av_use_external_recorder_descr">Folosește aplicația sistemului pt înregistrare video.</string>
<string name="av_use_external_recorder">Folosește aplicație externă pentru înregistrare</string> <string name="av_use_external_recorder">Folosește aplicație externă pentru înregistrare</string>
<string name="av_settings_descr">Configurarea setărilor audio și video</string> <string name="av_settings_descr">Configurarea setărilor audio și video</string>
<string name="av_settings">Setări audio/video </string> <string name="av_settings">Setări audio/video </string>
@ -888,7 +888,7 @@
<string name="routing_attr_avoid_toll_name">Evită drumurile cu taxă</string> <string name="routing_attr_avoid_toll_name">Evită drumurile cu taxă</string>
<string name="routing_attr_avoid_toll_description">Evită drumurile cu taxă</string> <string name="routing_attr_avoid_toll_description">Evită drumurile cu taxă</string>
<string name="routing_attr_avoid_unpaved_name">Evită drumurile neasfaltate</string> <string name="routing_attr_avoid_unpaved_name">Evită drumurile neasfaltate</string>
<string name="routing_attr_avoid_unpaved_description">Evită drumurile neasfaltate.</string> <string name="routing_attr_avoid_unpaved_description">Evită drumurile neasfaltate</string>
<string name="routing_attr_avoid_ferries_name">Evită feriboturile</string> <string name="routing_attr_avoid_ferries_name">Evită feriboturile</string>
<string name="routing_attr_avoid_ferries_description">Evită feriboturile</string> <string name="routing_attr_avoid_ferries_description">Evită feriboturile</string>
<string name="routing_attr_avoid_motorway_name">Evită autostrăzile</string> <string name="routing_attr_avoid_motorway_name">Evită autostrăzile</string>
@ -995,7 +995,7 @@
<string name="shared_string_map">Hartă</string> <string name="shared_string_map">Hartă</string>
<string name="prefer_motorways">Preferă autostrăzi</string> <string name="prefer_motorways">Preferă autostrăzi</string>
<string name="prefer_in_routing_title">Preferă…</string> <string name="prefer_in_routing_title">Preferă…</string>
<string name="prefer_in_routing_descr">Preferă autostrăzi</string> <string name="prefer_in_routing_descr">Preferă autostrăzi.</string>
<string name="max_speed_none">nici una</string> <string name="max_speed_none">nici una</string>
<string name="index_name_openmaps">OpenMaps EU</string> <string name="index_name_openmaps">OpenMaps EU</string>
<string name="local_indexes_cat_srtm">Date linii de contur</string> <string name="local_indexes_cat_srtm">Date linii de contur</string>
@ -1111,7 +1111,7 @@
<string name="gpx_selection_segment_title">Segment</string> <string name="gpx_selection_segment_title">Segment</string>
<string name="record_plugin_description">Salvează înregistrările cu o singură atingere a ecranului. Arată setările pentru înregistrarea traseelor și stocarea locală în fișiere GPX folosind un serviciu web.</string> <string name="record_plugin_description">Salvează înregistrările cu o singură atingere a ecranului. Arată setările pentru înregistrarea traseelor și stocarea locală în fișiere GPX folosind un serviciu web.</string>
<string name="av_camera_focus">Tip de focalizare al camerei</string> <string name="av_camera_focus">Tip de focalizare al camerei</string>
<string name="av_camera_focus_descr">Selectați modul de focalizare al camerei interne.</string> <string name="av_camera_focus_descr">Mod focalizare cameră:</string>
<string name="av_camera_focus_auto">Auto focalizare</string> <string name="av_camera_focus_auto">Auto focalizare</string>
<string name="av_camera_focus_hiperfocal">Focalizare hiperfocală</string> <string name="av_camera_focus_hiperfocal">Focalizare hiperfocală</string>
<string name="av_camera_focus_infinity">Focalizarea este setata la infinit</string> <string name="av_camera_focus_infinity">Focalizarea este setata la infinit</string>
@ -1206,8 +1206,8 @@
<string name="gpx_file_is_empty">Fișier GPX gol</string> <string name="gpx_file_is_empty">Fișier GPX gol</string>
<string name="shared_string_tracks">Traseele mele</string> <string name="shared_string_tracks">Traseele mele</string>
<string name="navigation_intent_invalid">Format invalid: %s</string> <string name="navigation_intent_invalid">Format invalid: %s</string>
<string name="osb_author_dialog_password">"Parolă OSM (opţional)"</string> <string name="osb_author_dialog_password">Parolă OSM (opţională)</string>
<string name="shared_string_downloading">Se descarcă</string> <string name="shared_string_downloading">Se descarcă</string>
<string name="rendering_value_germanRoadAtlas_name">Atlas rutier german</string> <string name="rendering_value_germanRoadAtlas_name">Atlas rutier german</string>
<string name="version_settings">Versiuni</string> <string name="version_settings">Versiuni</string>
<string name="rendering_attr_tramRoutes_name">Rute tramvai</string> <string name="rendering_attr_tramRoutes_name">Rute tramvai</string>
@ -1366,9 +1366,9 @@
<string name="osn_reopen_dialog_title">Redeschide nota</string> <string name="osn_reopen_dialog_title">Redeschide nota</string>
<string name="osn_close_dialog_title">Închideți nota</string> <string name="osn_close_dialog_title">Închideți nota</string>
<string name="osn_add_dialog_success">Notă creată</string> <string name="osn_add_dialog_success">Notă creată</string>
<string name="osn_add_dialog_error">Nu s-a putut crea nota</string> <string name="osn_add_dialog_error">Nu s-a putut crea nota.</string>
<string name="osn_close_dialog_success">Notă închisă</string> <string name="osn_close_dialog_success">Notă închisă</string>
<string name="osn_close_dialog_error">Nota nu a putut fi închisă</string> <string name="osn_close_dialog_error">Nota nu a putut fi închisă.</string>
<string name="shared_string_commit">Comite</string> <string name="shared_string_commit">Comite</string>
<string name="context_menu_item_delete_waypoint">Ștergi punctul de referință GPX?</string> <string name="context_menu_item_delete_waypoint">Ștergi punctul de referință GPX?</string>
<string name="context_menu_item_edit_waypoint">Editează punctul de referință GPX</string> <string name="context_menu_item_edit_waypoint">Editează punctul de referință GPX</string>
@ -1678,7 +1678,7 @@
<string name="notes_by_date">Note după dată</string> <string name="notes_by_date">Note după dată</string>
<string name="by_date">După dată</string> <string name="by_date">După dată</string>
<string name="by_type">După tip</string> <string name="by_type">După tip</string>
<string name="looking_for_tracks_with_waypoints">"Se caută trasee cu puncte intermediare"</string> <string name="looking_for_tracks_with_waypoints">Se caută trasee cu puncte intermediare</string>
<string name="shared_string_more_without_dots">Mai mult</string> <string name="shared_string_more_without_dots">Mai mult</string>
<string name="appearance_on_the_map">Aspectul pe hartă</string> <string name="appearance_on_the_map">Aspectul pe hartă</string>
<string name="add_track_to_markers_descr">Selectați un traseu pentru a-i adăuga un punct intermediar la marcaje.</string> <string name="add_track_to_markers_descr">Selectați un traseu pentru a-i adăuga un punct intermediar la marcaje.</string>
@ -1723,7 +1723,7 @@
<string name="route_is_calculated">Ruta a fost calculată</string> <string name="route_is_calculated">Ruta a fost calculată</string>
<string name="round_trip">Dus-întors</string> <string name="round_trip">Dus-întors</string>
<string name="plan_route_no_markers_toast">Trebuie sa adăugați cel puțin un marcaj pentru a utilza această funcție.</string> <string name="plan_route_no_markers_toast">Trebuie sa adăugați cel puțin un marcaj pentru a utilza această funcție.</string>
<string name="osn_modify_dialog_error">Nu s-a putut modifica nota</string> <string name="osn_modify_dialog_error">Nu s-a putut modifica nota.</string>
<string name="osn_modify_dialog_title">Modifică nota</string> <string name="osn_modify_dialog_title">Modifică nota</string>
<string name="context_menu_item_modify_note">Modifică nota OMS</string> <string name="context_menu_item_modify_note">Modifică nota OMS</string>
<string name="make_round_trip_descr">Copiază punctul de pornire ca destinație.</string> <string name="make_round_trip_descr">Copiază punctul de pornire ca destinație.</string>
@ -1778,7 +1778,7 @@
<string name="mapillary_menu_title_dates">Dată</string> <string name="mapillary_menu_title_dates">Dată</string>
<string name="mapillary_menu_edit_text_hint">Scrie nume utilizator</string> <string name="mapillary_menu_edit_text_hint">Scrie nume utilizator</string>
<string name="mapillary_menu_descr_username">Vedeți doar imaginile adaugate de</string> <string name="mapillary_menu_descr_username">Vedeți doar imaginile adaugate de</string>
<string name="mapillary_menu_filter_description">"Filtrați imaginile după utilizator, după dată sau după tip. Active doar pentru zoom apropiat."</string> <string name="mapillary_menu_filter_description">Filtrați imaginile după utilizator, după dată sau după tip. Active doar pentru zoom apropiat.</string>
<string name="import_gpx_failed_descr">Osmand nu poate importa fișierul. Vă rugăm să verificați dacă OsmAnd are permisiuni de citire din această locație.</string> <string name="import_gpx_failed_descr">Osmand nu poate importa fișierul. Vă rugăm să verificați dacă OsmAnd are permisiuni de citire din această locație.</string>
<string name="distance_moving">Distanța corectată</string> <string name="distance_moving">Distanța corectată</string>
<string name="mapillary_image">Imagine Mapillary</string> <string name="mapillary_image">Imagine Mapillary</string>
@ -1835,7 +1835,7 @@
<string name="restore_purchases">Restaurare cumpărături</string> <string name="restore_purchases">Restaurare cumpărături</string>
<string name="fonts_header">Fonturi hartă</string> <string name="fonts_header">Fonturi hartă</string>
<string name="right_side_navigation">Conducere pe dreapta</string> <string name="right_side_navigation">Conducere pe dreapta</string>
<string name="driving_region_automatic">Automatic</string> <string name="driving_region_automatic">Automat</string>
<string name="do_not_send_anonymous_app_usage">Nu trimite statistici de utilizare anonime ale aplicației</string> <string name="do_not_send_anonymous_app_usage">Nu trimite statistici de utilizare anonime ale aplicației</string>
<string name="do_not_send_anonymous_app_usage_desc">OsmAnd colectează informații despre părțile din aplicatie folosite. Locația dumneavoastră și datele introduse în aplicație nu vor fi niciodată trimise, sau detalii despre zona în care vă aflați, căutari sau descărcări.</string> <string name="do_not_send_anonymous_app_usage_desc">OsmAnd colectează informații despre părțile din aplicatie folosite. Locația dumneavoastră și datele introduse în aplicație nu vor fi niciodată trimise, sau detalii despre zona în care vă aflați, căutari sau descărcări.</string>
<string name="do_not_show_startup_messages">Nu arăta mesaje la pornire</string> <string name="do_not_show_startup_messages">Nu arăta mesaje la pornire</string>
@ -2305,7 +2305,7 @@
<string name="searching_gps">Căutare GPS</string> <string name="searching_gps">Căutare GPS</string>
<string name="rate_dialog_descr">Acordați-ne 30 de secunde, trimiteți părerea dvs. și evaluați munca noastră pe Google Play.</string> <string name="rate_dialog_descr">Acordați-ne 30 de secunde, trimiteți părerea dvs. și evaluați munca noastră pe Google Play.</string>
<string name="shared_string_privacy_policy">Politica de confidențialitate</string> <string name="shared_string_privacy_policy">Politica de confidențialitate</string>
<string name="help_us_make_osmand_better">Ajutați-ne să facem OsmAnd mai bun!</string> <string name="help_us_make_osmand_better">Ajutați-ne să facem OsmAnd mai bun</string>
<string name="choose_data_to_share">Alegeți ce tip de date doriți să partajați:</string> <string name="choose_data_to_share">Alegeți ce tip de date doriți să partajați:</string>
<string name="downloaded_maps">Hărți descărcate</string> <string name="downloaded_maps">Hărți descărcate</string>
<string name="visited_screens">Ecrane vizitate</string> <string name="visited_screens">Ecrane vizitate</string>
@ -2335,7 +2335,7 @@
<string name="profile_type_base_string">Profil de bază</string> <string name="profile_type_base_string">Profil de bază</string>
<string name="profile_alert_need_routing_type_title">Selectați tipul navigației</string> <string name="profile_alert_need_routing_type_title">Selectați tipul navigației</string>
<string name="profile_alert_need_profile_name_title">Introduceți numele profilului</string> <string name="profile_alert_need_profile_name_title">Introduceți numele profilului</string>
<string name="profile_alert_need_profile_name_msg">Numele profilului nu trebuie să fie gol!</string> <string name="profile_alert_need_profile_name_msg">Trebuie să specificați mai întâi un nume de profil.</string>
<string name="profile_alert_duplicate_name_title">Nume deja existent</string> <string name="profile_alert_duplicate_name_title">Nume deja existent</string>
<string name="profile_alert_duplicate_name_msg">Există deja un profil cu un astfel de nume</string> <string name="profile_alert_duplicate_name_msg">Există deja un profil cu un astfel de nume</string>
<string name="profile_alert_cant_delete_base">Nu puteți șterge profile de bază OsmAnd</string> <string name="profile_alert_cant_delete_base">Nu puteți șterge profile de bază OsmAnd</string>
@ -2369,12 +2369,12 @@
<string name="arrival_distance_descr">Cât de repede vrei să se anunțe sosirea\?</string> <string name="arrival_distance_descr">Cât de repede vrei să se anunțe sosirea\?</string>
<string name="press_again_to_change_the_map_orientation">Apăsați din nou pentru a schimba orientarea hărții</string> <string name="press_again_to_change_the_map_orientation">Apăsați din nou pentru a schimba orientarea hărții</string>
<string name="shared_string_min_speed">Viteza min.</string> <string name="shared_string_min_speed">Viteza min.</string>
<string name="shared_string_max_speed">Viteza max.</string> <string name="shared_string_max_speed">Viteză max.</string>
<string name="default_speed_setting_title">Viteză implicită</string> <string name="default_speed_setting_title">Viteză implicită</string>
<string name="default_speed_setting_descr">Modificați setările de viteză implicită</string> <string name="default_speed_setting_descr">Modificați setările de viteză implicită</string>
<string name="minmax_speed_dialog_title">Setați viteza min/max</string> <string name="minmax_speed_dialog_title">Setați viteza min/max</string>
<string name="new_profile">Profil nou</string> <string name="new_profile">Profil nou</string>
<string name="apply_preference_to_all_profiles">Poţi aplica aceasta modificare pe toate profilele sau doar pe cel selectat</string> <string name="apply_preference_to_all_profiles">Poţi aplica aceasta modificare pe toate profilele sau doar pe cel selectat.</string>
<string name="shared_preference">Partajat</string> <string name="shared_preference">Partajat</string>
<string name="routing_attr_driving_style_prefer_unpaved_name">Prefer drumurile nepavate</string> <string name="routing_attr_driving_style_prefer_unpaved_name">Prefer drumurile nepavate</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">Prefer drumurile nepavate</string> <string name="routing_attr_driving_style_prefer_unpaved_description">Prefer drumurile nepavate</string>
@ -2390,12 +2390,12 @@
<string name="tts_initialization_error">Motorul text-to-speech nu porneste.</string> <string name="tts_initialization_error">Motorul text-to-speech nu porneste.</string>
<string name="export_profile">Exportă profilul</string> <string name="export_profile">Exportă profilul</string>
<string name="exported_osmand_profile">Profil osmand exportat %1$s</string> <string name="exported_osmand_profile">Profil osmand exportat %1$s</string>
<string name="overwrite_profile_q">Profil \'%1$s\' deja existent, îl rescrii\?</string> <string name="overwrite_profile_q">\'%1$s\' există deja. Îl suprascriu\?</string>
<string name="export_profile_failed">Profilul nu se poate exporta.</string> <string name="export_profile_failed">Profilul nu se poate exporta.</string>
<string name="profile_import">Importare de profil:</string> <string name="profile_import">Importare profil</string>
<string name="profile_import_descr">Pentru a importa profilul, selectați fișierul din dispozitiv, și deschideți-l cu OsmAnd.</string> <string name="profile_import_descr">Pentru a importa profilul, selectați fișierul din dispozitiv, și deschideți-l cu OsmAnd.</string>
<string name="file_import_error">%1$s Eroare de incarcare al fisierului. %1$s: %2$s</string> <string name="file_import_error">%1$s Eroare de incarcare al fisierului. %1$s: %2$s</string>
<string name="file_imported_successfully">%1$s Incarcat cu succes.</string> <string name="file_imported_successfully">%1$s importat.</string>
<string name="rendering_value_white_name">Alb</string> <string name="rendering_value_white_name">Alb</string>
<string name="route_start_point">Punct de plecare</string> <string name="route_start_point">Punct de plecare</string>
<string name="unirs_render_descr">Modifica stilul implicit pentru a crește contrastul dintre drumurile pietonale și biciclete. Utilizează culori Mapnik.</string> <string name="unirs_render_descr">Modifica stilul implicit pentru a crește contrastul dintre drumurile pietonale și biciclete. Utilizează culori Mapnik.</string>
@ -2427,7 +2427,7 @@
<string name="change_osmand_data_folder_question">Schimbați dosarul de date ale OsmAnd\?</string> <string name="change_osmand_data_folder_question">Schimbați dosarul de date ale OsmAnd\?</string>
<string name="move_maps_to_new_destination">Mută la noua destinație</string> <string name="move_maps_to_new_destination">Mută la noua destinație</string>
<string name="internal_app_storage_description">Stocare internă, ascunsă de utilizator și alte aplicații, accesibilă exclusiv pentru OsmAnd</string> <string name="internal_app_storage_description">Stocare internă, ascunsă de utilizator și alte aplicații, accesibilă exclusiv pentru OsmAnd</string>
<string name="change_data_storage_folder">Schimbați folderul de stocare a datelor</string> <string name="change_data_storage_folder">Schimbați folderul de stocare</string>
<string name="rendering_attr_piste_type_snow_park_name">Parc</string> <string name="rendering_attr_piste_type_snow_park_name">Parc</string>
<string name="rendering_attr_piste_type_sleigh_name">Sanie</string> <string name="rendering_attr_piste_type_sleigh_name">Sanie</string>
<string name="rendering_attr_piste_type_sled_name">Sanie</string> <string name="rendering_attr_piste_type_sled_name">Sanie</string>
@ -2640,16 +2640,16 @@
<string name="voice_announces_descr">Instrucțiuni și anunțuri de navigație</string> <string name="voice_announces_descr">Instrucțiuni și anunțuri de navigație</string>
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Arată rutele pentru biciclete</string> <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Arată rutele pentru biciclete</string>
<string name="download_map_dialog">Dialogul de descărcare a hărții</string> <string name="download_map_dialog">Dialogul de descărcare a hărții</string>
<string name="dialogs_and_notifications_descr">Control popups, dialoguri și notificări pe care OsmAnd le arată în timpul utilizării.</string> <string name="dialogs_and_notifications_descr">Control popups, dialoguri și notificări.</string>
<string name="rendering_value_walkingRoutesOSMCNodes_name">Rețele de noduri</string> <string name="rendering_value_walkingRoutesOSMCNodes_name">Rețele de noduri</string>
<string name="suggested_maps">Hărți sugerate</string> <string name="suggested_maps">Hărți sugerate</string>
<string name="suggested_maps_descr">Aceste hărți trebuie să fie utilizate cu pluginul</string> <string name="suggested_maps_descr">Aceste hărți sunt necesare pentru plugin.</string>
<string name="added_profiles">Profiluri adăugate</string> <string name="added_profiles">Profiluri adăugate</string>
<string name="added_profiles_descr">Pluginul adaugă un nou profil la OsmAnd</string> <string name="added_profiles_descr">Profiluri adăugate de plugin</string>
<string name="shared_string_turn_off">Opriți</string> <string name="shared_string_turn_off">Opriți</string>
<string name="new_plugin_added">A fost adăugat un plugin nou</string> <string name="new_plugin_added">A fost adăugat un plugin nou</string>
<string name="join_segments">Alăturați segmente</string> <string name="join_segments">Alăturați segmente</string>
<string name="add_new_profile_q">Adăugați un profil nou \'%1$s\'\?</string> <string name="add_new_profile_q">Adăugați profilul nou \'%1$s\'\?</string>
<string name="save_heading">Includeți titlu</string> <string name="save_heading">Includeți titlu</string>
<string name="save_heading_descr">Salvați poziția fiecarui punct al traseului în timpul înregistrării.</string> <string name="save_heading_descr">Salvați poziția fiecarui punct al traseului în timpul înregistrării.</string>
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string> <string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
@ -2657,17 +2657,17 @@
<string name="personal_category_name">Personal</string> <string name="personal_category_name">Personal</string>
<string name="shared_string_downloading_formatted">Descarcarea %s</string> <string name="shared_string_downloading_formatted">Descarcarea %s</string>
<string name="rendering_value_thick_name">Gros</string> <string name="rendering_value_thick_name">Gros</string>
<string name="desert_render_descr">Pentru deșerturi și alte zone slab populate.</string> <string name="desert_render_descr">Pentru deșerturi și alte zone slab populate. Mai detaliat.</string>
<string name="select_navigation_icon">Selecteaza iconul pentru navigatie</string> <string name="select_navigation_icon">Selectează icoana pentru navigație</string>
<string name="select_map_icon">Selecteaza iconul pentru harta</string> <string name="select_map_icon">Poziționare icoană în timpul repausului</string>
<string name="delete_profiles_descr">Dupa ce apasati Apply ,profilul sters va fi pierdut definitiv.</string> <string name="delete_profiles_descr">Apăsând pe \'Aplică\' se vor șterge permanent profilurile eliminate.</string>
<string name="master_profile">Profil de baza</string> <string name="master_profile">Profil de baza</string>
<string name="select_color">Selecteaza culoarea</string> <string name="select_color">Selectează culoarea</string>
<string name="edit_profiles_descr">Nu puteți șterge profilurile OsmAnd implicite, dar aveți posibilitatea să le dezactivați în ecranul anterior sau să le mutați în partea de jos.</string> <string name="edit_profiles_descr">Nu puteți șterge profilurile OsmAnd implicite, dar aveți posibilitatea să le dezactivați în ecranul anterior sau să le mutați în partea de jos.</string>
<string name="edit_profiles">Editarea profilurilor</string> <string name="edit_profiles">Editarea profilurilor</string>
<string name="select_nav_profile_dialog_message">Tipul de navigație afectează regulile pentru calcularea rutei.</string> <string name="select_nav_profile_dialog_message">Tipul de navigație afectează regulile pentru calcularea rutei.</string>
<string name="profile_appearance">Aspectul profilului</string> <string name="profile_appearance">Aspectul profilului</string>
<string name="choose_icon_color_name">Alegeți pictograma, culoarea și numele</string> <string name="choose_icon_color_name">Pictograma, culoarea și numele</string>
<string name="reorder_profiles">Editează lista de profiluri</string> <string name="reorder_profiles">Editează lista de profiluri</string>
<string name="selected_profile">Profil selectat</string> <string name="selected_profile">Profil selectat</string>
<string name="nautical_render_descr">Pentru navigare nautică.Caracteristici de geamanduri, faruri, râuri, benzi și mărci de mare, porturi, servicii de marinari, și contururi de adâncime.</string> <string name="nautical_render_descr">Pentru navigare nautică.Caracteristici de geamanduri, faruri, râuri, benzi și mărci de mare, porturi, servicii de marinari, și contururi de adâncime.</string>
@ -2747,7 +2747,7 @@
<string name="route_recalculation">Recalculare rută</string> <string name="route_recalculation">Recalculare rută</string>
<string name="accessibility_announce">Anunț</string> <string name="accessibility_announce">Anunț</string>
<string name="login_and_pass">Utilizator și parolă</string> <string name="login_and_pass">Utilizator și parolă</string>
<string name="plugin_global_prefs_info">Aceste setări se aplică la toate profilurile.</string> <string name="plugin_global_prefs_info">Aceste setări se aplicp la toate profilurile.</string>
<string name="osm_editing">Editare OSM</string> <string name="osm_editing">Editare OSM</string>
<string name="app_mode_osm">OSM</string> <string name="app_mode_osm">OSM</string>
<string name="permission_is_required">E nevoie de permisiune pentru a utiliza această opțiune.</string> <string name="permission_is_required">E nevoie de permisiune pentru a utiliza această opțiune.</string>
@ -2797,4 +2797,65 @@
<string name="shared_string_importing">Se importă</string> <string name="shared_string_importing">Se importă</string>
<string name="items_added">Articole adăugate</string> <string name="items_added">Articole adăugate</string>
<string name="shared_string_import_complete">Importarea s-a finalizat</string> <string name="shared_string_import_complete">Importarea s-a finalizat</string>
<string name="edit_online_source">Editare sursă online</string>
<string name="mercator_projection">Proiecție Mercator</string>
<string name="speed_camera_pois">POI-uri Camere viteză</string>
<string name="speed_cameras_legal_descr">În unele țări sau regiuni, utilizarea aplicațiilor de avertizare a camerelor de viteză este interzisă de lege.
\n
\nTrebuie să faceți o alegere în funcție de legea țării dvs.
\n
\nSelectați %1$s și veți primi alerte și avertismente cu privire la camerele de viteză.
\n
\nSelectați %2$s. Toate datele legate de camerele de viteză: alerte, notificări, POI-uri vor fi șterse până când OsmAnd este reinstalat din nou.</string>
<string name="speed_cameras_alert">Alertele camerelor de viteză în unele țări sunt interzise de lege.</string>
<string name="use_volume_buttons_as_zoom">Butoane volum ca și zoom</string>
<string name="set_working_days_to_continue">Trebuie să setați zile lucrătoare pentru a continua</string>
<string name="track_show_start_finish_icons">Afișare icoane start finish</string>
<string name="select_track_width">Selecție lățime</string>
<string name="keep_screen_on">Țineți ecranul pornit</string>
<string name="keep_screen_off">Țineți ecranul oprit</string>
<string name="pseudo_mercator_projection">Proiecție pseudo-Mercator</string>
<string name="sqlite_db_file">Fișier SQLiteDB</string>
<string name="expire_time">Timp expirare</string>
<string name="storage_format">Format stocare</string>
<string name="shared_string_delete_all_q">Șterg tot\?</string>
<string name="uninstall_speed_cameras">Dezinstalare camere radar</string>
<string name="shared_string_legal">Legal</string>
<string name="keep_active">Mențineți activ</string>
<string name="shared_string_uninstall">Dezinstalare</string>
<string name="shared_string_tones">tone</string>
<string name="shared_string_meters">metrii</string>
<string name="add_online_source">Adăugare surse online</string>
<string name="quick_action_showhide_mapillary_title">Afișare/ascundere Mapillary</string>
<string name="quick_action_mapillary_hide">Ascundere Mapillary</string>
<string name="quick_action_mapillary_show">Afișare Mapillary</string>
<string name="quick_action_showhide_mapillary_descr">O comutare pentru a afișa sau ascunde stratul Mapillary pe hartă.</string>
<string name="routing_attr_length_description">Specificați lungimea vehiculului care trebuie permisă pe rute.</string>
<string name="routing_attr_length_name">Limită lungime</string>
<string name="shared_string_bearing">Direcție</string>
<string name="item_deleted">%1$s șters</string>
<string name="shared_string_uninstall_and_restart">Dezinstalare și repornire</string>
<string name="quick_action_remove_next_destination">Ștergeți următorul punct de destinație</string>
<string name="please_provide_point_name_error">Vă rugăm să furnizați un nume pentru acest punct</string>
<string name="search_download_wikipedia_maps">Descărcare hărți Wikipedia</string>
<string name="app_mode_enduro_motorcycle">Motocicletă enduro</string>
<string name="app_mode_wheelchair">Scaun cu rotile</string>
<string name="osm_edit_closed_note">Notă OSM închisă</string>
<string name="plan_a_route">Planificați o rută</string>
<string name="add_to_a_track">Adăugați la traseu</string>
<string name="shared_string_custom">Personalizat</string>
<string name="gpx_direction_arrows">Săgeți direcționale</string>
<string name="track_coloring_solid">Solid</string>
<string name="plan_route_last_edited">Ultima modificare</string>
<string name="plan_route_import_track">Importare traseu</string>
<string name="plan_route_open_existing_track">Deschideți o rută existentă</string>
<string name="plan_route_create_new_route">Creați o rută nouă</string>
<string name="shared_string_done">Gata</string>
<string name="overwrite_track">Suprascriere traseu</string>
<string name="save_as_new_track">Salvați ca și traseu nou</string>
<string name="reverse_route">Inversare rută</string>
<string name="whole_track">Întreg traseul</string>
<string name="next_segment">Segmentul următor</string>
<string name="navigation_profile">Profil navigație</string>
<string name="routing_attr_height_obstacles_name">Utilizare date altitudine</string>
</resources> </resources>

View file

@ -44,7 +44,7 @@
<dimen name="subHeaderPadding">2dp</dimen> <dimen name="subHeaderPadding">2dp</dimen>
<dimen name="subHeaderMarginLeft">15dp</dimen> <dimen name="subHeaderMarginLeft">15dp</dimen>
<dimen name = "subHeaderMarginRight">15dp</dimen> <dimen name="subHeaderMarginRight">15dp</dimen>
<dimen name="showAllButtonMarginRight">14dp</dimen> <dimen name="showAllButtonMarginRight">14dp</dimen>
<dimen name="showAllButtonHeight">36dp</dimen> <dimen name="showAllButtonHeight">36dp</dimen>
<dimen name="dashFavIconSize">28dp</dimen> <dimen name="dashFavIconSize">28dp</dimen>
@ -396,4 +396,7 @@
<dimen name="info_description_line_spacing_multiplier" format="float">1.4</dimen> <dimen name="info_description_line_spacing_multiplier" format="float">1.4</dimen>
<dimen name="screen_alert_big_warning_icon_size">92dp</dimen> <dimen name="screen_alert_big_warning_icon_size">92dp</dimen>
<dimen name="radioButtonSize">32dp</dimen>
<dimen name="checkBoxSize">24dp</dimen>
</resources> </resources>

View file

@ -11,7 +11,7 @@
Thx - Hardy Thx - Hardy
--> -->
<string name="street_level_imagery">Street-level imagery</string>
<string name="rourte_between_points_add_track_desc">Select a track file for which a new segment will be added.</string> <string name="rourte_between_points_add_track_desc">Select a track file for which a new segment will be added.</string>
<string name="navigation_profile">Navigation profile</string> <string name="navigation_profile">Navigation profile</string>
<string name="threshold_distance">Threshold distance</string> <string name="threshold_distance">Threshold distance</string>
@ -1245,7 +1245,7 @@
<string name="mapillary_widget">Mapillary widget</string> <string name="mapillary_widget">Mapillary widget</string>
<string name="mapillary_widget_descr">Allows quick contributions to Mapillary.</string> <string name="mapillary_widget_descr">Allows quick contributions to Mapillary.</string>
<string name="mapillary_descr">Online street-level photos for everyone. Discover places, collaborate, capture the world.</string> <string name="mapillary_descr">Online street-level photos for everyone. Discover places, collaborate, capture the world.</string>
<string name="mapillary">Mapillary</string> <string name="mapillary">Street-level imagery</string>
<string name="plugin_mapillary_descr">Street-level photos for everyone. Discover places, collaborate, capture the world.</string> <string name="plugin_mapillary_descr">Street-level photos for everyone. Discover places, collaborate, capture the world.</string>
<string name="private_access_routing_req">Your destination is located in an area with private access. Allow using private roads for this trip?</string> <string name="private_access_routing_req">Your destination is located in an area with private access. Allow using private roads for this trip?</string>
<string name="restart_search">Restart search</string> <string name="restart_search">Restart search</string>

View file

@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Dialog_Fullscreen" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/color_transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
<!-- Dashboard styles --> <!-- Dashboard styles -->
<style name="DashboardSubHeader"> <style name="DashboardSubHeader">
<item name="android:layout_width">0dp</item> <item name="android:layout_width">0dp</item>
@ -36,18 +28,6 @@
<item name="android:background">?attr/dashboard_button</item> <item name="android:background">?attr/dashboard_button</item>
</style> </style>
<style name="DashboardSearchButton">
<item name="android:paddingTop">@dimen/dashSearchPaddingTop</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_weight">1</item>
<item name="android:textColor">?android:textColorPrimary</item>
<item name="android:textSize">@dimen/default_sub_text_size</item>
<item name="android:gravity">bottom|center_horizontal</item>
<item name="android:paddingBottom">@dimen/dashSearchPaddingBot</item>
<item name="android:background">?attr/dashboard_button</item>
</style>
<style name="DialogActionButton"> <style name="DialogActionButton">
<item name="android:layout_width">wrap_content</item> <item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
@ -60,18 +40,6 @@
<item name="android:background">?attr/btn_round</item> <item name="android:background">?attr/btn_round</item>
</style> </style>
<style name="DialogCancelButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:minHeight">@dimen/dialog_button_height</item>
<item name="android:paddingLeft">16dp</item>
<item name="android:paddingRight">16dp</item>
<item name="android:paddingTop">8dp</item>
<item name="android:paddingBottom">8dp</item>
<item name="android:textColor">?attr/contextMenuButtonColor</item>
<item name="android:background">?attr/selectableItemBackground</item>
</style>
<style name="FirstSplashScreenCustom" parent="OsmandLightTheme.NoActionbar"> <style name="FirstSplashScreenCustom" parent="OsmandLightTheme.NoActionbar">
<item name="android:windowBackground">@drawable/first_splash_screen_free</item> <item name="android:windowBackground">@drawable/first_splash_screen_free</item>
</style> </style>
@ -88,43 +56,14 @@
<item name="android:windowBackground">@drawable/first_splash_screen_free_dev</item> <item name="android:windowBackground">@drawable/first_splash_screen_free_dev</item>
</style> </style>
<style name="OsmandTextFieldBoxes" parent="OsmandDarkTheme">
<item name="android:textColorTertiary">@color/white_50_transparent</item>
<item name="primaryColor">@color/white_50_transparent</item>
<item name="errorColor">@color/coordinate_input_error_color</item>
</style>
<style name="OsmandLightThemeWithLightStatusBar" parent="OsmandLightTheme">
<item name="android:statusBarColor">@color/status_bar_route_light</item>
</style>
<style name="TextAppearance.App.DarkTextInputLayout" parent="@android:style/TextAppearance"> <style name="TextAppearance.App.DarkTextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/active_color_primary_dark</item> <item name="android:textColor">@color/active_color_primary_dark</item>
</style> </style>
<style name="OsmandMaterialLightTheme" parent="Theme.MaterialComponents.Light">
<item name="colorPrimary">@color/active_color_primary_light</item>
<item name="dashboard_divider">@color/divider_color_light</item>
<item name="divider_color">@color/divider_color</item>
<item name="android:textColorPrimary">@color/text_color_primary_light</item>
<item name="android:textColorSecondary">@color/text_color_secondary_light</item>
</style>
<style name="OsmandMaterialDarkTheme" parent="Theme.MaterialComponents">
<item name="colorPrimary">@color/active_color_primary_dark</item>
<item name="dashboard_divider">@color/divider_color_dark</item>
<item name="divider_color">@color/divider_color_dark</item>
<item name="android:textColorPrimary">@color/text_color_primary_dark</item>
<item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
</style>
<!-- MaterialComponents Widgets override -->
<style name="Widget.Styled.Slider" parent="Widget.MaterialComponents.Slider">
<item name="android:theme">@style/Theme.MaterialComponents</item>
</style>
<!-- Osmand themes styles --> <!-- Osmand themes styles -->
<style name="OsmandLightTheme" parent="Theme.AppCompat.Light"> <style name="OsmandLightTheme" parent="Theme.MaterialComponents.Light">
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
<item name="buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
<item name="bottom_bar_background_color">@color/bottom_bar_background_color_light</item> <item name="bottom_bar_background_color">@color/bottom_bar_background_color_light</item>
<item name="android:textDirection">locale</item> <item name="android:textDirection">locale</item>
<item name="android:statusBarColor">@color/status_bar_color_light</item> <item name="android:statusBarColor">@color/status_bar_color_light</item>
@ -188,6 +127,7 @@
<item name="dashboard_general_button_text_color">@color/active_color_primary_light</item> <item name="dashboard_general_button_text_color">@color/active_color_primary_light</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/check_light</item> <item name="android:listChoiceIndicatorMultiple">@drawable/check_light</item>
<item name="android:textColor">@color/text_color_primary_light</item>
<item name="android:textColorPrimary">@color/text_color_primary_light</item> <item name="android:textColorPrimary">@color/text_color_primary_light</item>
<item name="android:textColorSecondary">@color/text_color_secondary_light</item> <item name="android:textColorSecondary">@color/text_color_secondary_light</item>
<item name="android:textColorTertiary">@color/text_color_tertiary_light</item> <item name="android:textColorTertiary">@color/text_color_tertiary_light</item>
@ -196,7 +136,7 @@
<item name="spinnerListBackground">@color/spinner_list_background_light</item> <item name="spinnerListBackground">@color/spinner_list_background_light</item>
<item name="colorButtonNormal">@color/color_white</item> <item name="colorButtonNormal">@color/color_white</item>
<item name="colorPrimary">@color/osmand_orange</item> <item name="colorPrimary">@color/active_color_primary_light</item>
<item name="colorPrimaryDark">@color/osmand_orange_dark</item> <item name="colorPrimaryDark">@color/osmand_orange_dark</item>
<item name="colorAccent">@color/active_color_primary_light</item> <item name="colorAccent">@color/active_color_primary_light</item>
@ -300,6 +240,8 @@
<item name="btn_radio_button_left">@drawable/radio_button_left_light</item> <item name="btn_radio_button_left">@drawable/radio_button_left_light</item>
<item name="btn_radio_button_right">@drawable/radio_button_right_light</item> <item name="btn_radio_button_right">@drawable/radio_button_right_light</item>
<item name="btn_radio_button_center">@drawable/radio_button_center_light</item> <item name="btn_radio_button_center">@drawable/radio_button_center_light</item>
<item name="checkboxStyle">@style/CheckboxStyle</item>
<item name="radioButtonStyle">@style/RadioButtonStyle</item>
</style> </style>
<style name="ToolbarStyle" parent="@style/Widget.AppCompat.Toolbar"> <style name="ToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
@ -343,9 +285,11 @@
<!--<item name="actionMenuTextColor">@color/color_white</item>--> <!--<item name="actionMenuTextColor">@color/color_white</item>-->
</style> </style>
<style name="OsmandLightTheme.SearchTabbar"> <style name="OsmandLightTheme.SearchTabbar" parent="Widget.MaterialComponents.TabLayout">
<item name="android:textColorPrimary">@color/osmand_orange</item> <item name="tabIndicatorColor">@color/app_bar_main_light</item>
<item name="tabTextColor">@color/text_color_secondary_light</item>
<item name="colorAccent">@color/osmand_orange</item> <item name="colorAccent">@color/osmand_orange</item>
<item name="tabSelectedTextColor">@color/osmand_orange</item>
<item name="android:textColorSecondary">@color/text_color_secondary_light</item> <item name="android:textColorSecondary">@color/text_color_secondary_light</item>
<item name="android:textColorHint">@color/text_color_secondary_light</item> <item name="android:textColorHint">@color/text_color_secondary_light</item>
</style> </style>
@ -371,9 +315,11 @@
<item name="colorAccent">@color/color_white</item> <item name="colorAccent">@color/color_white</item>
</style> </style>
<style name="OsmandDarkTheme.SearchTabbar"> <style name="OsmandDarkTheme.SearchTabbar" parent="Widget.MaterialComponents.TabLayout">
<item name="android:textColorPrimary">@color/osmand_orange</item> <item name="tabIndicatorColor">@color/app_bar_main_light</item>
<item name="tabTextColor">@color/text_color_secondary_dark</item>
<item name="colorAccent">@color/osmand_orange</item> <item name="colorAccent">@color/osmand_orange</item>
<item name="tabSelectedTextColor">@color/osmand_orange</item>
<item name="android:textColorSecondary">@color/text_color_secondary_dark</item> <item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
<item name="android:textColorHint">@color/text_color_secondary_dark</item> <item name="android:textColorHint">@color/text_color_secondary_dark</item>
</style> </style>
@ -420,7 +366,7 @@
<item name="colorControlNormal">?attr/coordinate_input_edit_text_normal</item> <item name="colorControlNormal">?attr/coordinate_input_edit_text_normal</item>
</style> </style>
<style name="OsmandDarkTheme" parent="Theme.AppCompat"> <style name="OsmandDarkTheme" parent="Theme.MaterialComponents">
<item name="bottom_bar_background_color">@color/bottom_bar_background_color_dark</item> <item name="bottom_bar_background_color">@color/bottom_bar_background_color_dark</item>
<item name="android:textDirection">locale</item> <item name="android:textDirection">locale</item>
<item name="android:statusBarColor">@color/status_bar_color_dark</item> <item name="android:statusBarColor">@color/status_bar_color_dark</item>
@ -478,6 +424,7 @@
<item name="dashboard_general_button_text_color">@color/active_color_primary_dark</item> <item name="dashboard_general_button_text_color">@color/active_color_primary_dark</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/check_dark</item> <item name="android:listChoiceIndicatorMultiple">@drawable/check_dark</item>
<item name="android:textColor">@color/text_color_primary_dark</item>
<item name="android:textColorPrimary">@color/text_color_primary_dark</item> <item name="android:textColorPrimary">@color/text_color_primary_dark</item>
<item name="android:textColorSecondary">@color/text_color_secondary_dark</item> <item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
<item name="android:textColorTertiary">@color/text_color_tertiary_dark</item> <item name="android:textColorTertiary">@color/text_color_tertiary_dark</item>
@ -501,6 +448,8 @@
<item name="search_tabbar_layout_theme">@style/OsmandDarkTheme.SearchTabbar</item> <item name="search_tabbar_layout_theme">@style/OsmandDarkTheme.SearchTabbar</item>
<item name="toolbar_theme">@style/OsmandDarkTheme</item> <item name="toolbar_theme">@style/OsmandDarkTheme</item>
<item name="new_app_theme">@style/OsmandDarkTheme</item> <item name="new_app_theme">@style/OsmandDarkTheme</item>
<item name="colorPrimary">@color/active_color_primary_dark</item>
<item name="colorAccent">@color/active_color_primary_dark</item> <item name="colorAccent">@color/active_color_primary_dark</item>
<item name="contextMenuButtonColor">@color/osmand_orange</item> <item name="contextMenuButtonColor">@color/osmand_orange</item>
@ -584,6 +533,8 @@
<item name="btn_radio_button_left">@drawable/radio_button_left_dark</item> <item name="btn_radio_button_left">@drawable/radio_button_left_dark</item>
<item name="btn_radio_button_right">@drawable/radio_button_right_dark</item> <item name="btn_radio_button_right">@drawable/radio_button_right_dark</item>
<item name="btn_radio_button_center">@drawable/radio_button_center_dark</item> <item name="btn_radio_button_center">@drawable/radio_button_center_dark</item>
<item name="checkboxStyle">@style/CheckboxStyle</item>
<item name="radioButtonStyle">@style/RadioButtonStyle</item>
</style> </style>
<style name="FreeVersionBanner" parent="OsmandDarkTheme"> <style name="FreeVersionBanner" parent="OsmandDarkTheme">
@ -634,6 +585,16 @@
<item name="elevation">0dp</item> <item name="elevation">0dp</item>
</style> </style>
<style name="CheckboxStyle" parent="Widget.AppCompat.CompoundButton.CheckBox">
<item name="android:height">@dimen/checkBoxSize</item>
<item name="android:width">@dimen/checkBoxSize</item>
</style>
<style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
<item name="android:height">@dimen/radioButtonSize</item>
<item name="android:width">@dimen/radioButtonSize</item>
</style>
<style name="Widget.Styled.LightActionBarTitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> <style name="Widget.Styled.LightActionBarTitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color_white</item> <item name="android:textColor">@color/color_white</item>
</style> </style>

View file

@ -54,6 +54,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes; import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes; import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
@ -169,11 +170,11 @@ public class AndroidUtils {
return intent.resolveActivity(context.getPackageManager()) != null; return intent.resolveActivity(context.getPackageManager()) != null;
} }
public static boolean isActivityNotDestroyed(Activity activity) { public static boolean isActivityNotDestroyed(@Nullable Activity activity) {
if (Build.VERSION.SDK_INT >= 17) { if (Build.VERSION.SDK_INT >= 17) {
return !activity.isFinishing() && !activity.isDestroyed(); return activity != null && !activity.isFinishing() && !activity.isDestroyed();
} }
return !activity.isFinishing(); return activity != null && !activity.isFinishing();
} }
public static Spannable replaceCharsWithIcon(String text, Drawable icon, String[] chars) { public static Spannable replaceCharsWithIcon(String text, Drawable icon, String[] chars) {

View file

@ -36,6 +36,7 @@ import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.view.ContextThemeWrapper; import androidx.appcompat.view.ContextThemeWrapper;
import androidx.appcompat.widget.ListPopupWindow; import androidx.appcompat.widget.ListPopupWindow;
import androidx.appcompat.widget.SwitchCompat; import androidx.appcompat.widget.SwitchCompat;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat; import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
@ -547,6 +548,19 @@ public class UiUtilities {
compoundButton.setBackgroundColor(Color.TRANSPARENT); compoundButton.setBackgroundColor(Color.TRANSPARENT);
} }
public static void setupToolbarOverflowIcon(Toolbar toolbar, @DrawableRes int iconId, @ColorRes int colorId) {
Context ctx = toolbar.getContext();
if (ctx != null) {
Drawable icon = ContextCompat.getDrawable(ctx, iconId);
toolbar.setOverflowIcon(icon);
if (icon != null) {
int color = ContextCompat.getColor(ctx, colorId);
DrawableCompat.setTint(icon.mutate(), color);
toolbar.setOverflowIcon(icon);
}
}
}
public static ViewGroup createSliderView(@NonNull Context ctx, boolean nightMode) { public static ViewGroup createSliderView(@NonNull Context ctx, boolean nightMode) {
return (ViewGroup) getInflater(ctx, nightMode).inflate(R.layout.slider, null, false); return (ViewGroup) getInflater(ctx, nightMode).inflate(R.layout.slider, null, false);
} }
@ -692,14 +706,6 @@ public class UiUtilities {
} }
} }
public static LayoutInflater getMaterialInflater(Context ctx, boolean nightMode) {
return LayoutInflater.from(getThemedMaterialContext(ctx, nightMode));
}
private static Context getThemedMaterialContext(Context context, boolean nightMode) {
return getThemedContext(context, nightMode, R.style.OsmandMaterialLightTheme, R.style.OsmandMaterialDarkTheme);
}
public static LayoutInflater getInflater(Context ctx, boolean nightMode) { public static LayoutInflater getInflater(Context ctx, boolean nightMode) {
return LayoutInflater.from(getThemedContext(ctx, nightMode)); return LayoutInflater.from(getThemedContext(ctx, nightMode));
} }

View file

@ -130,7 +130,6 @@ public class PluginsActivity extends OsmandListActivity implements DownloadIndex
} }
protected class PluginsListAdapter extends ArrayAdapter<Object> { protected class PluginsListAdapter extends ArrayAdapter<Object> {
PluginsListAdapter() { PluginsListAdapter() {
super(PluginsActivity.this, R.layout.plugins_list_item, new ArrayList<>()); super(PluginsActivity.this, R.layout.plugins_list_item, new ArrayList<>());
addAll(getMyApplication().getAidlApi().getConnectedApps()); addAll(getMyApplication().getAidlApi().getConnectedApps());
@ -193,7 +192,7 @@ public class PluginsActivity extends OsmandListActivity implements DownloadIndex
AndroidUtils.removeLinkUnderline(pluginDescription); AndroidUtils.removeLinkUnderline(pluginDescription);
OsmandApplication app = getMyApplication(); OsmandApplication app = getMyApplication();
int color = AndroidUtils.getColorFromAttr(app, R.attr.list_background_color); int color = AndroidUtils.getColorFromAttr(PluginsActivity.this, R.attr.list_background_color);
pluginLogo.setImageDrawable(UiUtilities.tintDrawable(plugin.getLogoResource(), color)); pluginLogo.setImageDrawable(UiUtilities.tintDrawable(plugin.getLogoResource(), color));
pluginLogo.setOnClickListener(new View.OnClickListener() { pluginLogo.setOnClickListener(new View.OnClickListener() {
@Override @Override

View file

@ -62,7 +62,7 @@ public class OsmandDevelopmentPlugin extends OsmandPlugin {
helper.addItem(new ContextMenuItem.ItemBuilder() helper.addItem(new ContextMenuItem.ItemBuilder()
.setId(DRAWER_BUILDS_ID) .setId(DRAWER_BUILDS_ID)
.setTitleId(R.string.version_settings, mapActivity) .setTitleId(R.string.version_settings, mapActivity)
.setIcon(R.drawable.ic_action_info_dark) .setIcon(R.drawable.ic_action_apk)
.setListener(new ContextMenuAdapter.ItemClickListener() { .setListener(new ContextMenuAdapter.ItemClickListener() {
@Override @Override
public boolean onContextMenuClick(ArrayAdapter<ContextMenuItem> adapter, int itemId, int pos, boolean isChecked, int[] viewCoordinates) { public boolean onContextMenuClick(ArrayAdapter<ContextMenuItem> adapter, int itemId, int pos, boolean isChecked, int[] viewCoordinates) {
@ -133,7 +133,7 @@ public class OsmandDevelopmentPlugin extends OsmandPlugin {
@Override @Override
public int getLogoResourceId() { public int getLogoResourceId() {
return R.drawable.ic_plugin_developer; return R.drawable.ic_action_laptop;
} }
@Override @Override

View file

@ -600,8 +600,9 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement
ContextMenuItem contextMenuItem = optionsMenuAdapter.getItem(j); ContextMenuItem contextMenuItem = optionsMenuAdapter.getItem(j);
if (j + 1 >= max && optionsMenuAdapter.length() > max) { if (j + 1 >= max && optionsMenuAdapter.length() > max) {
if (split == null) { if (split == null) {
Drawable icOverflowMenu = getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_overflow_menu_white);
split = menu.addSubMenu(0, 1, j + 1, R.string.shared_string_more_actions); split = menu.addSubMenu(0, 1, j + 1, R.string.shared_string_more_actions);
split.setIcon(R.drawable.ic_overflow_menu_white); split.setIcon(icOverflowMenu);
split.getItem(); split.getItem();
MenuItemCompat.setShowAsAction(split.getItem(), MenuItemCompat.SHOW_AS_ACTION_ALWAYS); MenuItemCompat.setShowAsAction(split.getItem(), MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
} }

View file

@ -8,6 +8,7 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBar;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentPagerAdapter;
@ -45,7 +46,8 @@ public class OsmLiveActivity extends AbstractDownloadActivity implements Downloa
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
getMyApplication().applyTheme(this); OsmandApplication app = getMyApplication();
app.applyTheme(this);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_livie_updates); setContentView(R.layout.activity_livie_updates);
@ -69,6 +71,13 @@ public class OsmLiveActivity extends AbstractDownloadActivity implements Downloa
getLastUpdateDateTask = new GetLastUpdateDateTask(this); getLastUpdateDateTask = new GetLastUpdateDateTask(this);
getLastUpdateDateTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); getLastUpdateDateTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} }
boolean nightMode = !app.getSettings().isLightContent();
int normalTabColor = ContextCompat.getColor(app,
nightMode ? R.color.searchbar_tab_inactive_dark : R.color.searchbar_tab_inactive_light);
int selectedTabColor = ContextCompat.getColor(app,
nightMode ? R.color.text_color_tab_active_dark : R.color.text_color_tab_active_light);
tabLayout.setTabTextColors(normalTabColor, selectedTabColor);
} }
@Override @Override

View file

@ -3,11 +3,9 @@ package net.osmand.plus.liveupdates;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
@ -21,8 +19,6 @@ import android.widget.ProgressBar;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.AttrRes;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -205,9 +201,9 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
}; };
monthReportsSpinner.setOnItemSelectedListener(onItemSelectedListener); monthReportsSpinner.setOnItemSelectedListener(onItemSelectedListener);
inactiveColor = getColorFromAttr(R.attr.plugin_details_install_header_bg); inactiveColor = AndroidUtils.getColorFromAttr(container.getContext(), R.attr.plugin_details_install_header_bg);
textColorPrimary = getColorFromAttr(android.R.attr.textColorPrimary); textColorPrimary = AndroidUtils.getColorFromAttr(container.getContext(), android.R.attr.textColorPrimary);
textColorSecondary = getColorFromAttr(android.R.attr.textColorSecondary); textColorSecondary = AndroidUtils.getColorFromAttr(container.getContext(), android.R.attr.textColorSecondary);
return view; return view;
} }
@ -427,12 +423,4 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
donationsTotalTextView.setTextColor(textColorPrimary); donationsTotalTextView.setTextColor(textColorPrimary);
recipientsTextView.setTextColor(textColorPrimary); recipientsTextView.setTextColor(textColorPrimary);
} }
@ColorInt
private int getColorFromAttr(@AttrRes int colorAttribute) {
TypedValue typedValue = new TypedValue();
Resources.Theme theme = getActivity().getTheme();
theme.resolveAttribute(colorAttribute, typedValue, true);
return typedValue.data;
}
} }

View file

@ -101,7 +101,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
app = requireMyApplication(); app = requireMyApplication();
nightMode = app.getDaynightHelper().isNightModeForMapControls(); nightMode = app.getDaynightHelper().isNightModeForMapControls();
view = UiUtilities.getMaterialInflater(getContext(), nightMode) view = UiUtilities.getInflater(getContext(), nightMode)
.inflate(R.layout.point_editor_fragment_new, container, false); .inflate(R.layout.point_editor_fragment_new, container, false);
AndroidUtils.addStatusBarPadding21v(getActivity(), view); AndroidUtils.addStatusBarPadding21v(getActivity(), view);

View file

@ -181,7 +181,7 @@ public class MapillaryPlugin extends OsmandPlugin {
} }
adapter.addItem(new ContextMenuItem.ItemBuilder() adapter.addItem(new ContextMenuItem.ItemBuilder()
.setId(MAPILLARY) .setId(MAPILLARY)
.setTitleId(R.string.street_level_imagery, mapActivity) .setTitleId(R.string.mapillary, mapActivity)
.setDescription("Mapillary") .setDescription("Mapillary")
.setSelected(settings.SHOW_MAPILLARY.get()) .setSelected(settings.SHOW_MAPILLARY.get())
.setColor(settings.SHOW_MAPILLARY.get() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setColor(settings.SHOW_MAPILLARY.get() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID)

View file

@ -142,7 +142,8 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment
sqliteDB = savedInstanceState.getBoolean(SQLITE_DB_KEY); sqliteDB = savedInstanceState.getBoolean(SQLITE_DB_KEY);
fromTemplate = savedInstanceState.getBoolean(FROM_TEMPLATE_KEY); fromTemplate = savedInstanceState.getBoolean(FROM_TEMPLATE_KEY);
} }
View root = UiUtilities.getMaterialInflater(requireContext(), nightMode).inflate(R.layout.fragment_edit_map_source, container, false); View root = UiUtilities.getInflater(requireContext(), nightMode)
.inflate(R.layout.fragment_edit_map_source, container, false);
Toolbar toolbar = root.findViewById(R.id.toolbar); Toolbar toolbar = root.findViewById(R.id.toolbar);
toolbar.setBackgroundColor(ContextCompat.getColor(app, nightMode ? R.color.app_bar_color_dark : R.color.app_bar_color_light)); toolbar.setBackgroundColor(ContextCompat.getColor(app, nightMode ? R.color.app_bar_color_dark : R.color.app_bar_color_light));
toolbar.setTitleTextColor(ContextCompat.getColor(app, nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light)); toolbar.setTitleTextColor(ContextCompat.getColor(app, nightMode ? R.color.active_buttons_and_links_text_dark : R.color.active_buttons_and_links_text_light));
@ -491,7 +492,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment
} }
private void addConfigurationItems(ConfigurationItem... items) { private void addConfigurationItems(ConfigurationItem... items) {
LayoutInflater inflater = UiUtilities.getMaterialInflater(app, nightMode); LayoutInflater inflater = UiUtilities.getInflater(app, nightMode);
for (ConfigurationItem item : items) { for (ConfigurationItem item : items) {
View view = inflater.inflate(R.layout.list_item_ui_customization, null); View view = inflater.inflate(R.layout.list_item_ui_customization, null);
((ImageView) view.findViewById(R.id.icon)).setImageDrawable(app.getUIUtilities().getIcon(item.iconRes, nightMode)); ((ImageView) view.findViewById(R.id.icon)).setImageDrawable(app.getUIUtilities().getIcon(item.iconRes, nightMode));

View file

@ -51,7 +51,7 @@ public class ExpireTimeBottomSheet extends MenuBottomSheetDialogFragment {
if (savedInstanceState != null) { if (savedInstanceState != null) {
expireValue = savedInstanceState.getInt(EXPIRE_VALUE_KEY, EXPIRE_TIME_NEVER); expireValue = savedInstanceState.getInt(EXPIRE_VALUE_KEY, EXPIRE_TIME_NEVER);
} }
LayoutInflater inflater = UiUtilities.getMaterialInflater(getContext(), nightMode); LayoutInflater inflater = UiUtilities.getInflater(getContext(), nightMode);
TitleItem titleItem = new TitleItem(getString(R.string.expire_time)); TitleItem titleItem = new TitleItem(getString(R.string.expire_time));
items.add(titleItem); items.add(titleItem);
final View inputValueLayout = inflater.inflate(R.layout.edit_text_with_descr, null); final View inputValueLayout = inflater.inflate(R.layout.edit_text_with_descr, null);

View file

@ -6,7 +6,6 @@ import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.StyleSpan;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
@ -81,7 +80,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment {
sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY); sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY);
newMapSource = savedInstanceState.getBoolean(NEW_MAP_SOURCE); newMapSource = savedInstanceState.getBoolean(NEW_MAP_SOURCE);
} }
LayoutInflater inflater = UiUtilities.getMaterialInflater(app, nightMode); LayoutInflater inflater = UiUtilities.getInflater(app, nightMode);
TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels)); TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels));
items.add(titleItem); items.add(titleItem);
final View sliderView = inflater.inflate(R.layout.zoom_levels_with_descr, null); final View sliderView = inflater.inflate(R.layout.zoom_levels_with_descr, null);

View file

@ -7,6 +7,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -15,18 +16,25 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import net.osmand.AndroidUtils; import net.osmand.AndroidUtils;
import net.osmand.LocationsHolder;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.UiUtilities; import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.base.ContextMenuScrollFragment; import net.osmand.plus.base.ContextMenuScrollFragment;
import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.routing.GpxApproximator;
import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.router.RoutePlannerFrontEnd.GpxRouteApproximation;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import static net.osmand.plus.measurementtool.ProfileCard.*; import java.io.IOException;
import static net.osmand.plus.measurementtool.SliderCard.*;
import static net.osmand.plus.measurementtool.ProfileCard.ProfileCardListener;
import static net.osmand.plus.measurementtool.SliderCard.SliderCardListener;
public class GpxApproximationFragment extends ContextMenuScrollFragment public class GpxApproximationFragment extends ContextMenuScrollFragment
implements SliderCardListener, ProfileCardListener { implements SliderCardListener, ProfileCardListener {
@ -36,9 +44,16 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
public static final String DISTANCE_THRESHOLD_KEY = "distance_threshold"; public static final String DISTANCE_THRESHOLD_KEY = "distance_threshold";
public static final String SNAP_TO_ROAD_APP_MODE_STRING_KEY = "snap_to_road_app_mode"; public static final String SNAP_TO_ROAD_APP_MODE_STRING_KEY = "snap_to_road_app_mode";
public static final int REQUEST_CODE = 1100;
private int menuTitleHeight; private int menuTitleHeight;
private ApplicationMode snapToRoadAppMode = ApplicationMode.CAR; private ApplicationMode snapToRoadAppMode = ApplicationMode.CAR;
private int distanceThreshold = 30; private int distanceThreshold = 50;
private LocationsHolder locationsHolder;
@Nullable
private GpxApproximator gpxApproximator;
private ProgressBar progressBar;
@Override @Override
public int getMainLayoutId() { public int getMainLayoutId() {
@ -85,6 +100,43 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
distanceThreshold = savedInstanceState.getInt(DISTANCE_THRESHOLD_KEY); distanceThreshold = savedInstanceState.getInt(DISTANCE_THRESHOLD_KEY);
snapToRoadAppMode = ApplicationMode.valueOfStringKey( snapToRoadAppMode = ApplicationMode.valueOfStringKey(
savedInstanceState.getString(SNAP_TO_ROAD_APP_MODE_STRING_KEY), ApplicationMode.CAR); savedInstanceState.getString(SNAP_TO_ROAD_APP_MODE_STRING_KEY), ApplicationMode.CAR);
try {
gpxApproximator = new GpxApproximator(requireMyApplication(), snapToRoadAppMode, distanceThreshold, locationsHolder);
} catch (Exception e) {
LOG.error(e.getMessage(), e);
}
} else {
try {
gpxApproximator = new GpxApproximator(requireMyApplication(), locationsHolder);
} catch (Exception e) {
LOG.error(e.getMessage(), e);
}
}
if (gpxApproximator != null) {
gpxApproximator.setApproximationProgress(new GpxApproximator.GpxApproximationProgressCallback() {
@Override
public void start() {
if (isResumed()) {
startProgress();
}
}
@Override
public void updateProgress(int progress) {
if (isResumed()) {
GpxApproximationFragment.this.updateProgress(progress);
}
}
@Override
public void finish() {
if (isResumed()) {
finishProgress();
}
}
});
} }
if (isPortrait()) { if (isPortrait()) {
@ -93,6 +145,12 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
updateCards(); updateCards();
updateButtons(mainView); updateButtons(mainView);
progressBar = mainView.findViewById(R.id.progress_bar);
if (progressBar != null) {
requireMapActivity().setupRouteCalculationProgressBar(progressBar);
progressBar.setIndeterminate(false);
}
if (!isPortrait()) { if (!isPortrait()) {
int widthNoShadow = getLandscapeNoShadowWidth(); int widthNoShadow = getLandscapeNoShadowWidth();
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT);
@ -102,6 +160,8 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
enterGpxApproximationMode(); enterGpxApproximationMode();
runLayoutListener(); runLayoutListener();
calculateGpxApproximation();
return mainView; return mainView;
} }
@ -159,7 +219,7 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
public void onClick(View v) { public void onClick(View v) {
Fragment fragment = getTargetFragment(); Fragment fragment = getTargetFragment();
if (fragment instanceof GpxApproximationFragmentListener) { if (fragment instanceof GpxApproximationFragmentListener) {
((GpxApproximationFragmentListener) fragment).onApplyGpxApproximation(snapToRoadAppMode, distanceThreshold); ((GpxApproximationFragmentListener) fragment).onApplyGpxApproximation();
} }
dismiss(); dismiss();
} }
@ -226,13 +286,13 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
return (menuState & (MenuState.HEADER_ONLY | MenuState.HALF_SCREEN)) != 0; return (menuState & (MenuState.HEADER_ONLY | MenuState.HALF_SCREEN)) != 0;
} }
public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, @NonNull ApplicationMode initialAppMode, int initialDistanceThreshold) { public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, @NonNull LocationsHolder locationsHolder) {
try { try {
if (!fm.isStateSaved()) { if (!fm.isStateSaved()) {
GpxApproximationFragment fragment = new GpxApproximationFragment(); GpxApproximationFragment fragment = new GpxApproximationFragment();
fragment.setTargetFragment(targetFragment, 0); fragment.setRetainInstance(true);
fragment.snapToRoadAppMode = initialAppMode; fragment.setTargetFragment(targetFragment, REQUEST_CODE);
fragment.distanceThreshold = initialDistanceThreshold; fragment.setLocationsHolder(locationsHolder);
fm.beginTransaction() fm.beginTransaction()
.replace(R.id.fragmentContainer, fragment, TAG) .replace(R.id.fragmentContainer, fragment, TAG)
.addToBackStack(TAG) .addToBackStack(TAG)
@ -254,29 +314,94 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment
} }
} }
@Override public void calculateGpxApproximation() {
public void onSliderChange(int sliderValue) { if (gpxApproximator != null) {
Fragment fragment = getTargetFragment(); try {
if (fragment instanceof GpxApproximationFragmentListener) { gpxApproximator.setMode(snapToRoadAppMode);
((GpxApproximationFragmentListener) fragment).onChangeGpxApproxDistanceThreshold(snapToRoadAppMode, sliderValue); gpxApproximator.setPointApproximation(distanceThreshold);
distanceThreshold = sliderValue; approximateGpx();
} catch (Exception e) {
LOG.error(e.getMessage(), e);
}
} }
} }
@Override
public void onSliderChange(int sliderValue) {
distanceThreshold = sliderValue;
calculateGpxApproximation();
}
@Override @Override
public void onProfileSelect(ApplicationMode applicationMode) { public void onProfileSelect(ApplicationMode applicationMode) {
Fragment fragment = getTargetFragment(); snapToRoadAppMode = applicationMode;
if (fragment instanceof GpxApproximationFragmentListener) { calculateGpxApproximation();
((GpxApproximationFragmentListener) fragment).onChangeGpxApproxDistanceThreshold(applicationMode, distanceThreshold); }
snapToRoadAppMode = applicationMode;
public LocationsHolder getLocationsHolder() {
return locationsHolder;
}
public void setLocationsHolder(LocationsHolder locationsHolder) {
this.locationsHolder = locationsHolder;
}
public void startProgress() {
if (progressBar != null) {
progressBar.setProgress(0);
progressBar.setVisibility(View.VISIBLE);
}
}
public void finishProgress() {
if (progressBar != null) {
progressBar.setVisibility(View.GONE);
}
}
public void updateProgress(int progress) {
if (progressBar != null) {
if (progressBar.getVisibility() != View.VISIBLE) {
progressBar.setVisibility(View.VISIBLE);
}
progressBar.setProgress(progress);
}
}
private void approximateGpx() {
if (gpxApproximator != null) {
gpxApproximator.calculateGpxApproximation(new ResultMatcher<GpxRouteApproximation>() {
@Override
public boolean publish(final GpxRouteApproximation gpxApproximation) {
OsmandApplication app = getMyApplication();
if (app != null) {
app.runInUIThread(new Runnable() {
@Override
public void run() {
Fragment fragment = getTargetFragment();
if (fragment instanceof GpxApproximationFragmentListener) {
((GpxApproximationFragmentListener) fragment).onGpxApproximationDone(gpxApproximation);
}
}
});
return true;
}
return false;
}
@Override
public boolean isCancelled() {
return false;
}
});
} }
} }
public interface GpxApproximationFragmentListener { public interface GpxApproximationFragmentListener {
void onChangeGpxApproxDistanceThreshold(ApplicationMode mode, int distanceThreshold); void onGpxApproximationDone(GpxRouteApproximation gpxApproximation);
void onApplyGpxApproximation(ApplicationMode mode, int distanceThreshold); void onApplyGpxApproximation();
void onCancelGpxApproximation(); void onCancelGpxApproximation();
} }

View file

@ -60,6 +60,7 @@ import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.TrackActivity; import net.osmand.plus.activities.TrackActivity;
import net.osmand.plus.base.BaseOsmAndFragment; import net.osmand.plus.base.BaseOsmAndFragment;
import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.measurementtool.GpxApproximationFragment.GpxApproximationFragmentListener;
import net.osmand.plus.measurementtool.NewGpxData.ActionType; import net.osmand.plus.measurementtool.NewGpxData.ActionType;
import net.osmand.plus.measurementtool.OptionsBottomSheetDialogFragment.OptionsFragmentListener; import net.osmand.plus.measurementtool.OptionsBottomSheetDialogFragment.OptionsFragmentListener;
import net.osmand.plus.measurementtool.RouteBetweenPointsBottomSheetDialogFragment.RouteBetweenPointsFragmentListener; import net.osmand.plus.measurementtool.RouteBetweenPointsBottomSheetDialogFragment.RouteBetweenPointsFragmentListener;
@ -73,7 +74,6 @@ import net.osmand.plus.measurementtool.command.ClearPointsCommand;
import net.osmand.plus.measurementtool.command.MovePointCommand; import net.osmand.plus.measurementtool.command.MovePointCommand;
import net.osmand.plus.measurementtool.command.RemovePointCommand; import net.osmand.plus.measurementtool.command.RemovePointCommand;
import net.osmand.plus.measurementtool.command.ReorderPointCommand; import net.osmand.plus.measurementtool.command.ReorderPointCommand;
import net.osmand.plus.routing.GpxApproximator;
import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.views.controls.ReorderItemTouchHelperCallback; import net.osmand.plus.views.controls.ReorderItemTouchHelperCallback;
@ -84,7 +84,6 @@ import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarView;
import net.osmand.router.RoutePlannerFrontEnd.GpxRouteApproximation; import net.osmand.router.RoutePlannerFrontEnd.GpxRouteApproximation;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -94,7 +93,6 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import static net.osmand.IndexConstants.GPX_FILE_EXT; import static net.osmand.IndexConstants.GPX_FILE_EXT;
import static net.osmand.plus.measurementtool.GpxApproximationFragment.GpxApproximationFragmentListener;
import static net.osmand.plus.measurementtool.MeasurementEditingContext.CalculationMode; import static net.osmand.plus.measurementtool.MeasurementEditingContext.CalculationMode;
import static net.osmand.plus.measurementtool.MeasurementEditingContext.ExportAsGpxListener; import static net.osmand.plus.measurementtool.MeasurementEditingContext.ExportAsGpxListener;
import static net.osmand.plus.measurementtool.MeasurementEditingContext.SnapToRoadProgressListener; import static net.osmand.plus.measurementtool.MeasurementEditingContext.SnapToRoadProgressListener;
@ -104,7 +102,7 @@ import static net.osmand.plus.measurementtool.SelectFileBottomSheet.SelectFileLi
import static net.osmand.plus.measurementtool.StartPlanRouteBottomSheet.StartPlanRouteListener; import static net.osmand.plus.measurementtool.StartPlanRouteBottomSheet.StartPlanRouteListener;
public class MeasurementToolFragment extends BaseOsmAndFragment implements RouteBetweenPointsFragmentListener, public class MeasurementToolFragment extends BaseOsmAndFragment implements RouteBetweenPointsFragmentListener,
GpxApproximationFragmentListener, OptionsFragmentListener { OptionsFragmentListener, GpxApproximationFragmentListener {
public static final String TAG = MeasurementToolFragment.class.getSimpleName(); public static final String TAG = MeasurementToolFragment.class.getSimpleName();
@ -138,7 +136,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
private boolean gpxPointsAdded; private boolean gpxPointsAdded;
private MeasurementEditingContext editingCtx = new MeasurementEditingContext(); private MeasurementEditingContext editingCtx = new MeasurementEditingContext();
private GpxApproximator gpxApproximator;
private LatLon initialPoint; private LatLon initialPoint;
@ -550,39 +547,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
return R.color.status_bar_transparent_gradient; return R.color.status_bar_transparent_gradient;
} }
private void approximateGpx() {
if (gpxApproximator != null) {
try {
GpxRouteApproximation gpxApproximation = gpxApproximator.calculateGpxApproximation();
displayApproximatedPoints(gpxApproximation);
} catch (IOException e) {
} catch (InterruptedException e) {
}
}
}
@Override
public void onChangeGpxApproxDistanceThreshold(ApplicationMode mode, int distanceThreshold) {
if (gpxApproximator != null) {
try {
gpxApproximator.setMode(mode);
gpxApproximator.setPointApproximation(distanceThreshold);
approximateGpx();
} catch (IOException e) {
}
}
}
@Override
public void onApplyGpxApproximation(ApplicationMode mode, int distanceThreshold) {
}
@Override
public void onCancelGpxApproximation() {
}
@Nullable @Nullable
private MapActivity getMapActivity() { private MapActivity getMapActivity() {
Activity activity = getActivity(); Activity activity = getActivity();
@ -662,13 +626,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
case SnapTrackWarningBottomSheet.CONTINUE_REQUEST_CODE: case SnapTrackWarningBottomSheet.CONTINUE_REQUEST_CODE:
MapActivity mapActivity = getMapActivity(); MapActivity mapActivity = getMapActivity();
if (mapActivity != null) { if (mapActivity != null) {
try { GpxApproximationFragment.showInstance(mapActivity.getSupportFragmentManager(),
gpxApproximator = new GpxApproximator(requireMyApplication(), new LocationsHolder(editingCtx.getPoints())); this, new LocationsHolder(editingCtx.getPoints()));
GpxApproximationFragment.showInstance(mapActivity.getSupportFragmentManager(),
this, gpxApproximator.getMode(), (int) gpxApproximator.getPointApproximation());
} catch (IOException e) {
}
} }
break; break;
} }
@ -1087,7 +1046,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
} }
} }
private void displayApproximatedPoints(GpxRouteApproximation gpxApproximation) { public void displayApproximatedPoints(GpxRouteApproximation gpxApproximation) {
MeasurementToolLayer measurementLayer = getMeasurementLayer(); MeasurementToolLayer measurementLayer = getMeasurementLayer();
if (measurementLayer != null) { if (measurementLayer != null) {
editingCtx.setPoints(gpxApproximation); editingCtx.setPoints(gpxApproximation);
@ -1957,4 +1916,19 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
return NO_COLOR; return NO_COLOR;
} }
} }
@Override
public void onGpxApproximationDone(GpxRouteApproximation gpxApproximation) {
displayApproximatedPoints(gpxApproximation);
}
@Override
public void onApplyGpxApproximation() {
}
@Override
public void onCancelGpxApproximation() {
}
} }

View file

@ -46,9 +46,19 @@ public class SliderCard extends BaseCard {
if (fromUser) { if (fromUser) {
String valueStr = getStringValueWithMetric((int) value); String valueStr = getStringValueWithMetric((int) value);
thresholdDistanceValue.setText(valueStr); thresholdDistanceValue.setText(valueStr);
if (listener != null) { }
listener.onSliderChange((int) value); }
} });
slider.addOnSliderTouchListener(new Slider.OnSliderTouchListener() {
@Override
public void onStartTrackingTouch(@NonNull Slider slider) {
}
@Override
public void onStopTrackingTouch(@NonNull Slider slider) {
if (listener != null) {
listener.onSliderChange((int) slider.getValue());
} }
} }
}); });

View file

@ -988,7 +988,7 @@ public class TrackPointFragment extends OsmandExpandableListFragment implements
categoryName = getString(R.string.shared_string_waypoints); categoryName = getString(R.string.shared_string_waypoints);
} }
SpannableStringBuilder text = new SpannableStringBuilder(categoryName).append(" (").append(String.valueOf(getChildrenCount(groupPosition))).append(")"); SpannableStringBuilder text = new SpannableStringBuilder(categoryName).append(" (").append(String.valueOf(getChildrenCount(groupPosition))).append(")");
text.setSpan(new ForegroundColorSpan(AndroidUtils.getColorFromAttr(app, R.attr.wikivoyage_primary_text_color)), text.setSpan(new ForegroundColorSpan(AndroidUtils.getColorFromAttr(mainView.getContext(), R.attr.wikivoyage_primary_text_color)),
0, categoryName.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 0, categoryName.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new ForegroundColorSpan(ContextCompat.getColor(app, R.color.wikivoyage_secondary_text)), text.setSpan(new ForegroundColorSpan(ContextCompat.getColor(app, R.color.wikivoyage_secondary_text)),
categoryName.length() + 1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); categoryName.length() + 1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

View file

@ -7,7 +7,6 @@ import android.text.Editable;
import android.text.InputFilter; import android.text.InputFilter;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnFocusChangeListener; import android.view.View.OnFocusChangeListener;
@ -23,7 +22,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import net.osmand.AndroidUtils;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.osm.AbstractPoiType; import net.osmand.osm.AbstractPoiType;
import net.osmand.osm.MapPoiTypes; import net.osmand.osm.MapPoiTypes;
@ -215,9 +213,7 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment
public void addTagView(String tg, String vl) { public void addTagView(String tg, String vl) {
View convertView = LayoutInflater.from(linearLayout.getContext()) View convertView = LayoutInflater.from(linearLayout.getContext())
.inflate(R.layout.poi_tag_list_item, null, false); .inflate(R.layout.poi_tag_list_item, null, false);
final AutoCompleteTextView tagEditText = final AutoCompleteTextView tagEditText = convertView.findViewById(R.id.tagEditText);
(AutoCompleteTextView) convertView.findViewById(R.id.tagEditText);
AndroidUtils.setTextHorizontalGravity(tagEditText, Gravity.START);
ImageButton deleteItemImageButton = ImageButton deleteItemImageButton =
(ImageButton) convertView.findViewById(R.id.deleteItemImageButton); (ImageButton) convertView.findViewById(R.id.deleteItemImageButton);
deleteItemImageButton.setImageDrawable(deleteDrawable); deleteItemImageButton.setImageDrawable(deleteDrawable);
@ -229,17 +225,15 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment
editPoiData.removeTag(tagEditText.getText().toString()); editPoiData.removeTag(tagEditText.getText().toString());
} }
}); });
final AutoCompleteTextView valueEditText = final AutoCompleteTextView valueEditText = convertView.findViewById(R.id.valueEditText);
(AutoCompleteTextView) convertView.findViewById(R.id.valueEditText); valueEditText.setFilters(new InputFilter[]{
AndroidUtils.setTextHorizontalGravity(valueEditText, Gravity.START); new InputFilter.LengthFilter(AMENITY_TEXT_LENGTH)
valueEditText.setFilters(new InputFilter[] {
new InputFilter.LengthFilter(AMENITY_TEXT_LENGTH)
}); });
tagEditText.setText(tg); tagEditText.setText(tg);
tagEditText.setAdapter(tagAdapter); tagEditText.setAdapter(tagAdapter);
tagEditText.setThreshold(1); tagEditText.setThreshold(1);
tagEditText.setOnFocusChangeListener(new OnFocusChangeListener() { tagEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override @Override
public void onFocusChange(View v, boolean hasFocus) { public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) { if (!hasFocus) {
if (!editPoiData.isInEdit()) { if (!editPoiData.isInEdit()) {

View file

@ -1,18 +1,35 @@
package net.osmand.plus.routing; package net.osmand.plus.routing;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import net.osmand.LocationsHolder; import net.osmand.LocationsHolder;
import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.data.LatLon; import net.osmand.data.LatLon;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.measurementtool.GpxApproximationFragment;
import net.osmand.plus.routing.RouteProvider.RoutingEnvironment; import net.osmand.plus.routing.RouteProvider.RoutingEnvironment;
import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.router.RouteCalculationProgress;
import net.osmand.router.RoutePlannerFrontEnd;
import net.osmand.router.RoutePlannerFrontEnd.GpxPoint; import net.osmand.router.RoutePlannerFrontEnd.GpxPoint;
import net.osmand.router.RoutePlannerFrontEnd.GpxRouteApproximation; import net.osmand.router.RoutePlannerFrontEnd.GpxRouteApproximation;
import net.osmand.search.core.SearchResult;
import org.apache.commons.logging.Log;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class GpxApproximator { public class GpxApproximator {
protected static final Log log = PlatformUtil.getLog(GpxApproximator.class);
private OsmandApplication ctx; private OsmandApplication ctx;
private RoutingHelper routingHelper; private RoutingHelper routingHelper;
@ -23,8 +40,21 @@ public class GpxApproximator {
private List<GpxPoint> points; private List<GpxPoint> points;
private LatLon start; private LatLon start;
private LatLon end; private LatLon end;
private double pointApproximation = 50;
public GpxApproximator(OsmandApplication ctx, LocationsHolder locationsHolder) throws IOException { private ThreadPoolExecutor singleThreadedExecutor;
private GpxApproximationProgressCallback approximationProgress;
public interface GpxApproximationProgressCallback {
void start();
void updateProgress(int progress);
void finish();
}
public GpxApproximator(@NonNull OsmandApplication ctx, @NonNull LocationsHolder locationsHolder) throws IOException {
this.ctx = ctx; this.ctx = ctx;
this.locationsHolder = locationsHolder; this.locationsHolder = locationsHolder;
this.routingHelper = ctx.getRoutingHelper(); this.routingHelper = ctx.getRoutingHelper();
@ -33,26 +63,48 @@ public class GpxApproximator {
start = locationsHolder.getLatLon(0); start = locationsHolder.getLatLon(0);
end = locationsHolder.getLatLon(locationsHolder.getSize() - 1); end = locationsHolder.getLatLon(locationsHolder.getSize() - 1);
prepareEnvironment(ctx, mode); prepareEnvironment(ctx, mode);
this.points = routingHelper.generateGpxPoints(env, gctx, locationsHolder);
} }
init();
} }
public GpxApproximator(OsmandApplication ctx, ApplicationMode mode, double pointApproximation, LocationsHolder locationsHolder) throws IOException { public GpxApproximator(@NonNull OsmandApplication ctx, @NonNull ApplicationMode mode, double pointApproximation, @NonNull LocationsHolder locationsHolder) throws IOException {
this.ctx = ctx; this.ctx = ctx;
this.locationsHolder = locationsHolder;
this.pointApproximation = pointApproximation;
this.routingHelper = ctx.getRoutingHelper(); this.routingHelper = ctx.getRoutingHelper();
this.mode = mode; this.mode = mode;
if (locationsHolder.getSize() > 1) { if (locationsHolder.getSize() > 1) {
start = locationsHolder.getLatLon(0); start = locationsHolder.getLatLon(0);
end = locationsHolder.getLatLon(locationsHolder.getSize() - 1); end = locationsHolder.getLatLon(locationsHolder.getSize() - 1);
prepareEnvironment(ctx, mode); prepareEnvironment(ctx, mode);
gctx.MINIMUM_POINT_APPROXIMATION = pointApproximation;
this.points = routingHelper.generateGpxPoints(env, gctx, locationsHolder);
} }
init();
} }
private void prepareEnvironment(OsmandApplication ctx, ApplicationMode mode) throws IOException { private void init() {
singleThreadedExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
}
private void prepareEnvironment(@NonNull OsmandApplication ctx, @NonNull ApplicationMode mode) throws IOException {
this.env = routingHelper.getRoutingEnvironment(ctx, mode, start, end); this.env = routingHelper.getRoutingEnvironment(ctx, mode, start, end);
this.gctx = new GpxRouteApproximation(env.getCtx()); }
private GpxRouteApproximation getNewGpxApproximationContext(@Nullable GpxRouteApproximation gctx) {
GpxRouteApproximation newContext = gctx != null ? new GpxRouteApproximation(gctx) : new GpxRouteApproximation(env.getCtx());
newContext.ctx.calculationProgress = new RouteCalculationProgress();
newContext.MINIMUM_POINT_APPROXIMATION = pointApproximation;
return newContext;
}
private List<GpxPoint> getPoints() {
if (points == null) {
points = routingHelper.generateGpxPoints(env, getNewGpxApproximationContext(null), locationsHolder);
}
List<GpxPoint> points = new ArrayList<>(this.points.size());
for (GpxPoint p : this.points) {
points.add(new GpxPoint(p));
}
return points;
} }
public ApplicationMode getMode() { public ApplicationMode getMode() {
@ -68,18 +120,82 @@ public class GpxApproximator {
} }
public double getPointApproximation() { public double getPointApproximation() {
return gctx.MINIMUM_POINT_APPROXIMATION; return pointApproximation;
} }
public void setPointApproximation(double pointApproximation) { public void setPointApproximation(double pointApproximation) {
gctx.MINIMUM_POINT_APPROXIMATION = pointApproximation; this.pointApproximation = pointApproximation;
} }
public LocationsHolder getLocationsHolder() { public LocationsHolder getLocationsHolder() {
return locationsHolder; return locationsHolder;
} }
public GpxRouteApproximation calculateGpxApproximation() throws IOException, InterruptedException { public GpxApproximationProgressCallback getApproximationProgress() {
return routingHelper.calculateGpxApproximation(env, gctx, points); return approximationProgress;
}
public void setApproximationProgress(GpxApproximationProgressCallback approximationProgress) {
this.approximationProgress = approximationProgress;
}
public void calculateGpxApproximation(@NonNull final ResultMatcher<GpxRouteApproximation> resultMatcher) {
if (gctx != null) {
gctx.calculationCancelled = true;
}
final GpxRouteApproximation gctx = getNewGpxApproximationContext(this.gctx);
this.gctx = gctx;
startProgress();
updateProgress(gctx);
singleThreadedExecutor.submit(new Runnable() {
@Override
public void run() {
try {
routingHelper.calculateGpxApproximation(env, gctx, getPoints(), resultMatcher);
} catch (Exception e) {
resultMatcher.publish(null);
log.error(e.getMessage(), e);
}
}
});
}
private void startProgress() {
final GpxApproximationProgressCallback approximationProgress = this.approximationProgress;
if (approximationProgress != null) {
approximationProgress.start();
}
}
private void finishProgress() {
final GpxApproximationProgressCallback approximationProgress = this.approximationProgress;
if (approximationProgress != null) {
approximationProgress.finish();
}
}
private void updateProgress(@NonNull final GpxRouteApproximation gctx) {
final GpxApproximationProgressCallback approximationProgress = this.approximationProgress;
if (approximationProgress != null) {
ctx.runInUIThread(new Runnable() {
@Override
public void run() {
RouteCalculationProgress calculationProgress = gctx.ctx.calculationProgress;
if (gctx.isCalculationDone() && GpxApproximator.this.gctx == gctx) {
finishProgress();
}
if (!gctx.isCalculationDone() && calculationProgress != null && !calculationProgress.isCancelled) {
float pr = calculationProgress.getLinearProgress();
approximationProgress.updateProgress((int) pr);
if (GpxApproximator.this.gctx != gctx) {
// different calculation started
} else {
updateProgress(gctx);
}
}
}
}, 300);
}
} }
} }

View file

@ -15,6 +15,7 @@ import net.osmand.GPXUtilities.WptPt;
import net.osmand.Location; import net.osmand.Location;
import net.osmand.LocationsHolder; import net.osmand.LocationsHolder;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.binary.BinaryMapIndexReader; import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.data.LatLon; import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint; import net.osmand.data.LocationPoint;
@ -716,13 +717,8 @@ public class RouteProvider {
return env.router.generateGpxPoints(gctx, locationsHolder); return env.router.generateGpxPoints(gctx, locationsHolder);
} }
public GpxRouteApproximation calculateGpxPointsApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List<GpxPoint> points) throws IOException, InterruptedException { public GpxRouteApproximation calculateGpxPointsApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List<GpxPoint> points, ResultMatcher<GpxRouteApproximation> resultMatcher) throws IOException, InterruptedException {
if (points != null && points.size() > 1) { return env.router.searchGpxRoute(gctx, points, resultMatcher);
if (!Algorithms.isEmpty(points)) {
return env.router.searchGpxRoute(gctx, points);
}
}
return null;
} }
protected RoutingEnvironment calculateRoutingEnvironment(RouteCalculationParams params, boolean calcGPXRoute, boolean skipComplex) throws IOException { protected RoutingEnvironment calculateRoutingEnvironment(RouteCalculationParams params, boolean calcGPXRoute, boolean skipComplex) throws IOException {

View file

@ -7,6 +7,7 @@ import net.osmand.GPXUtilities.WptPt;
import net.osmand.Location; import net.osmand.Location;
import net.osmand.LocationsHolder; import net.osmand.LocationsHolder;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.ValueHolder; import net.osmand.ValueHolder;
import net.osmand.binary.RouteDataObject; import net.osmand.binary.RouteDataObject;
import net.osmand.data.LatLon; import net.osmand.data.LatLon;
@ -1364,8 +1365,8 @@ public class RoutingHelper {
return provider.generateGpxPoints(env, gctx, locationsHolder); return provider.generateGpxPoints(env, gctx, locationsHolder);
} }
public GpxRouteApproximation calculateGpxApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List<GpxPoint> points) throws IOException, InterruptedException { public GpxRouteApproximation calculateGpxApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List<GpxPoint> points, ResultMatcher<GpxRouteApproximation> resultMatcher) throws IOException, InterruptedException {
return provider.calculateGpxPointsApproximation(env, gctx, points); return provider.calculateGpxPointsApproximation(env, gctx, points, resultMatcher);
} }
public void notifyIfRouteIsCalculated() { public void notifyIfRouteIsCalculated() {

View file

@ -64,7 +64,7 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet {
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
private BaseBottomSheetItem createBottomSheetItem(OsmandApplication app) { private BaseBottomSheetItem createBottomSheetItem(OsmandApplication app) {
final SizePreference preference = (SizePreference) getPreference(); final SizePreference preference = (SizePreference) getPreference();
View mainView = UiUtilities.getMaterialInflater(getContext(), nightMode) View mainView = UiUtilities.getInflater(getContext(), nightMode)
.inflate(R.layout.bottom_sheet_item_edit_with_recyclerview, null); .inflate(R.layout.bottom_sheet_item_edit_with_recyclerview, null);
TextView title = mainView.findViewById(R.id.title); TextView title = mainView.findViewById(R.id.title);
title.setText(preference.getTitle().toString()); title.setText(preference.getTitle().toString());

View file

@ -933,7 +933,7 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
public void setupPrefRoundedBg(PreferenceViewHolder holder) { public void setupPrefRoundedBg(PreferenceViewHolder holder) {
View selectableView = holder.itemView.findViewById(R.id.selectable_list_item); View selectableView = holder.itemView.findViewById(R.id.selectable_list_item);
if (selectableView != null) { if (selectableView != null) {
int color = AndroidUtils.getColorFromAttr(app, R.attr.activity_background_color); int color = AndroidUtils.getColorFromAttr(holder.itemView.getContext(), R.attr.activity_background_color);
int selectedColor = UiUtilities.getColorWithAlpha(getActiveProfileColor(), 0.3f); int selectedColor = UiUtilities.getColorWithAlpha(getActiveProfileColor(), 0.3f);
Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color); Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color);

View file

@ -79,7 +79,7 @@ public class CustomColorBottomSheet extends MenuBottomSheetDialogFragment implem
} }
private View createPickerView() { private View createPickerView() {
LayoutInflater themedInflater = UiUtilities.getMaterialInflater(getActivity(), nightMode); LayoutInflater themedInflater = UiUtilities.getInflater(getActivity(), nightMode);
View colorView = themedInflater.inflate(R.layout.custom_color_picker, null); View colorView = themedInflater.inflate(R.layout.custom_color_picker, null);
colorPicker = colorView.findViewById(R.id.color_picker_view); colorPicker = colorView.findViewById(R.id.color_picker_view);
newColorPanel = colorView.findViewById(R.id.color_panel_new); newColorPanel = colorView.findViewById(R.id.color_panel_new);

View file

@ -30,6 +30,7 @@ import net.osmand.AndroidUtils;
import net.osmand.IndexConstants; import net.osmand.IndexConstants;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.TrackActivity; import net.osmand.plus.activities.TrackActivity;
@ -442,8 +443,9 @@ public class WikivoyageArticleDialogFragment extends WikiArticleBaseDialogFragme
@Override @Override
protected void setupToolbar(Toolbar toolbar) { protected void setupToolbar(Toolbar toolbar) {
super.setupToolbar(toolbar); super.setupToolbar(toolbar);
toolbar.setOverflowIcon(getIcon(R.drawable.ic_overflow_menu_white, R.color.icon_color_default_light));
UiUtilities.setupToolbarOverflowIcon(
toolbar, R.drawable.ic_overflow_menu_white, R.color.icon_color_default_light);
Menu menu = toolbar.getMenu(); Menu menu = toolbar.getMenu();
MenuItem.OnMenuItemClickListener itemClickListener = new MenuItem.OnMenuItemClickListener() { MenuItem.OnMenuItemClickListener itemClickListener = new MenuItem.OnMenuItemClickListener() {
@Override @Override