From 910255dd2c34e91152e109fcf85508807001fa3f Mon Sep 17 00:00:00 2001 From: kotlin Date: Tue, 11 Aug 2020 17:43:03 +0300 Subject: [PATCH 01/36] Fix #6003 --- OsmAnd/res/values/strings.xml | 4 ++-- OsmAnd/src/net/osmand/plus/mapillary/MapillaryPlugin.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 0981dc27a2..f3a1ebf203 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,7 +11,7 @@ Thx - Hardy --> - Street-level imagery + Select a track file for which a new segment will be added. Navigation profile Threshold distance @@ -1245,7 +1245,7 @@ Mapillary widget Allows quick contributions to Mapillary. Online street-level photos for everyone. Discover places, collaborate, capture the world. - Mapillary + Street-level imagery Street-level photos for everyone. Discover places, collaborate, capture the world. Your destination is located in an area with private access. Allow using private roads for this trip? Restart search diff --git a/OsmAnd/src/net/osmand/plus/mapillary/MapillaryPlugin.java b/OsmAnd/src/net/osmand/plus/mapillary/MapillaryPlugin.java index 189a039a54..8b77d4e5bc 100644 --- a/OsmAnd/src/net/osmand/plus/mapillary/MapillaryPlugin.java +++ b/OsmAnd/src/net/osmand/plus/mapillary/MapillaryPlugin.java @@ -181,7 +181,7 @@ public class MapillaryPlugin extends OsmandPlugin { } adapter.addItem(new ContextMenuItem.ItemBuilder() .setId(MAPILLARY) - .setTitleId(R.string.street_level_imagery, mapActivity) + .setTitleId(R.string.mapillary, mapActivity) .setDescription("Mapillary") .setSelected(settings.SHOW_MAPILLARY.get()) .setColor(settings.SHOW_MAPILLARY.get() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) From b561165eb10134b653fc977c4c5c7ff8068c1fc4 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Tue, 11 Aug 2020 18:18:08 +0300 Subject: [PATCH 02/36] Fix material theme --- OsmAnd/res/layout/my_places_fabs.xml | 4 +++ OsmAnd/res/layout/poi_filter_list_item.xml | 12 ++++----- OsmAnd/res/values/sizes.xml | 5 +++- OsmAnd/res/values/styles.xml | 25 +++++++++++++++---- .../plus/osmedit/AdvancedEditPoiFragment.java | 6 ++--- 5 files changed, 36 insertions(+), 16 deletions(-) diff --git a/OsmAnd/res/layout/my_places_fabs.xml b/OsmAnd/res/layout/my_places_fabs.xml index f7b32cac25..05c18d6425 100644 --- a/OsmAnd/res/layout/my_places_fabs.xml +++ b/OsmAnd/res/layout/my_places_fabs.xml @@ -16,6 +16,7 @@ android:contentDescription="@string/quick_action_new_action" app:srcCompat="@drawable/ic_action_plus" app:backgroundTint="?attr/active_color_basic" + app:tint="@color/active_buttons_and_links_text_light" app:fabSize="normal" app:useCompatPadding="true"/> @@ -33,6 +34,7 @@ app:srcCompat="@drawable/ic_action_marker_dark" android:visibility="gone" app:backgroundTint="@color/fab_green" + app:tint="@color/active_buttons_and_links_text_light" app:fabSize="mini" app:useCompatPadding="true" tools:visibility="visible"/> @@ -78,6 +80,7 @@ app:srcCompat="@drawable/ic_action_markers_dark" android:visibility="gone" app:backgroundTint="@color/fab_green" + app:tint="@color/active_buttons_and_links_text_light" app:fabSize="mini" app:useCompatPadding="true" tools:visibility="visible"/> @@ -123,6 +126,7 @@ app:srcCompat="@drawable/ic_action_polygom_dark" android:visibility="gone" app:backgroundTint="@color/fab_green" + app:tint="@color/active_buttons_and_links_text_light" app:fabSize="mini" app:useCompatPadding="true" tools:visibility="visible"/> diff --git a/OsmAnd/res/layout/poi_filter_list_item.xml b/OsmAnd/res/layout/poi_filter_list_item.xml index d143f5ef5d..52e1ac077a 100644 --- a/OsmAnd/res/layout/poi_filter_list_item.xml +++ b/OsmAnd/res/layout/poi_filter_list_item.xml @@ -6,17 +6,17 @@ android:layout_height="wrap_content" xmlns:osmand="http://schemas.android.com/apk/res-auto" android:background="?attr/bg_color" - android:minHeight="48dp" + android:minHeight="@dimen/card_row_min_height" android:clickable="false" android:orientation="vertical"> + android:paddingEnd="@dimen/content_padding"> @@ -107,6 +107,6 @@ android:layout_height="1dp" android:layout_marginLeft="54dp" android:background="?attr/dashboard_divider" - android:layout_marginStart="54dp" /> + android:layout_marginStart="54dp" /> \ No newline at end of file diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 463dd511b2..1b0adf805a 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -44,7 +44,7 @@ 2dp 15dp - 15dp + 15dp 14dp 36dp 28dp @@ -396,4 +396,7 @@ 1.4 92dp + + 32dp + 24dp \ No newline at end of file diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml index eb59f4b1e3..6642003e06 100644 --- a/OsmAnd/res/values/styles.xml +++ b/OsmAnd/res/values/styles.xml @@ -240,6 +240,8 @@ @drawable/radio_button_left_light @drawable/radio_button_right_light @drawable/radio_button_center_light + @style/CheckboxStyle + @style/RadioButtonStyle @@ -313,10 +316,10 @@ @@ -530,6 +533,8 @@ @drawable/radio_button_left_dark @drawable/radio_button_right_dark @drawable/radio_button_center_dark + @style/CheckboxStyle + @style/RadioButtonStyle + + + + diff --git a/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java index a637c76412..3eabf35f6c 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java @@ -22,8 +22,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.google.android.material.textfield.MaterialAutoCompleteTextView; - import net.osmand.PlatformUtil; import net.osmand.osm.AbstractPoiType; import net.osmand.osm.MapPoiTypes; @@ -215,7 +213,7 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment public void addTagView(String tg, String vl) { View convertView = LayoutInflater.from(linearLayout.getContext()) .inflate(R.layout.poi_tag_list_item, null, false); - final MaterialAutoCompleteTextView tagEditText = convertView.findViewById(R.id.tagEditText); + final AutoCompleteTextView tagEditText = convertView.findViewById(R.id.tagEditText); ImageButton deleteItemImageButton = (ImageButton) convertView.findViewById(R.id.deleteItemImageButton); deleteItemImageButton.setImageDrawable(deleteDrawable); @@ -227,7 +225,7 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment editPoiData.removeTag(tagEditText.getText().toString()); } }); - final MaterialAutoCompleteTextView valueEditText = convertView.findViewById(R.id.valueEditText); + final AutoCompleteTextView valueEditText = convertView.findViewById(R.id.valueEditText); valueEditText.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(AMENITY_TEXT_LENGTH) }); From 6a4bdd3575de940463b595b4a9945865931cada3 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Tue, 11 Aug 2020 18:43:05 +0300 Subject: [PATCH 03/36] Fix material theme --- OsmAnd/res/layout/my_places_fabs.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/layout/my_places_fabs.xml b/OsmAnd/res/layout/my_places_fabs.xml index 05c18d6425..3e0f70789e 100644 --- a/OsmAnd/res/layout/my_places_fabs.xml +++ b/OsmAnd/res/layout/my_places_fabs.xml @@ -16,7 +16,7 @@ android:contentDescription="@string/quick_action_new_action" app:srcCompat="@drawable/ic_action_plus" app:backgroundTint="?attr/active_color_basic" - app:tint="@color/active_buttons_and_links_text_light" + app:tint="?attr/app_bar_primary_item_color" app:fabSize="normal" app:useCompatPadding="true"/> @@ -34,7 +34,7 @@ app:srcCompat="@drawable/ic_action_marker_dark" android:visibility="gone" app:backgroundTint="@color/fab_green" - app:tint="@color/active_buttons_and_links_text_light" + app:tint="?attr/app_bar_primary_item_color" app:fabSize="mini" app:useCompatPadding="true" tools:visibility="visible"/> @@ -80,7 +80,7 @@ app:srcCompat="@drawable/ic_action_markers_dark" android:visibility="gone" app:backgroundTint="@color/fab_green" - app:tint="@color/active_buttons_and_links_text_light" + app:tint="?attr/app_bar_primary_item_color" app:fabSize="mini" app:useCompatPadding="true" tools:visibility="visible"/> @@ -126,7 +126,7 @@ app:srcCompat="@drawable/ic_action_polygom_dark" android:visibility="gone" app:backgroundTint="@color/fab_green" - app:tint="@color/active_buttons_and_links_text_light" + app:tint="?attr/app_bar_primary_item_color" app:fabSize="mini" app:useCompatPadding="true" tools:visibility="visible"/> From 2ab38a54b5eb4be76cadb2e12aa05ad22a414a08 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Tue, 11 Aug 2020 23:03:13 +0300 Subject: [PATCH 04/36] Gpx approximation in progress --- .../main/java/net/osmand/LocationsHolder.java | 6 +- .../osmand/router/RoutePlannerFrontEnd.java | 50 ++++-- ..._gpx_approximation_bottom_sheet_dialog.xml | 5 +- OsmAnd/src/net/osmand/AndroidUtils.java | 7 +- .../GpxApproximationFragment.java | 165 +++++++++++++++--- .../MeasurementToolFragment.java | 66 +++---- .../plus/measurementtool/SliderCard.java | 16 +- .../osmand/plus/routing/GpxApproximator.java | 138 +++++++++++++-- .../osmand/plus/routing/RouteProvider.java | 10 +- .../osmand/plus/routing/RoutingHelper.java | 5 +- 10 files changed, 358 insertions(+), 110 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/LocationsHolder.java b/OsmAnd-java/src/main/java/net/osmand/LocationsHolder.java index 875f481644..5cecf9b8e6 100644 --- a/OsmAnd-java/src/main/java/net/osmand/LocationsHolder.java +++ b/OsmAnd-java/src/main/java/net/osmand/LocationsHolder.java @@ -25,15 +25,15 @@ public class LocationsHolder { this.locationType = resolveLocationType(locations); switch (locationType) { case LOCATION_TYPE_LATLON: - latLonList = (List) locations; + latLonList = new ArrayList<>((List) locations); size = locations.size(); break; case LOCATION_TYPE_LOCATION: - locationList = (List) locations; + locationList = new ArrayList<>((List) locations); size = locations.size(); break; case LOCATION_TYPE_WPTPT: - wptPtList = (List) locations; + wptPtList = new ArrayList<>((List) locations); size = locations.size(); break; } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index 22cf7b434d..c6f18ab427 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -4,6 +4,7 @@ package net.osmand.router; import net.osmand.LocationsHolder; import net.osmand.NativeLibrary; import net.osmand.PlatformUtil; +import net.osmand.ResultMatcher; import net.osmand.binary.BinaryMapIndexReader; import net.osmand.binary.BinaryMapRouteReaderAdapter; import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion; @@ -62,17 +63,29 @@ public class RoutePlannerFrontEnd { public int routeDistance; public int routeGapDistance; public int routeDistanceUnmatched; - + + public boolean calculationCancelled; + private boolean calculationDone; + public GpxRouteApproximation(RoutingContext ctx) { this.ctx = ctx; } + public GpxRouteApproximation(GpxRouteApproximation gctx) { + this.ctx = gctx.ctx; + this.routeDistance = gctx.routeDistance; + } + @Override public String toString() { 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); } + public boolean isCalculationDone() { + return calculationDone; + } + public double distFromLastPoint(LatLon startPoint) { if (result.size() > 0) { return MapUtils.getDistance(getLastPoint(), startPoint); @@ -87,7 +100,7 @@ public class RoutePlannerFrontEnd { return null; } } - + public static class GpxPoint { public int ind; public LatLon loc; @@ -97,6 +110,15 @@ public class RoutePlannerFrontEnd { public List stepBackRoute; public int targetInd = -1; 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) { @@ -206,7 +228,6 @@ public class RoutePlannerFrontEnd { return null; } - public List searchRoute(final RoutingContext ctx, LatLon start, LatLon end, List intermediates) throws IOException, InterruptedException { return searchRoute(ctx, start, end, intermediates, null); } @@ -215,19 +236,16 @@ public class RoutePlannerFrontEnd { useSmartRouteRecalculation = use; } - public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List gpxPoints) throws IOException, InterruptedException { + public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List gpxPoints, ResultMatcher resultMatcher) throws IOException, InterruptedException { long timeToCalculate = System.nanoTime(); - if (gctx.ctx.calculationProgress == null) { - gctx.ctx.calculationProgress = new RouteCalculationProgress(); - } gctx.ctx.keepNativeRoutingContext = true; GpxPoint start = 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); start = gpxPoints.get(0); } - while (start != null) { + while (start != null && !gctx.calculationCancelled) { double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION; GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); boolean routeFound = false; @@ -287,10 +305,14 @@ public class RoutePlannerFrontEnd { gctx.ctx.deleteNativeRoutingContext(); BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx); 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); System.out.println(gctx); } + if (resultMatcher != null) { + resultMatcher.publish(gctx); + } + gctx.calculationDone = true; return gctx; } @@ -343,7 +365,7 @@ public class RoutePlannerFrontEnd { reg.initRouteEncodingRule(0, "highway", RouteResultPreparation.UNMATCHED_HIGHWAY_TYPE); List lastStraightLine = 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); if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { LatLon startPoint = pnt.routeToTarget.get(0).getStartPoint(); @@ -402,7 +424,7 @@ public class RoutePlannerFrontEnd { private void cleanupResultAndAddTurns(GpxRouteApproximation gctx) { // cleanup double joints 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); for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.result.size(); j++) { RouteSegmentResult e = gctx.result.get(j); @@ -419,7 +441,9 @@ public class RoutePlannerFrontEnd { r.setTurnType(null); r.setDescription(""); } - preparation.prepareTurnResults(gctx.ctx, gctx.result); + if (!gctx.calculationCancelled) { + preparation.prepareTurnResults(gctx.ctx, gctx.result); + } } private void addStraightLine(GpxRouteApproximation gctx, List lastStraightLine, GpxPoint strPnt, RouteRegion reg) { diff --git a/OsmAnd/res/layout/fragment_gpx_approximation_bottom_sheet_dialog.xml b/OsmAnd/res/layout/fragment_gpx_approximation_bottom_sheet_dialog.xml index 2699fa722f..086fb5a66f 100644 --- a/OsmAnd/res/layout/fragment_gpx_approximation_bottom_sheet_dialog.xml +++ b/OsmAnd/res/layout/fragment_gpx_approximation_bottom_sheet_dialog.xml @@ -18,8 +18,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - + + + diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index a38825956c..63956aa36b 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -54,6 +54,7 @@ import androidx.annotation.ColorInt; import androidx.annotation.ColorRes; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.content.res.AppCompatResources; import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; @@ -169,11 +170,11 @@ public class AndroidUtils { 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) { - 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) { diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/GpxApproximationFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/GpxApproximationFragment.java index 3aade669ef..3873ad22b7 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/GpxApproximationFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/GpxApproximationFragment.java @@ -7,6 +7,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; +import android.widget.ProgressBar; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,18 +16,25 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; +import net.osmand.LocationsHolder; import net.osmand.PlatformUtil; +import net.osmand.ResultMatcher; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.base.ContextMenuScrollFragment; import net.osmand.plus.helpers.AndroidUiHelper; +import net.osmand.plus.routing.GpxApproximator; import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.router.RoutePlannerFrontEnd.GpxRouteApproximation; import org.apache.commons.logging.Log; -import static net.osmand.plus.measurementtool.ProfileCard.*; -import static net.osmand.plus.measurementtool.SliderCard.*; +import java.io.IOException; + +import static net.osmand.plus.measurementtool.ProfileCard.ProfileCardListener; +import static net.osmand.plus.measurementtool.SliderCard.SliderCardListener; public class GpxApproximationFragment extends ContextMenuScrollFragment 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 SNAP_TO_ROAD_APP_MODE_STRING_KEY = "snap_to_road_app_mode"; + public static final int REQUEST_CODE = 1100; + private int menuTitleHeight; private ApplicationMode snapToRoadAppMode = ApplicationMode.CAR; - private int distanceThreshold = 30; + private int distanceThreshold = 50; + + private LocationsHolder locationsHolder; + @Nullable + private GpxApproximator gpxApproximator; + private ProgressBar progressBar; @Override public int getMainLayoutId() { @@ -85,6 +100,43 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment distanceThreshold = savedInstanceState.getInt(DISTANCE_THRESHOLD_KEY); snapToRoadAppMode = ApplicationMode.valueOfStringKey( 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()) { @@ -93,6 +145,12 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment updateCards(); updateButtons(mainView); + progressBar = mainView.findViewById(R.id.progress_bar); + if (progressBar != null) { + requireMapActivity().setupRouteCalculationProgressBar(progressBar); + progressBar.setIndeterminate(false); + } + if (!isPortrait()) { int widthNoShadow = getLandscapeNoShadowWidth(); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT); @@ -102,6 +160,8 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment enterGpxApproximationMode(); runLayoutListener(); + calculateGpxApproximation(); + return mainView; } @@ -159,7 +219,7 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment public void onClick(View v) { Fragment fragment = getTargetFragment(); if (fragment instanceof GpxApproximationFragmentListener) { - ((GpxApproximationFragmentListener) fragment).onApplyGpxApproximation(snapToRoadAppMode, distanceThreshold); + ((GpxApproximationFragmentListener) fragment).onApplyGpxApproximation(); } dismiss(); } @@ -226,13 +286,13 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment 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 { if (!fm.isStateSaved()) { GpxApproximationFragment fragment = new GpxApproximationFragment(); - fragment.setTargetFragment(targetFragment, 0); - fragment.snapToRoadAppMode = initialAppMode; - fragment.distanceThreshold = initialDistanceThreshold; + fragment.setRetainInstance(true); + fragment.setTargetFragment(targetFragment, REQUEST_CODE); + fragment.setLocationsHolder(locationsHolder); fm.beginTransaction() .replace(R.id.fragmentContainer, fragment, TAG) .addToBackStack(TAG) @@ -254,29 +314,94 @@ public class GpxApproximationFragment extends ContextMenuScrollFragment } } - @Override - public void onSliderChange(int sliderValue) { - Fragment fragment = getTargetFragment(); - if (fragment instanceof GpxApproximationFragmentListener) { - ((GpxApproximationFragmentListener) fragment).onChangeGpxApproxDistanceThreshold(snapToRoadAppMode, sliderValue); - distanceThreshold = sliderValue; + public void calculateGpxApproximation() { + if (gpxApproximator != null) { + try { + gpxApproximator.setMode(snapToRoadAppMode); + gpxApproximator.setPointApproximation(distanceThreshold); + approximateGpx(); + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } } } + @Override + public void onSliderChange(int sliderValue) { + distanceThreshold = sliderValue; + calculateGpxApproximation(); + } + @Override public void onProfileSelect(ApplicationMode applicationMode) { - Fragment fragment = getTargetFragment(); - if (fragment instanceof GpxApproximationFragmentListener) { - ((GpxApproximationFragmentListener) fragment).onChangeGpxApproxDistanceThreshold(applicationMode, distanceThreshold); - snapToRoadAppMode = applicationMode; + snapToRoadAppMode = applicationMode; + calculateGpxApproximation(); + } + + 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() { + @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 { - void onChangeGpxApproxDistanceThreshold(ApplicationMode mode, int distanceThreshold); + void onGpxApproximationDone(GpxRouteApproximation gpxApproximation); - void onApplyGpxApproximation(ApplicationMode mode, int distanceThreshold); + void onApplyGpxApproximation(); void onCancelGpxApproximation(); } diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index a0590f77f7..1b289e0149 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -61,6 +61,7 @@ import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.TrackActivity; import net.osmand.plus.base.BaseOsmAndFragment; 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.OptionsBottomSheetDialogFragment.OptionsFragmentListener; 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.RemovePointCommand; 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.OsmandSettings; 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 java.io.File; -import java.io.IOException; import java.lang.ref.WeakReference; import java.text.MessageFormat; import java.text.SimpleDateFormat; @@ -94,7 +93,6 @@ import java.util.List; import java.util.Locale; import static net.osmand.IndexConstants.GPX_FILE_EXT; -import static net.osmand.plus.measurementtool.GpxApproximationFragment.GpxApproximationFragmentListener; import static net.osmand.plus.measurementtool.MeasurementEditingContext.CalculationType; import static net.osmand.plus.measurementtool.MeasurementEditingContext.ExportAsGpxListener; 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; public class MeasurementToolFragment extends BaseOsmAndFragment implements RouteBetweenPointsFragmentListener, - GpxApproximationFragmentListener, OptionsFragmentListener { + OptionsFragmentListener, GpxApproximationFragmentListener { public static final String TAG = MeasurementToolFragment.class.getSimpleName(); @@ -138,7 +136,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route private boolean gpxPointsAdded; private MeasurementEditingContext editingCtx = new MeasurementEditingContext(); - private GpxApproximator gpxApproximator; private LatLon initialPoint; @@ -547,39 +544,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route 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 private MapActivity getMapActivity() { Activity activity = getActivity(); @@ -659,13 +623,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route case SnapTrackWarningBottomSheet.CONTINUE_REQUEST_CODE: MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - try { - gpxApproximator = new GpxApproximator(requireMyApplication(), new LocationsHolder(editingCtx.getPoints())); - GpxApproximationFragment.showInstance(mapActivity.getSupportFragmentManager(), - this, gpxApproximator.getMode(), (int) gpxApproximator.getPointApproximation()); - } catch (IOException e) { - - } + GpxApproximationFragment.showInstance(mapActivity.getSupportFragmentManager(), + this, new LocationsHolder(editingCtx.getPoints())); } break; } @@ -1098,7 +1057,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route } } - private void displayApproximatedPoints(GpxRouteApproximation gpxApproximation) { + public void displayApproximatedPoints(GpxRouteApproximation gpxApproximation) { MeasurementToolLayer measurementLayer = getMeasurementLayer(); if (measurementLayer != null) { editingCtx.setPoints(gpxApproximation); @@ -1968,4 +1927,19 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route return NO_COLOR; } } + + @Override + public void onGpxApproximationDone(GpxRouteApproximation gpxApproximation) { + displayApproximatedPoints(gpxApproximation); + } + + @Override + public void onApplyGpxApproximation() { + + } + + @Override + public void onCancelGpxApproximation() { + + } } diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/SliderCard.java b/OsmAnd/src/net/osmand/plus/measurementtool/SliderCard.java index ce4e098716..b496c935fb 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/SliderCard.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/SliderCard.java @@ -46,9 +46,19 @@ public class SliderCard extends BaseCard { if (fromUser) { String valueStr = getStringValueWithMetric((int) value); 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()); } } }); diff --git a/OsmAnd/src/net/osmand/plus/routing/GpxApproximator.java b/OsmAnd/src/net/osmand/plus/routing/GpxApproximator.java index 318fbd63e9..60f43050b8 100644 --- a/OsmAnd/src/net/osmand/plus/routing/GpxApproximator.java +++ b/OsmAnd/src/net/osmand/plus/routing/GpxApproximator.java @@ -1,18 +1,35 @@ package net.osmand.plus.routing; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import net.osmand.LocationsHolder; +import net.osmand.PlatformUtil; +import net.osmand.ResultMatcher; import net.osmand.data.LatLon; import net.osmand.plus.OsmandApplication; +import net.osmand.plus.measurementtool.GpxApproximationFragment; import net.osmand.plus.routing.RouteProvider.RoutingEnvironment; 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.GpxRouteApproximation; +import net.osmand.search.core.SearchResult; + +import org.apache.commons.logging.Log; import java.io.IOException; +import java.util.ArrayList; import java.util.List; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; public class GpxApproximator { + protected static final Log log = PlatformUtil.getLog(GpxApproximator.class); + private OsmandApplication ctx; private RoutingHelper routingHelper; @@ -23,8 +40,21 @@ public class GpxApproximator { private List points; private LatLon start; 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.locationsHolder = locationsHolder; this.routingHelper = ctx.getRoutingHelper(); @@ -33,26 +63,48 @@ public class GpxApproximator { start = locationsHolder.getLatLon(0); end = locationsHolder.getLatLon(locationsHolder.getSize() - 1); 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.locationsHolder = locationsHolder; + this.pointApproximation = pointApproximation; this.routingHelper = ctx.getRoutingHelper(); this.mode = mode; if (locationsHolder.getSize() > 1) { start = locationsHolder.getLatLon(0); end = locationsHolder.getLatLon(locationsHolder.getSize() - 1); 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()); + } + + private void prepareEnvironment(@NonNull OsmandApplication ctx, @NonNull ApplicationMode mode) throws IOException { 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 getPoints() { + if (points == null) { + points = routingHelper.generateGpxPoints(env, getNewGpxApproximationContext(null), locationsHolder); + } + List points = new ArrayList<>(this.points.size()); + for (GpxPoint p : this.points) { + points.add(new GpxPoint(p)); + } + return points; } public ApplicationMode getMode() { @@ -68,18 +120,82 @@ public class GpxApproximator { } public double getPointApproximation() { - return gctx.MINIMUM_POINT_APPROXIMATION; + return pointApproximation; } public void setPointApproximation(double pointApproximation) { - gctx.MINIMUM_POINT_APPROXIMATION = pointApproximation; + this.pointApproximation = pointApproximation; } public LocationsHolder getLocationsHolder() { return locationsHolder; } - public GpxRouteApproximation calculateGpxApproximation() throws IOException, InterruptedException { - return routingHelper.calculateGpxApproximation(env, gctx, points); + public GpxApproximationProgressCallback getApproximationProgress() { + return approximationProgress; + } + + public void setApproximationProgress(GpxApproximationProgressCallback approximationProgress) { + this.approximationProgress = approximationProgress; + } + + public void calculateGpxApproximation(@NonNull final ResultMatcher 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); + } } } diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java index 6aaac45c1d..9433e325f6 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java +++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java @@ -15,6 +15,7 @@ import net.osmand.GPXUtilities.WptPt; import net.osmand.Location; import net.osmand.LocationsHolder; import net.osmand.PlatformUtil; +import net.osmand.ResultMatcher; import net.osmand.binary.BinaryMapIndexReader; import net.osmand.data.LatLon; import net.osmand.data.LocationPoint; @@ -716,13 +717,8 @@ public class RouteProvider { return env.router.generateGpxPoints(gctx, locationsHolder); } - public GpxRouteApproximation calculateGpxPointsApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List points) throws IOException, InterruptedException { - if (points != null && points.size() > 1) { - if (!Algorithms.isEmpty(points)) { - return env.router.searchGpxRoute(gctx, points); - } - } - return null; + public GpxRouteApproximation calculateGpxPointsApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List points, ResultMatcher resultMatcher) throws IOException, InterruptedException { + return env.router.searchGpxRoute(gctx, points, resultMatcher); } protected RoutingEnvironment calculateRoutingEnvironment(RouteCalculationParams params, boolean calcGPXRoute, boolean skipComplex) throws IOException { diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 0899b586a9..25727f86ea 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -7,6 +7,7 @@ import net.osmand.GPXUtilities.WptPt; import net.osmand.Location; import net.osmand.LocationsHolder; import net.osmand.PlatformUtil; +import net.osmand.ResultMatcher; import net.osmand.ValueHolder; import net.osmand.binary.RouteDataObject; import net.osmand.data.LatLon; @@ -1364,8 +1365,8 @@ public class RoutingHelper { return provider.generateGpxPoints(env, gctx, locationsHolder); } - public GpxRouteApproximation calculateGpxApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List points) throws IOException, InterruptedException { - return provider.calculateGpxPointsApproximation(env, gctx, points); + public GpxRouteApproximation calculateGpxApproximation(RoutingEnvironment env, GpxRouteApproximation gctx, List points, ResultMatcher resultMatcher) throws IOException, InterruptedException { + return provider.calculateGpxPointsApproximation(env, gctx, points, resultMatcher); } public void notifyIfRouteIsCalculated() { From 678a9ae57428d86df735b039d881aadf11815564 Mon Sep 17 00:00:00 2001 From: josep constanti Date: Tue, 11 Aug 2020 21:05:11 +0000 Subject: [PATCH 05/36] Translated using Weblate (Catalan) Currently translated at 96.6% (3335 of 3450 strings) --- OsmAnd/res/values-ca/strings.xml | 49 +++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index eb41126080..36b1866e7a 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3610,10 +3610,10 @@ Abasta l\'àrea: %1$s x %2$s Pistes Connector d\'OsmAnd adaptat Substitueix un altre punt per aquest - S\'han fet els canvis al perfil %1$s. - No s\'ha pogut llegir %1$s. + S\'han fet els canvis al perfil \'%1$s\'. + No s\'ha pogut llegir des de \'%1$s\'. No s\'ha pogut escriure %1$s. - No s\'ha pogut importar %1$s. + No s\'ha pogut importar des de \'%1$s\'. Seleccioneu fitxer de la traça Idiomes Llengua @@ -3626,7 +3626,7 @@ Abasta l\'àrea: %1$s x %2$s Elements per sota d’aquest punt separats per un divisor. Amagat Aquests elements no es mostren al menú, però les opcions o els connectors que representen continuaran funcionant. - La configuració es restablirà a l\'estat original després d\'amagar-se. + Si s\'amaga la configuració es restablirà al seus valors originals. Les accions principals només contenen 4 botons. Accions principals Només podeu moure els elements dins d\'aquesta categoria. @@ -3748,4 +3748,45 @@ Abasta l\'àrea: %1$s x %2$s Següent segment Llindar de distància Perfil de navegació + Podeu accedir a aquestes accions prement el botó \"%1$s\". + %1$s / %2$s + Cerca per tipus de PDI + L\'acció %1$s no s\'admet + OsmAnd + Mapillary + Acció directa + Radi de distància + Mesura la distància + Viatges (Viquiviatges i Viquipèdia) + Marcadors de mapa + Preferits + Subscripció - OsmAnd Live + Compres OsmAnd + Perfils de navegació + Amaga el transport públic + Mostra/amaga el transport públic + Botó que mostra o oculta el transport públic al mapa. + Crea / Edita PDI + Posicions d’aparcament + Afegeix / Edita Preferits + Restableix la ordenació dels elements predeterminats + Torna a l\'edició + A cada instrucció de navegació s\'activarà la pantalla. + Instruccions de navegació + Sensor de proximitat + Manté la pantalla activada + Projecció Pseudo-Mercator + Un fitxer d\'imatge per tessel·la + Fitxer SQLiteDB + Proporcioneu un nom per a l’origen del mapa en línia. + Introduïu o enganxeu l’URL de la font en línia. + Edita la font en línia + Caducitat + Projecció de Mercator + Format d\'emmagatzematge + Establiu un nivell de zoom mínim i màxim per a mostrar o carregar el mapa en línia. + 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. \ No newline at end of file From b81c573604bc14442c85bf1bcac0e766424c8c0b Mon Sep 17 00:00:00 2001 From: Razvan D Date: Mon, 10 Aug 2020 20:45:23 +0000 Subject: [PATCH 06/36] Translated using Weblate (Romanian) Currently translated at 65.6% (2266 of 3450 strings) --- OsmAnd/res/values-ro/strings.xml | 155 +++++++++++++++++++++---------- 1 file changed, 108 insertions(+), 47 deletions(-) diff --git a/OsmAnd/res/values-ro/strings.xml b/OsmAnd/res/values-ro/strings.xml index 60006cc446..6632507265 100644 --- a/OsmAnd/res/values-ro/strings.xml +++ b/OsmAnd/res/values-ro/strings.xml @@ -58,7 +58,7 @@ Creează filtru POI Mod de transport: - Selectează modul de transport + Mod transport: Răsărit : %1$s \nApus : %2$s Info zi/noapte Atribute randare @@ -99,12 +99,12 @@ Arată camerele radar Arată atenționări de trafic Evită drumuri cu taxă - "Navigarea anterioară nu s-a încheiat. Doriți s-o continuați (implicit \'Da\')? (%1$s seconds)" + Continuați să urmați navigarea anterioară neterminată\? (%1$s seconds) Ruta va fi calculată când se va stabili poziția curentă Ore Minute - Mașina a fost parcată la: - Selecție accelerare simulare rută + Mașina este parcată la + Viteză simulare rută: Memorie alocată %1$s MB (limita Android %2$s MB, Dalvik %3$s MB). Memorie alocată Total memorie nativă alocată de aplicație %1$s MB (Dalvik %2$s MB, other %3$s MB). @@ -150,7 +150,7 @@ Crește nivelul de detalii ale hărții Mai multe detalii pe hartă Date despre rutare - Format: + Format Caută POI (Puncte de Interes) Căutare adresă Coordonate @@ -183,7 +183,7 @@ Manager de plugin-uri Arată setările necesare pentru colectarea/modificarea de date openstreetmaps.org (POI, bug-uri, trasee) - necesită specificarea datelor de acces la OSM. Hărțile vectoriale se afișează mai rapid de regulă. Posibil să nu funcționeze bine pe anumite dispozitive. - Exemple de comenzi ale vocii selectate + Selectează o voce și testează redând anunțuri: Dezvoltare OsmAnd Randare nativă Testare instrucțiuni vocale @@ -329,7 +329,7 @@ Fișierul nu poate fi redenumit. Există un fișier cu același nume. Rută GPX - Au foste găsite câteva categorii de POI care satisfac condițiile: + Au fost găsite câteva categorii asemănătoare de POI. Nu există date offline salvate pentru efectuarea căutării. Căutare după nume Fișierul de date POI \'%1$s\' este redundant și poate fi șters. @@ -389,7 +389,7 @@ Date despre POI Voce TTS Căutare nouă - Selecția mărimii textului pentru denumirile afișate pe hartă + Mărimea textului pentru denumirile afișate pe hartă: Mărime font hartă Info depanare randare Afișare date despre performanțele procesului de randare @@ -549,7 +549,7 @@ Către direcție busolă În direcția deplasării Nord întotdeauna sus - Aliniere hartă la ecran + Aliniere hartă: Orientare hartă Detalii rută Puncte favorite importate cu succes @@ -581,9 +581,9 @@ GPS secunde min. - Alegeți intervalul de timp pentru menținerea activă a serviciilor folosite în fundal + Intervalul de timp pentru menținerea activă a serviciilor folosite în fundal: Interval menținere activă GPS - Alege furnizorul serviciului de localizare pe timpul navigării în fundal + Metodă localizare folosită de serviciul în fundal: Furnizorul serviciului de localizare Rulează OsmAnd în fundal pentru determinarea poziției în timp ce ecranul este oprit Rulează în fundal @@ -699,7 +699,7 @@ Eroare: ruta calculată este vidă O nouă rută a fost calculată, distanța Ați ajuns la destinație - Coordonatele nu sunt valide! + Coordonate invalide Înapoi la harta OsmAnd Închideți Se încarcă date… @@ -794,7 +794,7 @@ Mesaj Nume autor Comentariu adăugat - Nu s-a putut adăuga comentariul + Nu s-a putut adăuga comentariul. Editare POI Creează POI POI-ul nu poate fi găsit sau punctul de interes nu este singular @@ -825,7 +825,7 @@ Aplicația rulează în safe mode (se poate dezactiva de la Setări). Specificați când anume să fie afișate hărțile exclusiv cu drumuri: Hărți doar pentru drumuri - "Drumuri " + Doar drumuri Hărți complete Hărți exclusiv drumuri incomplet @@ -868,11 +868,11 @@ Plugin linii de nivel Înregistrare video Înregistrare audio - Selectați acțiunea implicită a iconiței + Acțiune implicită a iconiței: Acțiune implicită iconiță - Selectați formatul video + Format ieșire video: Format video - Folosește aplicația sistemului pt înregistrare video + Folosește aplicația sistemului pt înregistrare video. Folosește aplicație externă pentru înregistrare Configurarea setărilor audio și video Setări audio/video @@ -888,7 +888,7 @@ Evită drumurile cu taxă Evită drumurile cu taxă Evită drumurile neasfaltate - Evită drumurile neasfaltate. + Evită drumurile neasfaltate Evită feriboturile Evită feriboturile Evită autostrăzile @@ -995,7 +995,7 @@ Hartă Preferă autostrăzi Preferă… - Preferă autostrăzi + Preferă autostrăzi. nici una OpenMaps EU Date linii de contur @@ -1111,7 +1111,7 @@ Segment 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. Tip de focalizare al camerei - Selectați modul de focalizare al camerei interne. + Mod focalizare cameră: Auto focalizare Focalizare hiperfocală Focalizarea este setata la infinit @@ -1206,8 +1206,8 @@ Fișier GPX gol Traseele mele Format invalid: %s - "Parolă OSM (opţional)" - Se descarcă + Parolă OSM (opţională) + Se descarcă… Atlas rutier german Versiuni Rute tramvai @@ -1366,9 +1366,9 @@ Redeschide nota Închideți nota Notă creată - Nu s-a putut crea nota + Nu s-a putut crea nota. Notă închisă - Nota nu a putut fi închisă + Nota nu a putut fi închisă. Comite Ștergi punctul de referință GPX? Editează punctul de referință GPX @@ -1678,7 +1678,7 @@ Note după dată După dată După tip - "Se caută trasee cu puncte intermediare" + Se caută trasee cu puncte intermediare Mai mult Aspectul pe hartă Selectați un traseu pentru a-i adăuga un punct intermediar la marcaje. @@ -1723,7 +1723,7 @@ Ruta a fost calculată Dus-întors Trebuie sa adăugați cel puțin un marcaj pentru a utilza această funcție. - Nu s-a putut modifica nota + Nu s-a putut modifica nota. Modifică nota Modifică nota OMS Copiază punctul de pornire ca destinație. @@ -1778,7 +1778,7 @@ Dată Scrie nume utilizator Vedeți doar imaginile adaugate de - "Filtrați imaginile după utilizator, după dată sau după tip. Active doar pentru zoom apropiat." + Filtrați imaginile după utilizator, după dată sau după tip. Active doar pentru zoom apropiat. Osmand nu poate importa fișierul. Vă rugăm să verificați dacă OsmAnd are permisiuni de citire din această locație. Distanța corectată Imagine Mapillary @@ -1835,7 +1835,7 @@ Restaurare cumpărături Fonturi hartă Conducere pe dreapta - Automatic + Automat Nu trimite statistici de utilizare anonime ale aplicației 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. Nu arăta mesaje la pornire @@ -2305,7 +2305,7 @@ Căutare GPS Acordați-ne 30 de secunde, trimiteți părerea dvs. și evaluați munca noastră pe Google Play. Politica de confidențialitate - Ajutați-ne să facem OsmAnd mai bun! + Ajutați-ne să facem OsmAnd mai bun Alegeți ce tip de date doriți să partajați: Hărți descărcate Ecrane vizitate @@ -2335,7 +2335,7 @@ Profil de bază Selectați tipul navigației Introduceți numele profilului - Numele profilului nu trebuie să fie gol! + Trebuie să specificați mai întâi un nume de profil. Nume deja existent Există deja un profil cu un astfel de nume Nu puteți șterge profile de bază OsmAnd @@ -2369,12 +2369,12 @@ Cât de repede vrei să se anunțe sosirea\? Apăsați din nou pentru a schimba orientarea hărții Viteza min. - Viteza max. + Viteză max. Viteză implicită Modificați setările de viteză implicită Setați viteza min/max Profil nou - Poţi aplica aceasta modificare pe toate profilele sau doar pe cel selectat + Poţi aplica aceasta modificare pe toate profilele sau doar pe cel selectat. Partajat Prefer drumurile nepavate Prefer drumurile nepavate @@ -2390,12 +2390,12 @@ Motorul text-to-speech nu porneste. Exportă profilul Profil osmand exportat %1$s - Profil \'%1$s\' deja existent, îl rescrii\? + \'%1$s\' există deja. Îl suprascriu\? Profilul nu se poate exporta. - Importare de profil: + Importare profil Pentru a importa profilul, selectați fișierul din dispozitiv, și deschideți-l cu OsmAnd. %1$s Eroare de incarcare al fisierului. %1$s: %2$s - %1$s Incarcat cu succes. + %1$s importat. Alb Punct de plecare Modifica stilul implicit pentru a crește contrastul dintre drumurile pietonale și biciclete. Utilizează culori Mapnik. @@ -2427,7 +2427,7 @@ Schimbați dosarul de date ale OsmAnd\? Mută la noua destinație Stocare internă, ascunsă de utilizator și alte aplicații, accesibilă exclusiv pentru OsmAnd - Schimbați folderul de stocare a datelor + Schimbați folderul de stocare Parc Sanie Sanie @@ -2640,16 +2640,16 @@ Instrucțiuni și anunțuri de navigație Arată rutele pentru biciclete Dialogul de descărcare a hărții - Control popups, dialoguri și notificări pe care OsmAnd le arată în timpul utilizării. + Control popups, dialoguri și notificări. Rețele de noduri Hărți sugerate - Aceste hărți trebuie să fie utilizate cu pluginul + Aceste hărți sunt necesare pentru plugin. Profiluri adăugate - Pluginul adaugă un nou profil la OsmAnd + Profiluri adăugate de plugin Opriți A fost adăugat un plugin nou Alăturați segmente - Adăugați un profil nou \'%1$s\'\? + Adăugați profilul nou \'%1$s\'\? Includeți titlu Salvați poziția fiecarui punct al traseului în timpul înregistrării. %1$s • %2$s @@ -2657,17 +2657,17 @@ Personal Descarcarea %s Gros - Pentru deșerturi și alte zone slab populate. - Selecteaza iconul pentru navigatie - Selecteaza iconul pentru harta - Dupa ce apasati Apply ,profilul sters va fi pierdut definitiv. + Pentru deșerturi și alte zone slab populate. Mai detaliat. + Selectează icoana pentru navigație + Poziționare icoană în timpul repausului + Apăsând pe \'Aplică\' se vor șterge permanent profilurile eliminate. Profil de baza - Selecteaza culoarea + Selectează culoarea 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. Editarea profilurilor Tipul de navigație afectează regulile pentru calcularea rutei. Aspectul profilului - Alegeți pictograma, culoarea și numele + Pictograma, culoarea și numele Editează lista de profiluri Profil selectat Pentru navigare nautică.Caracteristici de geamanduri, faruri, râuri, benzi și mărci de mare, porturi, servicii de marinari, și contururi de adâncime. @@ -2747,7 +2747,7 @@ Recalculare rută Anunț Utilizator și parolă - Aceste setări se aplică la toate profilurile. + Aceste setări se aplicp la toate profilurile. Editare OSM OSM E nevoie de permisiune pentru a utiliza această opțiune. @@ -2797,4 +2797,65 @@ Se importă Articole adăugate Importarea s-a finalizat + Editare sursă online + Proiecție Mercator + POI-uri Camere viteză + Î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. + Alertele camerelor de viteză în unele țări sunt interzise de lege. + Butoane volum ca și zoom + Trebuie să setați zile lucrătoare pentru a continua + Afișare icoane start finish + Selecție lățime + Țineți ecranul pornit + Țineți ecranul oprit + Proiecție pseudo-Mercator + Fișier SQLiteDB + Timp expirare + Format stocare + Șterg tot\? + Dezinstalare camere radar + Legal + Mențineți activ + Dezinstalare + tone + metrii + Adăugare surse online + Afișare/ascundere Mapillary + Ascundere Mapillary + Afișare Mapillary + O comutare pentru a afișa sau ascunde stratul Mapillary pe hartă. + Specificați lungimea vehiculului care trebuie permisă pe rute. + Limită lungime + Direcție + %1$s șters + Dezinstalare și repornire + Ștergeți următorul punct de destinație + Vă rugăm să furnizați un nume pentru acest punct + Descărcare hărți Wikipedia + Motocicletă enduro + Scaun cu rotile + Notă OSM închisă + Planificați o rută + Adăugați la traseu + Personalizat + Săgeți direcționale + Solid + Ultima modificare + Importare traseu + Deschideți o rută existentă + Creați o rută nouă + Gata + Suprascriere traseu + Salvați ca și traseu nou + Inversare rută + Întreg traseul + Segmentul următor + Profil navigație + Utilizare date altitudine \ No newline at end of file From db3d10d8a164e9a65adca78993420f621ba5837f Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Tue, 11 Aug 2020 22:46:47 +0000 Subject: [PATCH 07/36] Translated using Weblate (French) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 5c3be1db87..4a796604eb 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -1373,7 +1373,7 @@ Utiliser le rendu OpenGL Utiliser le rendu matériel accéléré OpenGL (peut consommer plus de batterie et ne pas fonctionner sur les anciens appareils). Tous les fichiers sont à jour - Ignorer + Arrêter Téléchargement impossible, veuillez vérifier votre connexion Internet. Tous les téléchargements Mises à jour From caae02d1f788929df6b1309ad78da5d7436195b1 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Wed, 12 Aug 2020 04:54:37 +0000 Subject: [PATCH 08/36] Translated using Weblate (Greek) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-el/strings.xml | 247 +++++++++++++++++++++++-------- 1 file changed, 186 insertions(+), 61 deletions(-) diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index d83a0a8b6f..6a8005cfae 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -1015,23 +1015,23 @@ Ιαπωνία ΗΠΑ Καναδάς - Ευρώπη, Ασία, Λατινική Αμερική κ.ο.κ. - ΗΒ, Ινδία κ.ο.κ + Ευρώπη, Ασία, Λατινική Αμερική και παρόμοια + ΗΒ, Ινδία και παρόμοια Έκδοση: Περί Πληροφορίες έκδοσης, άδειες, μέλη έργου - Λήξη (λεπτά): %1$s + Χρόνος λήξης (σε λεπτά): %1$s Μέγιστη εστίαση: %1$s Ελάχιστη εστίαση: %1$s Μέγιστη εστίαση - Λήξη (λεπτά) + Χρόνος λήξης (σε λεπτά) Ελάχιστη εστίαση Καθορισμός/Επεξεργασία… Διαθέσιμο για λήψη: %1$s - Μεγεθύνσεις που ελήφθησαν: %1$s + Μεταφορτωμένα επίπεδα εστίασης: %1$s Δεδομένα πλακιδίου: %1$s - Πάροχος πλακιδίων %1$s αποθηκεύτηκε - Ελλειπτικό Μερκάτωρ + Αποθηκεύτηκε η πηγή πλακιδίων %1$s + Ελλειπτική μερκατορική προβολή URL Επιλογή υπάρχοντος… Επιλέξτε περιοχή οδήγησης: ΗΠΑ, Ευρώπη, ΗΒ, Ασία κλπ. @@ -1074,13 +1074,14 @@ " \n \nΠαρατεταμένο πάτημα για προβολή στον χάρτη" - "Χρόνος έναρξης: %1$tF, %1$tT " - "Χρόνος λήξης: %1$tF, %1$tT " + Χρόνος έναρξης: %1$tF, %1$tT + Χρόνος λήξης: %1$tF, %1$tT Εύρος υψομέτρου: %1$s Κατηφόρα/Ανηφόρα: %1$s %1$s σημεία - "Σημείο %1$s" - "%1$s\nΣημεία διαδρομής %2$s" + Σημείο %1$s + %1$s +\nΣημεία διαδρομής %2$s %1$s\nΣημεία Χρώμα εμφάνισης ημέρες @@ -1089,7 +1090,7 @@ Ορίστε προορισμούς Σημείο διαδρομής Υποδεέστερα ίχνη: %1$s - "Σημεία διαδρομής: %1$s " + Σημεία διαδρομής: %1$s Χρονική διάρκεια: %1$s Χρόνος σε κίνηση: %1$s Τμήμα @@ -1226,7 +1227,7 @@ Αυτοκίνητο Ποδήλατο Πεζοπόρος - Έναρξη καταγραφής GPX + Συνέχιση καταγραφής GPX Παύση καταγραφής GPX Έναρξη νέου τμήματος Όλα @@ -1393,7 +1394,7 @@ Κοινή χρήση σημείωσης Σημειώσεις A/V Μόνο δρόμοι - "Ελεύθερο %1$s " + Ελεύθερο %1$s Μνήμη συσκευής Φωτισμός οδών Διαδρομές μετρό @@ -1589,8 +1590,8 @@ Πατήστε ένα δείκτη στο χάρτη για να τον μετακινήσετε στην κορυφή των ενεργών δεικτών χωρίς να ανοίξει το συναφές μενού. Ενεργό το \'Ένα πάτημα\' Κρατήστε σημειώσεις! - Προσθέστε ήχο, βίντεο ή φωτοσημείωση για κάθε σημείο στο χάρτη, χρησιμοποιώντας το widget ή το συναφές μενού. - Σημειώσεις OSM κατά ημερομηνία + Προσθέστε ήχο, βίντεο ή φωτοσημειώσεις για κάθε σημείο στο χάρτη, χρησιμοποιώντας τα γραφικά στοιχεία ή τα μενού περιβάλλοντος. + Σημειώσεις ήχου/βίντεο κατά ημερομηνία Ταξιδιωτικοί οδηγοί Το άρθρο αφαιρέθηκε Αναζήτηση για χώρα, πόλη, ή επαρχία @@ -1665,7 +1666,7 @@ Εμφάνιση κατευθυντήριας γραμμής από τη θέση σας προς τις ενεργές τοποθεσίες δείκτη. Εμφάνιση ενός ή δύο βελών που δείχνουν την κατεύθυνση προς τους ενεργούς δείκτες. Επιλέξτε πώς θα εμφανίζεται η απόσταση προς τους ενεργούς δείκτες. - Προσδιορίστε τον αριθμό των δεικτών κατεύθυνσης: + Προσδιορίστε τον αριθμό των δεικτών κατεύθυνσης. Αριθμός δεκαδικών ψηφίων Δεξιά Αριστερά @@ -1726,7 +1727,7 @@ Ταξινόμηση κατά: Επιλογή υπόδειξης απόστασης και κατεύθυνσης σε σημειωτές χαρτών στον χάρτη: Όριο προσανατολισμού χάρτη - Επιλογή παρακάτω της ταχύτητας εναλλαγής προσανατολισμού από \'Κατεύθυνση κίνησης\' σε \'Κατεύθυνση πυξίδας\'. + Επιλέξτε την ταχύτητα εναλλαγής προσανατολισμού από \'Κατεύθυνση κίνησης\' σε \'Κατεύθυνση πυξίδας\' παρακάτω. Όλοι οι δείκτες χάρτη μετακινήθηκαν στο ιστορικό Ο δείκτης χάρτη μετακινήθηκε στο ιστορικό Ο δείκτης χάρτη ενεργοποιήθηκε @@ -1775,7 +1776,7 @@ Δεν μπορούσε να εισαχθεί το αρχείο. Παρακαλώ διαβεβαιώστε πως το OsmAnd επιτρέπεται να το αναγνώσει. Εικόνα Mapillary Βελτίωση κάλυψης φωτογραφίας με Mapillary - Εγκαταστήστε το Mapillary για να προσθέσετε μία ή περισσότερες φωτογραφίες σε αυτήν την τοποθεσία του χάρτη. + Εγκαταστήστε το Mapillary για να προσθέσετε φωτογραφίες σε αυτήν την τοποθεσία του χάρτη. Χωρίς φωτογραφίες εδώ. Μοιραστείτε την θέα σας στο δρόμο μέσω του Mapillary. Γραφικό στοιχείο Mapillary @@ -1927,7 +1928,7 @@ Προσθήκη περισσότερων… Εμφάνιση Ενεργοποίηση γρήγορης καταγραφής - Εμφάνιση ειδοποίησης συστήματος που επιτρέπει την καταγραφή ταξιδιού. + Εμφάνιση ειδοποίησης συστήματος που επιτρέπει την έναρξη καταγραφής ταξιδιού. Ειδοποιήσεις Συνέχεια Παύση @@ -1965,7 +1966,7 @@ Διαγραφή φίλτρου Νέο φίλτρο Παρακαλούμε, εισάγετε όνομα για το νέο φίλτρο, αυτό θα προστεθεί στην δική σας καρτέλα \'Κατηγορίες\'. - Τα τέλη εγγραφής επιβαρύνονται μηνιαία. Μπορείτε να ακυρώσετε την εγγραφή σας στο Google Play οποτεδήποτε. + Η συνδρομή επιβαρύνεται ανά επιλεγμένη περίοδο. Μπορείτε να την ακυρώσετε στο Google Play οποτεδήποτε. Δωρεά στην κοινότητα OSM Μέρος της δωρεάς σας θα σταλεί στους συντελεστές OSM. Το κόστος της εγγραφής παραμένει το ίδιο. Η εγγραφή ενεργοποιεί ωριαίες, ημερήσιες και εβδομαδιαίες ενημερώσεις και απεριόριστες λήψεις για όλους τους χάρτες παγκοσμίως. @@ -2005,7 +2006,7 @@ Πίσω στην αναζήτηση Να αφαιρεθούν τα επιλεγμένα στοιχεία από το \'Ιστορικό\'; Εμφάνιση του %1$s στον χάρτη - "Αναζήτηση %1$s μακριά " + Αναζήτηση %1$s μακριά κοινόχρηστο μέσω του OsmAnd Κατηγορίες Ταχυδρομικός κώδικας @@ -2329,7 +2330,7 @@ Μέσα σε Το αγαπημενο μετονομάστηκε σε \'%1$s\' για να προφυλάξει την συμβολοσειρά που περιέχει emoticons σε αρχείο. Ορίστηκε διπλογραφή ονόματος Αγαπημένου - Ήπια κυκλοφορία + Χαλάρωση κυκλοφορίας Ορίστε τα χρονικά διαστήματα καταγραφής για τη γενική εγγραφή ιχνών (ενεργό μέσω του γραφικού στοιχείου καταγραφής GPX στον χάρτη). Καταγραφή ίχνους κατ΄ απαίτηση Διαμόρφωση μεσολαβητή HTTP για όλες τις αιτήσεις δικτύου. @@ -2412,31 +2413,36 @@ \n Χιονοδρομίες \nΤο πρόσθετο χαρτών χιονοδρομιών σας επιτρέπει να δείτε ίχνη χιονοδρομιών με επίπεδο δυσκολίας και κάποιες πρόσθετες πληροφορίες, όπως τοποθεσίες αναβατορίων και άλλων εγκαταστάσεων. - "Περπάτημα, πεζοπορία, γύρος της πόλης + Περπάτημα, πεζοπορία, γύρος της πόλης +\n \n • Ο χάρτης σας εμφανίζει διαδρομές περπατήματος και πεζοπορίας -\n • Η βικιπαίδεια στην προτιμώμενη γλώσσα σας μπορεί να σας πει πολλά στον γύρο της πόλης +\n +\n • Η βικιπαίδεια στην προτιμώμενη γλώσσα σας μπορεί να σας πει πολλά στον γύρο της πόλης +\n \n • Οι στάσεις των δημόσιων συγκοινωνιών (λεωφορείου, τροχιόδρομου, σιδηρόδρομου), συμπεριλαμβάνοντας τα ονόματα γραμμών, βοηθούν στην πλοήγηση σε μια νέα πόλη +\n \n • Η πλοήγηση GPS σε κατάσταση πεζού δημιουργεί τη διαδρομή σας χρησιμοποιώντας πεζοπορικές διαδρομές -\n • Ανεβάσετε και ακολουθήσετε μια διαδρομή GPX ή καταγράψετε και μοιραστείτε τη δική σας -\n" +\n +\n • Ανεβάσετε και ακολουθήσετε μια διαδρομή GPX ή καταγράψετε και μοιραστείτε τη δική σας +\n Συνεισφέρετε στο OSM \n • Αναφέρετε σφάλματα δεδομένων \n • Ανεβάστε ίχνη GPX στο OSM απευθείας από την εφαρμογή \n • Προσθέστε ΣΕ και ανεβάστε τα απευθείας στο OSM (ή αργότερα εάν είσαστε χωρίς σύνδεση) \n - Το OsmAnd αναπτύσσεται ενεργά από λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας μεταφράσεις ή κωδικοποιώντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται στις οικονομικές συνδρομές για να . Η πρόοδος του έργου βασίζεται επίσης στις οικονομικές συνεισφορές για να τροφοδοτήσει την κωδικοποίηση και τον έλεγχο των νέων λειτουργιών. -\n Προσεγγιστική κάλυψη χάρτη και ποιότητας: -\n • Δυτική Ευρώπη: **** -\n • Ανατολική Ευρώπη: *** -\n • Ρωσία: *** -\n • Βόρεια Αμερική: *** -\n • Νότια Αμερική: ** -\n • Ασία: ** -\n • Ιαπωνία & Κορέα: *** -\n • Μέση Ανατολή ** -\n • Αφρική: ** -\n • Ανταρκτική * -\n Οι περισσότερες χώρες της Γης είναι διαθέσιμες για κατέβασμα! + Το OsmAnd αναπτύσσεται ενεργά από λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας μεταφράσεις ή κωδικοποιώντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται στις οικονομικές συνδρομές για χρηματοδότηση του κώδικα και των νέων λειτουργιών. +\n Προσεγγιστική κάλυψη χάρτη και ποιότητας: +\n • Δυτική Ευρώπη: **** +\n • Ανατολική Ευρώπη: *** +\n • Ρωσία: *** +\n • Βόρεια Αμερική: *** +\n • Νότια Αμερική: ** +\n • Ασία: ** +\n • Ιαπωνία & Κορέα: *** +\n • Μέση Ανατολή ** +\n • Αφρική: ** +\n • Ανταρκτική * +\n Οι περισσότερες χώρες της Γης είναι διαθέσιμες για κατέβασμα! \n Πάρτε έναν αξιόπιστο πλοηγητή για τη χώρα σας - είτε είναι η Γαλλία, η Γερμανία, το Μεξικό, το Ενωμένο Βασίλειο, η Ισπανία, οι Κάτω Χώρες, οι ΗΠΑ, η Ρωσία, η Βραζιλία είτε οποιαδήποτε άλλη. Το OsmAnd+ (OSM Automated Navigation Directions) είναι χάρτης και εφαρμογή πλοήγησης με πρόσβαση στα ελεύθερα, παγκόσμια και υψηλής ποιότητας δεδομένα του OSM. \n Απολαύστε φωνητική και οπτική καθοδήγηση, προβολή ΣΕ (σημείων ενδιαφέροντος), δημιουργία και διαχείριση ιχνών GPX, χρησιμοποιώντας ισοϋψείς γραμμές απεικόνισης και πληροφορίες υψομέτρου, επιλογή μεταξύ καταστάσεων οδήγησης, ποδηλάτου, πεζοπορίας, επεξεργασίας OSM και πολλών άλλων. @@ -2482,11 +2488,16 @@ \n • Προαιρετική εμφάνιση ταχύτητας και υψομέτρου \n • Εμφάνιση ισοϋψών γραμμών και σκίαση αναγλύφου (μέσω προσθέτου) "Απευθείας συνεισφορά στο OSM +\n \n • Αναφορά σφαλμάτων δεδομένων +\n \n• Ανέβασμα ιχνών GPX στο OSM απευθείας από την εφαρμογή -\n • Προσθήκη ΣΕ και απευθείας ανέβασμα τους στο OSM (ή αργότερα εάν είναι χωρίς σύνδεση) +\n +\n • Προσθήκη ΣΕ και απευθείας ανέβασμα τους στο OSM (ή αργότερα εάν είναι χωρίς σύνδεση) +\n \n • Επίσης, προαιρετική καταγραφή ταξιδιού σε κατάσταση παρασκηνίου (ενώ η συσκευή είναι σε κατάσταση ύπνωσης) -\n Το OsmAnd είναι ενεργά αναπτυσσόμενο λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας τις μεταφράσεις, ή κωδικοποιόντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται επίσης στις χρηματικές συνεισφορές για χρηματοδότηση κωδικοποίησης και ελέγχου των νέων λειτουργιών. +\n +\n Το OsmAnd είναι ενεργά αναπτυσσόμενο λογισμικό ανοικτού κώδικα. Καθένας μπορεί να συνεισφέρει στην εφαρμογή αναφέροντας σφάλματα, βελτιώνοντας τις μεταφράσεις, ή κωδικοποιώντας νέα χαρακτηριστικά. Επιπλέον, το έργο βασίζεται επίσης στις χρηματικές συνεισφορές για χρηματοδότηση κωδικοποίησης και ελέγχου των νέων λειτουργιών. \n" Προσεγγιστική κάλυψη χαρτών και ποιότητα: \n • Δυτική Ευρώπη: **** @@ -2499,7 +2510,8 @@ \n • Μέση Ανατολή: ** \n • Αφρική ** \n • Ανταρκτική: * -\n Οι περισσότερες χώρες της Γης είναι διαθέσεις για λήψη! Από το Αφγανιστάν μέχρι τη Ζιμπάμπουε, από την Αυστραλία μέχρι τις ΗΠΑ. Αργεντινή, Βραζιλία, Καναδάς, Γαλλία, Γερμανία, Μεξικό, Ενωμένο Βασίλειο, Ισπανία, … +\n Οι περισσότερες χώρες της Γης είναι διαθέσεις για λήψη +\n Από το Αφγανιστάν μέχρι τη Ζιμπάμπουε, από την Αυστραλία μέχρι τις ΗΠΑ. Αργεντινή, Βραζιλία, Καναδάς, Γαλλία, Γερμανία, Μεξικό, Ενωμένο Βασίλειο, Ισπανία, … \n Διαμοιρασμένη διαδρομή μέσω OsmAnd Πατήστε οποιοδήποτε υφιστάμενο στοιχείο για να δείτε περισσότερες λεπτομέρειες, παρατεταμένο πάτημα για απενεργοποίηση ή διαγραφή. Τρέχοντα δεδομένα στη συσκευή (%1$s ελεύθερα): @@ -2708,7 +2720,7 @@ Προσθήκη αρχείων GPX Εισαγωγή αρχείων GPX, ή καταγραφή ιχνών. Προσθήκη αγαπημένων - Εισαγωγή αγαπημένων, ή προσθήκη μέσω σημείων επισήμανσης στον χάρτη. + Εισαγωγή αγαπημένων, ή προσθήκη τους μέσω σημείων επισήμανσης στον χάρτη. Εισαγωγή αρχείου GPX Το αρχείο %1$s δεν περιέχει σημεία διαδρομής, να εισαχθεί ως ίχνος; Μετακίνηση σημείου @@ -2744,7 +2756,7 @@ Υπάρχει διαθέσιμη ενημέρωση Λήψη αρχείου Ο ελεύθερος παγκόσμιος ταξιδιωτικός οδηγός που οποιοσδήποτε μπορεί να επεξεργαστεί. - "Το OsmAnd Travel βασίζεται, προς το παρόν, στα βικιταξίδια. Ελέγξτε όλα τα χαρακτηριστικά δωρεάν κατά την ανοικτή βήμα δοκιμή. Κατόπιν, οι οδηγοί ταξιδιού θα είναι διαθέσιμοι στους συνδρομητές του απεριόριστου OsmAnd και στους κατόχους του OsmAnd+." + Το OsmAnd Travel βασίζεται, προς το παρόν, στα βικιταξίδια. Ελέγξτε όλα τα χαρακτηριστικά δωρεάν κατά την ανοικτή βήμα δοκιμή. Κατόπιν, οι οδηγοί ταξιδιού θα είναι διαθέσιμοι στους συνδρομητές του απεριόριστου OsmAnd και στους κατόχους του OsmAnd+. Μπορείτε και πρέπει να επεξεργαστείτε οποιοδήποτε άρθρο στο βικιταξίδια, Μοιραστείτε τη γνώση, την εμπειρία, το ταλέντο και την προσοχή σας. Έναρξη επεξεργασίας Πάρτε απεριόριστη πρόσβαση @@ -2824,7 +2836,7 @@ Πιέστε ένα κουμπί και ακούστε την φωνητική προτροπή για να ταυτοποιήσετε αν απουσιάζει ή είναι εσφαλμένη Συνδρομές Από το OsmAnd - "Δυνατότητες και τιμές" + Δυνατότητες και τιμές Μηνιαία Τριμηνιαία Ετήσια @@ -3078,7 +3090,7 @@ Ενεργοποίηση στη στροφή Ορίστε για πόσο χρόνο θα είναι ενεργοποιημένη η οθόνη. Χρήση του αισθητήρα προσέγγισης - Κουνήστε το χέρι σας πάνω από την οθόνη για να την ενεργοποιήσετε κατά την πλοήγηση. + Η κίνηση του χεριού σας πάνω από την οθόνη θα την ενεργοποιήσει. Παρακαλώ ενεργοποιήστε τουλάχιστον ένα προφίλ για τη χρήση αυτής της ρύθμισης. Δρόμος του Χειμώνα Παγωμένος δρόμος @@ -3245,7 +3257,7 @@ Αναλυτικά στοιχεία Εμφάνιση χάρτη στην οθόνη κλειδώματος κατά την πλοήγηση. Ρυθμίσεις δρομολόγησης στο επιλεγμένο προφίλ \"%1$s\". - Ώρα αφύπνισης + Αναμονή μετά την αφύπνιση Μονάδες μέτρησης & φορμά Εμφάνιση Εμφάνιση χάρτη @@ -3267,7 +3279,7 @@ Χάρτης κατά την πλοήγηση Χάρτης κατά την πλοήγηση Άλλα - Βάρος, ύψος, ταχύτητα + Βάρος, ύψος, μήκος, ταχύτητα Παράμετροι οχήματος Οι φωνητικές ανακοινώσεις να γίνονται μόνο κατά την πλοήγηση. Οδηγίες πλοήγησης και ανακοινώσεις @@ -3466,7 +3478,7 @@ Παράπλευρο φαινόμενο: Θα λείπουν από τη διαδρομή σας όλες οι ενότητες όπου δεν καλύπτονται από το κριτήριο της ελάχιστης ταχύτητας (π.χ. όταν σπρώχνετε το μηχανάκι σας σε απότομο λόφο). Επίσης, δεν θα υπάρχουν πληροφορίες για περιόδους ακινησίας, όπως φρένα. Αυτό έχει συνέπειες στην ανάλυση ή την μετεπεξεργασία, όπως όταν προσπαθείτε να καθορίσετε το συνολικό μήκος του ταξιδιού σας, τον χρόνο κίνησης, ή την μέση ταχύτητά σας. Σύσταση: Προσπαθήστε να χρησιμοποιήσετε τον εντοπισμό ταχύτητας μέσω του φίλτρου μετατόπισης ελάχιστης καταγραφής (Β) πρώτα, μπορεί να παράξει καλύτερα αποτελέσματα και θα χάσετε λιγότερα δεδομένα. Εάν οι διαδρομές σας παραμένουν θορυβώδεις σε χαμηλές ταχύτητες, δοκιμάστε μη μηδενικές τιμές εδώ. Σημειώστε ότι κάποιες μετρήσεις μπορεί να μην αναφέρουν καθόλου τιμή ταχύτητας (κάποιες μέθοδοι που βασίζονται σε δίκτυα), οπότε δεν θα μπορέσετε να εγγράψετε τίποτα. Σημείωση: ταχύτητα > 0 ελέγξτε: Τα περισσότερα κυκλώματα GPS αναφέρουν τιμή ταχύτητας μόνο εάν ο αλγόριθμος καθορίζει ότι κινείστε και καμία όταν δεν κινείστε. Συνεπώς χρησιμοποιώντας τη ρύθμιση > 0 σε αυτό το φίλτρο χρησιμοποιεί τον εντοπισμό κίνησης του κυκλώματος GPS. Αλλά ακόμα κι αν δεν φιλτραριστεί εδώ κατά τον χρόνο εγγραφής, εξακολουθούμε να χρησιμοποιούμε αυτό το γνώρισμα στην ανάλυση GPX για τον καθορισμό της διορθωμένης απόστασης, δηλ. η εμφανιζόμενη τιμή σε αυτό το πεδίο είναι η καταγραφόμενη απόσταση κατά την κίνηση. - Αυτό θα καταγράψει μόνο μετρημένα σημεία με ελάχιστη ένδειξη ακρίβειας (σε μέτρα/πόδια, όπως αναφέρεται από το Android για το κύκλωμά σας). Η ακρίβεια αναφέρεται στη διασπορά των επαναλαμβανόμενων μετρήσεων και δεν σχετίζεται άμεσα με την ακρίβεια, που καθορίζει πόσο κοντά είναι οι μετρήσεις σας με την πραγματική σας θέση. + Αυτό θα καταγράψει μόνο μετρημένα σημεία με ελάχιστη ένδειξη ακρίβειας (σε μέτρα/πόδια, όπως αναφέρεται από το Android για το κύκλωμά σας). Ακρίβεια είναι η εγγύτητα των μετρήσεων με την πραγματική θέση και δεν σχετίζεται άμεσα με τη διακύμανση που είναι η διασπορά των επαναλαμβανόμενων μετρήσεων. Παράπλευρο φαινόμενο: Ως αποτέλεσμα φιλτραρίσματος από ακρίβεια, μπορεί να λείπουν πλήρως σημεία, π.χ. κάτω από γέφυρες, κάτω από δένδρα, μεταξύ υψηλών κτιρίων, ή με συγκεκριμένες συνθήκες καιρού. Σύσταση: Είναι δύσκολο να προβλεφθεί τι θα εγγραφεί και τι όχι, ίσως είναι καλύτερο να απενεργοποιήσετε αυτό το φίλτρο. Παρατήρηση: Εάν το GPS είχε απενεργοποιηθεί αμέσως πριν μια εγγραφή, το πρώτο μετρούμενο σημείο μπορεί να έχει μειωμένη ακρίβεια, έτσι μπορεί να θέλουμε να περιμένουμε λιγάκι πριν την καταγραφή σημείου (ή να εγγράψουμε τα καλύτερα 3 διαδοχικά σημεία, κλπ.), αλλά αυτό δεν έχει ακόμα υλοποιηθεί. @@ -3478,32 +3490,32 @@ Χρονικά διαστήματα ιχνηλάτησης Αδυναμία ανάλυσης γεωγραφικού στόχου \'%s\'. Αναδιάταξη κατηγοριών - Μπορείτε να προσθέσετε προσαρμοσμένες κατηγορίες να απόκρυψεται κατηγορίες που δεν βρίσκεται απαραίτητες και να αλλάξετε τη σειρά ταξινόμησης του καταλόγου. Ο κατάλογος μπορεί να εισαχθεί και να εξαχθεί με προφίλ. - Μπορείτε να προσθέσετε μια νέα προσαρμοσμένη κατηγορία επιλέγοντας μία ή μερικές απαιτούμενες κατηγορίες. - Επαναφορά στην προεπιλογή θα επαναφέρει τη ταξινόμηση στην προεπιλεγμένη κατάσταση μετά την εγκατάσταση. + Η αλλαγή της σειράς διάταξης του καταλόγου, αποκρύπτει τις κατηγορίες. Μπορείτε να εισάγετε ή να εξάγετε όλες τις αλλαγές με κατατομές (προφίλ). + Μπορείτε να προσθέσετε μια νέα προσαρμοσμένη κατηγορία επιλέγοντας μία ή περισσότερες κατηγορίες. + Το \'Επαναφορά στην προεπιλογή\' θα επαναφέρει τη σειρά ταξινόμησης στην προεπιλεγμένη εγκατάσταση. Διαθέσιμα Προσθήκη προσαρμοσμένης κατηγορίας Εμφάνιση μόνο τη νύχτα - Όλες οι ρυθμίσεις πρόσθετων επαναφέρθηκαν στην προεπιλεγμένη κατάσταση. - Όλες οι ρυθμίσεις προφίλ επαναφέρθηκαν στην προεπιλεγμένη κατάσταση. + Όλες οι ρυθμίσεις πρόσθετων επαναφέρθηκαν στην προεπιλογή. + Όλες οι ρυθμίσεις κατατομών (προφίλ) επαναφέρθηκαν στην προεπιλογή. %1$s/%2$s Ηλιοβασίλεμα στις %1$s Ανατολή του ηλίου στις %1$s - Η λειτουργία προσβασιμότητας απενεργοποιήθηκε στο σύστημά σας. - Χρήση χρονικού ορίου της οθόνης από το σύστημα + Η λειτουργία προσβασιμότητας απενεργοποιήθηκε στο Android σύστημά σας. + Χρήση του χρονικού ορίου της οθόνης του συστήματος Εκκαθάριση κατεγραμμένων δεδομένων Αντέγραψε συντεταγμένες Άμεσα-στο-σημείο Καταχωρίστε ένα όνομα για το προφίλ Άνοιγμα ρυθμίσεων - Πρόσθετο απενεργοποιημένο - Αυτο το πρόσθετο είναι ξεχωριστή εφαρμογή, θα πρέπει να το απεγκαταστήσετε ξεχωριστά αν πλέον δεν το χρησιμοποιήτε. + Ανενεργό πρόσθετο + Αυτό το πρόσθετο είναι ξεχωριστή εφαρμογή, θα πρέπει να το αφαιρέσετε ξεχωριστά εάν πλέον δεν σκοπεύετε να το χρησιμοποιήσετε. \n \nΤο πρόσθετο θα παραμείνει στη συσκευή μετά την απεγκατάσταση του OsmAnd. Μενού %1$s — %2$s — %3$s Προεπιλογή της εφαρμογής (%s) - Απενεργοποίησε τον επανυπολογισμό + Χωρίς επανυπολογισμό Ελάχιστη απόσταση για επανυπολογισμό διαδρομής Η διαδρομή θα επανυπολογισθεί αν η απόσταση από την διαδρομή είναι μακρύτερη από μια συγκεκριμένη παράμετρο Προσαρμοσμένη κατανομή @@ -3520,7 +3532,7 @@ Τα τρέχοντα αντικείμενα θα αντικατασταθούν με αντικείμενα από το αρχείο Αντικατάσταση όλων Διατήρηση και των δύο - Τα εισαχθέντα αντικείμενα θα προστεθούν με πρόθεμα + Τα εισαχθέντα στοιχεία θα προστεθούν με πρόθεμα Το OsmAnd έχει ήδη στοιχεία με το ίδιο όνομα όπως τα εισηχθέντα. \n \nΕπιλέξτε μια ενέργεια. @@ -3736,4 +3748,117 @@ Ουζμπέκικα Ουρντού Ταταρικά + Προεπιλεγμένη απενεργοποίηση: Όσο εκτελείται το OsmAnd στο προσκήνιο, η οθόνη δεν θα σβήσει. +\n +\nΕάν είναι ενεργό, το OsmAnd θα χρησιμοποιήσει τη ρύθμιση χρόνου αδράνειας του συστήματος. + • Κατατομές (προφίλ): τώρα μπορείτε να αλλάξετε τη σειρά, να ορίσετε εικονίδιο για τον χάρτη, να αλλάξετε όλες τις ρυθμίσεις για κατατομές βάσης και να τις επαναφέρετε στις προεπιλογές. +\n +\n • Προστέθηκε αριθμός εξόδου στην πλοήγηση +\n +\n • Ξαναδουλεύτηκαν οι ρυθμίσεις προσθέτου +\n +\n • Ξαναδουλεύτηκε η οθόνη ρυθμίσεων για γρήγορη πρόσβαση σε όλες τις κατατομές +\n +\n • Προστέθηκε επιλογή αντιγραφής ρυθμίσεων από άλλη κατατομή +\n +\n • Προστέθηκε η δυνατότητα αλλαγής σειράς ή απόκρυψης κατηγοριών ΣΕ στην αναζήτηση +\n +\n • Καλύτερη στοίχιση εικονιδίων ΣΕ στον χάρτη +\n +\n • Προστέθηκαν δεδομένα δύσης / ανατολής για τον χάρτη διαμόρφωσης +\n +\n • Προστέθηκαν εικονίδια οικίας/εργασίας στον χάρτη +\n +\n • Προστέθηκε υποστήριξη για περιγραφή πολλών γραμμών στις ρυθμίσεις +\n +\n • Προστέθηκε σωστή μεταγραφή στον χάρτη Ιαπωνίας +\n +\n • Προστέθηκε χάρτης της Ανταρκτικής +\n +\n + Ανταρκτική + Ταξινόμηση κατά κατηγορία + Συνέχιση + Μπορείτε να επιλέξετε πρόσθετα δεδομένα για εξαγωγή μαζί με την κατατομή (προφίλ). + Η εισαγόμενη κατατομή (προφίλ) περιέχει πρόσθετα δεδομένα. Πατήστε \"Εισαγωγή\" για να εισάγετε μόνο δεδομένα κατατομής, ή επιλέξτε πρόσθετα δεδομένα. + Να συμπεριλαμβάνονται πρόσθετα δεδομένα + Τεχνοτροπία απόδοσης + Δρομολόγηση + Εισαγωγή αρχείου απόδοσης + Έδαφος + Η σκίαση αναγλύφου με σκούρες σκιές για την εμφάνιση κλίσεων, κορυφών και πεδινών. + Η κλίση χρησιμοποιεί χρώματα για να οπτικοποιήσει την κλίση του εδάφους. + Ορίστε το μέγιστο και το ελάχιστο επίπεδο εστίασης στον οποίο θα εμφανίζεται η στρώση. + Απαιτούνται πρόσθετοι χάρτες για να προβάλετε τη σκίαση αναγλύφου στον χάρτη. + Απαιτούνται πρόσθετοι χάρτες για να προβάλετε τις κλίσεις στον χάρτη. + Μπορείτε να διαβάσετε περισσότερα για τις κλίσεις στο %1$s. + Διαφάνεια + Επίπεδα εστίασης + Υπόμνημα + Ενεργοποιήστε το για να προβάλετε σκίαση αναγλύφου ή χάρτη κλίσεων. Μπορείτε να διαβάσετε περισσότερα για αυτούς τους τύπους χάρτη στον ιστότοπό μας. + Σκίαση ανάγλυφου + Εισήχθησαν όλα τα δεδομένα από το %1$s, μπορείτε να χρησιμοποιήσετε τα παρακάτω πλήκτρα για να ανοίξετε το απαιτούμενο τμήμα της εφαρμογής για να το διαχειριστείτε. + Ολοκλήρωση εισαγωγής + Προστέθηκαν στοιχεία + Το OsmAnd ελέγχει το %1$s για διπλότυπα με υφιστάμενα στοιχεία στην εφαρμογή. +\n +\nΜπορεί να πάρει κάποιο χρόνο. + Εισάγεται + Εισαγωγή δεδομένων από το %1$s + Αδυναμία δημιουργίας αντιγράφου κατατομής. + Αποθήκευση νέας κατατομής (προφίλ) + Να επαναφερθούν όλες οι ρυθμίσεις κατατομών (προφίλ); + Όλες οι ρυθμίσεις κατατομής (προφίλ) θα επαναφερθούν στην αρχική τους κατάσταση μετά τη δημιουργία/εισαγωγή αυτής της κατατομής. + Είσαστε σίγουρος ότι θέλετε να καθαρίσετε τα καταγεγραμμένα δεδομένα; + Επανυπολογισμός διαδρομής σε περίπτωση απόκλισης + Επιλέξτε την απόσταση μετά την οποία η διαδρομή θα επανυπολογιστεί. + Η διαδρομή θα επανυπολογιστεί εάν η απόσταση από τη διαδρομή στην τρέχουσα θέση είναι μεγαλύτερη από την επιλεγμένη τιμή. + %1$s από %2$s + Πλαγιές + Εμφάνιση / απόκρυψη εδάφους + Απόκρυψη εδάφους + Εμφάνιση εδάφους + Ένα πλήκτρο εμφάνισης ή απόκρυψης της στρώσης εδάφους στον χάρτη. + Διαγραφή περιγραφής + Προσθήκη περιγραφής + Επιλογή ομάδας + Επιλογή σχήματος + Κύκλος + Οκτάγωνο + Τετράγωνο + Ελαχ + Προσαρμογή της ποσότητας στοιχείων στον \"Σχεδιαστή\", \"Χάρτη διαμόρφωσης\" και \"Μενού περιβάλλοντος\". +\n +\nΑπενεργοποιήστε τα μη χρησιμοποιούμενα πρόσθετα για να αποκρύψετε όλα τα στοιχεία ελέγχου τους. %1$s. + Στοιχεία σχεδιαστή, μενού περιβάλλοντος + Προσαρμογή UI + Σχεδιαστής + Ενέργειες μενού περιβάλλοντος + Αναδιάταξη ή απόκρυψη στοιχείων από το %1$s. + Διαχωριστικό + Τα στοιχεία κάτω από αυτό το σημείο χωρίζονται με διαχωριστικό. + Κρυφά + Αυτά τα στοιχεία κρύβονται από το μενού, αλλά οι αντίστοιχες επιλογές ή πρόσθετα θα συνεχίσουν να δουλεύουν. + Η απόκρυψη ρυθμίσεων τις επαναφέρει στην αρχική τους κατάσταση. + Έχει μόνο τέσσερα πλήκτρα. + Κύριες ενέργειες + Μπορείτε να προσπελάσετε αυτές τις ενέργειες πατώντας το πλήκτρο “%1$s”. + Μπορείτε να μετακινήσετε στοιχεία μόνο μέσα σε αυτήν τη κατηγορία. + Πρόσθετο ανάπτυξης + Αντικατάσταση σημείου με αυτό. + Χιονοδρομικές βόλτες + Χιονοόχημα + Προσαρμοσμένο πρόσθετο OsmAnd + Στοιχεία + Αλλαγές που εφαρμόστηκαν στην κατατομή (προφίλ) \'%1$s\'. + Αδυναμία ανάγνωσης από το \'%1$s\'. + Αδυναμία εγγραφής στο \'%1$s\'. + Αδυναμία εισαγωγής από \'%1$s\'. + Επιλέξτε αρχείο ίχνους + Γλώσσες + Γλώσσα + Όλες οι γλώσσες + Απαιτούνται πρόσθετοι χάρτες για να προβάλετε τα ΣΕ της Wikipedia στον χάρτη. + Επιλέξτε τις γλώσσες για τα άρθρα Wikipedia στον χάρτη. Αλλάξτε σε οποιαδήποτε διαθέσιμη γλώσσα κατά την ανάγνωση του άρθρου. + Χάρακας ακτίνας \ No newline at end of file From fd195258fdb03d8df5d00fa44e2f23117b0948f9 Mon Sep 17 00:00:00 2001 From: Alexander Gabilondo Date: Mon, 10 Aug 2020 21:22:57 +0000 Subject: [PATCH 09/36] Translated using Weblate (Basque) Currently translated at 98.1% (3385 of 3450 strings) --- OsmAnd/res/values-eu/strings.xml | 42 ++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index b82a922dad..f69c786cee 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -590,7 +590,7 @@ Erakutsi bektore mapen xehetasun gehiago (bideak etab.) zoom maila baxuetan. Gogoko puntuak ezabatu dira. Ziur %1$d gogoko eta %2$d gogokoen talde ezabatu nahi dituzula\? - Hasiera + Etxea Lagunak Lekuak Izena @@ -1772,7 +1772,7 @@ Lorratza %2$s Erabili OpenGL marrazketa Erabili hardware bidez azkartutako OpenGL marrazketa (bateria gehiago erabili lezake, eta ez dabil gailu oso zaharretan). Ez da saihesbiderik aurkitu - Hasiera + Etxea Eguneraketak eskuragarri %1$s mapentzako Bilatu Koordenatuak @@ -2903,8 +2903,8 @@ Area honi dagokio: %1$s x %2$s Lausotasuna Aldapa Gehitu etxea - Gehitu lana - Lana + Gehitu lantokia + Lantokia Hautatu saihestu nahi duzun bidea mapan edo beheko zerrendan: OsmAnd egun eta gau moduen artean txandakatzeko botoia. Gaitu garraio publikoa OsmAnd Live aldaketetan. @@ -3484,7 +3484,7 @@ Area honi dagokio: %1$s x %2$s \n \n• Ilunabarra / egunsentia datuak gehitu da maparen konfigurazioan \n -\n• Hasiera/Lana ikonoak mapara gehitu dira +\n• Etxea/Lantokia ikonoak mapara gehitu dira \n \n• Hainbat lerroko deskripzioa gehitzeko euskarria gehitu da ezarpenetan \n @@ -3787,4 +3787,36 @@ Area honi dagokio: %1$s x %2$s Ezkutatu Mapillary Erakutsi Mapillary Egina + Ezabatu hurrengo norako puntua. + Bolumen botoiak zoom egiteko + Uneko ibilbidearen norako puntua ezabatuko da. Ibilbidearen helmuga bada nabigazioa geldituko da. + Eskuratu interesguneei buruzko Wikipediaren informazioa. Zure poltsikoko lineaz kanpoko gida da. Aski duzu Wikipediako plugina gaitu eta gozatu inguruko objektuen inguruko artikuluez. + Enduro motozikleta + Gurpil-aulkia + Kart + Puntuen arteko ibilbidea + Gehitu arrasto batera + Hautatu zabalera + Hautatu zatiketa aukera: denboraren arabera edo distantziaren arabera. + Norabideko geziak + Sortu ibilbide berria + Distantzia margena + 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. + Editatutako azkena + Inportatu arrastoa + Ireki dagoen arrasto bat + Hautatu irekitzeko arrasto fitxategia + Gainidatzi arrastoa + Gorde arrasto berri gisa + Alderantzizko ibilbidea + Arrasto osoa birkalkulatuko da hautatutako profilaren bidez. + Bakarrik hurrengo segmentua birkalkulatuko da hautatutako profilaren bidez. + Hautatu nola konektatu puntuak, lerro zuzen batez, edo kalkulatu horien arteko ibilbidea hautatutako profilarekin. + Arrasto osoa + Hurrengo segmentua + Nabigazio profila + Hautatu zein arrasto fitxategiari gehituko zaion segmentu berria. + Ezarri behar dituzu lanegunak jarraitzeko \ No newline at end of file From 43eedfd72e3f7d492f6d27daee7369988110f727 Mon Sep 17 00:00:00 2001 From: Bruce Cowan Date: Mon, 10 Aug 2020 11:33:38 +0000 Subject: [PATCH 10/36] Translated using Weblate (English (United Kingdom)) Currently translated at 2.9% (101 of 3450 strings) --- OsmAnd/res/values-en-rGB/strings.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-en-rGB/strings.xml b/OsmAnd/res/values-en-rGB/strings.xml index adaca42746..97aedb7ad8 100644 --- a/OsmAnd/res/values-en-rGB/strings.xml +++ b/OsmAnd/res/values-en-rGB/strings.xml @@ -26,7 +26,7 @@ You can import groups from favourites or track waypoints. You can import favourite groups or track waypoints as markers. Add Favourites - Add favourites on the map or import them from a file. + Import Favourites or add them by marking points on the map. can be imported as Favourites points, or as track file. Import as Favourites Search favourites @@ -99,8 +99,10 @@ Show/hide favourites Show Favourites Hide Favourites - Select the category to save the favourite in. + Category to save the Favourite in: Analyse on map You have cancelled your OsmAnd Live subscription Show transparency slider - + Camper + Save %1$s + \ No newline at end of file From b3628d5e6a68e440c7afed40531395aec0a59063 Mon Sep 17 00:00:00 2001 From: Kahina Messaoudi Date: Mon, 10 Aug 2020 10:37:17 +0000 Subject: [PATCH 11/36] Translated using Weblate (Kabyle) Currently translated at 38.0% (1313 of 3450 strings) --- OsmAnd/res/values-b+kab/strings.xml | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values-b+kab/strings.xml b/OsmAnd/res/values-b+kab/strings.xml index 3b8d364496..bda77e7bfd 100644 --- a/OsmAnd/res/values-b+kab/strings.xml +++ b/OsmAnd/res/values-b+kab/strings.xml @@ -41,7 +41,7 @@ Γas Ih Ala - Warǧin + Werǧin Ulac d naɣ @@ -260,7 +260,7 @@ Isem n useqdac Timdinin ig qarben Rnu ar ticṛaḍ - Ticṛaḍ + Ticraḍ n tkarḍa Taqbaylit Tifinaɣ Sefsex @@ -273,7 +273,7 @@ Talqayt Amesni Tiddi n waḍris - Ismawen n iberdan (TTS) + Ismawen n yiberdan (TTS) Iwellihen ɣer Tinilwin seg Isem n webrid @@ -468,7 +468,7 @@ Tafelwit n usenqed Ugar n telqayt Smizzwer s yisem - Tasaɛet imir-a + Akud amiran " \n \nAsiti ɣezzifen akken ad d-sekneḍ ɣef tkarḍa" @@ -505,7 +505,7 @@ Bdu taẓrigt Nniḍen Asmel n web - Smenyifi … + Smenyif… ulac Urar Aneɣsar @@ -1143,8 +1143,8 @@ Kkes Ali {0} POI/Tizmilin ulin - Aneḍru yettwaheggan iɛedda fell-as lḥal - Détection SKIP précoce sur images P + Iɛedda lḥal + Zik talɣut ɣer zdat Seggem aswir n usemɣer/asemẓi @@ -1153,8 +1153,8 @@ ar zdat Aɣmis A_maɣlal - Zgel tulsa n wawalen d yisekkilen. - Ilɣa + Zgel… + Sken ilɣa… Tuččit Annar n trusi n utrab Talqayt… @@ -1197,7 +1197,7 @@ Seḥbes Deg Swel… - Tafelwit n yiri, tattayt, ukessar, ufella, ɣumm, tiddi, amrussu + Agalis azelmaḍ Sken akkw isidar Aɣanib: Aɣanib: @@ -1329,4 +1329,13 @@ Fren tehri Ineccaben n tnila Rnu abrid amaynut + Tayunt n urured + Ilɣa n ugdil + Abrid arurad akk + Deg lmitrat tineggura + Talast n urured + Izirigen + Swel agdil + Agalis ayeffus + Iferdisen i d-iqqimen \ No newline at end of file From 104cd398f0b3df2cc53af2387e8da52b33031529 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Wed, 12 Aug 2020 05:11:18 +0000 Subject: [PATCH 12/36] Translated using Weblate (Greek) Currently translated at 96.7% (3688 of 3812 strings) --- OsmAnd/res/values-el/phrases.xml | 137 +++++++++++++++++++++++++++++-- 1 file changed, 132 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-el/phrases.xml b/OsmAnd/res/values-el/phrases.xml index 3033f226c4..f81cdb4eda 100644 --- a/OsmAnd/res/values-el/phrases.xml +++ b/OsmAnd/res/values-el/phrases.xml @@ -806,7 +806,7 @@ Πρόσβαση διαδικτύου: υπηρεσία Πρόσβαση διαδικτύου: ναι Πρόσβαση διαδικτύου: όχι - Πρόσβαση διαδικτύου - με χρέωση + Πρόσβαση διαδικτύου : με χρέωση Πρόσβαση διαδικτύου - χωρίς χρέωση Μοναστήρι Θρησκευτική περιοχή @@ -1371,7 +1371,7 @@ Χωρίς αντλία Ναι Μεταλλικό - Χαρακτηριστικό νερού: λάσπη + Λάσπη Θειικό Σημείο νερού Οδοδείκτης @@ -1411,7 +1411,7 @@ Ναι Χωρίς απτικό πλακόστρωτο Ναι - Όχι + Ήχος: όχι Μόνο όταν επιτρέπεται το περπάτημα Σταθμός διάσωσης ΣΕΑ @@ -1706,7 +1706,7 @@ Επισκευή ηλεκτρικών οχημάτων Επισκευή μοτοσικλετών Ναι - Χωρίς αυτοεξυπηρέτηση + Όχι Ναι Μη αυτόματο Πλήρης εξυπηρέτηση @@ -2060,7 +2060,7 @@ Καύσιμο 100LL Υγραέριο κίνησης Καύσιμο Jet A-1 - Καύσιμο AdBlue + Υγρό καυσαερίων ντίζελ Καύσιμο: ξύλο Καύσιμο: κάρβουνο Καύσιμο: γαιάνθρακας @@ -3565,4 +3565,131 @@ Πληκτρολογήστε Πληκτρολογήστε Κατάσταση + Ναι + Δηλωμένη + Ναι + Δηλωμένη + Προορισμός + Ανεκτή + Ναι + Δηλωμένη + Ναι + Δηλωμένη + Ναι + Δηλωμένη + Ναι + Δηλωμένη + Ναι + Ανεκτή + Δηλωμένη + Ναι + Πρόσβαση αναπήρων: όχι + Πρόσβαση ταξί: όχι + Πρόσβαση ταξί: δηλωμένη + Πρόσβαση ταξί: ναι + Πρόσβαση αγροτικών οχημάτων: όχι + Πρόσβαση αγροτικών οχημάτων: ναι + Πρόσβαση χιονοοχήματος: όχι + Χιονοδρομική πρόσβαση: όχι + 3Б* + 3А* + 2Б* + 2А* + 1Б* + 1А* + н/к* + Πρόσβαση λεωφορείων: όχι + Πρόσβαση λεωφορείων: ναι + Πρόσβαση τουριστικών λεωφορείων: όχι + Πρόσβαση τουριστικών λεωφορείων: δηλωμένη + Πρόσβαση τουριστικών λεωφορείων: ναι + Πρόσβαση λεωφορείων: όχι + Πρόσβαση δημόσιων συγκοινωνιών: όχι + Πρόσβαση δημόσιων συγκοινωνιών: δηλωμένη + Πρόσβαση δημόσιων συγκοινωνιών: ναι + Πρόσβαση καρότσας: όχι + Πρόσβαση καραβανιού: όχι + Πρόσβαση τροχόσπιτου: όχι + Πρόσβαση πεζών: πελάτες + Πρόσβαση πεζών: ανεκτή + Πρόσβαση πεζών: προορισμός + Πρόσβαση πεζών: όχι + Πρόσβαση πεζών: ιδιωτική + Πρόσβαση πεζών: ναι + Πρόσβαση αλόγων: δασοκομική + Πρόσβαση αλόγων: ανεκτή + Πρόσβαση αλόγων: προορισμός + Πρόσβαση αλόγων: ιδιωτική + Πρόσβαση ποδηλάτων: πελάτες + Πρόσβαση ποδηλάτων: ανεκτή + Πρόσβαση ποδηλάτων: προορισμός + Πρόσβαση ποδηλάτων: πεζή + Πρόσβαση ποδηλάτων: ιδιωτική + Πρόσβαση μικρών μοτοποδηλάτων: όχι + Πρόσβαση μοτοποδηλάτων: όχι + Πρόσβαση μοτοσικλέτας: όχι + Πρόσβαση μοτοσικλέτας: ιδιωτική + Πρόσβαση ελαφρών φορτηγών: όχι + Πρόσβαση βαρέων οχημάτων: ακατάλληλη + Πρόσβαση βαρέων οχημάτων: δεν συνιστάται + Πρόσβαση βαρέων οχημάτων: αγροτική + Πρόσβαση βαρέων οχημάτων: όχι + Πρόσβαση βαρέων οχημάτων: ιδιωτική + Πρόσβαση μηχανοκίνητου οχήματος: αγροτική + Πρόσβαση μηχανοκίνητου οχήματος: δασοκομική + Πρόσβαση μηχανοκίνητου οχήματος: διανομή + Πρόσβαση μηχανοκίνητου οχήματος: στρατιωτική + Πρόσβαση μηχανοκίνητου οχήματος: πελάτες + Πρόσβαση μηχανοκίνητου οχήματος: ανεκτός + Πρόσβαση μηχανοκίνητου οχήματος: προορισμός + Πρόσβαση μηχανοκίνητου οχήματος: όχι + Πρόσβαση μηχανοκίνητου οχήματος: ιδιωτική + Φλόγα υψικαμίνου;Πυρσός καύσης + Πρόσβαση μηχανοκίνητου οχήματος: ναι + Πρόσβαση αυτοκινήτου: δασοκομική + Πρόσβαση αυτοκινήτου: πελάτες + Πρόσβαση αυτοκινήτου: ανεκτή + Πρόσβαση αυτοκινήτου: προορισμός + Πρόσβαση αυτοκινήτου: όχι + Πρόσβαση αυτοκινήτου: ιδιωτική + Πρόσβαση αυτοκινήτου: + Πρόσβαση οχήματος: δασοκομική + Πρόσβαση οχήματος: διανομή + Πρόσβαση οχήματος: στρατιωτική + Πρόσβαση οχήματος: πελάτες + Πρόσβαση οχήματος: ανεκτική + Πρόσβαση οχήματος: προορισμός + Πρόσβαση οχήματος: όχι + Πρόσβαση οχήματος: ιδιωτική + Πρόσβαση οχήματος: ναι + Γραφείο ταξί + Αίθουσα ναργιλέ + Σωρός κάρβουνου + Αλλαξιέρα με πληρωμή: όχι + Αλλαξιέρα με πληρωμή: ναι + Αριθμός αλλαξιέρων + Τοποθεσία αλλαξιέρας: μικτή τουαλέτα + Τοποθεσία αλλαξιέρας: τουαλέτα γυναικών + Τοποθεσία αλλαξιέρας: τουαλέτα ανδρών + Τοποθεσία αλλαξιέρας: δωμάτιο + Αλλαξιέρα: περιορισμένη + Αλλαξιέρα: όχι + Αλλαξιέρα: ναι + Τοποθεσία + Κίνδυνος: μόλυνση + Κίνδυνος: ναρκοπέδιο + Κίνδυνος: χιονοστιβάδα + Κίνδυνος; πλημμύρα + Κίνδυνος: πυρηνικά + Κίνδυνος: πτώση βράχων + Κίνδυνος: διάβρωση + Κουτί διάσωσης + Διαγραμμένο αντικείμενο + Όχημα υψηλής πληρότητας + Βέλος + Δόνηση + Πίεση + Βίντεο + SMS + Σε ανοιχτό χώρο \ No newline at end of file From d65733803596d148a70fcdfb21d1cc9bb3588f29 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 12 Aug 2020 12:36:04 +0300 Subject: [PATCH 13/36] Added new icons for Developer plugin and builds menu item --- OsmAnd/res/drawable/ic_action_apk.xml | 21 ++++++++++++ OsmAnd/res/drawable/ic_action_laptop.xml | 32 +++++++++++++++++++ .../development/OsmandDevelopmentPlugin.java | 4 +-- 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 OsmAnd/res/drawable/ic_action_apk.xml create mode 100644 OsmAnd/res/drawable/ic_action_laptop.xml diff --git a/OsmAnd/res/drawable/ic_action_apk.xml b/OsmAnd/res/drawable/ic_action_apk.xml new file mode 100644 index 0000000000..21da34bd79 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_apk.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/OsmAnd/res/drawable/ic_action_laptop.xml b/OsmAnd/res/drawable/ic_action_laptop.xml new file mode 100644 index 0000000000..c11bf0f8eb --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_laptop.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java b/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java index cbd2fcba13..6786e78d70 100644 --- a/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java +++ b/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java @@ -62,7 +62,7 @@ public class OsmandDevelopmentPlugin extends OsmandPlugin { helper.addItem(new ContextMenuItem.ItemBuilder() .setId(DRAWER_BUILDS_ID) .setTitleId(R.string.version_settings, mapActivity) - .setIcon(R.drawable.ic_action_info_dark) + .setIcon(R.drawable.ic_action_apk) .setListener(new ContextMenuAdapter.ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked, int[] viewCoordinates) { @@ -133,7 +133,7 @@ public class OsmandDevelopmentPlugin extends OsmandPlugin { @Override public int getLogoResourceId() { - return R.drawable.ic_plugin_developer; + return R.drawable.ic_action_laptop; } @Override From 2a9083d3c9855feec568dd23c965d3bea9b1aded Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 12 Aug 2020 18:02:32 +0300 Subject: [PATCH 14/36] Added icons for trim track --- OsmAnd/res/drawable/ic_action_trim_left.xml | 21 ++++++++++++++++++++ OsmAnd/res/drawable/ic_action_trim_right.xml | 21 ++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_trim_left.xml create mode 100644 OsmAnd/res/drawable/ic_action_trim_right.xml diff --git a/OsmAnd/res/drawable/ic_action_trim_left.xml b/OsmAnd/res/drawable/ic_action_trim_left.xml new file mode 100644 index 0000000000..74b91e92e1 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_trim_left.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/OsmAnd/res/drawable/ic_action_trim_right.xml b/OsmAnd/res/drawable/ic_action_trim_right.xml new file mode 100644 index 0000000000..f9bc488218 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_trim_right.xml @@ -0,0 +1,21 @@ + + + + + + + + From 79615bbf74f6fe74a0f0390505f3b5c0ea143bdb Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 12 Aug 2020 18:13:42 +0300 Subject: [PATCH 15/36] Update save to file icon, added new save as new file icon --- .../res/drawable/ic_action_save_as_new_file.xml | 15 +++++++++++++++ OsmAnd/res/drawable/ic_action_save_to_file.xml | 10 ++++------ 2 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 OsmAnd/res/drawable/ic_action_save_as_new_file.xml diff --git a/OsmAnd/res/drawable/ic_action_save_as_new_file.xml b/OsmAnd/res/drawable/ic_action_save_as_new_file.xml new file mode 100644 index 0000000000..9457316943 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_save_as_new_file.xml @@ -0,0 +1,15 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_action_save_to_file.xml b/OsmAnd/res/drawable/ic_action_save_to_file.xml index eeaa54ca2e..ddf1e32c0d 100644 --- a/OsmAnd/res/drawable/ic_action_save_to_file.xml +++ b/OsmAnd/res/drawable/ic_action_save_to_file.xml @@ -4,14 +4,12 @@ android:viewportWidth="24" android:viewportHeight="24"> - + android:pathData="M4,4C4,2.8954 4.8954,2 6,2H14V6C14,7.1046 14.8954,8 16,8H20V20C20,21.1046 19.1046,22 18,22H6C4.8954,22 4,21.1046 4,20V4ZM11,9H13V14H15L12,18L9,14H11V9Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> From 7e2dfb43447cc88314530f16a33890192efd7ca1 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 12 Aug 2020 18:20:12 +0300 Subject: [PATCH 16/36] Added icon for save complete --- OsmAnd/res/drawable/ic_action_save_complete.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_save_complete.xml diff --git a/OsmAnd/res/drawable/ic_action_save_complete.xml b/OsmAnd/res/drawable/ic_action_save_complete.xml new file mode 100644 index 0000000000..5ca6381e21 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_save_complete.xml @@ -0,0 +1,15 @@ + + + + From 56bc3a14c2492638d540350b8904ce0181659006 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 13 Aug 2020 14:18:15 +0200 Subject: [PATCH 17/36] Fix strange problems with empty set --- .../main/java/net/osmand/osm/edit/OsmMapUtils.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java index 0189ff0a97..5e19d09658 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java @@ -556,6 +556,9 @@ public class OsmMapUtils { // take centroid as the first best guess Cell bestCell = getCentroidCell(rings); + if(bestCell == null) { + return new LatLon(minX, minY); + } // special case for rectangular polygons Cell bboxCell = new Cell(minX + width / 2, minY + height / 2, 0, rings); @@ -606,10 +609,13 @@ public class OsmMapUtils { area += f * 3; } - if (area == 0) { - LatLon p = points.get(0); - return new Cell(p.getLatitude(), p.getLongitude(), 0, rings); - } + if (area == 0) { + if (points.size() == 0) { + return null; + } + LatLon p = points.get(0); + return new Cell(p.getLatitude(), p.getLongitude(), 0, rings); + } return new Cell(x / area, y / area, 0, rings); } From 0ef83b4f9ccc36db4937d1afc681f8a5f6e69044 Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 12 Aug 2020 15:27:38 +0000 Subject: [PATCH 18/36] Translated using Weblate (Portuguese) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-pt/strings.xml | 53 +++++++++++++++++++------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 55827b09aa..fd6f061ac5 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -917,8 +917,7 @@ Curvas de nível Foto %1$s de %2$s Capture uma foto - Este suplemento disponibiliza \'Curvas de Nível\' e \'Sombras de relevo\', que podem ser aplicadas nos mapas padrão do OsmAnd. -\nEstas funcionalidades podem ser apreciadas por atletas, caminhantes e qualquer pessoa interessada na informação de relevo de uma paisagem. + Este suplemento disponibiliza \'Curvas de Nível\' e \'Sombras de relevo\', que podem ser aplicadas nos mapas padrão do OsmAnd. Estas funcionalidades podem ser apreciadas por atletas, caminhantes e qualquer pessoa interessada na informação de relevo de uma paisagem. \n \n Os dados globais (entre as latitudes 70° norte e 70° sul) são baseados nas medições do SRTM (Shuttle Radar Topography Mission) e do ASTER (Advanced Spaceborn Thermal Emission and Reflection Radiometer), um instrumento de imagens no \'Terra\', o satélite principal do Sistema de Observação da Terra da NASA. O ASTER é um esforço conjunto da NASA, do Ministério da Economia, Comércio e Indústria do Japão e do Sistema Espacial Japonês (J-spacesystems). Este suplemento disponibiliza \'Curvas de Nível\' e \'Sombras de relevo\', que podem ser aplicadas nos mapas padrão do OsmAnd. Estas funcionalidades podem ser apreciadas por atletas, caminhantes, e qualquer pessoa interessada na informação de relevo de uma paisagem. @@ -1052,26 +1051,25 @@ Depuração FPS Lupa do mapa Mapa mundial - OsmAnd+ (Direções de Navegação Automatizada do OSM) + OsmAnd+ (Direções de Navegação Automatizada do OSM) \n -\n OsmAnd+ é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados globais do OSM. Todos os dados dos mapas (mapas vetoriais ou imagens raster) podem ser armazenados no cartão de memória do telemóvel para usar desligado da Internet. O OsmAnd também permite roteamento, tanto ligado como desligado da Internet, incluindo a funcionalidade de roteamento curva a curva com orientação por voz. +\n OsmAnd+ é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados globais do OSM. Todos os dados dos mapas (mapas vetoriais ou imagens raster) podem ser armazenados no cartão de memória do telemóvel para usar desligado da Internet. O OsmAnd também permite roteamento, tanto ligado como desligado da Internet, incluindo a funcionalidade de roteamento curva a curva com orientação por voz. \n -\n OsmAnd+ é a versão paga da aplicação, ao comprá-lo está a apoiar o projeto, a financiar o desenvolvimento de novas funcionalidades e a receber as últimas atualizações. +\n OsmAnd+ é a versão paga da aplicação, ao comprá-lo está a apoiar o projeto, a financiar o desenvolvimento de novas funcionalidades e a receber as últimas atualizações. \n -\n Algumas das características principais: -\n - Funcionalidade totalmente desligado da Internet (guarda os mapas obtidos, sejam eles vetoriais ou imagens, numa pasta selecionável). -\n - Mapas vetoriais compactados do mundo inteiro disponíveis. -\n - Descarregamento de mapas de países ou regiões diretamente na aplicação. -\n - Recurso Wikipédia desligado da Internet (descarregamento de POIs da Wikipédia), ótimo para passeios turísticos. -\n - Possibilidade de sobreposição de várias camadas de mapas, como trilhos GPX ou navegação, pontos de Interesse, favoritos, curvas de nível, paragens de transporte público, mapas adicionais com transparência personalizável. -\n +\n Algumas das características principais: +\n - Funcionalidade totalmente desligado da Internet (guarda os mapas obtidos, sejam eles vetoriais ou imagens, numa pasta selecionável). +\n - Mapas vetoriais compactados do mundo inteiro disponíveis. +\n - Descarregamento de mapas de países ou regiões diretamente na aplicação. +\n - Recurso Wikipédia desligado da Internet (descarregamento de POIs da Wikipédia), ótimo para passeios turísticos. +\n - Possibilidade de sobreposição de várias camadas de mapas, como trilhos GPX ou navegação, pontos de Interesse, favoritos, curvas de nível, paragens de transporte público, mapas adicionais com transparência personalizável. \n -\n - Pesquisa desligado da Internet para endereços e locais (POIs). -\n - Encaminhamento desligado da Internet para distâncias médias. -\n - Modos de carro, bicicleta e pedestre com os opcionais: -\n - Mudança automática de visualização dia/noite -\n - Ampliação do mapa conforme a velocidade -\n - Orientação do mapa de acordo com a bússola ou a direção do movimento. +\n - Pesquisa desligado da Internet para endereços e locais (POIs). +\n - Encaminhamento desligado da Internet para distâncias médias. +\n - Modos de carro, bicicleta e pedestre com os opcionais: +\n - Mudança automática de visualização dia/noite +\n - Ampliação do mapa conforme a velocidade +\n - Orientação do mapa de acordo com a bússola ou a direção do movimento. \n - Orientação por faixas de rodagem, indicação do limite de velocidade, vozes gravadas e vozes de conversão de texto em voz. \n Sem ampliação automático @@ -1250,7 +1248,7 @@ Posto alfandegário Portagem Sinal de stop - Choque de velocidade + Moderação de trafego Radar de velocidade Aviso de tráfego Favoritos pertos @@ -1921,7 +1919,7 @@ Widget Mapillary Permite contribuir rapidamente para Mapillary. Fotos on-line ao nível da rua para todos. Descubra locais, colabore, capture o mundo. - Mapillary + Imagens de nível de rua Fotos ao nível da rua para todos. Descubra locais, colabore, capture o mundo. O seu destino está localizado numa área de acesso privado. Permitir uso de estradas privadas para esta viagem\? Reiniciar pesquisa @@ -3382,7 +3380,7 @@ Perfis padrão do OsmAnd não podem ser apagados, mas desativados (na tela anterior) ou classificados na parte inferior. Editar perfis O \'Tipo de navegação\' controla como as rotas são calculadas. - Aspecto do perfil + Aspeto do perfil Edições OSM Botão que mostra ou oculta curvas de nível no mapa. Mostrar curvas de nível @@ -3846,4 +3844,17 @@ Criar rota Pronto Sobrescrever trilho + Gravar como novo trilho + Rota inversa + O trilho inteiro será recalculado a usar o perfil selecionado. + Somente o próximo segmento será recalculado a usar o perfil selecionado. + Selecione como ligar pontos, com uma linha reta ou calcule uma rota entre eles com o perfil selecionado. + Trilho inteiro + Próximo segmento + Para usar esta opção o OsmAnd precisa de encaixar o seu trilho nas estradas do mapa. +\n +\n No passo seguinte, terá de selecionar o perfil de navegação para detetar estradas permitidas e a distância limiar para se aproximar do seu trilho com as estradas. + Distância limiar + Perfil de navegação + Selecione um ficheiro de faixa para o qual um novo segmento será adicionado. \ No newline at end of file From 07a7fb9c3cf1b9f6c702f9d78ee17c49f342f29c Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Thu, 13 Aug 2020 09:13:11 +0000 Subject: [PATCH 19/36] Translated using Weblate (French) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-fr/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 4a796604eb..166647fee0 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -2372,7 +2372,7 @@ Photos en ligne Aucune photo pour ce lieu. Installer - Mapillary + Photos des rues Ouvrir Mapillary Améliorez la couverture photo avec Mapillary Installez Mapillary pour ajouter des photos à cet emplacement de la carte. @@ -2527,7 +2527,7 @@ Ajoutez votre position comme point de départ pour calculer l\'itinéraire. Ma position Terminer - Itinéraire planifié + Planifier un itinéraire Trier Saisie des coordonnées Exporter vos marques dans le fichier GPX suivant : @@ -3102,7 +3102,7 @@ Principalement non-compact Non-compact Dureté de la surface - Gain de %s + %s enregistré Ouvrir la trace Trace %s enregistrée Oups From e9d2c21566ebe21c8455b5b5eef0a6be41ca8eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Wed, 12 Aug 2020 10:07:54 +0000 Subject: [PATCH 20/36] Translated using Weblate (Turkish) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-tr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 46994c59ed..081dfab57b 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -2255,7 +2255,7 @@ Mapillary widget\'ı Mapillary\'ye hızlıca katkıda bulunmanıza imkan verir. Herkes için sokak seviyesinde fotoğraflar. Yerler keşfedin, katkıda bulunun, dünyayı yakalatın. - Mapillary + Sokak seviyesi görüntüleri Herkes için sokak seviyesinde fotoğraflar. Yerler keşfedin, katkıda bulunun, dünyayı yakalayın. Park etme seçenekleri Otoyolları kullan From d3449df00adac0e8c3f50a05a638080304d4718a Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Wed, 12 Aug 2020 09:13:58 +0000 Subject: [PATCH 21/36] Translated using Weblate (Greek) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-el/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index 6a8005cfae..59b6b8c2b4 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -1782,7 +1782,7 @@ Γραφικό στοιχείο Mapillary Επιτρέπει γρήγορες συνεισφορές στο Mapillary. Διαδικτυακές φωτογραφίες δρόμου για όλους. Ανακαλύψτε θέσεις, συνεργαστείτε, αποτυπώστε τον κόσμο. - Mapillary + Εικόνες επιπέδου οδού Φωτογραφίες δρόμου για όλους. Ανακαλύψτε θέσεις, συνεργαστείτε, αποτυπώστε τον κόσμο. Ο προορισμός σας βρίσκεται σε ιδιωτική περιοχή. Να επιτραπεί η πρόσβαση σε ιδιωτικούς δρόμους για αυτό το ταξίδι; Επανεκκίνηση αναζήτησης From 827b2188ca9c5bb155c2839eac9f0618b012047f Mon Sep 17 00:00:00 2001 From: D M Date: Wed, 12 Aug 2020 16:29:36 +0000 Subject: [PATCH 22/36] Translated using Weblate (Serbian) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-sr/strings.xml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 8d44c18bfc..70aaf6757b 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -684,7 +684,7 @@ Није означено h min - Лежећи полицајац + Смиривање саобраћаја Упозорења о гужвама у саобраћају Позадинске услуге OsmAnd-а су и даље покренуте. Прекинути и њих? Прекинути позадински режим GPS-а? @@ -1251,7 +1251,7 @@ Омогућава брзи допринос Мапилару. Отвори Мапилар Мрежне слике улица за све. Откријте места, сарађујте, освојите свет. - Мапилар + Слике на нивоу улице Мрежне слике улица за све. Откријте места, сарађујте, освојите свет. Ваше одредиште се налази на приватном поседу. Дозволити коришћење приватних путева на овом путовању\? Препокрени претрагу @@ -3836,4 +3836,17 @@ Изаберите фајл путање за отварање. Завршено Замени стазу + Сачувај као нову стазу + Обрнута рута + Читава стаза ће се прерачунати користећи одабрани профил. + Само ће се следећи сегмент прерачунати користећи одабрани профил. + Изаберите како повезати тачке, са правом линијом, или израчунајте руту између њих са одабраним профилом. + Цела стаза + Следећи сегмент + Да бисте користили ову опцију, ОсмАнд мора да прилагоди вашу стазу путевима на мапи. +\n +\n На следећем кораку мора ћете одабрати навигацијски профил како бисте открили дозвољене путеве и праг удаљености и тиме приближили вашу стазу путевима. + Праг удаљености + Навигацијски профил + Изаберите датотеку записа којој ће се додати нови сегмент. \ No newline at end of file From 7ee99f3e73b6e39d2ed5206f923502a6ffcecdef Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Wed, 12 Aug 2020 11:09:27 +0000 Subject: [PATCH 23/36] Translated using Weblate (Hebrew) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-iw/strings.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index 6072b3bab5..f65af94475 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -1127,7 +1127,7 @@ וידג׳ט Mapillary מאפשר תרומה במהירות ל־Mapillary. תמונות מקוונות ברמת רחוב לכולם. היכרות עם מקומות חדשים, שיתוף פעולה וצילום העולם. - Mapillary + תמונות ברמת רחוב תמונות ברמת הרחוב לכולם. להכיר מקומות, לשתף פעולה ולצלם את העולם. היעד שלך ממוקם באיזור עם גישה פרטית. לאשר שימוש בכבישים פרטיים לצורך טיול זה\? חיפוש מחדש @@ -3854,4 +3854,10 @@ סף מרחק פרופיל ניווט נא לבחור קובץ מסלול שבו יתווסף המקטע החדש. + כל המסלול יחושב מחדש באמצעות הפרופיל הנבחר. + רק המקטע הבא יחושב מחודש באמצעות הפרופיל הנבחר. + נא לבחור כיצד לחבר נקודות, בקו ישר, או לחבר מסלול ביניהן עם הפרופיל הנבחר. + כדי להשתמש באפשרות זו על OsmAnd להצמיד את המסלול שלך לדרכים שעל המפה. +\n +\n בשלב הבא יהיה עליך לבחור בפרופיל ניווט כדי לזהות את הדרכים המורשות ואת סף המרחק כדי להעריך את המסלול שלך ביחס לדרכים. \ No newline at end of file From 79aa1d2c3381f6ae0f752b3a83a654fab5dced37 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood Date: Wed, 12 Aug 2020 12:03:33 +0000 Subject: [PATCH 24/36] Translated using Weblate (Arabic) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-ar/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 5f25673db3..b7aacd66a9 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -764,7 +764,7 @@ ناقص التالي السابق - اختيار الوحدات: كم، ميل، ميل بحري.. إلخ. + اختيار الوحدات: كم، ميل، ميلٌ بحري.. إلخ. وحدات الطول ميل ، قدم ميل ، ياردة @@ -1964,8 +1964,8 @@ عرض POI على الخريطة (استخدم آخر تصفية مستخدمة). أدخل خط العرض وخط الطول في النمط المحدد (د - درجات، د - دقائق، ث - ثواني) DDD.DD - DDD MM.MM - DDD MM SS.SS + DDD MM.MMM + DDD MM SS.S تفعيل هذه الرؤية يغير نمط خريطة أوسماند إلى \'نمط التجوال\'، هذا النمط يوفر رؤية غنية بالتفاصيل للمسافرين والسائقين المحترفين. \n \nتوفر هذه الرؤية في أي تكبير معين للخريطة أكبر قدر ممكن من تفاصيل السفر المتاحة في بيانات الخريطة (خاصة الطرق، المسارات، المعابر وعلامات التوجيه). @@ -2288,7 +2288,7 @@ ويدجت مابيلاري يسمح لك بالمساهمة بسرعة لمابيلاري. صور شوارع متاحة على الإنترنت للجميع. اكتشف أماكن، تعاون، والتقط صورا للعالم. - Mapillary مابيلاري + صور للشارع صور شوارع متاحة للجميع. اكتشف أماكن، تعاون، والتقط صورا للعالم. الوجهة الخاص بك تقع في منطقة ذات ولوج خاص. هل تسمح بالدخول إلى الطرق الخاصة لهذه الرحلة؟ زر يظهر أو يخفي ملاحظات OSM على الخريطة. From 514f8bf6ad21d3c51bf20c0d04eb71726513d156 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Wed, 12 Aug 2020 18:15:16 +0000 Subject: [PATCH 25/36] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 0b2886241f..3cd9b3bb10 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -2063,7 +2063,7 @@ Ferramenta Mapillary Permite contribuições rápidas ao Mapillary. Fotos ao nível da rua, online, para todos. Descobrir lugares, colaborar, capturar o mundo. - Mapillary + Imagens de rua Fotos ao nível da rua para todos. Descubra lugares, colabore, capture o mundo. Seu destino está localizado numa área de acesso privado. Permitir uso de vias privadas para esta viagem\? Reiniciar pesquisa From d2fd2615dc203ad3d0ac5f001da4791b9f81a2c0 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 13 Aug 2020 06:02:06 +0000 Subject: [PATCH 26/36] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index d8b201c442..8e960687ae 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -2416,7 +2416,7 @@ 增加搜尋半徑 没有找到 變更搜尋或增加搜尋半徑。 - Mapillary + 街道級照片 Mapillary 小工具 允許快速的提供給 Mapillary。 把線上街道平面照片給每個人。發覺地點、協作、抓取世界。 From c57753cc5d03669f32b15ea0b557e29ac0696ce7 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Thu, 13 Aug 2020 08:33:29 +0000 Subject: [PATCH 27/36] Translated using Weblate (Greek) Currently translated at 99.0% (3775 of 3812 strings) --- OsmAnd/res/values-el/phrases.xml | 88 +++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-el/phrases.xml b/OsmAnd/res/values-el/phrases.xml index f81cdb4eda..1fa37f7270 100644 --- a/OsmAnd/res/values-el/phrases.xml +++ b/OsmAnd/res/values-el/phrases.xml @@ -1711,7 +1711,7 @@ Μη αυτόματο Πλήρης εξυπηρέτηση Ναι - Πλύσιμο αυτοκινήτου: όχι + Όχι Δημόσια λουτρά Άνδρες Απαγορευμένο για άνδρες @@ -3692,4 +3692,90 @@ Βίντεο SMS Σε ανοιχτό χώρο + Αριθμός αναφοράς πίστας + Κέντρο μπόουλινγκ + Είδη ασφαλείας + Διάσωση βουνού + Χρωματοσφαίριση + Ποδήλατο φάντασμα + Αριθμός εκρήξεων + Ενεργό + Εσβεσμένο + Λάσπη + Κρατήρας + Ασπίδα + URL + Τύπος μονής: κανονική + Είδος κοινοβίου: γυναικείο + Είδος κοινοβίου: ανδρικό + Όχι + Ανάληψη μετρητών: ξένες κάρτες + Ανάληψη μετρητών: δεν απαιτείται αγορά + Τύπος ανάληψης μετρητών: αυτόματη ολοκλήρωση + Πατωματζής + Ναι + Ανενεργό + Ανενεργό + Τελευταία έκρηξη + Ηφαιστειακός θόλος + Ηφαιστειακή λίμνη + Στρωματοηφαίστειο + Τάφος + Τουριστικό κατάλυμα + Τύπος μονής: γυναικεία + Τράπεζα Migros + Τέλος ανάληψης μετρητών: όχι + Νόμισμα ανάληψης μετρητών + Χειριστής ανάληψης μετρητών + Ναι + Ανεκτή + Σκουριά + Χώρος στάθμευσης + Είδος κοινότητας: μικτή + Τύπος μονής: κανονικοί κληρικοί + Τύπος μονής: ερημητήριο + Τύπος μονής: μοναστική + Ναι + Ποδόλουτρο + Λίμνη + Ποταμός + Θερμικό + Χαμάμ + Όνσεν + Θερμή πηγή + Postbank + Girocard + Κάρτα Postfinance + Ανάληψη μετρητών: ελάχιστη αγορά + Τέλος ανάληψης μετρητών: ναι + Ανάληψη μετρητών: απαιτείται αγορά + Όριο ανάληψης μετρητών + Τύπος ανάληψης μετρητών: ταμείο + Ανάληψη μετρητών + Ανάληψη μετρητών: ναι + Καλλωπισμός κατοικίδιων + Χρέωση + Επιπλοποιός + Φούρνος + Ξυλουργός + Αποστακτήριο + Κατασκευαστής + Υγιεινά τρόφιμα + Είσοδος κάβας + Δηλωμένη + Δηλωμένη + Διανομή + Δηλωμένη + Προορισμός + Ναι + Δηλωμένη + Πρόσβαση χιονοοχήματος: ιδιωτική + Χιονοδρομική σύμβαση: ναι + + + + + + + н/к \ No newline at end of file From e3bfea198f5ba815c0e44b774d8ae0e7d56e0433 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood Date: Wed, 12 Aug 2020 12:03:32 +0000 Subject: [PATCH 28/36] Translated using Weblate (Arabic) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/ar/ --- OsmAnd-telegram/res/values-ar/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-ar/strings.xml b/OsmAnd-telegram/res/values-ar/strings.xml index 03d5de2dc8..1fb4149e0b 100644 --- a/OsmAnd-telegram/res/values-ar/strings.xml +++ b/OsmAnd-telegram/res/values-ar/strings.xml @@ -67,7 +67,7 @@ تطبيق مفعل الوحدات والأشكال - اختيار الوحدات: كم، ميل، ميل بحري.. إلخ. + اختيار الوحدات: كم، ميل، ميلٌ بحري.. إلخ. وحدات الطول آخر تحديث من تيليجرام: %1$s الرد الأخير:٪ 1 $ s From 8d9e5423dfb5d58a54358d5e7f681fb71f08cae9 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 13 Aug 2020 15:43:16 +0300 Subject: [PATCH 29/36] Update icon for Minimal distance, add new for reverse direction option --- .../res/drawable/ic_action_minimal_distance.xml | 16 ++++++++-------- .../res/drawable/ic_action_reverse_direction.xml | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 OsmAnd/res/drawable/ic_action_reverse_direction.xml diff --git a/OsmAnd/res/drawable/ic_action_minimal_distance.xml b/OsmAnd/res/drawable/ic_action_minimal_distance.xml index e46c3e9a61..a4c37214d9 100644 --- a/OsmAnd/res/drawable/ic_action_minimal_distance.xml +++ b/OsmAnd/res/drawable/ic_action_minimal_distance.xml @@ -4,17 +4,17 @@ android:viewportWidth="24" android:viewportHeight="24"> + android:pathData="M12,15L9.1325,15.9559C9.0447,15.9851 8.9529,16 8.8604,16H8.809C8.3622,16 8,15.6378 8,15.191C8,15.0654 8.0292,14.9415 8.0854,14.8292L11.2764,8.4472C11.4134,8.1731 11.6936,8 12,8C12.3064,8 12.5866,8.1732 12.7236,8.4472L15.9146,14.8292C15.9708,14.9415 16,15.0654 16,15.191C16,15.6378 15.6378,16 15.191,16H15.1396C15.0471,16 14.9553,15.9851 14.8675,15.9559L12,15Z" + android:fillColor="#ffffff"/> + android:pathData="M9,2C9,0.8954 9.8954,0 11,0H13C14.1046,0 15,0.8954 15,2V22C15,23.1046 14.1046,24 13,24H11C9.8954,24 9,23.1046 9,22V2Z" + android:strokeAlpha="0.2" + android:fillColor="#ffffff" + android:fillAlpha="0.2"/> diff --git a/OsmAnd/res/drawable/ic_action_reverse_direction.xml b/OsmAnd/res/drawable/ic_action_reverse_direction.xml new file mode 100644 index 0000000000..58b0c9cdfe --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_reverse_direction.xml @@ -0,0 +1,14 @@ + + + + From 58d005bdf7db46b1626162f6df7ddf744a63c104 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 13 Aug 2020 16:40:20 +0300 Subject: [PATCH 30/36] no route recalculation wrong direction issue fix --- OsmAnd/res/values/strings.xml | 1 + OsmAnd/res/xml/accessibility_settings.xml | 23 ----------- .../osmand/plus/routing/RoutingHelper.java | 4 +- .../plus/settings/backend/OsmandSettings.java | 4 +- .../fragments/RouteParametersFragment.java | 38 +++++++++++++++++-- 5 files changed, 40 insertions(+), 30 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index f3a1ebf203..25ee7cc407 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -12,6 +12,7 @@ --> + In case of reverse direction Select a track file for which a new segment will be added. Navigation profile Threshold distance diff --git a/OsmAnd/res/xml/accessibility_settings.xml b/OsmAnd/res/xml/accessibility_settings.xml index 3c1096fe37..0afc4fae17 100644 --- a/OsmAnd/res/xml/accessibility_settings.xml +++ b/OsmAnd/res/xml/accessibility_settings.xml @@ -47,29 +47,6 @@ android:layout="@layout/simple_divider_item" android:selectable="false" /> - - - - - - - - 0 && wrongMovementDirection && !isStraight - && (currentLocation.distanceTo(routeNodes.get(currentRoute)) > allowableDeviation)) { + if ((allowableDeviation > 0 && wrongMovementDirection && !isStraight + && (currentLocation.distanceTo(routeNodes.get(currentRoute)) > allowableDeviation)) && !settings.DISABLE_WRONG_DIRECTION_RECALC.get()) { log.info("Recalculate route, because wrong movement direction: " + currentLocation.distanceTo(routeNodes.get(currentRoute))); //$NON-NLS-1$ isDeviatedFromRoute = true; calculateRoute = true; diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index e584c367a1..70f6110928 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -1892,8 +1892,8 @@ public class OsmandSettings { new BooleanAccessibilityPreference("disable_offroute_recalc", false).makeProfile(); // this value string is synchronized with settings_pref.xml preference name -// public final OsmandPreference DISABLE_WRONG_DIRECTION_RECALC = -// new BooleanAccessibilityPreference("disable_wrong_direction_recalc", false).makeProfile(); + public final OsmandPreference DISABLE_WRONG_DIRECTION_RECALC = + new BooleanAccessibilityPreference("disable_wrong_direction_recalc", false).makeProfile(); // this value string is synchronized with settings_pref.xml preference name public final OsmandPreference DIRECTION_AUDIO_FEEDBACK = diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java index 360e98e845..8c7052983e 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java @@ -8,6 +8,7 @@ import android.os.Build; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; @@ -16,6 +17,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; @@ -61,6 +63,7 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP private static final String RELIEF_SMOOTHNESS_FACTOR = "relief_smoothness_factor"; private static final String ROUTING_SHORT_WAY = "prouting_short_way"; private static final String ROUTING_RECALC_DISTANCE= "routing_recalc_distance"; + private static final String ROUTING_RECALC_WRONG_DIRECTION= "disable_wrong_direction_recalc"; public static final float DISABLE_MODE = -1.0f; public static final float DEFAULT_MODE = 0.0f; @@ -156,8 +159,6 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP fastRoute.setSummaryOn(R.string.shared_string_on); fastRoute.setSummaryOff(R.string.shared_string_off); - setupSelectRouteRecalcDistance(screen); - if (am.getRouteService() == RouteProvider.RouteService.OSMAND){ GeneralRouter router = app.getRouter(am); clearParameters(); @@ -260,6 +261,36 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP straightAngle.setIcon(getRoutingPrefIcon("routing_recalc_distance")); //TODO change for appropriate icon when available getPreferenceScreen().addPreference(straightAngle); } + + addDivider(screen); + addRouteRecalcHeader(screen); + setupSelectRouteRecalcDistance(screen); + setupReverseDirectionRecalculation(screen); + } + + private void addDivider(PreferenceScreen screen) { + Preference divider = new Preference(requireContext()); + divider.setLayoutResource(R.layout.simple_divider_item); + screen.addPreference(divider); + } + + private void setupReverseDirectionRecalculation(PreferenceScreen screen) { + SwitchPreferenceEx recalcRouteReverseDirectionPreference = + createSwitchPreferenceEx(app.getSettings().DISABLE_WRONG_DIRECTION_RECALC.getId(), + R.string.in_case_of_reverse_direction, + R.layout.preference_with_descr_dialog_and_switch); + recalcRouteReverseDirectionPreference.setIcon( + getRoutingPrefIcon(app.getSettings().DISABLE_WRONG_DIRECTION_RECALC.getId())); + recalcRouteReverseDirectionPreference.setSummaryOn(R.string.shared_string_on); + recalcRouteReverseDirectionPreference.setSummaryOff(R.string.shared_string_off); + screen.addPreference(recalcRouteReverseDirectionPreference); + } + + private void addRouteRecalcHeader(PreferenceScreen screen) { + PreferenceCategory routingCategory = new PreferenceCategory(requireContext()); + routingCategory.setLayoutResource(R.layout.preference_category_with_descr); + routingCategory.setTitle(R.string.recalculate_route); + screen.addPreference(routingCategory); } @Override @@ -544,7 +575,8 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP return getPersistentPrefIcon(R.drawable.ic_action_road_works_dark); case ROUTING_RECALC_DISTANCE: return getPersistentPrefIcon(R.drawable.ic_action_minimal_distance); - + case ROUTING_RECALC_WRONG_DIRECTION: + return getPersistentPrefIcon(R.drawable.ic_action_reverse_direction); default: return null; } From 40e03c0521a8bcace7b3163b9acd33eaf0e46384 Mon Sep 17 00:00:00 2001 From: Hakim Oubouali Date: Thu, 13 Aug 2020 20:27:02 +0200 Subject: [PATCH 31/36] Added translation using Weblate (Berber) --- OsmAnd/res/values-ber/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OsmAnd/res/values-ber/strings.xml diff --git a/OsmAnd/res/values-ber/strings.xml b/OsmAnd/res/values-ber/strings.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/OsmAnd/res/values-ber/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From e4f67834d62d0bc3bf6cb2340dde3cb091b600a4 Mon Sep 17 00:00:00 2001 From: Dimitris Spingos Date: Thu, 13 Aug 2020 14:20:49 +0000 Subject: [PATCH 32/36] Translated using Weblate (Greek) Currently translated at 99.8% (3808 of 3812 strings) --- OsmAnd/res/values-el/phrases.xml | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/OsmAnd/res/values-el/phrases.xml b/OsmAnd/res/values-el/phrases.xml index 1fa37f7270..ceec6766ec 100644 --- a/OsmAnd/res/values-el/phrases.xml +++ b/OsmAnd/res/values-el/phrases.xml @@ -3778,4 +3778,37 @@ н/к + Διαμέρισμα + Ναι + Ναι + Δόνηση: όχι + Κατάσταση αντλίας: ελλείπων βραχίονας + Αναρρόφηση + Πιεσμένο + Υπόγεια ύδατα + Σωλήνας + Δίκτυο ξαναγεμίσματος πόσιμου νερού + Ξαναγέμισμα πόσιμου νερού: όχι + Ξαναγέμισμα πόσιμου νερού: ναι + Εμπόδιο + Επίπεδο νερού: Κάτω από το διάμεσο επίπεδο νερού + Επίπεδο νερού: πάνω από το διάμεσο επίπεδο νερού + Επίπεδο νερού: επιπλέον + Επίπεδο νερού: κατακλυσμένο + Επίπεδο νερού: πλημμυρισμένο + Επίπεδο νερού: καλυμμένο + Επίπεδο νερού: ξηρό + Επίπεδο νερού: βυθισμένο + Επίπεδο νερού: μερικώς βυθισμένο + Εσφαλμένο + Πρωτογενές + Αντίθετο + Μόνο όταν επιτρέπεται το περπάτημα + Σήμα για την εύρεση του πόλου + Όχι + Τύπος θαλάμου + Θάλαμος + Ναι + Κέντρο αυτόνομης κατάδυσης + Βάση κυνηγιού \ No newline at end of file From 9d4c5a7e6a54c2fae214e5fb723762b9203db905 Mon Sep 17 00:00:00 2001 From: Hakim Oubouali Date: Thu, 13 Aug 2020 20:28:14 +0200 Subject: [PATCH 33/36] Added translation using Weblate (Berber) --- OsmAnd/res/values-ber/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OsmAnd/res/values-ber/phrases.xml diff --git a/OsmAnd/res/values-ber/phrases.xml b/OsmAnd/res/values-ber/phrases.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/OsmAnd/res/values-ber/phrases.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 8f7a7993cf487987a932e5a7045f3f5ae7b2a14a Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Thu, 13 Aug 2020 22:09:07 +0000 Subject: [PATCH 34/36] Translated using Weblate (French) Currently translated at 100.0% (3450 of 3450 strings) --- OsmAnd/res/values-fr/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 166647fee0..a424fa2c19 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -1121,7 +1121,7 @@ Favori Préférences d\'itinéraire Informations sur l\'itinéraire - Ajouter comme destination suivante + Ajouter comme destination Souhaitez-vous suivre la trace affichée à l\'écran ? Calculer un itinéraire OsmAnd pour le début et la fin de l\'itinéraire Calcul de l\'itinéraire hors-ligne @@ -2660,9 +2660,9 @@ En approche d\'un tunnel Tunnels Actuelle - Ajoute une étape - Ajoute comme première étape - Monter et définir comme Arrivée + Ajouter comme dernière étape + Ajouter comme première étape + Ajouter comme arrivée (l\'arrivée précédente devient la dernière étape) Utiliser ce point comme départ Erreur d\'import de la carte Carte importée @@ -2911,7 +2911,7 @@ Panneau d\'affichage à l\'arrêt Bouton affichant ou masquant les traces GPX sélectionnées sur la carte. %1$d transferts - Ajouter un point de départ et d\'arrivée + Ajoutez un point de départ et d\'arrivée Ajouter un point de départ Sélectionnez un point de départ Non revêtu From 8dab763f794a7c7d2476b59b80abd999db8e1973 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Thu, 13 Aug 2020 21:50:42 +0000 Subject: [PATCH 35/36] Translated using Weblate (French) Currently translated at 99.9% (3809 of 3812 strings) --- OsmAnd/res/values-fr/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 40afcf7e35..19e13b3f34 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -722,7 +722,7 @@ Zone ferroviaire Village green (GB) Navigation à voile - Magasin caritatif + Boutique caritative Sépulture Refuge de bivouac non gardé Terminal de paiement From e356be22ce96db63c97c7591f46cba8dad2cadbd Mon Sep 17 00:00:00 2001 From: Hakim Oubouali Date: Thu, 13 Aug 2020 18:45:52 +0000 Subject: [PATCH 36/36] Translated using Weblate (Berber) Currently translated at 0.3% (13 of 3812 strings) --- OsmAnd/res/values-ber/phrases.xml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ber/phrases.xml b/OsmAnd/res/values-ber/phrases.xml index a6b3daec93..1bce009405 100644 --- a/OsmAnd/res/values-ber/phrases.xml +++ b/OsmAnd/res/values-ber/phrases.xml @@ -1,2 +1,16 @@ - \ No newline at end of file + + ⵜⴰⵃⴰⵏⵓⵜ + ⴰⴼⵉⴷⵢⵓ + ⵢⴰⵀ + ⵉⴷⵍⵉⵙⵏ + ⴰⵙⵔⵜⵓ ⴰⴳⵔⵙⴰⵏ + ⴰⵟⴱⵙⵉⵍ + ⴰⵅⵅⴰⵎ + ⴰⵙⵔⵜⵓ + ⴰⵙⵔⵜⵓ + ⵉⵜⵜⵡⴰⴷⵍ + ⴰⵎⵙⵍⴰⵢ + ⴰⵖⴱⴰⵍⵓ ⵏ ⵡⴰⵎⴰⵏ + ⴰⵏⵙⴰ + \ No newline at end of file