From 65bc72e0a634442df929255ef29b5b7a48499d34 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 11 Aug 2020 12:11:17 +0300 Subject: [PATCH 01/52] saving work state --- .../plus/mapcontextmenu/MapContextMenuFragment.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 4abe2f71df..9422bc4b2b 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -5,6 +5,9 @@ import android.animation.AnimatorListenerAdapter; import android.annotation.TargetApi; import android.content.Context; import android.content.res.Resources; +import android.graphics.ColorFilter; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; @@ -1817,9 +1820,13 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo if (!Algorithms.isEmpty(typeStr)) { line2Str.append(typeStr); Drawable icon = menu.getTypeIcon(); + ColorFilter colorFilter = new PorterDuffColorFilter( + ContextCompat.getColor(requireContext(), menu.getAdditionalInfoColor()), + PorterDuff.Mode.SRC_ATOP); + icon.setColorFilter(colorFilter); AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( line2, icon, null, null, null); - line2.setCompoundDrawablePadding(dpToPx(5f)); + line2.setCompoundDrawablePadding(dpToPx(5f)); // TODO here 2 } if (!Algorithms.isEmpty(streetStr) && !menu.displayStreetNameInTitle()) { if (line2Str.length() > 0) { From d4fa8acb7db2059fd499248963ee2892f1b37caf Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 11 Aug 2020 12:16:53 +0300 Subject: [PATCH 02/52] color for icon favorites added --- .../MapContextMenuFragment.java | 40 ++++++++++++++----- .../other/MultiSelectionArrayAdapter.java | 24 +++++++++++ 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 9422bc4b2b..fd58b6efc6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -45,10 +45,12 @@ import androidx.annotation.Nullable; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.view.ContextThemeWrapper; import androidx.core.content.ContextCompat; +import androidx.core.graphics.drawable.DrawableCompat; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadPoint; @@ -57,6 +59,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.data.TransportRoute; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; +import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.LockableScrollView; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; @@ -169,7 +172,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo private int screenOrientation; private boolean created; - + private boolean transportBadgesCreated; private UpdateLocationViewCache updateLocationViewCache; @@ -783,7 +786,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } return false; } - + private float getToolbarAlpha(int y) { float a = 0; if (menu != null && !menu.isLandscapeLayout()) { @@ -1149,7 +1152,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Typeface typeface = FontCache.getRobotoRegular(context); title.setSpan(new CustomTypefaceSpan(typeface), startIndex, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); title.setSpan(new ForegroundColorSpan( - ContextCompat.getColor(context, nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light)), + ContextCompat.getColor(context, nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light)), startIndex, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } setupButton(leftTitleButtonView, leftTitleButtonController.enabled, title); @@ -1623,7 +1626,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo return dpToPx(32); } } - + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) private void runLayoutListener() { if (view != null) { @@ -1806,7 +1809,6 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo TextView line1 = (TextView) view.findViewById(R.id.context_menu_line1); line1.setText(menu.getTitleStr()); toolbarTextView.setText(menu.getTitleStr()); - // Text line 2 LinearLayout line2layout = (LinearLayout) view.findViewById(R.id.context_menu_line2_layout); TextView line2 = (TextView) view.findViewById(R.id.context_menu_line2); @@ -1819,14 +1821,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo StringBuilder line2Str = new StringBuilder(); if (!Algorithms.isEmpty(typeStr)) { line2Str.append(typeStr); + Drawable icon = menu.getTypeIcon(); - ColorFilter colorFilter = new PorterDuffColorFilter( - ContextCompat.getColor(requireContext(), menu.getAdditionalInfoColor()), - PorterDuff.Mode.SRC_ATOP); - icon.setColorFilter(colorFilter); AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( line2, icon, null, null, null); - line2.setCompoundDrawablePadding(dpToPx(5f)); // TODO here 2 + setColoredIconForGroup(line2,menu.getTypeStr()); + line2.setCompoundDrawablePadding(dpToPx(5f)); } if (!Algorithms.isEmpty(streetStr) && !menu.displayStreetNameInTitle()) { if (line2Str.length() > 0) { @@ -1886,6 +1886,26 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo updateAdditionalInfoVisibility(); } + private void setColoredIconForGroup(TextView line2, String groupName) { + OsmandApplication app = getMyApplication(); + if (app != null){ + FavouritesDbHelper helper = app.getFavorites(); + if (helper != null){ + FavouritesDbHelper.FavoriteGroup favoriteGroup = app.getFavorites() + .getGroup( + FavouritesDbHelper.FavoriteGroup. + convertDisplayNameToGroupIdName( + requireContext(),groupName)); + if (favoriteGroup != null) { + int color = favoriteGroup.getColor() == 0 ? view.getResources().getColor(R.color.color_favorite) : favoriteGroup.getColor(); + line2.setCompoundDrawablesWithIntrinsicBounds( + app.getUIUtilities().getPaintedIcon(R.drawable.ic_action_folder, color), + null,null,null); + } + } + } + } + private void updateCompassVisibility() { OsmandApplication app = getMyApplication(); if (app != null && view != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index 1537422e0e..4a37471cbc 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -1,5 +1,8 @@ package net.osmand.plus.mapcontextmenu.other; +import android.graphics.ColorFilter; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; import android.view.View; import android.view.ViewGroup; @@ -12,6 +15,8 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; +import net.osmand.plus.FavouritesDbHelper; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; @@ -87,6 +92,25 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter Date: Tue, 11 Aug 2020 12:47:20 +0300 Subject: [PATCH 03/52] coloured icons in multiple selection --- .../net/osmand/plus/FavouritesDbHelper.java | 19 ++++++++++-- .../MapContextMenuFragment.java | 31 ++++++------------- .../other/MultiSelectionArrayAdapter.java | 29 +++++++---------- 3 files changed, 38 insertions(+), 41 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index 4b9dc43eb3..87787639a2 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -2,6 +2,8 @@ package net.osmand.plus; import android.app.Activity; import android.content.Context; +import android.graphics.drawable.Drawable; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -128,6 +130,19 @@ public class FavouritesDbHelper { } } + public Drawable setColoredIconForGroup(String groupName) { + FavouritesDbHelper.FavoriteGroup favoriteGroup = this.getGroup( + FavouritesDbHelper.FavoriteGroup. + convertDisplayNameToGroupIdName( + this.context, groupName)); + if (favoriteGroup != null) { + int color = favoriteGroup.getColor() == 0 ? + this.context.getResources().getColor(R.color.color_favorite) : favoriteGroup.getColor(); + return this.context.getUIUtilities().getPaintedIcon(R.drawable.ic_action_folder, color); + } + return null; + } + public int getColorWithCategory(FavouritePoint point, int defaultColor) { int color = 0; if (point.getColor() != 0) { @@ -884,7 +899,7 @@ public class FavouritesDbHelper { private static final String FAVOURITE_COL_LAT = "latitude"; //$NON-NLS-1$ private static final String FAVOURITE_COL_LON = "longitude"; //$NON-NLS-1$ private static final String FAVOURITE_TABLE_CREATE = "CREATE TABLE " + FAVOURITE_TABLE_NAME + " (" + //$NON-NLS-1$ //$NON-NLS-2$ - FAVOURITE_COL_NAME + " TEXT, " + FAVOURITE_COL_CATEGORY + " TEXT, " + //$NON-NLS-1$ //$NON-NLS-2$ + FAVOURITE_COL_NAME + " TEXT, " + FAVOURITE_COL_CATEGORY + " TEXT, " + //$NON-NLS-1$ //$NON-NLS-2$ FAVOURITE_COL_LAT + " double, " + FAVOURITE_COL_LON + " double);"; //$NON-NLS-1$ //$NON-NLS-2$ private SQLiteConnection conn; @@ -925,7 +940,7 @@ public class FavouritesDbHelper { try { SQLiteCursor query = db .rawQuery( - "SELECT " + FAVOURITE_COL_NAME + ", " + FAVOURITE_COL_CATEGORY + ", " + FAVOURITE_COL_LAT + "," + FAVOURITE_COL_LON + " FROM " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + "SELECT " + FAVOURITE_COL_NAME + ", " + FAVOURITE_COL_CATEGORY + ", " + FAVOURITE_COL_LAT + "," + FAVOURITE_COL_LON + " FROM " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ FAVOURITE_TABLE_NAME, null); cachedFavoritePoints.clear(); if (query != null && query.moveToFirst()) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index fd58b6efc6..c15ac1a8ae 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -94,6 +94,7 @@ import java.util.ArrayList; import java.util.List; import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MORE_ID; +import static net.osmand.plus.FavouritesDbHelper.FavoriteGroup.convertDisplayNameToGroupIdName; import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP; import static net.osmand.plus.settings.fragments.ConfigureMenuItemsFragment.MAIN_BUTTONS_QUANTITY; @@ -1825,7 +1826,15 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable icon = menu.getTypeIcon(); AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( line2, icon, null, null, null); - setColoredIconForGroup(line2,menu.getTypeStr()); + String groupName = convertDisplayNameToGroupIdName(requireContext(), + menu.getTypeStr()); + if (menu.getMyApplication() != null){ + FavouritesDbHelper helper = menu.getMyApplication().getFavorites(); + if (helper != null){ + Drawable line2icon = helper.setColoredIconForGroup(groupName); + line2.setCompoundDrawablesWithIntrinsicBounds(line2icon, null, null, null); + } + } line2.setCompoundDrawablePadding(dpToPx(5f)); } if (!Algorithms.isEmpty(streetStr) && !menu.displayStreetNameInTitle()) { @@ -1886,26 +1895,6 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo updateAdditionalInfoVisibility(); } - private void setColoredIconForGroup(TextView line2, String groupName) { - OsmandApplication app = getMyApplication(); - if (app != null){ - FavouritesDbHelper helper = app.getFavorites(); - if (helper != null){ - FavouritesDbHelper.FavoriteGroup favoriteGroup = app.getFavorites() - .getGroup( - FavouritesDbHelper.FavoriteGroup. - convertDisplayNameToGroupIdName( - requireContext(),groupName)); - if (favoriteGroup != null) { - int color = favoriteGroup.getColor() == 0 ? view.getResources().getColor(R.color.color_favorite) : favoriteGroup.getColor(); - line2.setCompoundDrawablesWithIntrinsicBounds( - app.getUIUtilities().getPaintedIcon(R.drawable.ic_action_folder, color), - null,null,null); - } - } - } - } - private void updateCompassVisibility() { OsmandApplication app = getMyApplication(); if (app != null && view != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index 4a37471cbc..0cb7812e47 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -16,12 +16,15 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.plus.FavouritesDbHelper; +import net.osmand.plus.OsmAndConstants; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import java.util.List; +import static net.osmand.plus.FavouritesDbHelper.FavoriteGroup.convertDisplayNameToGroupIdName; + public class MultiSelectionArrayAdapter extends ArrayAdapter { private MapMultiSelectionMenu menu; @@ -92,25 +95,15 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter Date: Tue, 11 Aug 2020 17:01:21 +0300 Subject: [PATCH 04/52] colored icons bug fix --- .../MapContextMenuFragment.java | 23 +++++-- .../other/MultiSelectionArrayAdapter.java | 32 ++++++++-- .../src/net/osmand/view/GravityDrawable.java | 60 +++++++++++++++++++ 3 files changed, 104 insertions(+), 11 deletions(-) create mode 100644 OsmAnd/src/net/osmand/view/GravityDrawable.java diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index c15ac1a8ae..90b1752549 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -5,10 +5,12 @@ import android.animation.AnimatorListenerAdapter; import android.annotation.TargetApi; import android.content.Context; import android.content.res.Resources; +import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Typeface; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Build; @@ -89,6 +91,7 @@ import net.osmand.plus.views.controls.SingleTapConfirm; import net.osmand.plus.widgets.style.CustomTypefaceSpan; import net.osmand.router.TransportRouteResult; import net.osmand.util.Algorithms; +import net.osmand.view.GravityDrawable; import java.util.ArrayList; import java.util.List; @@ -1824,22 +1827,32 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo line2Str.append(typeStr); Drawable icon = menu.getTypeIcon(); - AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( - line2, icon, null, null, null); + if (icon != null){ + GravityDrawable gravityIcon = new GravityDrawable(icon); + AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( + line2, gravityIcon, null, null, null); + } String groupName = convertDisplayNameToGroupIdName(requireContext(), menu.getTypeStr()); if (menu.getMyApplication() != null){ FavouritesDbHelper helper = menu.getMyApplication().getFavorites(); - if (helper != null){ + if (helper != null && helper.getGroup(groupName) != null){ Drawable line2icon = helper.setColoredIconForGroup(groupName); - line2.setCompoundDrawablesWithIntrinsicBounds(line2icon, null, null, null); + GravityDrawable line2GravityDrawable = + new GravityDrawable(line2icon); + line2.setCompoundDrawablesWithIntrinsicBounds( + line2GravityDrawable, null, null, null); } } line2.setCompoundDrawablePadding(dpToPx(5f)); } + if (menu.getPointDescription().isFavorite() && + menu.getObject() instanceof FavouritePoint){ + streetStr = ((FavouritePoint)menu.getObject()).getAddress(); + } if (!Algorithms.isEmpty(streetStr) && !menu.displayStreetNameInTitle()) { if (line2Str.length() > 0) { - line2Str.append(": "); + line2Str.append(", "); } line2Str.append(streetStr); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index 0cb7812e47..868888ef2b 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -15,11 +15,14 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; +import net.osmand.data.FavouritePoint; import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.OsmAndConstants; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; +import net.osmand.util.Algorithms; +import net.osmand.view.GravityDrawable; import java.util.List; @@ -90,18 +93,35 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter 0) { + line2Str.append(", "); + } + line2Str.append(streetStr); + } + line2.setText(line2Str); Drawable slIcon = item.getTypeIcon(); - line2.setCompoundDrawablesWithIntrinsicBounds(slIcon, null, null, null); - line2.setCompoundDrawablePadding(AndroidUtils.dpToPx(menu.getMapActivity(), 5f)); - + GravityDrawable line2Icon = new GravityDrawable(slIcon); + if (slIcon != null){ + line2Icon.setBoundsFrom(slIcon); + line2.setCompoundDrawablesWithIntrinsicBounds(line2Icon, null, null, null); + line2.setCompoundDrawablePadding(AndroidUtils.dpToPx(menu.getMapActivity(), 5f)); + } String groupName = convertDisplayNameToGroupIdName(getContext(), item.getTypeStr()); if (item.getMyApplication() != null){ FavouritesDbHelper helper = item.getMyApplication().getFavorites(); - if (helper != null){ + if (helper != null && helper.getGroup(groupName) != null){ Drawable line2icon = helper.setColoredIconForGroup(groupName); - line2.setCompoundDrawablesWithIntrinsicBounds(line2icon, null, null, null); + GravityDrawable line2GravityIcon = new GravityDrawable(line2icon); + line2GravityIcon.setBoundsFrom(line2icon); + line2.setCompoundDrawablesWithIntrinsicBounds(line2GravityIcon, null, null, null); } } // Divider diff --git a/OsmAnd/src/net/osmand/view/GravityDrawable.java b/OsmAnd/src/net/osmand/view/GravityDrawable.java new file mode 100644 index 0000000000..1bb887469f --- /dev/null +++ b/OsmAnd/src/net/osmand/view/GravityDrawable.java @@ -0,0 +1,60 @@ +package net.osmand.view; + +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.PixelFormat; +import android.graphics.drawable.Drawable; + +import androidx.annotation.Nullable; + +public class GravityDrawable extends Drawable { + + // inner Drawable + private final Drawable mDrawable; + + public GravityDrawable(Drawable drawable) { + mDrawable = drawable; + } + + @Override + public int getIntrinsicWidth() { + if (mDrawable != null) return mDrawable.getIntrinsicWidth(); else return 0; + } + + @Override + public int getIntrinsicHeight() { + if (mDrawable != null) return mDrawable.getIntrinsicHeight(); else return 0; + } + + @Override + public void draw(Canvas canvas) { + int halfCanvas= canvas.getHeight() / 2; + int halfDrawable = mDrawable.getIntrinsicHeight() / 2; + + // align to top + canvas.save(); + canvas.translate(0, -halfCanvas + halfDrawable); + mDrawable.draw(canvas); + canvas.restore(); + } + + @Override + public void setAlpha(int i) { + if (mDrawable != null) mDrawable.setAlpha(i); + } + + @Override + public void setColorFilter(@Nullable ColorFilter colorFilter) { + if (mDrawable != null) mDrawable.setColorFilter(colorFilter); + } + + @Override + public int getOpacity() { + if (mDrawable != null) return mDrawable.getOpacity(); else return PixelFormat.UNKNOWN; + } + + public void setBoundsFrom(Drawable line2Icon) { + line2Icon.setBounds(0, 0, line2Icon.getIntrinsicWidth(), line2Icon.getIntrinsicHeight()); + this.setBounds(0, 0, line2Icon.getIntrinsicWidth(), line2Icon.getIntrinsicHeight()); + } +} From 58bf6d35f6599411868eb4894c76692273523c0b Mon Sep 17 00:00:00 2001 From: simon Date: Mon, 17 Aug 2020 11:03:52 +0300 Subject: [PATCH 05/52] style issues fixed --- OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java | 10 +++++----- .../plus/mapcontextmenu/MapContextMenuFragment.java | 8 +------- .../other/MultiSelectionArrayAdapter.java | 7 +------ 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index 87787639a2..7873b3b2cb 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -130,15 +130,15 @@ public class FavouritesDbHelper { } } - public Drawable setColoredIconForGroup(String groupName) { - FavouritesDbHelper.FavoriteGroup favoriteGroup = this.getGroup( + public Drawable getColoredIconForGroup(String groupName) { + FavouritesDbHelper.FavoriteGroup favoriteGroup = getGroup( FavouritesDbHelper.FavoriteGroup. convertDisplayNameToGroupIdName( - this.context, groupName)); + context, groupName)); if (favoriteGroup != null) { int color = favoriteGroup.getColor() == 0 ? - this.context.getResources().getColor(R.color.color_favorite) : favoriteGroup.getColor(); - return this.context.getUIUtilities().getPaintedIcon(R.drawable.ic_action_folder, color); + context.getResources().getColor(R.color.color_favorite) : favoriteGroup.getColor(); + return context.getUIUtilities().getPaintedIcon(R.drawable.ic_action_folder, color); } return null; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 90b1752549..ff38d8441c 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -5,12 +5,7 @@ import android.animation.AnimatorListenerAdapter; import android.annotation.TargetApi; import android.content.Context; import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.ColorFilter; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; import android.graphics.Typeface; -import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Build; @@ -47,7 +42,6 @@ import androidx.annotation.Nullable; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.view.ContextThemeWrapper; import androidx.core.content.ContextCompat; -import androidx.core.graphics.drawable.DrawableCompat; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; @@ -1837,7 +1831,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo if (menu.getMyApplication() != null){ FavouritesDbHelper helper = menu.getMyApplication().getFavorites(); if (helper != null && helper.getGroup(groupName) != null){ - Drawable line2icon = helper.setColoredIconForGroup(groupName); + Drawable line2icon = helper.getColoredIconForGroup(groupName); GravityDrawable line2GravityDrawable = new GravityDrawable(line2icon); line2.setCompoundDrawablesWithIntrinsicBounds( diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index 868888ef2b..36262e2fb8 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -1,8 +1,5 @@ package net.osmand.plus.mapcontextmenu.other; -import android.graphics.ColorFilter; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; import android.view.View; import android.view.ViewGroup; @@ -17,8 +14,6 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.data.FavouritePoint; import net.osmand.plus.FavouritesDbHelper; -import net.osmand.plus.OsmAndConstants; -import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.util.Algorithms; @@ -118,7 +113,7 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter Date: Mon, 17 Aug 2020 13:39:53 +0300 Subject: [PATCH 06/52] street str refactoring --- .../plus/mapcontextmenu/MapContextMenuFragment.java | 11 +++-------- .../controllers/FavouritePointMenuController.java | 6 ++++++ .../other/MultiSelectionArrayAdapter.java | 6 +----- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index ff38d8441c..1fb45a0c88 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -1804,12 +1804,12 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo private void setAddressLocation() { if (view != null) { // Text line 1 - TextView line1 = (TextView) view.findViewById(R.id.context_menu_line1); + TextView line1 = view.findViewById(R.id.context_menu_line1); line1.setText(menu.getTitleStr()); toolbarTextView.setText(menu.getTitleStr()); // Text line 2 - LinearLayout line2layout = (LinearLayout) view.findViewById(R.id.context_menu_line2_layout); - TextView line2 = (TextView) view.findViewById(R.id.context_menu_line2); + LinearLayout line2layout = view.findViewById(R.id.context_menu_line2_layout); + TextView line2 = view.findViewById(R.id.context_menu_line2); if (menu.hasCustomAddressLine()) { line2layout.removeAllViews(); menu.buildCustomAddressLine(line2layout); @@ -1819,7 +1819,6 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo StringBuilder line2Str = new StringBuilder(); if (!Algorithms.isEmpty(typeStr)) { line2Str.append(typeStr); - Drawable icon = menu.getTypeIcon(); if (icon != null){ GravityDrawable gravityIcon = new GravityDrawable(icon); @@ -1840,10 +1839,6 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } line2.setCompoundDrawablePadding(dpToPx(5f)); } - if (menu.getPointDescription().isFavorite() && - menu.getObject() instanceof FavouritePoint){ - streetStr = ((FavouritePoint)menu.getObject()).getAddress(); - } if (!Algorithms.isEmpty(streetStr) && !menu.displayStreetNameInTitle()) { if (line2Str.length() > 0) { line2Str.append(", "); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java index 7dea6105ef..ca01bf246e 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java @@ -150,6 +150,12 @@ public class FavouritePointMenuController extends MenuController { } } + @NonNull + @Override + public String getSubtypeStr() { + return fav.getAddress(); + } + @Override public Drawable getSecondLineTypeIcon() { return getIcon(R.drawable.ic_action_group_name_16, isLight() ? R.color.icon_color_default_light : R.color.ctx_menu_bottom_view_icon_dark); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index 36262e2fb8..299a23f95a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -89,11 +89,7 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter 0) { line2Str.append(", "); From 30f245ce24bb5c87c591d7054d0053eec9dcded9 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Mon, 17 Aug 2020 15:01:38 +0300 Subject: [PATCH 07/52] Fix #9585 (Show photos from Wikimedia Commons) --- .../main/java/net/osmand/data/Amenity.java | 1 + .../builders/AmenityMenuBuilder.java | 12 +- .../builders/cards/ImageCard.java | 12 +- .../plus/wikimedia/WikiImageHelper.java | 176 ++++++++++++------ 4 files changed, 142 insertions(+), 59 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java index 38854cb33b..a5c68f1938 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java @@ -39,6 +39,7 @@ public class Amenity extends MapObject { public static final String CONTENT = "content"; public static final String CUISINE = "cuisine"; public static final String WIKIDATA = "wikidata"; + public static final String WIKIMEDIA_COMMONS = "wikimedia_commons"; public static final String DISH = "dish"; public static final String REF = "ref"; public static final String OSM_DELETE_VALUE = "delete"; diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java index fa1d0e7e6e..5a4618ca4f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java @@ -471,7 +471,9 @@ public class AmenityMenuBuilder extends MenuBuilder { } textPrefix = app.getString(R.string.poi_cuisine); vl = sb.toString(); - } else if (key.contains(Amenity.ROUTE) || key.equals(Amenity.WIKIDATA)) { + } else if (key.contains(Amenity.ROUTE) + || key.equals(Amenity.WIKIDATA) + || key.equals(Amenity.WIKIMEDIA_COMMONS)) { continue; } else { if (key.contains(Amenity.DESCRIPTION)) { @@ -784,7 +786,8 @@ public class AmenityMenuBuilder extends MenuBuilder { Map additionalInfo = amenity.getAdditionalInfo(); String imageValue = additionalInfo.get("image"); String mapillaryValue = additionalInfo.get("mapillary"); - String wikidataValue = additionalInfo.get("wikidata"); + String wikidataValue = additionalInfo.get(Amenity.WIKIDATA); + String wikimediaValue = additionalInfo.get(Amenity.WIKIMEDIA_COMMONS); if (!Algorithms.isEmpty(imageValue)) { params.put("osm_image", imageValue); } @@ -792,7 +795,10 @@ public class AmenityMenuBuilder extends MenuBuilder { params.put("osm_mapillary_key", mapillaryValue); } if (!Algorithms.isEmpty(wikidataValue)) { - params.put("wikidata_id", wikidataValue); + params.put(Amenity.WIKIDATA, wikidataValue); + } + if (!Algorithms.isEmpty(wikimediaValue)) { + params.put(Amenity.WIKIMEDIA_COMMONS, wikimediaValue); } return params; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/cards/ImageCard.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/cards/ImageCard.java index 94c045fa4d..c7cf92df0f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/cards/ImageCard.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/cards/ImageCard.java @@ -17,6 +17,7 @@ import androidx.appcompat.widget.AppCompatButton; import net.osmand.AndroidNetworkUtils; import net.osmand.AndroidUtils; import net.osmand.Location; +import net.osmand.data.Amenity; import net.osmand.data.LatLon; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -438,10 +439,15 @@ public abstract class ImageCard extends AbstractCard { pms.put("lang", preferredLang); } if (this.params != null) { - String wikidataId = this.params.get("wikidata_id"); + String wikidataId = this.params.get(Amenity.WIKIDATA); if (wikidataId != null) { - this.params.remove("wikidata_id"); - WikiImageHelper.fillWikiMediaCards(mapActivity, wikidataId, result); + this.params.remove(Amenity.WIKIDATA); + WikiImageHelper.addWikidataImageCards(mapActivity, wikidataId, result); + } + String wikimediaContent = this.params.get(Amenity.WIKIMEDIA_COMMONS); + if (wikimediaContent != null) { + this.params.remove(Amenity.WIKIMEDIA_COMMONS); + WikiImageHelper.addWikimediaImageCards(mapActivity, wikimediaContent, result); } pms.putAll(this.params); } diff --git a/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java b/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java index eded246941..68f3545129 100644 --- a/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java @@ -23,63 +23,113 @@ import java.util.List; public class WikiImageHelper { private static final String WIKIDATA_API_ENDPOINT = "https://www.wikidata.org/w/api.php"; - private static final String ACTION = "?action=wbgetclaims&property=P18&entity="; + private static final String WIKIMEDIA_API_ENDPOINT = "https://commons.wikimedia.org/w/api.php"; + private static final String WIKIDATA_ACTION = "?action=wbgetclaims&property=P18&entity="; + private static final String WIKIMEDIA_ACTION = "?action=query&list=categorymembers&cmtitle="; + private static final String CM_LIMIT = "&cmlimit=500"; private static final String FORMAT_JSON = "&format=json"; private static final String IMAGE_BASE_URL = "https://upload.wikimedia.org/wikipedia/commons/"; + private static final String WIKIDATA_PREFIX = "Q"; + private static final String WIKIMEDIA_FILE = "File:"; + private static final String WIKIMEDIA_CATEGORY = "Category:"; + private static final int THUMB_SIZE = 500; private static final Log LOG = PlatformUtil.getLog(WikiImageHelper.class); - public static void fillWikiMediaCards(@NonNull MapActivity mapActivity, @NonNull String wikidata, - List images) { - if (wikidata.startsWith(WIKIDATA_PREFIX)) { - StringBuilder rawResponse = new StringBuilder(); - String url = WIKIDATA_API_ENDPOINT + ACTION + wikidata + FORMAT_JSON; - String error = NetworkUtils.sendGetRequest(url, null, rawResponse); - if (error == null) { - try { - Gson gson = new Gson(); - WikipediaResponse response = gson.fromJson(rawResponse.toString(), WikipediaResponse.class); - for (WikiImage img : getImageData(response)) { - images.add(new WikiImageCard(mapActivity, img)); + public static void addWikidataImageCards(@NonNull MapActivity mapActivity, @NonNull String wikidataId, + @NonNull List imageCards) { + if (wikidataId.startsWith(WIKIDATA_PREFIX)) { + String url = WIKIDATA_API_ENDPOINT + WIKIDATA_ACTION + wikidataId + FORMAT_JSON; + WikidataResponse response = + (WikidataResponse) sendWikipediaApiRequest(url, WikidataResponse.class); + if (response != null) { + for (P18 p18 : response.claims.p18) { + String imageFileName = p18.mainsnak.datavalue.value; + if (imageFileName != null) { + addImageCard(mapActivity, imageCards, imageFileName); } - return; - } catch (JsonSyntaxException e) { - error = e.getLocalizedMessage(); } } - LOG.error(error); } else { - LOG.error("Wrong WikiMedia ID"); + LOG.error("Wrong Wikidata ID"); } } - private static List getImageData(WikipediaResponse response) { - List images = new ArrayList<>(); - for (P18 p18 : response.claims.p18) { - String imageFileName = p18.mainsnak.datavalue.value; - if (imageFileName != null) { - try { - String imageName = URLDecoder.decode(imageFileName, "UTF-8"); - imageFileName = imageName.replace(" ", "_"); - imageName = imageName.substring(0, imageName.lastIndexOf(".")); - String[] urlHashParts = getHash(imageFileName); - - String imageHiResUrl = IMAGE_BASE_URL + - urlHashParts[0] + "/" + urlHashParts[1] + "/" + - imageFileName; - String imageStubUrl = IMAGE_BASE_URL + "thumb/" + - urlHashParts[0] + "/" + urlHashParts[1] + "/" + - imageFileName + "/" + THUMB_SIZE + "px-" + - imageFileName; - images.add(new WikiImage(imageName, imageStubUrl, imageHiResUrl)); - - } catch (UnsupportedEncodingException e) { - LOG.error(e.getLocalizedMessage()); + public static void addWikimediaImageCards(@NonNull MapActivity mapActivity, @NonNull String wikiMediaTagContent, + @NonNull List imageCards) { + if (wikiMediaTagContent.startsWith(WIKIMEDIA_FILE)) { + String fileName = wikiMediaTagContent.substring(WIKIMEDIA_FILE.length()); + addImageCard(mapActivity, imageCards, fileName); + } else if (wikiMediaTagContent.startsWith(WIKIMEDIA_CATEGORY)) { + String url = WIKIMEDIA_API_ENDPOINT + WIKIMEDIA_ACTION + wikiMediaTagContent + CM_LIMIT + FORMAT_JSON; + WikimediaResponse response = + (WikimediaResponse) sendWikipediaApiRequest(url, WikimediaResponse.class); + if (response != null) { + List subCategories = new ArrayList<>(); + for (Categorymember cm : response.query.categorymembers) { + String memberTitle = cm.title; + if (memberTitle != null) { + if (memberTitle.startsWith(WIKIMEDIA_CATEGORY)) { + subCategories.add(memberTitle); + } else { + addWikimediaImageCards(mapActivity, memberTitle, imageCards); + } + } + } + for (String subCategory : subCategories) { + addWikimediaImageCards(mapActivity, subCategory, imageCards); } } + } else { + LOG.error("Wrong Wikimedia category member"); } - return images; + } + + private static Object sendWikipediaApiRequest(@NonNull String url, @NonNull Class responseClass) { + StringBuilder rawResponse = new StringBuilder(); + String errorMessage = NetworkUtils.sendGetRequest(url, null, rawResponse); + if (errorMessage == null) { + try { + return new Gson().fromJson(rawResponse.toString(), responseClass); + } catch (JsonSyntaxException e) { + errorMessage = e.getLocalizedMessage(); + } + } + LOG.error(errorMessage); + return null; + } + + private static void addImageCard(@NonNull MapActivity mapActivity, @NonNull List images, + @NonNull String fileName) { + WikiImage img = getImageData(fileName); + if (img != null) { + images.add(new WikiImageCard(mapActivity, img)); + } + } + + private static WikiImage getImageData(@NonNull String imageFileName) { + try { + String imageName = URLDecoder.decode(imageFileName, "UTF-8"); + imageFileName = imageName.replace(" ", "_"); + imageName = imageName.substring(0, imageName.lastIndexOf(".")); + String[] urlHashParts = getHash(imageFileName); + + String imageHiResUrl = IMAGE_BASE_URL + + urlHashParts[0] + "/" + urlHashParts[1] + "/" + + imageFileName; + + String imageStubUrl = IMAGE_BASE_URL + "thumb/" + + urlHashParts[0] + "/" + urlHashParts[1] + "/" + + imageFileName + "/" + THUMB_SIZE + "px-" + + imageFileName; + + return new WikiImage(imageName, imageStubUrl, imageHiResUrl); + + } catch (UnsupportedEncodingException e) { + LOG.error(e.getLocalizedMessage()); + } + return null; } @NonNull @@ -88,19 +138,23 @@ public class WikiImageHelper { return new String[]{md5.substring(0, 1), md5.substring(0, 2)}; } + // Wikidata response classes + private static class WikidataResponse { + @SerializedName("claims") + @Expose + private Claims claims; + } + private static class Claims { @SerializedName("P18") @Expose private List p18 = null; } - private static class Datavalue { - @SerializedName("value") + private static class P18 { + @SerializedName("mainsnak") @Expose - private String value; - @SerializedName("type") - @Expose - private String type; + private Mainsnak mainsnak; } private static class Mainsnak { @@ -112,15 +166,31 @@ public class WikiImageHelper { private String datatype; } - private static class P18 { - @SerializedName("mainsnak") + private static class Datavalue { + @SerializedName("value") @Expose - private Mainsnak mainsnak; + private String value; + @SerializedName("type") + @Expose + private String type; } - private static class WikipediaResponse { - @SerializedName("claims") + // Wikimedia response classes + public class WikimediaResponse { + @SerializedName("query") @Expose - private Claims claims; + private Query query; + } + + public class Query { + @SerializedName("categorymembers") + @Expose + private List categorymembers; + } + + public class Categorymember { + @SerializedName("title") + @Expose + private String title; } } From 8f0c7341cfb4aec92564e3e945c3b53eda7495b3 Mon Sep 17 00:00:00 2001 From: simon Date: Mon, 17 Aug 2020 17:28:33 +0300 Subject: [PATCH 08/52] favorite screen changes --- .../res/layout/point_editor_fragment_new.xml | 982 ++++++++++-------- OsmAnd/res/values/strings.xml | 3 + .../FavoritePointEditorFragmentNew.java | 6 + .../editors/PointEditorFragmentNew.java | 52 +- .../editors/WptPtEditorFragmentNew.java | 3 + 5 files changed, 582 insertions(+), 464 deletions(-) diff --git a/OsmAnd/res/layout/point_editor_fragment_new.xml b/OsmAnd/res/layout/point_editor_fragment_new.xml index edb092f31e..4dcaa46680 100644 --- a/OsmAnd/res/layout/point_editor_fragment_new.xml +++ b/OsmAnd/res/layout/point_editor_fragment_new.xml @@ -1,528 +1,586 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/point_edit_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@android:color/transparent" + android:fitsSystemWindows="true"> - + - + - + - + - + - + - + - + - + android:id="@+id/name_caption" + style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:hint="@string/shared_string_name" + app:boxBackgroundColor="@color/material_text_input_layout_bg"> - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + + - + - + - + - - + - + - - + - - + - + - + + - + - + + - + + - + - + - - + - - + - + - + - - + - + + - + - + - + - + - + + - + - + - + - + - + - - + - + - + - + - + - + - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 0981dc27a2..42178c713b 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,9 @@ Thx - Hardy --> + Enter address + Add address + Delete address Street-level imagery Select a track file for which a new segment will be added. Navigation profile diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java index b3159922cf..091b93f9a0 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java @@ -405,6 +405,12 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { return favorite != null ? favorite.getDescription() : ""; } + @Override + public String getAddressInitValue() { + FavouritePoint favourite = getFavorite(); + return favorite != null ? favorite.getAddress() : ""; + } + @Override public Drawable getNameIcon() { FavouritePoint favorite = getFavorite(); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java index 6751c9181c..69b4ea524a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java @@ -75,6 +75,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { private View view; private EditText nameEdit; private TextView addDelDescription; + private TextView addAddressBtn; private TextView addToHiddenGroupInfo; private boolean cancelled; private boolean nightMode; @@ -91,7 +92,9 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { private LinkedHashMap iconCategories; private OsmandApplication app; private View descriptionCaption; + private View addressCaption; private EditText descriptionEdit; + private EditText addressEdit; private int layoutHeightPrevious = 0; @SuppressLint("ClickableViewAccessibility") @@ -142,11 +145,12 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { hideKeyboard(); descriptionEdit.clearFocus(); nameEdit.clearFocus(); + addressEdit.clearFocus(); } } }); - int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; + final int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; ImageView toolbarAction = (ImageView) view.findViewById(R.id.toolbar_action); view.findViewById(R.id.background_layout).setBackgroundResource(nightMode ? R.color.app_bar_color_dark : R.color.list_background_color_light); @@ -218,38 +222,73 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { } descriptionEdit = (EditText) view.findViewById(R.id.description_edit); + addressEdit = (EditText) view.findViewById(R.id.address_edit); AndroidUtils.setTextPrimaryColor(view.getContext(), descriptionEdit, nightMode); + AndroidUtils.setTextPrimaryColor(view.getContext(), addressEdit, nightMode); AndroidUtils.setHintTextSecondaryColor(view.getContext(), descriptionEdit, nightMode); + AndroidUtils.setHintTextSecondaryColor(view.getContext(), addressEdit, nightMode); if (getDescriptionInitValue() != null) { descriptionEdit.setText(getDescriptionInitValue()); } + if (getAddressInitValue() != null){ + addressEdit.setText(getAddressInitValue()); + } descriptionCaption = view.findViewById(R.id.description); + addressCaption = view.findViewById(R.id.address); addDelDescription = (TextView) view.findViewById(R.id.description_button); + addAddressBtn = view.findViewById(R.id.address_button); addDelDescription.setTextColor(getResources().getColor(activeColorResId)); + addAddressBtn.setTextColor(getResources().getColor(activeColorResId)); + addAddressBtn.setCompoundDrawablesWithIntrinsicBounds( + app.getUIUtilities().getIcon(R.drawable.ic_action_location_off, activeColorResId),null,null,null); + addDelDescription.setCompoundDrawablesWithIntrinsicBounds( + app.getUIUtilities().getIcon(R.drawable.ic_action_description, activeColorResId),null,null,null); addDelDescription.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (descriptionCaption.getVisibility() != View.VISIBLE) { descriptionCaption.setVisibility(View.VISIBLE); addDelDescription.setText(view.getResources().getString(R.string.delete_description)); + addDelDescription.setCompoundDrawablesWithIntrinsicBounds( + app.getUIUtilities().getIcon(R.drawable.ic_action_delete_item, + activeColorResId),null,null,null); View descriptionEdit = view.findViewById(R.id.description_edit); descriptionEdit.requestFocus(); AndroidUtils.softKeyboardDelayed(descriptionEdit); } else { descriptionCaption.setVisibility(View.GONE); addDelDescription.setText(view.getResources().getString(R.string.add_description)); + addDelDescription.setCompoundDrawablesWithIntrinsicBounds( + app.getUIUtilities().getIcon(R.drawable.ic_action_location_off, + activeColorResId),null,null,null); AndroidUtils.hideSoftKeyboard(requireActivity(), descriptionEdit); descriptionEdit.clearFocus(); } } }); + addAddressBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (addressCaption.getVisibility() != View.VISIBLE) { + addressCaption.setVisibility(View.VISIBLE); + addAddressBtn.setText(view.getResources().getString(R.string.delete_address)); + View addressEdit = view.findViewById(R.id.address_edit); + addressEdit.requestFocus(); + AndroidUtils.softKeyboardDelayed(addressEdit); + } else { + addressCaption.setVisibility(View.GONE); + addAddressBtn.setText(view.getResources().getString(R.string.add_address)); + AndroidUtils.hideSoftKeyboard(requireActivity(), addressEdit); + addressEdit.clearFocus(); + } + } + }); nameIcon.setImageDrawable(getNameIcon()); if (app.accessibilityEnabled()) { nameCaption.setFocusable(true); nameEdit.setHint(R.string.access_hint_enter_name); - descriptionEdit.setHint(R.string.access_hint_enter_description); } View deleteButton = view.findViewById(R.id.button_delete_container); @@ -348,6 +387,13 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { descriptionCaption.setVisibility(View.GONE); addDelDescription.setText(app.getString(R.string.add_description)); } + if (!addressEdit.getText().toString().isEmpty() || addressEdit.hasFocus()) { + addressCaption.setVisibility(View.VISIBLE); + addAddressBtn.setText(app.getString(R.string.delete_address)); + } else { + addressCaption.setVisibility(View.GONE); + addAddressBtn.setText(app.getString(R.string.add_address)); + } } private void createGroupSelector() { @@ -754,6 +800,8 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { public abstract String getDescriptionInitValue(); + public abstract String getAddressInitValue(); + public abstract Drawable getNameIcon(); public abstract Drawable getCategoryIcon(); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java index 9142e13d6f..92d6368a04 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java @@ -402,6 +402,9 @@ public class WptPtEditorFragmentNew extends PointEditorFragmentNew { return wpt != null ? wpt.desc : ""; } + @Override + public String getAddressInitValue() { return ""; } + @Override public Drawable getNameIcon() { WptPt wptPt = getWpt(); From 2bd533e496c4a6ce90c5e2c25c1bbb50153540b1 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 6 Aug 2020 20:41:06 +0300 Subject: [PATCH 09/52] Add ImportTrackCard --- OsmAnd/res/layout/import_track_card.xml | 25 +++++++ OsmAnd/res/values/strings.xml | 3 + .../osmand/plus/base/ContextMenuFragment.java | 2 +- .../net/osmand/plus/helpers/ImportHelper.java | 23 ++++--- .../other/RoutePreferencesMenu.java | 6 +- .../StartPlanRouteBottomSheet.java | 11 +-- .../plus/myplaces/FavoritesActivity.java | 22 ++---- .../RouteOptionsBottomSheet.java | 68 ++++++++++--------- .../RoutingOptionsHelper.java | 16 ++--- .../cards/ImportTrackCard.java | 54 +++++++++++++++ 10 files changed, 148 insertions(+), 82 deletions(-) create mode 100644 OsmAnd/res/layout/import_track_card.xml create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ImportTrackCard.java diff --git a/OsmAnd/res/layout/import_track_card.xml b/OsmAnd/res/layout/import_track_card.xml new file mode 100644 index 0000000000..50cb493196 --- /dev/null +++ b/OsmAnd/res/layout/import_track_card.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 90990a2b78..f3448fd00d 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,9 @@ Thx - Hardy --> + Choose track file to follow or import it from device. + Choose track file to follow + Follow track In case of reverse direction Are you sure you want to close Plan route without saving? You will lose all changes. Street-level imagery diff --git a/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java index de3068cf5a..804d14f35c 100644 --- a/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java @@ -1024,7 +1024,7 @@ public abstract class ContextMenuFragment extends BaseOsmAndFragment { } } - protected static boolean showInstance(@NonNull MapActivity mapActivity, ContextMenuFragment fragment) { + public static boolean showInstance(@NonNull MapActivity mapActivity, ContextMenuFragment fragment) { try { mapActivity.getSupportFragmentManager() .beginTransaction() diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index 477026fd57..d94e75846d 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -627,15 +627,7 @@ public class ImportHelper { return; } final OsmandApplication app = mapActivity.getMyApplication(); - Intent intent = new Intent(); - String action; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - action = Intent.ACTION_OPEN_DOCUMENT; - } else { - action = Intent.ACTION_GET_CONTENT; - } - intent.setAction(action); - intent.setType("*/*"); + Intent intent = ImportHelper.getImportTrackIntent(); ActivityResultListener listener = new ActivityResultListener(IMPORT_FILE_REQUEST, new ActivityResultListener.OnActivityResultListener() { @Override @@ -675,6 +667,19 @@ public class ImportHelper { mapActivity.startActivityForResult(intent, IMPORT_FILE_REQUEST); } + public static Intent getImportTrackIntent() { + Intent intent = new Intent(); + String action; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + action = Intent.ACTION_OPEN_DOCUMENT; + } else { + action = Intent.ACTION_GET_CONTENT; + } + intent.setAction(action); + intent.setType("*/*"); + return intent; + } + private void handleOsmAndSettingsImport(Uri intentUri, String fileName, Bundle extras, CallbackWithObject> callback) { if (extras != null && extras.containsKey(SettingsHelper.SETTINGS_VERSION_KEY) && extras.containsKey(SettingsHelper.SETTINGS_LATEST_CHANGES_KEY)) { int version = extras.getInt(SettingsHelper.SETTINGS_VERSION_KEY, -1); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java index 7775d91119..78d1c75f32 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java @@ -34,7 +34,7 @@ import net.osmand.plus.helpers.FileNameTranslationHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.AvoidRoadsRoutingParameter; -import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.GpxLocalRoutingParameter; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.FollowTrackRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.InterruptMusicRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameterGroup; @@ -163,7 +163,7 @@ public class RoutePreferencesMenu { btn.performClick(); } else if (obj instanceof AvoidRoadsRoutingParameter) { routingOptionsHelper.selectRestrictedRoads(mapActivity); - } else if (obj instanceof GpxLocalRoutingParameter) { + } else if (obj instanceof FollowTrackRoutingParameter) { showOptionsMenu((TextView) view.findViewById(R.id.description)); } else { CheckBox ch = (CheckBox) view.findViewById(R.id.toggle_item); @@ -287,7 +287,7 @@ public class RoutePreferencesMenu { return v; } - if (parameter instanceof GpxLocalRoutingParameter) { + if (parameter instanceof FollowTrackRoutingParameter) { View v = mapActivity.getLayoutInflater().inflate(R.layout.plan_route_gpx, null); AndroidUtils.setListItemBackground(mapActivity, v, nightMode); AndroidUtils.setTextPrimaryColor(mapActivity, (TextView) v.findViewById(R.id.title), nightMode); diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java b/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java index 409b7f875a..421eef5764 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java @@ -4,7 +4,6 @@ import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.view.View; @@ -150,15 +149,7 @@ public class StartPlanRouteBottomSheet extends MenuBottomSheetDialogFragment { } private void importTrack() { - Intent intent = new Intent(); - String action; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - action = Intent.ACTION_OPEN_DOCUMENT; - } else { - action = Intent.ACTION_GET_CONTENT; - } - intent.setAction(action); - intent.setType("*/*"); + Intent intent = ImportHelper.getImportTrackIntent(); try { startActivityForResult(intent, OPEN_GPX_DOCUMENT_REQUEST); } catch (ActivityNotFoundException e) { diff --git a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java index 5022942bf8..502bd11212 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java @@ -6,7 +6,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.text.Spannable; import android.text.SpannableStringBuilder; @@ -23,16 +22,16 @@ import androidx.viewpager.widget.ViewPager; import net.osmand.PlatformUtil; import net.osmand.data.PointDescription; -import net.osmand.plus.settings.backend.OsmAndAppCustomization; import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.FavoritesTreeFragment; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.TabActivity; import net.osmand.plus.helpers.ImportHelper; +import net.osmand.plus.settings.backend.OsmAndAppCustomization; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.views.controls.PagerSlidingTabStrip; import org.apache.commons.logging.Log; @@ -98,7 +97,7 @@ public class FavoritesActivity extends TabActivity { } public void addTrack() { - Intent intent = getImportGpxIntent(); + Intent intent = ImportHelper.getImportTrackIntent(); try { startActivityForResult(intent, OPEN_GPX_DOCUMENT_REQUEST); } catch (ActivityNotFoundException e) { @@ -107,7 +106,7 @@ public class FavoritesActivity extends TabActivity { } public void importFavourites() { - Intent intent = getImportGpxIntent(); + Intent intent = ImportHelper.getImportTrackIntent(); try { startActivityForResult(intent, IMPORT_FAVOURITES_REQUEST); } catch (ActivityNotFoundException e) { @@ -115,19 +114,6 @@ public class FavoritesActivity extends TabActivity { } } - private Intent getImportGpxIntent() { - Intent intent = new Intent(); - String action; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - action = Intent.ACTION_OPEN_DOCUMENT; - } else { - action = Intent.ACTION_GET_CONTENT; - } - intent.setAction(action); - intent.setType("*/*"); - return intent; - } - @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == OPEN_GPX_DOCUMENT_REQUEST && resultCode == Activity.RESULT_OK) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java index 808418aa05..23fcd3fe9c 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java @@ -22,17 +22,17 @@ import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; import net.osmand.GPXUtilities; import net.osmand.StateChangedListener; -import net.osmand.plus.UiUtilities; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmAndLocationSimulation; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.actions.OsmAndDialogs; +import net.osmand.plus.base.ContextMenuFragment; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton; +import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithDescription; import net.osmand.plus.base.bottomsheetmenu.SimpleBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerStartItem; import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem; @@ -40,7 +40,7 @@ import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.AvoidPTTypesRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.AvoidRoadsRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.DividerItem; -import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.GpxLocalRoutingParameter; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.FollowTrackRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameterGroup; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.MuteSoundRoutingParameter; @@ -50,6 +50,8 @@ import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.ShowAlongTheRou import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.TimeConditionalRoutingItem; import net.osmand.plus.routing.RouteProvider; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.fragments.BaseSettingsFragment; import net.osmand.router.GeneralRouter; @@ -121,7 +123,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { items.add(createAvoidPTTypesItem(optionsItem)); } else if (optionsItem instanceof AvoidRoadsRoutingParameter) { items.add(createAvoidRoadsItem(optionsItem)); - } else if (optionsItem instanceof GpxLocalRoutingParameter) { + } else if (optionsItem instanceof FollowTrackRoutingParameter) { items.add(createGpxRoutingItem(optionsItem)); } else if (optionsItem instanceof TimeConditionalRoutingItem) { items.add(createTimeConditionalRoutingItem(optionsItem)); @@ -346,30 +348,32 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { } private BaseBottomSheetItem createGpxRoutingItem(final LocalRoutingParameter optionsItem) { - View view = mapActivity.getLayoutInflater().inflate(R.layout.plan_route_gpx, null); - AndroidUtils.setTextPrimaryColor(mapActivity, (TextView) view.findViewById(R.id.title), nightMode); - final TextView gpxDescription = (TextView) view.findViewById(R.id.description); - - ((ImageView) view.findViewById(R.id.icon)).setImageDrawable(getContentIcon(optionsItem.getActiveIconId())); - ((ImageView) view.findViewById(R.id.dropDownIcon)).setImageDrawable(getContentIcon(R.drawable.ic_action_arrow_drop_down)); - - RouteProvider.GPXRouteParamsBuilder rp = mapActivity.getRoutingHelper().getCurrentGPXRoute(); - String gpxName; - if (rp == null) { - AndroidUtils.setTextSecondaryColor(mapActivity, gpxDescription, nightMode); - gpxName = mapActivity.getString(R.string.choose_track_file_to_follow); + RouteProvider.GPXRouteParamsBuilder routeParamsBuilder = mapActivity.getRoutingHelper().getCurrentGPXRoute(); + String description; + int descriptionColorId; + if (routeParamsBuilder == null) { + descriptionColorId = nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light; + description = mapActivity.getString(R.string.follow_track_descr); } else { - gpxDescription.setTextColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light)); - gpxName = new File(rp.getFile().path).getName(); + descriptionColorId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; + description = new File(routeParamsBuilder.getFile().path).getName(); } - gpxDescription.setText(gpxName); - return new BaseBottomSheetItem.Builder().setCustomView(view).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - showOptionsMenu(gpxDescription); - } - }).create(); + return new BottomSheetItemWithDescription.Builder() + .setDescription(description) + .setDescriptionColorId(descriptionColorId) + .setIcon(getContentIcon(optionsItem.getActiveIconId())) + .setTitle(getString(R.string.follow_track)) + .setLayoutId(R.layout.bottom_sheet_item_with_descr_56dp) + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + FollowTrackOptionsFragment trackOptionsFragment = new FollowTrackOptionsFragment(); + ContextMenuFragment.showInstance(mapActivity, trackOptionsFragment); + dismiss(); + } + }) + .create(); } private BaseBottomSheetItem createOtherSettingsRoutingItem(final LocalRoutingParameter optionsItem) { @@ -577,7 +581,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { GeneralRouter.USE_SHORTEST_WAY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - GpxLocalRoutingParameter.KEY, + FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -590,7 +594,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { ShowAlongTheRouteItem.KEY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - GpxLocalRoutingParameter.KEY, + FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -601,7 +605,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { ShowAlongTheRouteItem.KEY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - GpxLocalRoutingParameter.KEY, + FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -619,7 +623,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { ShowAlongTheRouteItem.KEY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - GpxLocalRoutingParameter.KEY, + FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -627,7 +631,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, ShowAlongTheRouteItem.KEY, DividerItem.KEY, - GpxLocalRoutingParameter.KEY, + FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -635,7 +639,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, ShowAlongTheRouteItem.KEY, DividerItem.KEY, - GpxLocalRoutingParameter.KEY, + FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 8357a606fe..42c7f7bd28 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -294,9 +294,7 @@ public class RoutingOptionsHelper { if (item != null) { updateRoutingParameterIcons(item); list.add(item); - if (item instanceof GpxLocalRoutingParameter) { - list.addAll(getGpxRouterParameters(am)); - } else if (item instanceof TimeConditionalRoutingItem) { + if (item instanceof TimeConditionalRoutingItem) { list.addAll(getOsmandRouterParameters(am)); } } @@ -395,8 +393,8 @@ public class RoutingOptionsHelper { return new AvoidPTTypesRoutingParameter(); case AvoidRoadsRoutingParameter.KEY: return new AvoidRoadsRoutingParameter(); - case GpxLocalRoutingParameter.KEY: - return new GpxLocalRoutingParameter(); + case FollowTrackRoutingParameter.KEY: + return new FollowTrackRoutingParameter(); case TimeConditionalRoutingItem.KEY: return new TimeConditionalRoutingItem(); case OtherSettingsRoutingParameter.KEY: @@ -443,7 +441,7 @@ public class RoutingOptionsHelper { list.add(2, new InterruptMusicRoutingParameter()); list.add(3, new AvoidRoadsRoutingParameter()); list.add(4, new TimeConditionalRoutingItem()); - list.add(new GpxLocalRoutingParameter()); + list.add(new FollowTrackRoutingParameter()); list.add(new OtherSettingsRoutingParameter()); return list; } @@ -900,9 +898,9 @@ public class RoutingOptionsHelper { } - public static class GpxLocalRoutingParameter extends LocalRoutingParameter { + public static class FollowTrackRoutingParameter extends LocalRoutingParameter { - public static final String KEY = "GpxLocalRoutingParameter"; + public static final String KEY = "FollowTrackRoutingParameter"; public String getKey() { return KEY; @@ -912,7 +910,7 @@ public class RoutingOptionsHelper { return false; } - public GpxLocalRoutingParameter() { + public FollowTrackRoutingParameter() { super(null); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ImportTrackCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ImportTrackCard.java new file mode 100644 index 0000000000..78633b080e --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ImportTrackCard.java @@ -0,0 +1,54 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.graphics.Typeface; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.style.ForegroundColorSpan; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.FontCache; + +public class ImportTrackCard extends BaseCard { + + public ImportTrackCard(@NonNull MapActivity mapActivity) { + super(mapActivity); + } + + @Override + public int getCardLayoutId() { + return R.layout.import_track_card; + } + + @Override + protected void updateContent() { + int color = ContextCompat.getColor(app, R.color.preference_category_title); + Typeface typeface = FontCache.getRobotoMedium(app); + String importTrack = app.getString(R.string.plan_route_import_track); + SpannableString spannable = UiUtilities.createCustomFontSpannable(typeface, importTrack, importTrack, importTrack); + spannable.setSpan(new ForegroundColorSpan(color), 0, importTrack.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + TextView title = view.findViewById(R.id.title); + title.setText(spannable); + + ImageView icon = view.findViewById(R.id.icon); + icon.setImageDrawable(getContentIcon(R.drawable.ic_action_import_to)); + + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardPressed(ImportTrackCard.this); + } + } + }); + } +} \ No newline at end of file From 040de95f9a0aa0a2cf246405403d7fce8c40f6c3 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 01:39:11 +0300 Subject: [PATCH 10/52] Add SelectTrackToFollowCard --- OsmAnd/res/layout/follow_track_card.xml | 40 +++++ .../plus/dialogs/MapLayerMenuListener.java | 7 +- .../net/osmand/plus/helpers/GpxUiHelper.java | 11 +- .../cards/SelectTrackToFollowCard.java | 153 ++++++++++++++++++ 4 files changed, 204 insertions(+), 7 deletions(-) create mode 100644 OsmAnd/res/layout/follow_track_card.xml create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java diff --git a/OsmAnd/res/layout/follow_track_card.xml b/OsmAnd/res/layout/follow_track_card.xml new file mode 100644 index 0000000000..71b865aec8 --- /dev/null +++ b/OsmAnd/res/layout/follow_track_card.xml @@ -0,0 +1,40 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java b/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java index 91e55e1d73..053e2c7536 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java @@ -21,6 +21,7 @@ import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivityLayers; import net.osmand.plus.activities.PluginActivity; +import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; @@ -29,7 +30,6 @@ import net.osmand.plus.transport.TransportLinesMenu; import net.osmand.util.Algorithms; import java.io.File; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -47,10 +47,7 @@ final class MapLayerMenuListener extends OnRowItemClick { GpxSelectionHelper selectedGpxHelper = mapActivity.getMyApplication().getSelectedGpxHelper(); List selectedGpxFiles = selectedGpxHelper.getSelectedGPXFiles(); - List files = new ArrayList<>(); - for (SelectedGpxFile file : selectedGpxFiles) { - files.add(file.getGpxFile().path); - } + List files = GpxUiHelper.getSelectedTrackNames(mapActivity.getMyApplication()); if (selectedGpxFiles.isEmpty()) { Map fls = selectedGpxHelper.getSelectedGpxFilesBackUp(); for (Map.Entry f : fls.entrySet()) { diff --git a/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java b/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java index c3dc6c2ae6..da701851d1 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java @@ -810,6 +810,14 @@ public class GpxUiHelper { } } + public static List getSelectedTrackNames(OsmandApplication app) { + List trackNames = new ArrayList<>(); + for (SelectedGpxFile file : app.getSelectedGpxHelper().getSelectedGPXFiles()) { + trackNames.add(file.getGpxFile().path); + } + return trackNames; + } + public static List getSortedGPXFilesInfoByDate(File dir, boolean absolutePath) { final List list = new ArrayList<>(); readGpxDirectory(dir, list, "", absolutePath); @@ -913,8 +921,7 @@ public class GpxUiHelper { } } - - static void loadGPXFileInDifferentThread(final Activity activity, final CallbackWithObject callbackWithObject, + public static void loadGPXFileInDifferentThread(final Activity activity, final CallbackWithObject callbackWithObject, final File dir, final GPXFile currentFile, final String... filename) { final ProgressDialog dlg = ProgressDialog.show(activity, activity.getString(R.string.loading_smth, ""), activity.getString(R.string.loading_data)); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java new file mode 100644 index 0000000000..f5682735f3 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java @@ -0,0 +1,153 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import net.osmand.AndroidUtils; +import net.osmand.CallbackWithObject; +import net.osmand.IndexConstants; +import net.osmand.plus.GPXDatabase.GpxDataItem; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.GpxUiHelper; +import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; +import net.osmand.plus.mapcontextmenu.other.HorizontalSelectionAdapter; +import net.osmand.util.Algorithms; + +import java.io.File; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class SelectTrackToFollowCard extends BaseCard { + + private Map> data; + + private List gpxInfoList; + private String selectedCategory; + private CallbackWithObject gpxInfoCallback; + + public SelectTrackToFollowCard(MapActivity mapActivity, List gpxInfoList) { + super(mapActivity); + this.gpxInfoList = gpxInfoList; + data = getGpxInfoCategories(); + } + + public void setGpxInfoCallback(CallbackWithObject gpxInfoCallback) { + this.gpxInfoCallback = gpxInfoCallback; + } + + @Override + public int getCardLayoutId() { + return R.layout.follow_track_card; + } + + @Override + protected void updateContent() { + setupCategoriesRow(); + setupTracksItems(); + } + + private void setupTracksItems() { + LinearLayout tracks = view.findViewById(R.id.items); + tracks.removeAllViews(); + + final List infoItems = data.get(selectedCategory); + if (!Algorithms.isEmpty(infoItems)) { + int minCardHeight = app.getResources().getDimensionPixelSize(R.dimen.route_info_card_row_min_height); + int contentPadding = app.getResources().getDimensionPixelSize(R.dimen.content_padding); + + LayoutInflater inflater = UiUtilities.getInflater(mapActivity, nightMode); + for (int i = 0; i < infoItems.size(); i++) { + final GPXInfo item = infoItems.get(i); + View trackView = inflater.inflate(R.layout.gpx_track_item, tracks, false); + + String fileName = Algorithms.getFileWithoutDirs(item.getFileName()); + String title = GpxUiHelper.getGpxTitle(fileName); + GpxDataItem dataItem = getDataItem(item); + GpxUiHelper.updateGpxInfoView(trackView, title, item, dataItem, false, app); + + ImageView icon = trackView.findViewById(R.id.icon); + icon.setImageDrawable(getContentIcon(R.drawable.ic_action_polygom_dark)); + icon.setVisibility(View.VISIBLE); + + LinearLayout container = trackView.findViewById(R.id.container); + container.setMinimumHeight(minCardHeight); + AndroidUtils.setPadding(container, contentPadding, 0, 0, 0); + trackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (gpxInfoCallback != null) { + gpxInfoCallback.processResult(item); + } + } + }); + tracks.addView(trackView); + } + } + } + + private GpxDataItem getDataItem(GPXInfo info) { + return app.getGpxDbHelper().getItem(new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), info.getFileName())); + } + + private void setupCategoriesRow() { + final HorizontalSelectionAdapter selectionAdapter = new HorizontalSelectionAdapter(app, nightMode); + selectionAdapter.setItems(new ArrayList<>(data.keySet())); + selectionAdapter.setSelectedItem(selectedCategory); + selectionAdapter.setListener(new HorizontalSelectionAdapter.HorizontalSelectionAdapterListener() { + @Override + public void onItemSelected(String item) { + setSelectedCategory(item); + selectionAdapter.notifyDataSetChanged(); + } + }); + + RecyclerView iconCategoriesRecyclerView = view.findViewById(R.id.group_name_recycler_view); + iconCategoriesRecyclerView.setAdapter(selectionAdapter); + iconCategoriesRecyclerView.setLayoutManager(new LinearLayoutManager(app, RecyclerView.HORIZONTAL, false)); + selectionAdapter.notifyDataSetChanged(); + } + + private void setSelectedCategory(String category) { + selectedCategory = category; + setupTracksItems(); + } + + private Map> getGpxInfoCategories() { + String all = app.getString(R.string.shared_string_all); + String visible = app.getString(R.string.shared_string_visible); + Map> gpxInfoCategories = new LinkedHashMap<>(); + for (GPXInfo info : gpxInfoList) { + if (info.isSelected()) { + addGpxInfoCategory(gpxInfoCategories, info, visible); + } + if (!Algorithms.isEmpty(info.getFileName())) { + File file = new File(info.getFileName()); + String dirName = file.getParent(); + if (dirName != null && !IndexConstants.GPX_INDEX_DIR.equals(dirName)) { + addGpxInfoCategory(gpxInfoCategories, info, dirName); + } + } + addGpxInfoCategory(gpxInfoCategories, info, all); + } + + return gpxInfoCategories; + } + + private void addGpxInfoCategory(Map> data, GPXInfo info, String category) { + List items = data.get(category); + if (items == null) { + items = new ArrayList<>(); + data.put(category, items); + } + items.add(info); + } +} \ No newline at end of file From 4c9b9f6f5c9760964baaf9a7e631c34130ffb312 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 02:19:45 +0300 Subject: [PATCH 11/52] Add follow track screen initial commit --- OsmAnd/res/layout/follow_track_options.xml | 142 +++++++ .../FollowTrackFragment.java | 383 ++++++++++++++++++ .../RouteOptionsBottomSheet.java | 2 +- .../cards/SelectTrackToFollowCard.java | 11 +- 4 files changed, 531 insertions(+), 7 deletions(-) create mode 100644 OsmAnd/res/layout/follow_track_options.xml create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java diff --git a/OsmAnd/res/layout/follow_track_options.xml b/OsmAnd/res/layout/follow_track_options.xml new file mode 100644 index 0000000000..c38f42a8e0 --- /dev/null +++ b/OsmAnd/res/layout/follow_track_options.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java new file mode 100644 index 0000000000..0bd4432a1d --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -0,0 +1,383 @@ +package net.osmand.plus.routepreparationmenu; + +import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.FrameLayout; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.ScrollView; + +import androidx.annotation.NonNull; + +import net.osmand.AndroidUtils; +import net.osmand.CallbackWithObject; +import net.osmand.GPXUtilities.GPXFile; +import net.osmand.IndexConstants; +import net.osmand.PlatformUtil; +import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.UiUtilities.DialogButtonType; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.ContextMenuScrollFragment; +import net.osmand.plus.helpers.AndroidUiHelper; +import net.osmand.plus.helpers.GpxUiHelper; +import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; +import net.osmand.plus.helpers.ImportHelper; +import net.osmand.plus.routepreparationmenu.cards.BaseCard; +import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; +import net.osmand.plus.routepreparationmenu.cards.ImportTrackCard; +import net.osmand.plus.routepreparationmenu.cards.SelectTrackToFollowCard; +import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; + +import org.apache.commons.logging.Log; + +import java.io.File; +import java.util.List; + + +public class FollowTrackFragment extends ContextMenuScrollFragment implements CardListener { + + public static final String TAG = FollowTrackFragment.class.getName(); + + private static final Log log = PlatformUtil.getLog(FollowTrackFragment.class); + + private OsmandApplication app; + private ImportHelper importHelper; + + private GPXFile gpxFile; + + private int menuTitleHeight; + + @Override + public int getMainLayoutId() { + return R.layout.follow_track_options; + } + + @Override + public int getHeaderViewHeight() { + return menuTitleHeight; + } + + @Override + public boolean isHeaderViewDetached() { + return false; + } + + @Override + public int getToolbarHeight() { + return 0; + } + + public float getMiddleStateKoef() { + return 0.5f; + } + + @Override + public int getSupportedMenuStatesPortrait() { + return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + app = requireMyApplication(); + MapActivity mapActivity = requireMapActivity(); + importHelper = new ImportHelper(mapActivity, getMyApplication(), null); + + GPXRouteParamsBuilder routeParamsBuilder = app.getRoutingHelper().getCurrentGPXRoute(); + if (routeParamsBuilder != null) { + gpxFile = routeParamsBuilder.getFile(); + } + + Bundle arguments = getArguments(); + if (savedInstanceState != null) { + + } else if (arguments != null) { + + } + } + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = super.onCreateView(inflater, container, savedInstanceState); + if (view != null) { + ImageButton closeButton = view.findViewById(R.id.close_button); + closeButton.setImageDrawable(getContentIcon(AndroidUtils.getNavigationIconResId(app))); + closeButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dismiss(); + } + }); + + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + openMenuHeaderOnly(); + } + }); + + if (isPortrait()) { + updateCardsLayout(); + } + setupCards(); + setupButtons(view); + setupScrollShadow(); + if (!isPortrait()) { + int widthNoShadow = getLandscapeNoShadowWidth(); + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT); + params.gravity = Gravity.BOTTOM | Gravity.START; + view.findViewById(R.id.control_buttons).setLayoutParams(params); + } + enterTrackAppearanceMode(); + runLayoutListener(); + } + return view; + } + + private void setupCards() { + final MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + ViewGroup cardsContainer = getCardsContainer(); + cardsContainer.removeAllViews(); + + ImportTrackCard importTrackCard = new ImportTrackCard(mapActivity); + importTrackCard.setListener(this); + cardsContainer.addView(importTrackCard.build(mapActivity)); + + File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); + List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); + List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); + if (list.size() > 0) { + SelectTrackToFollowCard tracksCard = new SelectTrackToFollowCard(mapActivity, list); + tracksCard.setListener(this); + cardsContainer.addView(tracksCard.build(mapActivity)); + } + } + } + + @Override + protected void calculateLayout(View view, boolean initLayout) { + menuTitleHeight = view.findViewById(R.id.route_menu_top_shadow_all).getHeight() + + view.findViewById(R.id.control_buttons).getHeight() + - view.findViewById(R.id.buttons_shadow).getHeight(); + super.calculateLayout(view, initLayout); + } + + @Override + protected void setViewY(int y, boolean animated, boolean adjustMapPos) { + super.setViewY(y, animated, adjustMapPos); + updateStatusBarColor(); + } + + @Override + protected void updateMainViewLayout(int posY) { + super.updateMainViewLayout(posY); + updateStatusBarColor(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + exitTrackAppearanceMode(); + } + + private void enterTrackAppearanceMode() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); + AndroidUiHelper.setVisibility(mapActivity, portrait ? View.INVISIBLE : View.GONE, + R.id.map_left_widgets_panel, + R.id.map_right_widgets_panel, + R.id.map_center_info); + } + } + + private void exitTrackAppearanceMode() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + AndroidUiHelper.setVisibility(mapActivity, View.VISIBLE, + R.id.map_left_widgets_panel, + R.id.map_right_widgets_panel, + R.id.map_center_info, + R.id.map_search_button); + } + } + + @Override + public int getStatusBarColorId() { + View view = getView(); + if (view != null) { + boolean nightMode = isNightMode(); + if (getViewY() <= getFullScreenTopPosY() || !isPortrait()) { + if (Build.VERSION.SDK_INT >= 23 && !nightMode) { + view.setSystemUiVisibility(view.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + } + return nightMode ? R.color.divider_color_dark : R.color.divider_color_light; + } else { + if (Build.VERSION.SDK_INT >= 23 && !nightMode) { + view.setSystemUiVisibility(view.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + } + } + } + return -1; + } + + private void updateStatusBarColor() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.updateStatusBarColor(); + } + } + + @Override + public void onCardLayoutNeeded(@NonNull BaseCard card) { + + } + + @Override + public void onCardPressed(@NonNull BaseCard card) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + if (card instanceof ImportTrackCard) { + importTrack(); + } + } + } + + @Override + public void onCardButtonPressed(@NonNull BaseCard card, int buttonIndex) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + if (card instanceof SelectTrackToFollowCard) { + if (buttonIndex >= 0) { + loadAndFollowTrack((SelectTrackToFollowCard) card, buttonIndex); + } + } + } + } + + private void loadAndFollowTrack(SelectTrackToFollowCard card, int index) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null && index < card.getGpxInfoList().size()) { + GPXInfo gpxInfo = card.getGpxInfoList().get(index); + String fileName = gpxInfo.getFileName(); + SelectedGpxFile selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByName(fileName); + if (selectedGpxFile != null) { + selectTrackToFollow(selectedGpxFile.getGpxFile()); + } else { + CallbackWithObject callback = new CallbackWithObject() { + @Override + public boolean processResult(GPXFile[] result) { + selectTrackToFollow(result[0]); + return true; + } + }; + File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); + GpxUiHelper.loadGPXFileInDifferentThread(mapActivity, callback, dir, null, fileName); + } + } + } + + private void selectTrackToFollow(GPXFile gpxFile) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapActions().setGPXRouteParams(gpxFile); + app.getTargetPointsHelper().updateRouteAndRefresh(true); + app.getRoutingHelper().recalculateRouteDueToSettingsChange(); + } + } + + public void importTrack() { + Intent intent = ImportHelper.getImportTrackIntent(); + try { + startActivityForResult(intent, ImportHelper.IMPORT_FILE_REQUEST); + } catch (ActivityNotFoundException e) { + log.error(e.getMessage(), e); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == ImportHelper.IMPORT_FILE_REQUEST && resultCode == Activity.RESULT_OK) { + if (data != null) { + Uri uri = data.getData(); + importHelper.setGpxImportCompleteListener(new ImportHelper.OnGpxImportCompleteListener() { + @Override + public void onComplete(boolean success) { + importHelper.setGpxImportCompleteListener(null); + } + }); + if (!importHelper.handleGpxImport(uri, false, false)) { + log.debug("import completed!"); + } + } + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + private void updateCardsLayout() { + View mainView = getMainView(); + if (mainView != null) { + LinearLayout cardsContainer = getCardsContainer(); + View topShadow = getTopShadow(); + FrameLayout bottomContainer = getBottomContainer(); + if (getCurrentMenuState() == MenuState.HEADER_ONLY) { + topShadow.setVisibility(View.INVISIBLE); + bottomContainer.setBackgroundDrawable(null); + AndroidUtils.setBackground(mainView.getContext(), cardsContainer, isNightMode(), R.drawable.travel_card_bg_light, R.drawable.travel_card_bg_dark); + } else { + topShadow.setVisibility(View.VISIBLE); + AndroidUtils.setBackground(mainView.getContext(), bottomContainer, isNightMode(), R.color.card_and_list_background_light, R.color.card_and_list_background_dark); + AndroidUtils.setBackground(mainView.getContext(), cardsContainer, isNightMode(), R.color.card_and_list_background_light, R.color.card_and_list_background_dark); + } + } + } + + private void setupButtons(View view) { + View buttonsContainer = view.findViewById(R.id.buttons_container); + buttonsContainer.setBackgroundColor(AndroidUtils.getColorFromAttr(view.getContext(), R.attr.route_info_bg)); + + View cancelButton = view.findViewById(R.id.dismiss_button); + cancelButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + UiUtilities.setupDialogButton(isNightMode(), cancelButton, DialogButtonType.SECONDARY, R.string.shared_string_cancel); + } + + private void setupScrollShadow() { + int shadowIconId = isNightMode() ? R.drawable.bg_contextmenu_shadow : R.drawable.bg_contextmenu_shadow; + final Drawable shadowIcon = app.getUIUtilities().getIcon(shadowIconId); + + final ScrollView scrollView = getBottomScrollView(); + final FrameLayout bottomContainer = getBottomContainer(); + scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { + + @Override + public void onScrollChanged() { + int scrollY = scrollView.getScrollY(); + if (scrollY <= 0 && bottomContainer.getForeground() != null) { + bottomContainer.setForeground(null); + } else if (scrollY > 0 && bottomContainer.getForeground() == null) { + bottomContainer.setForeground(shadowIcon); + } + } + }); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java index 23fcd3fe9c..c012ff7632 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java @@ -368,7 +368,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - FollowTrackOptionsFragment trackOptionsFragment = new FollowTrackOptionsFragment(); + FollowTrackFragment trackOptionsFragment = new FollowTrackFragment(); ContextMenuFragment.showInstance(mapActivity, trackOptionsFragment); dismiss(); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java index f5682735f3..6de1ec24f9 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java @@ -9,7 +9,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import net.osmand.AndroidUtils; -import net.osmand.CallbackWithObject; import net.osmand.IndexConstants; import net.osmand.plus.GPXDatabase.GpxDataItem; import net.osmand.plus.R; @@ -32,7 +31,6 @@ public class SelectTrackToFollowCard extends BaseCard { private List gpxInfoList; private String selectedCategory; - private CallbackWithObject gpxInfoCallback; public SelectTrackToFollowCard(MapActivity mapActivity, List gpxInfoList) { super(mapActivity); @@ -40,8 +38,8 @@ public class SelectTrackToFollowCard extends BaseCard { data = getGpxInfoCategories(); } - public void setGpxInfoCallback(CallbackWithObject gpxInfoCallback) { - this.gpxInfoCallback = gpxInfoCallback; + public List getGpxInfoList() { + return gpxInfoList; } @Override @@ -84,8 +82,9 @@ public class SelectTrackToFollowCard extends BaseCard { trackView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (gpxInfoCallback != null) { - gpxInfoCallback.processResult(item); + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(SelectTrackToFollowCard.this, gpxInfoList.indexOf(item)); } } }); From 960848ecf528d1b6dbed353c304ad82fe9568c03 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 13:30:10 +0300 Subject: [PATCH 12/52] Use GpxTrackAdapter for tracks card --- OsmAnd/res/layout/follow_track_card.xml | 13 ++- OsmAnd/res/layout/follow_track_options.xml | 4 +- .../osmand/plus/base/ContextMenuFragment.java | 15 +-- .../plus/base/ContextMenuScrollFragment.java | 9 +- .../osmand/plus/helpers/GpxTrackAdapter.java | 5 +- .../FollowTrackFragment.java | 18 ++-- ...ollowCard.java => TracksToFollowCard.java} | 93 +++++++------------ .../plus/track/TrackAppearanceFragment.java | 3 +- 8 files changed, 74 insertions(+), 86 deletions(-) rename OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/{SelectTrackToFollowCard.java => TracksToFollowCard.java} (52%) diff --git a/OsmAnd/res/layout/follow_track_card.xml b/OsmAnd/res/layout/follow_track_card.xml index 71b865aec8..92ac768f60 100644 --- a/OsmAnd/res/layout/follow_track_card.xml +++ b/OsmAnd/res/layout/follow_track_card.xml @@ -16,7 +16,7 @@ android:focusable="false" /> - + android:layout_height="match_parent" + tools:itemCount="5" + tools:listitem="@layout/gpx_track_select_item" /> \ No newline at end of file diff --git a/OsmAnd/res/layout/follow_track_options.xml b/OsmAnd/res/layout/follow_track_options.xml index c38f42a8e0..73426d0b10 100644 --- a/OsmAnd/res/layout/follow_track_options.xml +++ b/OsmAnd/res/layout/follow_track_options.xml @@ -66,7 +66,7 @@ android:foreground="@drawable/bg_contextmenu_shadow" android:foregroundGravity="top|fill_horizontal"> - - + diff --git a/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java index 804d14f35c..664c2a8afe 100644 --- a/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/base/ContextMenuFragment.java @@ -66,9 +66,9 @@ public abstract class ContextMenuFragment extends BaseOsmAndFragment { private View view; private OnLayoutChangeListener containerLayoutListener; private View topShadow; + private View bottomScrollView; private LinearLayout cardsContainer; private FrameLayout bottomContainer; - private LockableScrollView bottomScrollView; private boolean portrait; private boolean nightMode; @@ -241,7 +241,7 @@ public abstract class ContextMenuFragment extends BaseOsmAndFragment { return bottomContainer; } - public LockableScrollView getBottomScrollView() { + public View getBottomScrollView() { return bottomScrollView; } @@ -278,14 +278,17 @@ public abstract class ContextMenuFragment extends BaseOsmAndFragment { mainView = view.findViewById(getMainViewId()); topShadow = view.findViewById(getTopShadowViewId()); - cardsContainer = (LinearLayout) view.findViewById(getCardsContainerViewId()); - bottomContainer = (FrameLayout) view.findViewById(getBottomContainerViewId()); - bottomScrollView = (LockableScrollView) view.findViewById(getBottomScrollViewId()); + cardsContainer = view.findViewById(getCardsContainerViewId()); + bottomContainer = view.findViewById(getBottomContainerViewId()); + bottomScrollView = view.findViewById(getBottomScrollViewId()); + + if (bottomScrollView instanceof LockableScrollView) { + ((LockableScrollView) bottomScrollView).setScrollingEnabled(false); + } ViewConfiguration vc = ViewConfiguration.get(context); final int touchSlop = vc.getScaledTouchSlop(); - bottomScrollView.setScrollingEnabled(false); if (getTopViewId() != 0) { View topView = view.findViewById(getTopViewId()); AndroidUtils.setBackground(app, topView, nightMode, R.color.card_and_list_background_light, R.color.card_and_list_background_dark); diff --git a/OsmAnd/src/net/osmand/plus/base/ContextMenuScrollFragment.java b/OsmAnd/src/net/osmand/plus/base/ContextMenuScrollFragment.java index 1314c08c6d..51f4278948 100644 --- a/OsmAnd/src/net/osmand/plus/base/ContextMenuScrollFragment.java +++ b/OsmAnd/src/net/osmand/plus/base/ContextMenuScrollFragment.java @@ -8,14 +8,15 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import net.osmand.plus.LockableScrollView; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivityLayers; import net.osmand.plus.base.ContextMenuFragment.ContextMenuFragmentListener; import net.osmand.plus.helpers.AndroidUiHelper; +import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.layers.MapControlsLayer; import net.osmand.plus.views.layers.MapInfoLayer; -import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.mapwidgets.widgets.RulerWidget; import java.util.Arrays; @@ -57,7 +58,11 @@ public abstract class ContextMenuScrollFragment extends ContextMenuFragment impl View view = super.onCreateView(inflater, container, savedInstanceState); if (view != null) { setListener(this); - getBottomScrollView().setScrollingEnabled(true); + + View bottomScrollView = getBottomScrollView(); + if (bottomScrollView instanceof LockableScrollView) { + ((LockableScrollView) bottomScrollView).setScrollingEnabled(true); + } mapBottomHudButtons = view.findViewById(R.id.map_controls_container); if (mapBottomHudButtons != null) { diff --git a/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java b/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java index 06717dc85d..01caa18083 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java +++ b/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java @@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView; import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; import net.osmand.IndexConstants; -import net.osmand.plus.GPXDatabase; import net.osmand.plus.GPXDatabase.GpxDataItem; import net.osmand.plus.GpxDbHelper; import net.osmand.plus.OsmAndFormatter; @@ -46,6 +45,10 @@ public class GpxTrackAdapter extends RecyclerView.Adapter getGpxInfoList() { + return gpxInfoList; + } + public void setGpxInfoList(List gpxInfoList) { this.gpxInfoList = gpxInfoList; } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 0bd4432a1d..edf89a9bdf 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -15,7 +15,6 @@ import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.LinearLayout; -import android.widget.ScrollView; import androidx.annotation.NonNull; @@ -38,7 +37,7 @@ import net.osmand.plus.helpers.ImportHelper; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.routepreparationmenu.cards.ImportTrackCard; -import net.osmand.plus.routepreparationmenu.cards.SelectTrackToFollowCard; +import net.osmand.plus.routepreparationmenu.cards.TracksToFollowCard; import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; import org.apache.commons.logging.Log; @@ -84,6 +83,11 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca return 0.5f; } + @Override + public int getInitialMenuState() { + return MenuState.HALF_SCREEN; + } + @Override public int getSupportedMenuStatesPortrait() { return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN; @@ -161,7 +165,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); if (list.size() > 0) { - SelectTrackToFollowCard tracksCard = new SelectTrackToFollowCard(mapActivity, list); + TracksToFollowCard tracksCard = new TracksToFollowCard(mapActivity, list); tracksCard.setListener(this); cardsContainer.addView(tracksCard.build(mapActivity)); } @@ -261,15 +265,15 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca public void onCardButtonPressed(@NonNull BaseCard card, int buttonIndex) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - if (card instanceof SelectTrackToFollowCard) { + if (card instanceof TracksToFollowCard) { if (buttonIndex >= 0) { - loadAndFollowTrack((SelectTrackToFollowCard) card, buttonIndex); + loadAndFollowTrack((TracksToFollowCard) card, buttonIndex); } } } } - private void loadAndFollowTrack(SelectTrackToFollowCard card, int index) { + private void loadAndFollowTrack(TracksToFollowCard card, int index) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null && index < card.getGpxInfoList().size()) { GPXInfo gpxInfo = card.getGpxInfoList().get(index); @@ -365,7 +369,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca int shadowIconId = isNightMode() ? R.drawable.bg_contextmenu_shadow : R.drawable.bg_contextmenu_shadow; final Drawable shadowIcon = app.getUIUtilities().getIcon(shadowIconId); - final ScrollView scrollView = getBottomScrollView(); + final View scrollView = getBottomScrollView(); final FrameLayout bottomContainer = getBottomContainer(); scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java similarity index 52% rename from OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java rename to OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java index 6de1ec24f9..6ee164f54c 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackToFollowCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java @@ -1,20 +1,12 @@ package net.osmand.plus.routepreparationmenu.cards; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; - import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import net.osmand.AndroidUtils; import net.osmand.IndexConstants; -import net.osmand.plus.GPXDatabase.GpxDataItem; import net.osmand.plus.R; -import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.helpers.GpxUiHelper; +import net.osmand.plus.helpers.GpxTrackAdapter; import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; import net.osmand.plus.mapcontextmenu.other.HorizontalSelectionAdapter; import net.osmand.util.Algorithms; @@ -25,23 +17,29 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -public class SelectTrackToFollowCard extends BaseCard { +public class TracksToFollowCard extends BaseCard { - private Map> data; + private Map> gpxInfoCategories; private List gpxInfoList; private String selectedCategory; - public SelectTrackToFollowCard(MapActivity mapActivity, List gpxInfoList) { + private GpxTrackAdapter tracksAdapter; + + public TracksToFollowCard(MapActivity mapActivity, List gpxInfoList) { super(mapActivity); this.gpxInfoList = gpxInfoList; - data = getGpxInfoCategories(); + gpxInfoCategories = getGpxInfoCategories(); } public List getGpxInfoList() { return gpxInfoList; } + public String getSelectedCategory() { + return selectedCategory; + } + @Override public int getCardLayoutId() { return R.layout.follow_track_card; @@ -54,72 +52,49 @@ public class SelectTrackToFollowCard extends BaseCard { } private void setupTracksItems() { - LinearLayout tracks = view.findViewById(R.id.items); - tracks.removeAllViews(); + RecyclerView filesRecyclerView = view.findViewById(R.id.track_list); + filesRecyclerView.setLayoutManager(new LinearLayoutManager(view.getContext())); + filesRecyclerView.setNestedScrollingEnabled(false); - final List infoItems = data.get(selectedCategory); - if (!Algorithms.isEmpty(infoItems)) { - int minCardHeight = app.getResources().getDimensionPixelSize(R.dimen.route_info_card_row_min_height); - int contentPadding = app.getResources().getDimensionPixelSize(R.dimen.content_padding); - - LayoutInflater inflater = UiUtilities.getInflater(mapActivity, nightMode); - for (int i = 0; i < infoItems.size(); i++) { - final GPXInfo item = infoItems.get(i); - View trackView = inflater.inflate(R.layout.gpx_track_item, tracks, false); - - String fileName = Algorithms.getFileWithoutDirs(item.getFileName()); - String title = GpxUiHelper.getGpxTitle(fileName); - GpxDataItem dataItem = getDataItem(item); - GpxUiHelper.updateGpxInfoView(trackView, title, item, dataItem, false, app); - - ImageView icon = trackView.findViewById(R.id.icon); - icon.setImageDrawable(getContentIcon(R.drawable.ic_action_polygom_dark)); - icon.setVisibility(View.VISIBLE); - - LinearLayout container = trackView.findViewById(R.id.container); - container.setMinimumHeight(minCardHeight); - AndroidUtils.setPadding(container, contentPadding, 0, 0, 0); - trackView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - CardListener listener = getListener(); - if (listener != null) { - listener.onCardButtonPressed(SelectTrackToFollowCard.this, gpxInfoList.indexOf(item)); - } + tracksAdapter = new GpxTrackAdapter(view.getContext(), gpxInfoList, false); + tracksAdapter.setAdapterListener(new GpxTrackAdapter.OnItemClickListener() { + @Override + public void onItemClick(int position) { + if (position != RecyclerView.NO_POSITION) { + GPXInfo gpxInfo = tracksAdapter.getGpxInfoList().get(position); + CardListener listener = getListener(); + if (listener != null) { + int index = gpxInfoList.indexOf(gpxInfo); + listener.onCardButtonPressed(TracksToFollowCard.this, index); } - }); - tracks.addView(trackView); + } } - } - } - - private GpxDataItem getDataItem(GPXInfo info) { - return app.getGpxDbHelper().getItem(new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), info.getFileName())); + }); + filesRecyclerView.setAdapter(tracksAdapter); } private void setupCategoriesRow() { final HorizontalSelectionAdapter selectionAdapter = new HorizontalSelectionAdapter(app, nightMode); - selectionAdapter.setItems(new ArrayList<>(data.keySet())); + selectionAdapter.setItems(new ArrayList<>(gpxInfoCategories.keySet())); selectionAdapter.setSelectedItem(selectedCategory); selectionAdapter.setListener(new HorizontalSelectionAdapter.HorizontalSelectionAdapterListener() { @Override public void onItemSelected(String item) { - setSelectedCategory(item); + selectedCategory = item; + List items = gpxInfoCategories.get(item); + tracksAdapter.setGpxInfoList(items != null ? items : new ArrayList()); + tracksAdapter.notifyDataSetChanged(); + selectionAdapter.notifyDataSetChanged(); } }); - RecyclerView iconCategoriesRecyclerView = view.findViewById(R.id.group_name_recycler_view); + RecyclerView iconCategoriesRecyclerView = view.findViewById(R.id.track_categories); iconCategoriesRecyclerView.setAdapter(selectionAdapter); iconCategoriesRecyclerView.setLayoutManager(new LinearLayoutManager(app, RecyclerView.HORIZONTAL, false)); selectionAdapter.notifyDataSetChanged(); } - private void setSelectedCategory(String category) { - selectedCategory = category; - setupTracksItems(); - } - private Map> getGpxInfoCategories() { String all = app.getString(R.string.shared_string_all); String visible = app.getString(R.string.shared_string_visible); diff --git a/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java index 4f7c1b0150..c0fe05d060 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java @@ -13,7 +13,6 @@ import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.ScrollView; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; @@ -444,7 +443,7 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement int shadowIconId = isNightMode() ? R.drawable.bg_contextmenu_shadow : R.drawable.bg_contextmenu_shadow; final Drawable shadowIcon = app.getUIUtilities().getIcon(shadowIconId); - final ScrollView scrollView = getBottomScrollView(); + final View scrollView = getBottomScrollView(); final FrameLayout bottomContainer = getBottomContainer(); scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { From 66e8634bea7bc3ca80dade6ea7a5a6ec96eff0e5 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 14:01:44 +0300 Subject: [PATCH 13/52] Follow track second part --- .../main/java/net/osmand/GPXUtilities.java | 11 +++ OsmAnd/res/layout/follow_track_options.xml | 1 + OsmAnd/res/layout/gpx_track_item.xml | 28 +++--- OsmAnd/res/values/strings.xml | 1 + .../MeasurementToolFragment.java | 20 +---- .../FollowTrackFragment.java | 86 +++++++++++++++---- .../cards/SelectTrackCard.java | 55 ++++++++++++ .../cards/TrackEditCard.java | 74 ++++++++++++++++ .../cards/TracksToFollowCard.java | 3 +- 9 files changed, 233 insertions(+), 46 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackCard.java create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java index 8ee98527bd..a1e257cef2 100644 --- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java @@ -1290,6 +1290,17 @@ public class GPXUtilities { return pt; } + public TrkSegment getTrkSegment() { + for (GPXUtilities.Track t : tracks) { + for (TrkSegment s : t.segments) { + if (s.points.size() > 0) { + return s; + } + } + } + return null; + } + public void addTrkSegment(List points) { removeGeneralTrackIfExists(); diff --git a/OsmAnd/res/layout/follow_track_options.xml b/OsmAnd/res/layout/follow_track_options.xml index 73426d0b10..69f0c467c3 100644 --- a/OsmAnd/res/layout/follow_track_options.xml +++ b/OsmAnd/res/layout/follow_track_options.xml @@ -63,6 +63,7 @@ android:id="@+id/bottom_container" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?attr/route_info_bg" android:foreground="@drawable/bg_contextmenu_shadow" android:foregroundGravity="top|fill_horizontal"> diff --git a/OsmAnd/res/layout/gpx_track_item.xml b/OsmAnd/res/layout/gpx_track_item.xml index a18a6b23c2..37a9724423 100644 --- a/OsmAnd/res/layout/gpx_track_item.xml +++ b/OsmAnd/res/layout/gpx_track_item.xml @@ -165,33 +165,33 @@ - + android:layout_marginLeft="@dimen/favorites_icon_right_margin" + android:visibility="gone" + osmand:srcCompat="@drawable/ic_action_gsave_dark" /> - + android:visibility="gone" + osmand:srcCompat="@drawable/ic_action_rec_stop" /> - + android:visibility="gone" + osmand:srcCompat="@drawable/ic_overflow_menu_white" /> + Select another track Choose track file to follow or import it from device. Choose track file to follow Follow track diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 91938e89a1..0ecac7c905 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -882,11 +882,10 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route public void addNewGpxData(GPXFile gpxFile) { QuadRect rect = gpxFile.getRect(); - TrkSegment segment = getTrkSegment(gpxFile); - NewGpxData newGpxData = new NewGpxData(gpxFile, rect, segment == null - ? ActionType.ADD_ROUTE_POINTS - : ActionType.EDIT_SEGMENT, - segment); + TrkSegment segment = gpxFile.getTrkSegment(); + ActionType actionType = segment == null ? ActionType.ADD_ROUTE_POINTS : ActionType.EDIT_SEGMENT; + NewGpxData newGpxData = new NewGpxData(gpxFile, rect, actionType, segment); + editingCtx.setNewGpxData(newGpxData); initMeasurementMode(newGpxData); QuadRect qr = newGpxData.getRect(); @@ -897,17 +896,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route } } - private TrkSegment getTrkSegment(GPXFile gpxFile) { - for (GPXUtilities.Track t : gpxFile.tracks) { - for (TrkSegment s : t.segments) { - if (s.points.size() > 0) { - return s; - } - } - } - return null; - } - private void removePoint(MeasurementToolLayer measurementLayer, int position) { if (measurementLayer != null) { editingCtx.getCommandManager().execute(new RemovePointCommand(measurementLayer, position)); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index edf89a9bdf..1ed0ece313 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -20,9 +20,11 @@ import androidx.annotation.NonNull; import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; +import net.osmand.GPXUtilities; import net.osmand.GPXUtilities.GPXFile; import net.osmand.IndexConstants; import net.osmand.PlatformUtil; +import net.osmand.data.QuadRect; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -34,9 +36,15 @@ import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; import net.osmand.plus.helpers.ImportHelper; +import net.osmand.plus.measurementtool.MeasurementEditingContext; +import net.osmand.plus.measurementtool.MeasurementToolFragment; +import net.osmand.plus.measurementtool.NewGpxData; +import net.osmand.plus.measurementtool.NewGpxData.ActionType; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.routepreparationmenu.cards.ImportTrackCard; +import net.osmand.plus.routepreparationmenu.cards.SelectTrackCard; +import net.osmand.plus.routepreparationmenu.cards.TrackEditCard; import net.osmand.plus.routepreparationmenu.cards.TracksToFollowCard; import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; @@ -52,11 +60,14 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca private static final Log log = PlatformUtil.getLog(FollowTrackFragment.class); + private static final String SELECTING_TRACK = "selecting_track"; + private OsmandApplication app; private ImportHelper importHelper; private GPXFile gpxFile; + private boolean selectingTrack; private int menuTitleHeight; @Override @@ -105,11 +116,10 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca gpxFile = routeParamsBuilder.getFile(); } - Bundle arguments = getArguments(); if (savedInstanceState != null) { - - } else if (arguments != null) { - + selectingTrack = savedInstanceState.getBoolean(SELECTING_TRACK, gpxFile == null); + } else { + selectingTrack = gpxFile == null; } } @@ -152,22 +162,35 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } private void setupCards() { - final MapActivity mapActivity = getMapActivity(); + MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { ViewGroup cardsContainer = getCardsContainer(); cardsContainer.removeAllViews(); - ImportTrackCard importTrackCard = new ImportTrackCard(mapActivity); - importTrackCard.setListener(this); - cardsContainer.addView(importTrackCard.build(mapActivity)); + if (gpxFile == null || selectingTrack) { + ImportTrackCard importTrackCard = new ImportTrackCard(mapActivity); + importTrackCard.setListener(this); + cardsContainer.addView(importTrackCard.build(mapActivity)); - File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); - List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); - List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); - if (list.size() > 0) { - TracksToFollowCard tracksCard = new TracksToFollowCard(mapActivity, list); - tracksCard.setListener(this); - cardsContainer.addView(tracksCard.build(mapActivity)); + File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); + List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); + List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); + if (list.size() > 0) { + String defaultCategory = app.getString(R.string.shared_string_all); + TracksToFollowCard tracksCard = new TracksToFollowCard(mapActivity, list, defaultCategory); + tracksCard.setListener(this); + cardsContainer.addView(tracksCard.build(mapActivity)); + } + } else { + File file = new File(gpxFile.path); + GPXInfo gpxInfo = new GPXInfo(gpxFile.path, file.lastModified(), file.length()); + TrackEditCard importTrackCard = new TrackEditCard(mapActivity, gpxInfo); + importTrackCard.setListener(this); + cardsContainer.addView(importTrackCard.build(mapActivity)); + + SelectTrackCard selectTrackCard = new SelectTrackCard(mapActivity); + selectTrackCard.setListener(this); + cardsContainer.addView(selectTrackCard.build(mapActivity)); } } } @@ -198,6 +221,12 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca exitTrackAppearanceMode(); } + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + super.onSaveInstanceState(outState); + outState.putBoolean(SELECTING_TRACK, selectingTrack); + } + private void enterTrackAppearanceMode() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { @@ -257,6 +286,11 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca if (mapActivity != null) { if (card instanceof ImportTrackCard) { importTrack(); + } else if (card instanceof TrackEditCard) { + editTrack(); + dismiss(); + } else if (card instanceof SelectTrackCard) { + updateSelectionMode(true); } } } @@ -281,11 +315,13 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca SelectedGpxFile selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByName(fileName); if (selectedGpxFile != null) { selectTrackToFollow(selectedGpxFile.getGpxFile()); + updateSelectionMode(false); } else { CallbackWithObject callback = new CallbackWithObject() { @Override public boolean processResult(GPXFile[] result) { selectTrackToFollow(result[0]); + updateSelectionMode(false); return true; } }; @@ -298,12 +334,18 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca private void selectTrackToFollow(GPXFile gpxFile) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { + this.gpxFile = gpxFile; mapActivity.getMapActions().setGPXRouteParams(gpxFile); app.getTargetPointsHelper().updateRouteAndRefresh(true); app.getRoutingHelper().recalculateRouteDueToSettingsChange(); } } + private void updateSelectionMode(boolean selecting) { + this.selectingTrack = selecting; + setupCards(); + } + public void importTrack() { Intent intent = ImportHelper.getImportTrackIntent(); try { @@ -333,6 +375,20 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } } + public void editTrack() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null && gpxFile != null) { + QuadRect rect = gpxFile.getRect(); + GPXUtilities.TrkSegment segment = gpxFile.getTrkSegment(); + ActionType actionType = segment == null ? ActionType.ADD_ROUTE_POINTS : ActionType.EDIT_SEGMENT; + NewGpxData newGpxData = new NewGpxData(gpxFile, rect, actionType, segment); + + MeasurementEditingContext editingContext = new MeasurementEditingContext(); + editingContext.setNewGpxData(newGpxData); + MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext); + } + } + private void updateCardsLayout() { View mainView = getMainView(); if (mainView != null) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackCard.java new file mode 100644 index 0000000000..9544d6c8fa --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/SelectTrackCard.java @@ -0,0 +1,55 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.graphics.Typeface; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.style.ForegroundColorSpan; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.FontCache; + +public class SelectTrackCard extends BaseCard { + + public SelectTrackCard(@NonNull MapActivity mapActivity) { + super(mapActivity); + } + + @Override + public int getCardLayoutId() { + return R.layout.bottom_sheet_item_simple; + } + + @Override + protected void updateContent() { + Typeface typeface = FontCache.getRobotoMedium(app); + String title = app.getString(R.string.select_another_track); + SpannableString spannable = UiUtilities.createCustomFontSpannable(typeface, title, title, title); + ForegroundColorSpan colorSpan = new ForegroundColorSpan(getActiveColor()); + spannable.setSpan(colorSpan, 0, title.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + TextView titleTv = view.findViewById(R.id.title); + titleTv.setText(spannable); + + ImageView icon = view.findViewById(R.id.icon); + icon.setImageDrawable(getActiveIcon(R.drawable.ic_action_folder)); + + int minHeight = app.getResources().getDimensionPixelSize(R.dimen.route_info_list_text_padding); + view.setMinimumHeight(minHeight); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardPressed(SelectTrackCard.this); + } + } + }); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java new file mode 100644 index 0000000000..bf41f7b111 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java @@ -0,0 +1,74 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.graphics.drawable.ColorDrawable; +import android.view.View; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import net.osmand.AndroidUtils; +import net.osmand.IndexConstants; +import net.osmand.plus.GPXDatabase.GpxDataItem; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.GpxUiHelper; +import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; +import net.osmand.util.Algorithms; + +import java.io.File; + +public class TrackEditCard extends BaseCard { + + private GPXInfo gpxInfo; + + public TrackEditCard(MapActivity mapActivity, GPXInfo gpxInfo) { + super(mapActivity); + this.gpxInfo = gpxInfo; + } + + @Override + public int getCardLayoutId() { + return R.layout.gpx_track_item; + } + + private GpxDataItem getDataItem(GpxUiHelper.GPXInfo info) { + return app.getGpxDbHelper().getItem(new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), info.getFileName())); + } + + @Override + protected void updateContent() { + int minCardHeight = app.getResources().getDimensionPixelSize(R.dimen.setting_list_item_large_height); + int listContentPadding = app.getResources().getDimensionPixelSize(R.dimen.list_content_padding); + + String fileName = Algorithms.getFileWithoutDirs(gpxInfo.getFileName()); + String title = GpxUiHelper.getGpxTitle(fileName); + GpxDataItem dataItem = getDataItem(gpxInfo); + GpxUiHelper.updateGpxInfoView(view, title, gpxInfo, dataItem, false, app); + + ImageView trackIcon = view.findViewById(R.id.icon); + trackIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_polygom_dark)); + trackIcon.setVisibility(View.VISIBLE); + + ImageButton editButton = view.findViewById(R.id.show_on_map); + editButton.setVisibility(View.VISIBLE); + editButton.setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark)); + editButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardPressed(TrackEditCard.this); + } + } + }); + + LinearLayout container = view.findViewById(R.id.container); + container.setMinimumHeight(minCardHeight); + AndroidUtils.setPadding(container, listContentPadding, 0, 0, 0); + + int activeColor = getActiveColor(); + int bgColor = UiUtilities.getColorWithAlpha(activeColor, 0.1f); + view.setBackgroundDrawable(new ColorDrawable(bgColor)); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java index 6ee164f54c..2d3b57d3ca 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java @@ -26,9 +26,10 @@ public class TracksToFollowCard extends BaseCard { private GpxTrackAdapter tracksAdapter; - public TracksToFollowCard(MapActivity mapActivity, List gpxInfoList) { + public TracksToFollowCard(MapActivity mapActivity, List gpxInfoList, String selectedCategory) { super(mapActivity); this.gpxInfoList = gpxInfoList; + this.selectedCategory = selectedCategory; gpxInfoCategories = getGpxInfoCategories(); } From 6d359fdd00593ee090ead9efd1cfecb4c63fe4d4 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 15:22:45 +0300 Subject: [PATCH 14/52] Add ReverseTrackCard --- .../FollowTrackFragment.java | 20 +++++++ .../RoutingOptionsHelper.java | 23 ++++++-- .../cards/ReverseTrackCard.java | 57 +++++++++++++++++++ 3 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 1ed0ece313..e8b7cb9ba5 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -40,13 +40,16 @@ import net.osmand.plus.measurementtool.MeasurementEditingContext; import net.osmand.plus.measurementtool.MeasurementToolFragment; import net.osmand.plus.measurementtool.NewGpxData; import net.osmand.plus.measurementtool.NewGpxData.ActionType; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.routepreparationmenu.cards.ImportTrackCard; +import net.osmand.plus.routepreparationmenu.cards.ReverseTrackCard; import net.osmand.plus.routepreparationmenu.cards.SelectTrackCard; import net.osmand.plus.routepreparationmenu.cards.TrackEditCard; import net.osmand.plus.routepreparationmenu.cards.TracksToFollowCard; import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; +import net.osmand.plus.settings.backend.ApplicationMode; import org.apache.commons.logging.Log; @@ -191,6 +194,14 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca SelectTrackCard selectTrackCard = new SelectTrackCard(mapActivity); selectTrackCard.setListener(this); cardsContainer.addView(selectTrackCard.build(mapActivity)); + + ApplicationMode mode = app.getRoutingHelper().getAppMode(); + LocalRoutingParameter reverseParameter = app.getRoutingOptionsHelper().getReverseTrackParameter(mode); + if (reverseParameter != null) { + ReverseTrackCard reverseTrackCard = new ReverseTrackCard(mapActivity, reverseParameter); + reverseTrackCard.setListener(this); + cardsContainer.addView(reverseTrackCard.build(mapActivity)); + } } } } @@ -291,6 +302,8 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca dismiss(); } else if (card instanceof SelectTrackCard) { updateSelectionMode(true); + } else if (card instanceof ReverseTrackCard) { + updateMenu(); } } } @@ -341,6 +354,13 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } } + private void updateMenu() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapRouteInfoMenu().updateMenu(); + } + } + private void updateSelectionMode(boolean selecting) { this.selectingTrack = selecting; setupCards(); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 42c7f7bd28..afacbb03f4 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -21,12 +21,10 @@ import net.osmand.GPXUtilities; import net.osmand.IndexConstants; import net.osmand.Location; import net.osmand.data.LatLon; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.DialogListItemAdapter; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.UiUtilities; @@ -37,7 +35,11 @@ import net.osmand.plus.download.DownloadActivity; import net.osmand.plus.download.DownloadActivityType; import net.osmand.plus.helpers.FileNameTranslationHelper; import net.osmand.plus.routing.RouteProvider; +import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; +import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.voice.JSMediaCommandPlayerImpl; import net.osmand.plus.voice.JSTTSCommandPlayerImpl; import net.osmand.plus.voice.MediaCommandPlayerImpl; @@ -462,8 +464,8 @@ public class RoutingOptionsHelper { public List getGpxRouterParameters(ApplicationMode am) { RoutingHelper routingHelper = app.getRoutingHelper(); List list = new ArrayList(); - RouteProvider.GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); - boolean osmandRouter = am.getRouteService() == RouteProvider.RouteService.OSMAND; + GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); + boolean osmandRouter = am.getRouteService() == RouteService.OSMAND; if (rparams != null && osmandRouter) { GPXUtilities.GPXFile fl = rparams.getFile(); if (fl.hasRtePt()) { @@ -485,6 +487,19 @@ public class RoutingOptionsHelper { return list; } + public LocalRoutingParameter getReverseTrackParameter(ApplicationMode mode) { + RoutingHelper routingHelper = app.getRoutingHelper(); + GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); + boolean osmandRouter = mode.getRouteService() == RouteService.OSMAND; + if (rparams != null && osmandRouter) { + if (!routingHelper.isCurrentGPXRouteV2()) { + int textId = R.string.gpx_option_reverse_route; + return new OtherLocalRoutingParameter(textId, app.getString(textId), rparams.isReverse()); + } + } + return null; + } + public List getRoutingParametersInner(ApplicationMode am) { boolean osmandRouter = am.getRouteService() == RouteProvider.RouteService.OSMAND; if (!osmandRouter) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java new file mode 100644 index 0000000000..abf783c7cb --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java @@ -0,0 +1,57 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.view.View; +import android.widget.CompoundButton; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; + +public class ReverseTrackCard extends BaseCard { + + private LocalRoutingParameter parameter; + + public ReverseTrackCard(@NonNull MapActivity mapActivity, @NonNull LocalRoutingParameter parameter) { + super(mapActivity); + this.parameter = parameter; + } + + @Override + public int getCardLayoutId() { + return R.layout.bottom_sheet_item_with_switch; + } + + @Override + protected void updateContent() { + TextView titleTv = view.findViewById(R.id.title); + titleTv.setText(R.string.gpx_option_reverse_route); + + ImageView icon = view.findViewById(R.id.icon); + icon.setImageDrawable(getActiveIcon(R.drawable.ic_action_change_navigation_points)); + + final CompoundButton compoundButton = view.findViewById(R.id.compound_button); + compoundButton.setChecked(parameter.isSelected(app.getSettings())); + UiUtilities.setupCompoundButton(nightMode, getActiveColor(), compoundButton); + + int minHeight = app.getResources().getDimensionPixelSize(R.dimen.route_info_list_text_padding); + view.setMinimumHeight(minHeight); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + boolean selected = !parameter.isSelected(app.getSettings()); + compoundButton.setChecked(selected); + app.getRoutingOptionsHelper().applyRoutingParameter(parameter, selected); + + CardListener listener = getListener(); + if (listener != null) { + listener.onCardPressed(ReverseTrackCard.this); + } + } + }); + } +} \ No newline at end of file From a719ce79123e4420ace4ed3f2764ec5b110450cb Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 18:42:16 +0300 Subject: [PATCH 15/52] Add NavigateTrackOptionsCard --- .../layout/navigate_track_options_card.xml | 38 ++++++ .../res/layout/radio_buttons_with_descr.xml | 21 ++++ OsmAnd/res/values/strings.xml | 4 + .../FollowTrackFragment.java | 40 +++++- .../RoutingOptionsHelper.java | 13 -- .../cards/NavigateTrackOptionsCard.java | 118 ++++++++++++++++++ .../cards/ReverseTrackCard.java | 2 +- 7 files changed, 216 insertions(+), 20 deletions(-) create mode 100644 OsmAnd/res/layout/navigate_track_options_card.xml create mode 100644 OsmAnd/res/layout/radio_buttons_with_descr.xml create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NavigateTrackOptionsCard.java diff --git a/OsmAnd/res/layout/navigate_track_options_card.xml b/OsmAnd/res/layout/navigate_track_options_card.xml new file mode 100644 index 0000000000..fea90aa9fa --- /dev/null +++ b/OsmAnd/res/layout/navigate_track_options_card.xml @@ -0,0 +1,38 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/radio_buttons_with_descr.xml b/OsmAnd/res/layout/radio_buttons_with_descr.xml new file mode 100644 index 0000000000..a32900472f --- /dev/null +++ b/OsmAnd/res/layout/radio_buttons_with_descr.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index e93cdb6acc..e8a55d9f3e 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,10 @@ Thx - Hardy --> + Nearest point + Start of the track + Point of the track to navigate + Navigate from my location to the track Select another track Choose track file to follow or import it from device. Choose track file to follow diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index e8b7cb9ba5..61533f5d06 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -41,14 +41,18 @@ import net.osmand.plus.measurementtool.MeasurementToolFragment; import net.osmand.plus.measurementtool.NewGpxData; import net.osmand.plus.measurementtool.NewGpxData.ActionType; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.OtherLocalRoutingParameter; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.routepreparationmenu.cards.ImportTrackCard; +import net.osmand.plus.routepreparationmenu.cards.NavigateTrackOptionsCard; import net.osmand.plus.routepreparationmenu.cards.ReverseTrackCard; import net.osmand.plus.routepreparationmenu.cards.SelectTrackCard; import net.osmand.plus.routepreparationmenu.cards.TrackEditCard; import net.osmand.plus.routepreparationmenu.cards.TracksToFollowCard; +import net.osmand.plus.routing.RouteProvider; import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; +import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.settings.backend.ApplicationMode; import org.apache.commons.logging.Log; @@ -196,11 +200,34 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca cardsContainer.addView(selectTrackCard.build(mapActivity)); ApplicationMode mode = app.getRoutingHelper().getAppMode(); - LocalRoutingParameter reverseParameter = app.getRoutingOptionsHelper().getReverseTrackParameter(mode); - if (reverseParameter != null) { - ReverseTrackCard reverseTrackCard = new ReverseTrackCard(mapActivity, reverseParameter); - reverseTrackCard.setListener(this); - cardsContainer.addView(reverseTrackCard.build(mapActivity)); + + RoutingHelper routingHelper = app.getRoutingHelper(); + GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); + boolean osmandRouter = mode.getRouteService() == RouteProvider.RouteService.OSMAND; + if (rparams != null && osmandRouter) { + if (!routingHelper.isCurrentGPXRouteV2()) { + int textId = R.string.gpx_option_reverse_route; + String title = app.getString(textId); + LocalRoutingParameter parameter = new OtherLocalRoutingParameter(textId, title, rparams.isReverse()); + + ReverseTrackCard reverseTrackCard = new ReverseTrackCard(mapActivity, parameter); + reverseTrackCard.setListener(this); + cardsContainer.addView(reverseTrackCard.build(mapActivity)); + } + + if (!rparams.isUseIntermediatePointsRTE()) { + int passRouteId = R.string.gpx_option_from_start_point; + LocalRoutingParameter passWholeRoute = new OtherLocalRoutingParameter(passRouteId, + app.getString(passRouteId), rparams.isPassWholeRoute()); + + int navigationTypeId = R.string.gpx_option_calculate_first_last_segment; + LocalRoutingParameter navigationType = new OtherLocalRoutingParameter(navigationTypeId, + app.getString(navigationTypeId), rparams.isCalculateOsmAndRouteParts()); + + NavigateTrackOptionsCard navigateTrackCard = new NavigateTrackOptionsCard(mapActivity, passWholeRoute, navigationType); + navigateTrackCard.setListener(this); + cardsContainer.addView(navigateTrackCard.build(mapActivity)); + } } } } @@ -302,7 +329,8 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca dismiss(); } else if (card instanceof SelectTrackCard) { updateSelectionMode(true); - } else if (card instanceof ReverseTrackCard) { + } else if (card instanceof ReverseTrackCard + || card instanceof NavigateTrackOptionsCard) { updateMenu(); } } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index afacbb03f4..a55010fffe 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -487,19 +487,6 @@ public class RoutingOptionsHelper { return list; } - public LocalRoutingParameter getReverseTrackParameter(ApplicationMode mode) { - RoutingHelper routingHelper = app.getRoutingHelper(); - GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); - boolean osmandRouter = mode.getRouteService() == RouteService.OSMAND; - if (rparams != null && osmandRouter) { - if (!routingHelper.isCurrentGPXRouteV2()) { - int textId = R.string.gpx_option_reverse_route; - return new OtherLocalRoutingParameter(textId, app.getString(textId), rparams.isReverse()); - } - } - return null; - } - public List getRoutingParametersInner(ApplicationMode am) { boolean osmandRouter = am.getRouteService() == RouteProvider.RouteService.OSMAND; if (!osmandRouter) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NavigateTrackOptionsCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NavigateTrackOptionsCard.java new file mode 100644 index 0000000000..4e3adfa29e --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/NavigateTrackOptionsCard.java @@ -0,0 +1,118 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; + +import static net.osmand.plus.UiUtilities.CustomRadioButtonType; +import static net.osmand.plus.UiUtilities.CustomRadioButtonType.LEFT; +import static net.osmand.plus.UiUtilities.CustomRadioButtonType.RIGHT; + +public class NavigateTrackOptionsCard extends BaseCard { + + private LocalRoutingParameter passWholeRoute; + private LocalRoutingParameter navigationType; + + public NavigateTrackOptionsCard(@NonNull MapActivity mapActivity, + @NonNull LocalRoutingParameter passWholeRoute, + @NonNull LocalRoutingParameter navigationType) { + super(mapActivity); + this.passWholeRoute = passWholeRoute; + this.navigationType = navigationType; + } + + @Override + public int getCardLayoutId() { + return R.layout.navigate_track_options_card; + } + + @Override + protected void updateContent() { + setupPassWholeRoute(view.findViewById(R.id.pass_whole_route_container)); + setupNavigationType(view.findViewById(R.id.navigation_type_container)); + } + + private void setupPassWholeRoute(final View parameterView) { + View buttonsView = parameterView.findViewById(R.id.custom_radio_buttons); + TextView leftButton = parameterView.findViewById(R.id.left_button); + TextView rightButton = parameterView.findViewById(R.id.right_button); + TextView description = parameterView.findViewById(R.id.description); + + boolean enabled = passWholeRoute.isSelected(app.getSettings()); + CustomRadioButtonType buttonType = enabled ? LEFT : RIGHT; + UiUtilities.updateCustomRadioButtons(app, buttonsView, nightMode, buttonType); + + leftButton.setText(R.string.start_of_the_track); + rightButton.setText(R.string.nearest_point); + description.setText(R.string.pass_whole_track_descr); + + leftButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!passWholeRoute.isSelected(app.getSettings())) { + applyParameter(parameterView, passWholeRoute, LEFT, true); + } + } + }); + rightButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (passWholeRoute.isSelected(app.getSettings())) { + applyParameter(parameterView, passWholeRoute, RIGHT, false); + } + } + }); + } + + private void setupNavigationType(final View parameterView) { + View buttonsView = parameterView.findViewById(R.id.custom_radio_buttons); + TextView description = parameterView.findViewById(R.id.description); + TextView leftButton = parameterView.findViewById(R.id.left_button); + TextView rightButton = parameterView.findViewById(R.id.right_button); + + description.setText(R.string.nav_type_hint); + leftButton.setText(R.string.routing_profile_straightline); + rightButton.setText(app.getRoutingHelper().getAppMode().toHumanString()); + + boolean enabled = navigationType.isSelected(app.getSettings()); + CustomRadioButtonType buttonType = enabled ? RIGHT : LEFT; + UiUtilities.updateCustomRadioButtons(app, buttonsView, nightMode, buttonType); + + leftButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (navigationType.isSelected(app.getSettings())) { + applyParameter(parameterView, navigationType, LEFT, false); + } + } + }); + rightButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!navigationType.isSelected(app.getSettings())) { + applyParameter(parameterView, navigationType, RIGHT, true); + } + } + }); + } + + private void applyParameter(View parameterView, LocalRoutingParameter parameter, CustomRadioButtonType buttonType, boolean isChecked) { + updateModeButtons(parameterView, buttonType); + app.getRoutingOptionsHelper().applyRoutingParameter(parameter, isChecked); + + CardListener listener = getListener(); + if (listener != null) { + listener.onCardPressed(NavigateTrackOptionsCard.this); + } + } + + private void updateModeButtons(View customRadioButton, CustomRadioButtonType buttonType) { + UiUtilities.updateCustomRadioButtons(app, customRadioButton, nightMode, buttonType); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java index abf783c7cb..bad2388654 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java @@ -32,7 +32,7 @@ public class ReverseTrackCard extends BaseCard { titleTv.setText(R.string.gpx_option_reverse_route); ImageView icon = view.findViewById(R.id.icon); - icon.setImageDrawable(getActiveIcon(R.drawable.ic_action_change_navigation_points)); + icon.setImageDrawable(getContentIcon(R.drawable.ic_action_change_navigation_points)); final CompoundButton compoundButton = view.findViewById(R.id.compound_button); compoundButton.setChecked(parameter.isSelected(app.getSettings())); From a132201ab046a5881d6d8763d4e7539e124aa7df Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 7 Aug 2020 20:30:37 +0300 Subject: [PATCH 16/52] Show edit route screen --- .../MeasurementToolFragment.java | 9 ++- .../FollowTrackFragment.java | 81 +++++++++++++------ .../cards/TrackEditCard.java | 19 ++++- .../cards/TracksToFollowCard.java | 5 ++ 4 files changed, 84 insertions(+), 30 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 0ecac7c905..e0e975a4ea 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -460,7 +460,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route initMeasurementMode(newGpxData); - if (planRouteMode && savedInstanceState == null) { + if (editingCtx.isNewData() && planRouteMode && savedInstanceState == null) { StartPlanRouteBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), createStartPlanRouteListener()); } @@ -1793,6 +1793,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route return showFragment(fragment, fragmentManager); } + public static boolean showInstance(FragmentManager fragmentManager, MeasurementEditingContext editingCtx, boolean planRoute) { + MeasurementToolFragment fragment = new MeasurementToolFragment(); + fragment.setEditingCtx(editingCtx); + fragment.setPlanRouteMode(planRoute); + return showFragment(fragment, fragmentManager); + } + public static boolean showInstance(FragmentManager fragmentManager, MeasurementEditingContext editingCtx) { MeasurementToolFragment fragment = new MeasurementToolFragment(); fragment.setEditingCtx(editingCtx); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 61533f5d06..70da3d5ed8 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -17,6 +17,7 @@ import android.widget.ImageButton; import android.widget.LinearLayout; import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; @@ -179,15 +180,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca importTrackCard.setListener(this); cardsContainer.addView(importTrackCard.build(mapActivity)); - File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); - List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); - List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); - if (list.size() > 0) { - String defaultCategory = app.getString(R.string.shared_string_all); - TracksToFollowCard tracksCard = new TracksToFollowCard(mapActivity, list, defaultCategory); - tracksCard.setListener(this); - cardsContainer.addView(tracksCard.build(mapActivity)); - } + setupTracksCard(); } else { File file = new File(gpxFile.path); GPXInfo gpxInfo = new GPXInfo(gpxFile.path, file.lastModified(), file.length()); @@ -214,25 +207,46 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca reverseTrackCard.setListener(this); cardsContainer.addView(reverseTrackCard.build(mapActivity)); } - if (!rparams.isUseIntermediatePointsRTE()) { - int passRouteId = R.string.gpx_option_from_start_point; - LocalRoutingParameter passWholeRoute = new OtherLocalRoutingParameter(passRouteId, - app.getString(passRouteId), rparams.isPassWholeRoute()); - - int navigationTypeId = R.string.gpx_option_calculate_first_last_segment; - LocalRoutingParameter navigationType = new OtherLocalRoutingParameter(navigationTypeId, - app.getString(navigationTypeId), rparams.isCalculateOsmAndRouteParts()); - - NavigateTrackOptionsCard navigateTrackCard = new NavigateTrackOptionsCard(mapActivity, passWholeRoute, navigationType); - navigateTrackCard.setListener(this); - cardsContainer.addView(navigateTrackCard.build(mapActivity)); + setupNavigateOptionsCard(rparams); } } } } } + private void setupTracksCard() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); + List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); + List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); + if (list.size() > 0) { + String defaultCategory = app.getString(R.string.shared_string_all); + TracksToFollowCard tracksCard = new TracksToFollowCard(mapActivity, list, defaultCategory); + tracksCard.setListener(FollowTrackFragment.this); + getCardsContainer().addView(tracksCard.build(mapActivity)); + } + } + } + + private void setupNavigateOptionsCard(GPXRouteParamsBuilder rparams) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + int passRouteId = R.string.gpx_option_from_start_point; + LocalRoutingParameter passWholeRoute = new OtherLocalRoutingParameter(passRouteId, + app.getString(passRouteId), rparams.isPassWholeRoute()); + + int navigationTypeId = R.string.gpx_option_calculate_first_last_segment; + LocalRoutingParameter navigationType = new OtherLocalRoutingParameter(navigationTypeId, + app.getString(navigationTypeId), rparams.isCalculateOsmAndRouteParts()); + + NavigateTrackOptionsCard navigateTrackCard = new NavigateTrackOptionsCard(mapActivity, passWholeRoute, navigationType); + navigateTrackCard.setListener(this); + getCardsContainer().addView(navigateTrackCard.build(mapActivity)); + } + } + @Override protected void calculateLayout(View view, boolean initLayout) { menuTitleHeight = view.findViewById(R.id.route_menu_top_shadow_all).getHeight() @@ -326,7 +340,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca importTrack(); } else if (card instanceof TrackEditCard) { editTrack(); - dismiss(); + close(); } else if (card instanceof SelectTrackCard) { updateSelectionMode(true); } else if (card instanceof ReverseTrackCard @@ -411,12 +425,15 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca importHelper.setGpxImportCompleteListener(new ImportHelper.OnGpxImportCompleteListener() { @Override public void onComplete(boolean success) { + if (success) { +// setupTracksCard(); + } else { + app.showShortToastMessage(app.getString(R.string.error_occurred_loading_gpx)); + } importHelper.setGpxImportCompleteListener(null); } }); - if (!importHelper.handleGpxImport(uri, false, false)) { - log.debug("import completed!"); - } + importHelper.handleGpxImport(uri, true, false); } } else { super.onActivityResult(requestCode, resultCode, data); @@ -433,7 +450,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca MeasurementEditingContext editingContext = new MeasurementEditingContext(); editingContext.setNewGpxData(newGpxData); - MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext); + MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext, true); } } @@ -488,4 +505,16 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } }); } + + private void close() { + try { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + FragmentManager fragmentManager = mapActivity.getSupportFragmentManager(); + fragmentManager.beginTransaction().remove(this).commitAllowingStateLoss(); + } + } catch (Exception e) { + log.error(e); + } + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java index bf41f7b111..550992f96f 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java @@ -7,8 +7,8 @@ import android.widget.ImageView; import android.widget.LinearLayout; import net.osmand.AndroidUtils; -import net.osmand.IndexConstants; import net.osmand.plus.GPXDatabase.GpxDataItem; +import net.osmand.plus.GpxDbHelper.GpxDataItemCallback; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -32,8 +32,21 @@ public class TrackEditCard extends BaseCard { return R.layout.gpx_track_item; } - private GpxDataItem getDataItem(GpxUiHelper.GPXInfo info) { - return app.getGpxDbHelper().getItem(new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), info.getFileName())); + private GpxDataItem getDataItem(final GPXInfo info) { + GpxDataItemCallback itemCallback = new GpxDataItemCallback() { + @Override + public boolean isCancelled() { + return false; + } + + @Override + public void onGpxDataItemReady(GpxDataItem item) { + if (item != null) { + updateContent(); + } + } + }; + return app.getGpxDbHelper().getItem(new File(info.getFileName()), itemCallback); } @Override diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java index 2d3b57d3ca..e1240a91cc 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java @@ -33,6 +33,11 @@ public class TracksToFollowCard extends BaseCard { gpxInfoCategories = getGpxInfoCategories(); } + public void setGpxInfoList(List gpxInfoList) { + this.gpxInfoList = gpxInfoList; + gpxInfoCategories = getGpxInfoCategories(); + } + public List getGpxInfoList() { return gpxInfoList; } From 87ef9b1a455faffcdbec6dd5f2918e0abddbbba0 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 17 Aug 2020 20:31:59 +0300 Subject: [PATCH 17/52] Display follow track on first screen route prepation --- .../MapRouteInfoMenu.java | 91 ++++++++++++------- .../RouteOptionsBottomSheet.java | 3 +- 2 files changed, 61 insertions(+), 33 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index c61e132794..344a9d04aa 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -44,8 +44,6 @@ import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; -import net.osmand.plus.routepreparationmenu.cards.NauticalBridgeHeightWarningCard; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.FavouritesDbHelper.FavoritesListener; import net.osmand.plus.GeocodingLookupService; @@ -54,9 +52,6 @@ import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; -import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper.TargetPoint; @@ -88,6 +83,7 @@ import net.osmand.plus.routepreparationmenu.cards.HistoryCard; import net.osmand.plus.routepreparationmenu.cards.HomeWorkCard; import net.osmand.plus.routepreparationmenu.cards.LongDistanceWarningCard; import net.osmand.plus.routepreparationmenu.cards.MapMarkersCard; +import net.osmand.plus.routepreparationmenu.cards.NauticalBridgeHeightWarningCard; import net.osmand.plus.routepreparationmenu.cards.PedestrianRouteCard; import net.osmand.plus.routepreparationmenu.cards.PreviousRouteCard; import net.osmand.plus.routepreparationmenu.cards.PublicTransportBetaWarningCard; @@ -97,9 +93,14 @@ import net.osmand.plus.routepreparationmenu.cards.PublicTransportNotFoundWarning import net.osmand.plus.routepreparationmenu.cards.SimpleRouteCard; import net.osmand.plus.routepreparationmenu.cards.TracksCard; import net.osmand.plus.routing.IRouteInformationListener; +import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.TransportRoutingHelper; import net.osmand.plus.search.QuickSearchHelper; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; +import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference; import net.osmand.plus.widgets.TextViewExProgress; import net.osmand.router.GeneralRouter; import net.osmand.router.GeneralRouter.RoutingParameter; @@ -110,6 +111,7 @@ import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; +import java.io.File; import java.io.IOException; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -1619,7 +1621,13 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener public void onClick(View v) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - AddPointBottomSheetDialog.showInstance(mapActivity, PointType.TARGET); + GPXRouteParamsBuilder routeParamsBuilder = mapActivity.getRoutingHelper().getCurrentGPXRoute(); + if (routeParamsBuilder != null) { + FollowTrackFragment trackOptionsFragment = new FollowTrackFragment(); + FollowTrackFragment.showInstance(mapActivity, trackOptionsFragment); + } else { + AddPointBottomSheetDialog.showInstance(mapActivity, PointType.TARGET); + } } } }); @@ -1653,7 +1661,14 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener public void onClick(View view) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - AddPointBottomSheetDialog.showInstance(mapActivity, mapActivity.getMyApplication().getTargetPointsHelper().getPointToNavigate() == null ? PointType.TARGET : PointType.INTERMEDIATE); + PointType pointType; + if (mapActivity.getPointToNavigate() == null + || mapActivity.getRoutingHelper().getCurrentGPXRoute() != null) { + pointType = PointType.TARGET; + } else { + pointType = PointType.INTERMEDIATE; + } + AddPointBottomSheetDialog.showInstance(mapActivity, pointType); } } }); @@ -1677,8 +1692,15 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener } private void updateToIcon(View parentView) { - ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon); - toIcon.setImageDrawable(getIconOrig(R.drawable.list_destination)); + ImageView toIcon = parentView.findViewById(R.id.toIcon); + + OsmandApplication app = (OsmandApplication) parentView.getContext().getApplicationContext(); + GPXRouteParamsBuilder routeParamsBuilder = app.getRoutingHelper().getCurrentGPXRoute(); + if (routeParamsBuilder != null) { + toIcon.setImageDrawable(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_polygom_dark)); + } else { + toIcon.setImageDrawable(getIconOrig(R.drawable.list_destination)); + } } private void updateStartPointView() { @@ -2092,30 +2114,37 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { OsmandApplication app = mapActivity.getMyApplication(); - final TextView toText = ((TextView) view.findViewById(R.id.toText)); - final TargetPointsHelper targets = app.getTargetPointsHelper(); - TargetPoint finish = targets.getPointToNavigate(); - if (finish != null) { - toText.setText(getRoutePointDescription(targets.getPointToNavigate().point, - targets.getPointToNavigate().getOnlyName())); - - final LatLon latLon = finish.point; - final PointDescription pointDescription = finish.getOriginalPointDescription(); - boolean needAddress = pointDescription != null && pointDescription.isSearchingAddress(mapActivity); - cancelTargetPointAddressRequest(); - if (needAddress) { - targetPointRequest = new AddressLookupRequest(latLon, new GeocodingLookupService.OnAddressLookupResult() { - @Override - public void geocodingDone(String address) { - targetPointRequest = null; - updateMenu(); - } - }, null); - app.getGeocodingLookupService().lookupAddress(targetPointRequest); - } + TextView toText = view.findViewById(R.id.toText); + TextView toTitle = view.findViewById(R.id.toTitle); + GPXRouteParamsBuilder routeParamsBuilder = app.getRoutingHelper().getCurrentGPXRoute(); + if (routeParamsBuilder != null) { + String description = new File(routeParamsBuilder.getFile().path).getName(); + toText.setText(description); + toTitle.setText(R.string.follow_track); } else { - toText.setText(R.string.route_descr_select_destination); + TargetPointsHelper targets = app.getTargetPointsHelper(); + TargetPoint finish = targets.getPointToNavigate(); + if (finish != null) { + toText.setText(getRoutePointDescription(finish.point, finish.getOnlyName())); + + PointDescription pointDescription = finish.getOriginalPointDescription(); + boolean needAddress = pointDescription != null && pointDescription.isSearchingAddress(mapActivity); + cancelTargetPointAddressRequest(); + if (needAddress) { + targetPointRequest = new AddressLookupRequest(finish.point, new GeocodingLookupService.OnAddressLookupResult() { + @Override + public void geocodingDone(String address) { + targetPointRequest = null; + updateMenu(); + } + }, null); + app.getGeocodingLookupService().lookupAddress(targetPointRequest); + } + } else { + toText.setText(R.string.route_descr_select_destination); + } + toTitle.setText(R.string.route_to); } } } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java index c012ff7632..9fe5ffcc51 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java @@ -28,7 +28,6 @@ import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.actions.OsmAndDialogs; -import net.osmand.plus.base.ContextMenuFragment; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton; @@ -369,7 +368,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { @Override public void onClick(View view) { FollowTrackFragment trackOptionsFragment = new FollowTrackFragment(); - ContextMenuFragment.showInstance(mapActivity, trackOptionsFragment); + FollowTrackFragment.showInstance(mapActivity, trackOptionsFragment); dismiss(); } }) From ccefa2c4e1ab7dc0f67059f6b2ce1f7761a90745 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 17 Aug 2020 20:40:13 +0300 Subject: [PATCH 18/52] Fix compilation --- .../osmand/plus/measurementtool/MeasurementToolFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index e0e975a4ea..c673c81d2f 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -70,8 +70,8 @@ import net.osmand.plus.measurementtool.SelectedPointBottomSheetDialogFragment.Se import net.osmand.plus.measurementtool.adapter.MeasurementToolAdapter; import net.osmand.plus.measurementtool.adapter.MeasurementToolAdapter.MeasurementAdapterListener; import net.osmand.plus.measurementtool.command.AddPointCommand; -import net.osmand.plus.measurementtool.command.ChangeRouteModeCommand; import net.osmand.plus.measurementtool.command.ApplyGpxApproximationCommand; +import net.osmand.plus.measurementtool.command.ChangeRouteModeCommand; import net.osmand.plus.measurementtool.command.ClearPointsCommand; import net.osmand.plus.measurementtool.command.MovePointCommand; import net.osmand.plus.measurementtool.command.RemovePointCommand; From a6c4456ca4a2c3a9726e906d614a44c7fe7c0948 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 17 Aug 2020 21:50:30 +0300 Subject: [PATCH 19/52] Remove calculate route between points --- .../net/osmand/plus/activities/MapActivityActions.java | 9 +-------- OsmAnd/src/net/osmand/plus/base/FailSafeFuntions.java | 3 --- .../plus/routepreparationmenu/RoutingOptionsHelper.java | 8 -------- OsmAnd/src/net/osmand/plus/routing/RouteProvider.java | 9 ++------- .../net/osmand/plus/settings/backend/OsmandSettings.java | 2 +- 5 files changed, 4 insertions(+), 27 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index 57c499407f..e6f6b78f2f 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -503,15 +503,8 @@ public class MapActivityActions implements DialogProvider { mapActivity.getRoutingHelper().setGpxParams(null); settings.FOLLOW_THE_GPX_ROUTE.set(null); } else { - GPXRouteParamsBuilder params = new GPXRouteParamsBuilder(result, mapActivity.getMyApplication() - .getSettings()); - if (result.hasRtePt() && !result.hasTrkPt()) { - settings.GPX_CALCULATE_RTEPT.set(true); - } else { - settings.GPX_CALCULATE_RTEPT.set(false); - } + GPXRouteParamsBuilder params = new GPXRouteParamsBuilder(result, settings); params.setCalculateOsmAndRouteParts(settings.GPX_ROUTE_CALC_OSMAND_PARTS.get()); - params.setUseIntermediatePointsRTE(settings.GPX_CALCULATE_RTEPT.get()); params.setCalculateOsmAndRoute(settings.GPX_ROUTE_CALC.get()); List ps = params.getPoints(settings.getContext()); mapActivity.getRoutingHelper().setGpxParams(params); diff --git a/OsmAnd/src/net/osmand/plus/base/FailSafeFuntions.java b/OsmAnd/src/net/osmand/plus/base/FailSafeFuntions.java index c86b6078ff..d47eb92724 100644 --- a/OsmAnd/src/net/osmand/plus/base/FailSafeFuntions.java +++ b/OsmAnd/src/net/osmand/plus/base/FailSafeFuntions.java @@ -131,9 +131,6 @@ public class FailSafeFuntions { if (settings.GPX_ROUTE_CALC_OSMAND_PARTS.get()) { gpxRoute.setCalculateOsmAndRouteParts(true); } - if (settings.GPX_CALCULATE_RTEPT.get()) { - gpxRoute.setUseIntermediatePointsRTE(true); - } if(settings.GPX_ROUTE_CALC.get()) { gpxRoute.setCalculateOsmAndRoute(true); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index a55010fffe..980c94a207 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -265,9 +265,6 @@ public class RoutingOptionsHelper { settings.GPX_ROUTE_CALC_OSMAND_PARTS.set(selected); } else if (gpxParam.id == R.string.gpx_option_from_start_point) { rp.setPassWholeRoute(selected); - } else if (gpxParam.id == R.string.use_points_as_intermediates) { - settings.GPX_CALCULATE_RTEPT.set(selected); - rp.setUseIntermediatePointsRTE(selected); } else if (gpxParam.id == R.string.calculate_osmand_route_gpx) { settings.GPX_ROUTE_CALC.set(selected); rp.setCalculateOsmAndRoute(selected); @@ -467,11 +464,6 @@ public class RoutingOptionsHelper { GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); boolean osmandRouter = am.getRouteService() == RouteService.OSMAND; if (rparams != null && osmandRouter) { - GPXUtilities.GPXFile fl = rparams.getFile(); - if (fl.hasRtePt()) { - list.add(new OtherLocalRoutingParameter(R.string.use_points_as_intermediates, - app.getString(R.string.use_points_as_intermediates), rparams.isUseIntermediatePointsRTE())); - } if (!routingHelper.isCurrentGPXRouteV2()) { list.add(new OtherLocalRoutingParameter(R.string.gpx_option_reverse_route, app.getString(R.string.gpx_option_reverse_route), rparams.isReverse())); diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java index 9433e325f6..a2743eba58 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java +++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java @@ -165,7 +165,6 @@ public class RouteProvider { private boolean leftSide; private boolean passWholeRoute; private boolean calculateOsmAndRouteParts; - private boolean useIntermediatePointsRTE; public GPXRouteParamsBuilder(GPXFile file, OsmandSettings settings) { leftSide = settings.DRIVING_REGION.get().leftHandDriving; @@ -184,12 +183,8 @@ public class RouteProvider { this.calculateOsmAndRouteParts = calculateOsmAndRouteParts; } - public void setUseIntermediatePointsRTE(boolean useIntermediatePointsRTE) { - this.useIntermediatePointsRTE = useIntermediatePointsRTE; - } - public boolean isUseIntermediatePointsRTE() { - return useIntermediatePointsRTE; + return file.hasRtePt() && !file.hasTrkPt(); } public boolean isCalculateOsmAndRoute() { @@ -277,7 +272,7 @@ public class RouteProvider { boolean reverse = builder.reverse; passWholeRoute = builder.passWholeRoute; calculateOsmAndRouteParts = builder.calculateOsmAndRouteParts; - useIntermediatePointsRTE = builder.useIntermediatePointsRTE; + useIntermediatePointsRTE = builder.isUseIntermediatePointsRTE(); builder.calculateOsmAndRoute = false; // Disabled temporary builder.calculateOsmAndRoute; if (!file.isPointsEmpty()) { wpt = new ArrayList(file.getPoints().size()); diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index 289e2c62f3..d6cdc2c813 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -2182,7 +2182,7 @@ public class OsmandSettings { }.makeProfile().cache(); public final OsmandPreference GPX_ROUTE_CALC_OSMAND_PARTS = new BooleanPreference("gpx_routing_calculate_osmand_route", true).makeGlobal().cache(); - public final OsmandPreference GPX_CALCULATE_RTEPT = new BooleanPreference("gpx_routing_calculate_rtept", true).makeGlobal().cache(); +// public final OsmandPreference GPX_CALCULATE_RTEPT = new BooleanPreference("gpx_routing_calculate_rtept", true).makeGlobal().cache(); public final OsmandPreference GPX_ROUTE_CALC = new BooleanPreference("calc_gpx_route", false).makeGlobal().cache(); public final OsmandPreference AVOID_TOLL_ROADS = new BooleanPreference("avoid_toll_roads", false).makeProfile().cache(); From 26d88ccef2e9c59bed9f0b601c3a42b64d9822e3 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 17 Aug 2020 23:04:19 +0300 Subject: [PATCH 20/52] Add attach roads card --- OsmAnd/res/values/strings.xml | 1 + .../other/RoutePreferencesMenu.java | 6 +-- .../MeasurementToolFragment.java | 10 ++--- .../FollowTrackFragment.java | 6 +++ .../MapRouteInfoMenu.java | 4 +- .../RouteOptionsBottomSheet.java | 18 ++++---- .../RoutingOptionsHelper.java | 12 +++--- .../cards/AttachTrackToRoadsCard.java | 42 +++++++++++++++++++ .../cards/ReverseTrackCard.java | 2 - .../cards/TrackEditCard.java | 11 ++--- 10 files changed, 77 insertions(+), 35 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/AttachTrackToRoadsCard.java diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index e8a55d9f3e..75bf679593 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + Attach to the roads Nearest point Start of the track Point of the track to navigate diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java index 78d1c75f32..7775d91119 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/RoutePreferencesMenu.java @@ -34,7 +34,7 @@ import net.osmand.plus.helpers.FileNameTranslationHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.AvoidRoadsRoutingParameter; -import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.FollowTrackRoutingParameter; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.GpxLocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.InterruptMusicRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameterGroup; @@ -163,7 +163,7 @@ public class RoutePreferencesMenu { btn.performClick(); } else if (obj instanceof AvoidRoadsRoutingParameter) { routingOptionsHelper.selectRestrictedRoads(mapActivity); - } else if (obj instanceof FollowTrackRoutingParameter) { + } else if (obj instanceof GpxLocalRoutingParameter) { showOptionsMenu((TextView) view.findViewById(R.id.description)); } else { CheckBox ch = (CheckBox) view.findViewById(R.id.toggle_item); @@ -287,7 +287,7 @@ public class RoutePreferencesMenu { return v; } - if (parameter instanceof FollowTrackRoutingParameter) { + if (parameter instanceof GpxLocalRoutingParameter) { View v = mapActivity.getLayoutInflater().inflate(R.layout.plan_route_gpx, null); AndroidUtils.setListItemBackground(mapActivity, v, nightMode); AndroidUtils.setTextPrimaryColor(mapActivity, (TextView) v.findViewById(R.id.title), nightMode); diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index c673c81d2f..2e64c1b3ec 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -418,7 +418,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route if (editingCtx.getPointsCount() > 0) { if (newGpxData != null && newGpxData.getActionType() == ActionType.EDIT_SEGMENT && editingCtx.isInSnapToRoadMode()) { - openSaveAsNewTrackMenu(mapActivity); + openSaveAsNewTrackMenu(mapActivity); } else { if (newGpxData == null) { final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR); @@ -687,10 +687,10 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route } } - @Override - public void saveAsNewTrackOnClick() { - openSaveAsNewTrackMenu(getMapActivity()); - } + @Override + public void saveAsNewTrackOnClick() { + openSaveAsNewTrackMenu(getMapActivity()); + } @Override public void addToTheTrackOnClick() { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 70da3d5ed8..16d2b2dbbf 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -43,6 +43,7 @@ import net.osmand.plus.measurementtool.NewGpxData; import net.osmand.plus.measurementtool.NewGpxData.ActionType; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.OtherLocalRoutingParameter; +import net.osmand.plus.routepreparationmenu.cards.AttachTrackToRoadsCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.routepreparationmenu.cards.ImportTrackCard; @@ -207,6 +208,11 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca reverseTrackCard.setListener(this); cardsContainer.addView(reverseTrackCard.build(mapActivity)); } + if (!gpxFile.hasRtePt()) { + AttachTrackToRoadsCard attachTrackCard = new AttachTrackToRoadsCard(mapActivity); + attachTrackCard.setListener(this); + cardsContainer.addView(attachTrackCard.build(mapActivity)); + } if (!rparams.isUseIntermediatePointsRTE()) { setupNavigateOptionsCard(rparams); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index 344a9d04aa..5a567eda38 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -2119,8 +2119,8 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener GPXRouteParamsBuilder routeParamsBuilder = app.getRoutingHelper().getCurrentGPXRoute(); if (routeParamsBuilder != null) { - String description = new File(routeParamsBuilder.getFile().path).getName(); - toText.setText(description); + String fileName = new File(routeParamsBuilder.getFile().path).getName(); + toText.setText(GpxUiHelper.getGpxTitle(fileName)); toTitle.setText(R.string.follow_track); } else { TargetPointsHelper targets = app.getTargetPointsHelper(); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java index 9fe5ffcc51..c6d3df05ca 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RouteOptionsBottomSheet.java @@ -39,7 +39,7 @@ import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.AvoidPTTypesRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.AvoidRoadsRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.DividerItem; -import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.FollowTrackRoutingParameter; +import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.GpxLocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameterGroup; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.MuteSoundRoutingParameter; @@ -122,7 +122,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { items.add(createAvoidPTTypesItem(optionsItem)); } else if (optionsItem instanceof AvoidRoadsRoutingParameter) { items.add(createAvoidRoadsItem(optionsItem)); - } else if (optionsItem instanceof FollowTrackRoutingParameter) { + } else if (optionsItem instanceof GpxLocalRoutingParameter) { items.add(createGpxRoutingItem(optionsItem)); } else if (optionsItem instanceof TimeConditionalRoutingItem) { items.add(createTimeConditionalRoutingItem(optionsItem)); @@ -576,11 +576,13 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, AvoidRoadsRoutingParameter.KEY, ShowAlongTheRouteItem.KEY, + DividerItem.KEY, + GpxLocalRoutingParameter.KEY, + DividerItem.KEY, GeneralRouter.ALLOW_PRIVATE, GeneralRouter.USE_SHORTEST_WAY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -591,9 +593,9 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { GeneralRouter.ALLOW_MOTORWAYS, AvoidRoadsRoutingParameter.KEY, ShowAlongTheRouteItem.KEY, + GpxLocalRoutingParameter.KEY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -602,9 +604,9 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, AvoidRoadsRoutingParameter.KEY, ShowAlongTheRouteItem.KEY, + GpxLocalRoutingParameter.KEY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -620,9 +622,9 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, AvoidRoadsRoutingParameter.KEY, ShowAlongTheRouteItem.KEY, + GpxLocalRoutingParameter.KEY, TimeConditionalRoutingItem.KEY, DividerItem.KEY, - FollowTrackRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -630,7 +632,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, ShowAlongTheRouteItem.KEY, DividerItem.KEY, - FollowTrackRoutingParameter.KEY, + GpxLocalRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY), @@ -638,7 +640,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment { DividerItem.KEY, ShowAlongTheRouteItem.KEY, DividerItem.KEY, - FollowTrackRoutingParameter.KEY, + GpxLocalRoutingParameter.KEY, OtherSettingsRoutingParameter.KEY, RouteSimulationItem.KEY); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 980c94a207..546b600c7b 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -17,7 +17,6 @@ import androidx.appcompat.widget.AppCompatCheckedTextView; import androidx.core.content.ContextCompat; import net.osmand.CallbackWithObject; -import net.osmand.GPXUtilities; import net.osmand.IndexConstants; import net.osmand.Location; import net.osmand.data.LatLon; @@ -392,8 +391,8 @@ public class RoutingOptionsHelper { return new AvoidPTTypesRoutingParameter(); case AvoidRoadsRoutingParameter.KEY: return new AvoidRoadsRoutingParameter(); - case FollowTrackRoutingParameter.KEY: - return new FollowTrackRoutingParameter(); + case GpxLocalRoutingParameter.KEY: + return new GpxLocalRoutingParameter(); case TimeConditionalRoutingItem.KEY: return new TimeConditionalRoutingItem(); case OtherSettingsRoutingParameter.KEY: @@ -440,7 +439,7 @@ public class RoutingOptionsHelper { list.add(2, new InterruptMusicRoutingParameter()); list.add(3, new AvoidRoadsRoutingParameter()); list.add(4, new TimeConditionalRoutingItem()); - list.add(new FollowTrackRoutingParameter()); + list.add(new GpxLocalRoutingParameter()); list.add(new OtherSettingsRoutingParameter()); return list; } @@ -891,8 +890,7 @@ public class RoutingOptionsHelper { } } - - public static class FollowTrackRoutingParameter extends LocalRoutingParameter { + public static class GpxLocalRoutingParameter extends LocalRoutingParameter { public static final String KEY = "FollowTrackRoutingParameter"; @@ -904,7 +902,7 @@ public class RoutingOptionsHelper { return false; } - public FollowTrackRoutingParameter() { + public GpxLocalRoutingParameter() { super(null); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/AttachTrackToRoadsCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/AttachTrackToRoadsCard.java new file mode 100644 index 0000000000..e90d38b84a --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/AttachTrackToRoadsCard.java @@ -0,0 +1,42 @@ +package net.osmand.plus.routepreparationmenu.cards; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import net.osmand.plus.R; +import net.osmand.plus.activities.MapActivity; + + +public class AttachTrackToRoadsCard extends BaseCard { + + public AttachTrackToRoadsCard(@NonNull MapActivity mapActivity) { + super(mapActivity); + } + + @Override + public int getCardLayoutId() { + return R.layout.bottom_sheet_item_simple; + } + + @Override + protected void updateContent() { + TextView titleTv = view.findViewById(R.id.title); + titleTv.setText(R.string.attach_to_the_roads); + + ImageView icon = view.findViewById(R.id.icon); + icon.setImageDrawable(getContentIcon(R.drawable.ic_action_snap_to_road)); + + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardPressed(AttachTrackToRoadsCard.this); + } + } + }); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java index bad2388654..dd6bd2d673 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/ReverseTrackCard.java @@ -38,8 +38,6 @@ public class ReverseTrackCard extends BaseCard { compoundButton.setChecked(parameter.isSelected(app.getSettings())); UiUtilities.setupCompoundButton(nightMode, getActiveColor(), compoundButton); - int minHeight = app.getResources().getDimensionPixelSize(R.dimen.route_info_list_text_padding); - view.setMinimumHeight(minHeight); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java index 550992f96f..556ebe4caa 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TrackEditCard.java @@ -3,7 +3,6 @@ package net.osmand.plus.routepreparationmenu.cards; import android.graphics.drawable.ColorDrawable; import android.view.View; import android.widget.ImageButton; -import android.widget.ImageView; import android.widget.LinearLayout; import net.osmand.AndroidUtils; @@ -51,18 +50,11 @@ public class TrackEditCard extends BaseCard { @Override protected void updateContent() { - int minCardHeight = app.getResources().getDimensionPixelSize(R.dimen.setting_list_item_large_height); - int listContentPadding = app.getResources().getDimensionPixelSize(R.dimen.list_content_padding); - String fileName = Algorithms.getFileWithoutDirs(gpxInfo.getFileName()); String title = GpxUiHelper.getGpxTitle(fileName); GpxDataItem dataItem = getDataItem(gpxInfo); GpxUiHelper.updateGpxInfoView(view, title, gpxInfo, dataItem, false, app); - ImageView trackIcon = view.findViewById(R.id.icon); - trackIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_polygom_dark)); - trackIcon.setVisibility(View.VISIBLE); - ImageButton editButton = view.findViewById(R.id.show_on_map); editButton.setVisibility(View.VISIBLE); editButton.setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark)); @@ -76,6 +68,9 @@ public class TrackEditCard extends BaseCard { } }); + int minCardHeight = app.getResources().getDimensionPixelSize(R.dimen.setting_list_item_large_height); + int listContentPadding = app.getResources().getDimensionPixelSize(R.dimen.list_content_padding); + LinearLayout container = view.findViewById(R.id.container); container.setMinimumHeight(minCardHeight); AndroidUtils.setPadding(container, listContentPadding, 0, 0, 0); From ba3fe6f35c3fcf4e31900e5ccc9a0912b3ab66f3 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 17 Aug 2020 23:35:51 +0300 Subject: [PATCH 21/52] Show attach roads dialog from follow track --- .../MeasurementToolFragment.java | 20 +++++++++++++++---- .../FollowTrackFragment.java | 9 ++++++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 2e64c1b3ec..4c744dc74b 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -131,6 +131,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route private boolean progressBarVisible; private boolean pointsListOpened; private boolean planRouteMode = false; + private boolean attachToRoads; private Boolean saved; private boolean portrait; private boolean nightMode; @@ -158,6 +159,10 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route this.planRouteMode = planRouteMode; } + public void setAttachToRoads(boolean attachToRoads) { + this.attachToRoads = attachToRoads; + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @@ -460,10 +465,15 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route initMeasurementMode(newGpxData); - if (editingCtx.isNewData() && planRouteMode && savedInstanceState == null) { - StartPlanRouteBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), - createStartPlanRouteListener()); + if (savedInstanceState == null) { + if (editingCtx.isNewData() && planRouteMode) { + StartPlanRouteBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), + createStartPlanRouteListener()); + } else if (attachToRoads && !(editingCtx.isNewData() || editingCtx.hasRoutePoints() || editingCtx.isInSnapToRoadMode())) { + SnapTrackWarningBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), this); + } } + return view; } @@ -1793,10 +1803,12 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route return showFragment(fragment, fragmentManager); } - public static boolean showInstance(FragmentManager fragmentManager, MeasurementEditingContext editingCtx, boolean planRoute) { + public static boolean showInstance(FragmentManager fragmentManager, MeasurementEditingContext editingCtx, + boolean planRoute, boolean attachToRoads) { MeasurementToolFragment fragment = new MeasurementToolFragment(); fragment.setEditingCtx(editingCtx); fragment.setPlanRouteMode(planRoute); + fragment.setAttachToRoads(attachToRoads); return showFragment(fragment, fragmentManager); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 16d2b2dbbf..39f1767447 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -345,10 +345,13 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca if (card instanceof ImportTrackCard) { importTrack(); } else if (card instanceof TrackEditCard) { - editTrack(); + openPlanRoute(false); close(); } else if (card instanceof SelectTrackCard) { updateSelectionMode(true); + } else if (card instanceof AttachTrackToRoadsCard) { + openPlanRoute(true); + close(); } else if (card instanceof ReverseTrackCard || card instanceof NavigateTrackOptionsCard) { updateMenu(); @@ -446,7 +449,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } } - public void editTrack() { + public void openPlanRoute(boolean attachToRoads) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null && gpxFile != null) { QuadRect rect = gpxFile.getRect(); @@ -456,7 +459,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca MeasurementEditingContext editingContext = new MeasurementEditingContext(); editingContext.setNewGpxData(newGpxData); - MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext, true); + MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext, true, attachToRoads); } } From 8c8dcffb5f45eb59bc60c16dd064b25a6615674e Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 18 Aug 2020 00:33:05 +0300 Subject: [PATCH 22/52] Fix import track selection --- .../net/osmand/plus/helpers/ImportHelper.java | 18 ++++++++++++------ .../StartPlanRouteBottomSheet.java | 11 +++++++++-- .../plus/myplaces/FavoritesActivity.java | 13 ++++++++++--- .../FollowTrackFragment.java | 13 ++++++++++--- .../cards/TracksToFollowCard.java | 4 ++++ 5 files changed, 45 insertions(+), 14 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index d94e75846d..43f51e40c1 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -116,7 +116,8 @@ public class ImportHelper { } public interface OnGpxImportCompleteListener { - void onComplete(boolean success); + void onImportComplete(boolean success); + void onSavingComplete(boolean success, GPXFile result); } public ImportHelper(final AppCompatActivity activity, final OsmandApplication app, final OsmandMapTileView mapView) { @@ -963,7 +964,7 @@ public class ImportHelper { if (result.error != null) { Toast.makeText(activity, result.error.getMessage(), Toast.LENGTH_LONG).show(); if (gpxImportCompleteListener != null) { - gpxImportCompleteListener.onComplete(false); + gpxImportCompleteListener.onImportComplete(false); } } else { if (save) { @@ -973,7 +974,7 @@ public class ImportHelper { showGpxInDetailsActivity(result); } if (gpxImportCompleteListener != null) { - gpxImportCompleteListener.onComplete(true); + gpxImportCompleteListener.onImportComplete(true); } } } else { @@ -989,7 +990,7 @@ public class ImportHelper { intent.setData(uri); app.startActivity(intent); if (gpxImportCompleteListener != null) { - gpxImportCompleteListener.onComplete(false); + gpxImportCompleteListener.onImportComplete(false); } } }) @@ -997,7 +998,7 @@ public class ImportHelper { @Override public void onClick(DialogInterface dialog, int which) { if (gpxImportCompleteListener != null) { - gpxImportCompleteListener.onComplete(false); + gpxImportCompleteListener.onImportComplete(false); } } }) @@ -1090,7 +1091,12 @@ public class ImportHelper { @Override protected void onPostExecute(final String warning) { - if (Algorithms.isEmpty(warning)) { + boolean success = Algorithms.isEmpty(warning); + + if (gpxImportCompleteListener != null) { + gpxImportCompleteListener.onSavingComplete(success, result); + } + if (success) { if (showInDetailsActivity) { showGpxInDetailsActivity(result); } else { diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java b/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java index 421eef5764..acd9077f17 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java @@ -14,6 +14,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import net.osmand.AndroidUtils; +import net.osmand.GPXUtilities; import net.osmand.IndexConstants; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; @@ -26,6 +27,7 @@ import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem; import net.osmand.plus.helpers.GpxTrackAdapter; import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; import net.osmand.plus.helpers.ImportHelper; +import net.osmand.plus.helpers.ImportHelper.OnGpxImportCompleteListener; import org.apache.commons.logging.Log; @@ -162,12 +164,17 @@ public class StartPlanRouteBottomSheet extends MenuBottomSheetDialogFragment { if (requestCode == OPEN_GPX_DOCUMENT_REQUEST && resultCode == Activity.RESULT_OK) { if (data != null) { Uri uri = data.getData(); - importHelper.setGpxImportCompleteListener(new ImportHelper.OnGpxImportCompleteListener() { + importHelper.setGpxImportCompleteListener(new OnGpxImportCompleteListener() { @Override - public void onComplete(boolean success) { + public void onImportComplete(boolean success) { finishImport(success); importHelper.setGpxImportCompleteListener(null); } + + @Override + public void onSavingComplete(boolean success, GPXUtilities.GPXFile result) { + + } }); importHelper.handleGpxImport(uri, false, false); } diff --git a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java index 502bd11212..f238464cba 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java @@ -20,6 +20,7 @@ import androidx.appcompat.widget.SearchView; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import net.osmand.GPXUtilities; import net.osmand.PlatformUtil; import net.osmand.data.PointDescription; import net.osmand.plus.OsmAndLocationProvider; @@ -30,6 +31,7 @@ import net.osmand.plus.activities.FavoritesTreeFragment; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.TabActivity; import net.osmand.plus.helpers.ImportHelper; +import net.osmand.plus.helpers.ImportHelper.OnGpxImportCompleteListener; import net.osmand.plus.settings.backend.OsmAndAppCustomization; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.views.controls.PagerSlidingTabStrip; @@ -59,7 +61,7 @@ public class FavoritesActivity extends TabActivity { private ImportHelper importHelper; private Bundle intentParams = null; - + @Override public void onCreate(Bundle savedInstanceState) { OsmandApplication app = (OsmandApplication) getApplication(); @@ -123,15 +125,20 @@ public class FavoritesActivity extends TabActivity { if (gpxFragment!= null) { gpxFragment.startImport(); } - importHelper.setGpxImportCompleteListener(new ImportHelper.OnGpxImportCompleteListener() { + importHelper.setGpxImportCompleteListener(new OnGpxImportCompleteListener() { @Override - public void onComplete(boolean success) { + public void onImportComplete(boolean success) { AvailableGPXFragment gpxFragment = getGpxFragment(); if (gpxFragment!= null) { gpxFragment.finishImport(success); } importHelper.setGpxImportCompleteListener(null); } + + @Override + public void onSavingComplete(boolean success, GPXUtilities.GPXFile result) { + + } }); if (!importHelper.handleGpxImport(uri, false)) { if (gpxFragment!= null) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 39f1767447..607a695632 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -37,6 +37,7 @@ import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.GpxUiHelper.GPXInfo; import net.osmand.plus.helpers.ImportHelper; +import net.osmand.plus.helpers.ImportHelper.OnGpxImportCompleteListener; import net.osmand.plus.measurementtool.MeasurementEditingContext; import net.osmand.plus.measurementtool.MeasurementToolFragment; import net.osmand.plus.measurementtool.NewGpxData; @@ -431,11 +432,17 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca if (requestCode == ImportHelper.IMPORT_FILE_REQUEST && resultCode == Activity.RESULT_OK) { if (data != null) { Uri uri = data.getData(); - importHelper.setGpxImportCompleteListener(new ImportHelper.OnGpxImportCompleteListener() { + importHelper.setGpxImportCompleteListener(new OnGpxImportCompleteListener() { @Override - public void onComplete(boolean success) { + public void onImportComplete(boolean success) { + + } + + @Override + public void onSavingComplete(boolean success, GPXFile result) { if (success) { -// setupTracksCard(); + selectTrackToFollow(result); + updateSelectionMode(false); } else { app.showShortToastMessage(app.getString(R.string.error_occurred_loading_gpx)); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java index e1240a91cc..3357e4f2fa 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/cards/TracksToFollowCard.java @@ -105,6 +105,10 @@ public class TracksToFollowCard extends BaseCard { String all = app.getString(R.string.shared_string_all); String visible = app.getString(R.string.shared_string_visible); Map> gpxInfoCategories = new LinkedHashMap<>(); + + gpxInfoCategories.put(visible, new ArrayList()); + gpxInfoCategories.put(all, new ArrayList()); + for (GPXInfo info : gpxInfoList) { if (info.isSelected()) { addGpxInfoCategory(gpxInfoCategories, info, visible); From 2f712adfd78565433ff78c1848965ef6515a3bf9 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 18 Aug 2020 00:39:27 +0300 Subject: [PATCH 23/52] Show reverse card for all tracks --- .../osmand/plus/routepreparationmenu/FollowTrackFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 607a695632..1084a664c8 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -200,7 +200,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute(); boolean osmandRouter = mode.getRouteService() == RouteProvider.RouteService.OSMAND; if (rparams != null && osmandRouter) { - if (!routingHelper.isCurrentGPXRouteV2()) { +// if (!routingHelper.isCurrentGPXRouteV2()) { int textId = R.string.gpx_option_reverse_route; String title = app.getString(textId); LocalRoutingParameter parameter = new OtherLocalRoutingParameter(textId, title, rparams.isReverse()); @@ -208,7 +208,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca ReverseTrackCard reverseTrackCard = new ReverseTrackCard(mapActivity, parameter); reverseTrackCard.setListener(this); cardsContainer.addView(reverseTrackCard.build(mapActivity)); - } +// } if (!gpxFile.hasRtePt()) { AttachTrackToRoadsCard attachTrackCard = new AttachTrackToRoadsCard(mapActivity); attachTrackCard.setListener(this); From 39b97a110e96372b629cc5a0e274ff33779f9f60 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 18 Aug 2020 11:34:55 +0300 Subject: [PATCH 24/52] address field added --- .../osmand/aidlapi/favorite/AFavorite.java | 5 +++++ OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java | 6 +++--- .../net/osmand/aidl/OsmandAidlService.java | 2 +- .../net/osmand/aidl/OsmandAidlServiceV2.java | 2 +- .../net/osmand/aidl/favorite/AFavorite.java | 8 +++++++- .../net/osmand/plus/FavouritesDbHelper.java | 3 ++- .../plus/mapcontextmenu/MapContextMenu.java | 2 +- .../editors/FavoritePointEditor.java | 4 +++- .../editors/FavoritePointEditorFragment.java | 18 ++++++++++-------- .../FavoritePointEditorFragmentNew.java | 19 +++++++++++-------- .../editors/PointEditorFragment.java | 6 ++++++ .../editors/PointEditorFragmentNew.java | 16 +++++++++++----- 12 files changed, 61 insertions(+), 30 deletions(-) diff --git a/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java b/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java index 1e645d2fae..ed2dabe064 100644 --- a/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java +++ b/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java @@ -11,6 +11,7 @@ public class AFavorite extends AidlParams { private double lon; private String name; private String description; + private String address; private String category; private String color; private boolean visible; @@ -58,6 +59,8 @@ public class AFavorite extends AidlParams { return description; } + public String getAddress() { return description; } + public String getCategory() { return category; } @@ -76,6 +79,7 @@ public class AFavorite extends AidlParams { bundle.putDouble("lon", lon); bundle.putString("name", name); bundle.putString("description", description); + bundle.putString("address", address); bundle.putString("category", category); bundle.putString("color", color); bundle.putBoolean("visible", visible); @@ -87,6 +91,7 @@ public class AFavorite extends AidlParams { lon = bundle.getDouble("lon"); name = bundle.getString("name"); description = bundle.getString("description"); + address = bundle.getString("address"); category = bundle.getString("category"); color = bundle.getString("color"); visible = bundle.getBoolean("visible"); diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java index 5e606801ef..3bdf3862a7 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java @@ -967,7 +967,7 @@ public class OsmandAidlApi { return false; } - boolean updateFavorite(String prevName, String prevCategory, double prevLat, double prevLon, String newName, String newCategory, String newDescription, double newLat, double newLon) { + boolean updateFavorite(String prevName, String prevCategory, double prevLat, double prevLon, String newName, String newCategory, String newDescription, String newAddress, double newLat, double newLon) { FavouritesDbHelper favoritesHelper = app.getFavorites(); List favorites = favoritesHelper.getFavouritePoints(); for (FavouritePoint f : favorites) { @@ -977,8 +977,8 @@ public class OsmandAidlApi { favoritesHelper.editFavourite(f, newLat, newLon); } if (!newName.equals(f.getName()) || !newDescription.equals(f.getDescription()) || - !newCategory.equals(f.getCategory())) { - favoritesHelper.editFavouriteName(f, newName, newCategory, newDescription); + !newCategory.equals(f.getCategory()) || !newAddress.equals(f.getAddress())) { + favoritesHelper.editFavouriteName(f, newName, newCategory, newDescription,newAddress); } refreshMap(); return true; diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java index 38966b37f0..f1c9493fc8 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java @@ -311,7 +311,7 @@ public class OsmandAidlService extends Service implements AidlCallbackListener { AFavorite newFav = params.getFavoriteNew(); if (prevFav != null && newFav != null) { return api.updateFavorite(prevFav.getName(), prevFav.getCategory(), prevFav.getLat(), prevFav.getLon(), - newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getLat(), newFav.getLon()); + newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getAddress(), newFav.getLat(), newFav.getLon()); } } return false; diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java index 1a4f675d52..01be4752b9 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java @@ -314,7 +314,7 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener AFavorite newFav = params.getFavoriteNew(); if (prevFav != null && newFav != null) { return api.updateFavorite(prevFav.getName(), prevFav.getCategory(), prevFav.getLat(), prevFav.getLon(), - newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getLat(), newFav.getLon()); + newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getAddress(), newFav.getLat(), newFav.getLon()); } } return false; diff --git a/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java b/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java index b7fc057249..376a958add 100644 --- a/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java +++ b/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java @@ -9,16 +9,18 @@ public class AFavorite implements Parcelable { private double lon; private String name; private String description; + private String address; private String category; private String color; private boolean visible; - public AFavorite(double lat, double lon, String name, String description, + public AFavorite(double lat, double lon, String name, String description, String address, String category, String color, boolean visible) { this.lat = lat; this.lon = lon; this.name = name; this.description = description; + this.address = address; this.category = category; this.color = color; this.visible = visible; @@ -56,6 +58,8 @@ public class AFavorite implements Parcelable { return description; } + public String getAddress() { return address; } + public String getCategory() { return category; } @@ -74,6 +78,7 @@ public class AFavorite implements Parcelable { out.writeDouble(lon); out.writeString(name); out.writeString(description); + out.writeString(address); out.writeString(category); out.writeString(color); out.writeByte((byte) (visible ? 1 : 0)); @@ -84,6 +89,7 @@ public class AFavorite implements Parcelable { lon = in.readDouble(); name = in.readString(); description = in.readString(); + address = in.readString(); category = in.readString(); color = in.readString(); visible = in.readByte() != 0; diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index 7873b3b2cb..c7b2ae6255 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -487,11 +487,12 @@ public class FavouritesDbHelper { return builder.toString(); } - public boolean editFavouriteName(FavouritePoint p, String newName, String category, String descr) { + public boolean editFavouriteName(FavouritePoint p, String newName, String category, String descr, String address) { String oldCategory = p.getCategory(); p.setName(newName); p.setCategory(category); p.setDescription(descr); + p.setAddress(address); if (!oldCategory.equals(category)) { FavoriteGroup old = flatGroups.get(oldCategory); if (old != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java index bfc8838ef0..6b11c35b29 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java @@ -1042,7 +1042,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL } FavoritePointEditor favoritePointEditor = getFavoritePointEditor(); if (favoritePointEditor != null) { - favoritePointEditor.add(getLatLon(), title, originObjectName); + favoritePointEditor.add(getLatLon(), title, getStreetStr(), originObjectName); } } }); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java index edff9ef6fb..db68cef5c5 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java @@ -27,7 +27,7 @@ public class FavoritePointEditor extends PointEditor { return favorite; } - public void add(LatLon latLon, String title, String originObjectName) { + public void add(LatLon latLon, String title, String address, String originObjectName) { MapActivity mapActivity = getMapActivity(); if (latLon == null || mapActivity == null) { return; @@ -39,6 +39,7 @@ public class FavoritePointEditor extends PointEditor { } favorite = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), title, lastCategory); favorite.setDescription(""); + favorite.setAddress(address); favorite.setOriginObjectName(originObjectName); FavoritePointEditorFragmentNew.showInstance(mapActivity); } @@ -61,6 +62,7 @@ public class FavoritePointEditor extends PointEditor { favorite = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), title, categoryName); favorite.setDescription(""); + favorite.setAddress(title); favorite.setOriginObjectName(originObjectName); FavoritePointEditorFragmentNew.showAutoFillInstance(mapActivity, autoFill); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java index d3f6ea52c6..fe05bf4296 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java @@ -192,12 +192,13 @@ public class FavoritePointEditorFragment extends PointEditorFragment { final FavouritePoint point = new FavouritePoint(favorite.getLatitude(), favorite.getLongitude(), getNameTextValue(), getCategoryTextValue()); point.setDescription(getDescriptionTextValue()); + point.setAddress(getAddressTextValue()); AlertDialog.Builder builder = FavouritesDbHelper.checkDuplicates(point, helper, getMapActivity()); if (favorite.getName().equals(point.getName()) && favorite.getCategory().equals(point.getCategory()) && - Algorithms.stringsEqual(favorite.getDescription(), point.getDescription())) { - + Algorithms.stringsEqual(favorite.getDescription(), point.getDescription()) && + Algorithms.stringsEqual(favorite.getAddress(),point.getAddress())) { if (needDismiss) { dismiss(false); } @@ -208,25 +209,25 @@ public class FavoritePointEditorFragment extends PointEditorFragment { builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), needDismiss); + doSave(favorite, point.getName(), point.getCategory(), point.getDescription(),point.getAddress(), needDismiss); } }); builder.create().show(); } else { - doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), needDismiss); + doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), point.getAddress(), needDismiss); } saved = true; } } - private void doSave(FavouritePoint favorite, String name, String category, String description, boolean needDismiss) { + private void doSave(FavouritePoint favorite, String name, String category, String description, String address, boolean needDismiss) { FavouritesDbHelper helper = getHelper(); FavoritePointEditor editor = getFavoritePointEditor(); if (editor != null && helper != null) { if (editor.isNew()) { - doAddFavorite(name, category, description); + doAddFavorite(name, category, description,address); } else { - helper.editFavouriteName(favorite, name, category, description); + helper.editFavouriteName(favorite, name, category, description,address); } } MapActivity mapActivity = getMapActivity(); @@ -245,7 +246,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment { } } - private void doAddFavorite(String name, String category, String description) { + private void doAddFavorite(String name, String category, String description, String address) { OsmandApplication app = getMyApplication(); FavouritesDbHelper helper = getHelper(); FavouritePoint favorite = getFavorite(); @@ -253,6 +254,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment { favorite.setName(name); favorite.setCategory(category); favorite.setDescription(description); + favorite.setAddress(address); app.getSettings().LAST_FAV_CATEGORY_ENTERED.set(category); helper.addFavourite(favorite); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java index 091b93f9a0..b29d0e7be8 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java @@ -244,6 +244,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { final FavouritePoint point = new FavouritePoint(favorite.getLatitude(), favorite.getLongitude(), getNameTextValue(), getCategoryTextValue()); point.setDescription(getDescriptionTextValue()); + point.setAddress(getAddressTextValue()); point.setColor(color); point.setBackgroundType(backgroundType); point.setIconId(iconId); @@ -259,6 +260,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { final FavouritePoint point = new FavouritePoint(favorite.getLatitude(), favorite.getLongitude(), getNameTextValue(), getCategoryTextValue()); point.setDescription(getDescriptionTextValue()); + point.setAddress(getAddressTextValue()); point.setColor(color); point.setBackgroundType(backgroundType); point.setIconId(iconId); @@ -276,13 +278,13 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), + doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), point.getAddress(), point.getColor(), point.getBackgroundType(), point.getIconId(), needDismiss); } }); builder.create().show(); } else { - doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), + doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), point.getAddress(), point.getColor(), point.getBackgroundType(), point.getIconId(), needDismiss); } saved = true; @@ -295,10 +297,11 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { favorite.getName().equals(point.getName()) && favorite.getCategory().equals(point.getCategory()) && favorite.getBackgroundType().equals(point.getBackgroundType()) && - Algorithms.stringsEqual(favorite.getDescription(), point.getDescription()); + Algorithms.stringsEqual(favorite.getDescription(), point.getDescription()) && + Algorithms.stringsEqual(favorite.getAddress(), point.getAddress()); } - private void doSave(FavouritePoint favorite, String name, String category, String description, + private void doSave(FavouritePoint favorite, String name, String category, String description, String address, @ColorInt int color, BackgroundType backgroundType, @DrawableRes int iconId, boolean needDismiss) { FavouritesDbHelper helper = getHelper(); FavoritePointEditor editor = getFavoritePointEditor(); @@ -306,7 +309,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { if (editor.isNew()) { doAddFavorite(name, category, description, color, backgroundType, iconId); } else { - doEditFavorite(favorite, name, category, description, color, backgroundType, iconId, helper); + doEditFavorite(favorite, name, category, description, address, color, backgroundType, iconId, helper); } } MapActivity mapActivity = getMapActivity(); @@ -325,7 +328,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { } } - private void doEditFavorite(FavouritePoint favorite, String name, String category, String description, + private void doEditFavorite(FavouritePoint favorite, String name, String category, String description, String address, @ColorInt int color, BackgroundType backgroundType, @DrawableRes int iconId, FavouritesDbHelper helper) { OsmandApplication app = getMyApplication(); @@ -334,7 +337,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { favorite.setColor(color); favorite.setBackgroundType(backgroundType); favorite.setIconId(iconId); - helper.editFavouriteName(favorite, name, category, description); + helper.editFavouriteName(favorite, name, category, description, address); } } @@ -408,7 +411,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { @Override public String getAddressInitValue() { FavouritePoint favourite = getFavorite(); - return favorite != null ? favorite.getAddress() : ""; + return favourite != null ? favourite.getAddress() : ""; } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java index 44e9e8546e..c24a29ff71 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java @@ -373,6 +373,12 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment { return Algorithms.isEmpty(res) ? null : res; } + public String getAddressTextValue() { + EditText addressEdit = (EditText) view.findViewById(R.id.address_edit); + String res = addressEdit.getText().toString().trim(); + return Algorithms.isEmpty(res) ? null : res; + } + protected Drawable getPaintedIcon(int iconId, int color) { return getPaintedContentIcon(iconId, color); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java index 792aa08e84..4cf98456be 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java @@ -241,9 +241,9 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { addDelDescription.setTextColor(getResources().getColor(activeColorResId)); addAddressBtn.setTextColor(getResources().getColor(activeColorResId)); addAddressBtn.setCompoundDrawablesWithIntrinsicBounds( - app.getUIUtilities().getIcon(R.drawable.ic_action_location_off, activeColorResId),null,null,null); + app.getUIUtilities().getIcon(R.drawable.ic_action_location_16, activeColorResId),null,null,null); addDelDescription.setCompoundDrawablesWithIntrinsicBounds( - app.getUIUtilities().getIcon(R.drawable.ic_action_description, activeColorResId),null,null,null); + app.getUIUtilities().getIcon(R.drawable.ic_action_description_16, activeColorResId),null,null,null); addDelDescription.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -251,7 +251,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { descriptionCaption.setVisibility(View.VISIBLE); addDelDescription.setText(view.getResources().getString(R.string.delete_description)); addDelDescription.setCompoundDrawablesWithIntrinsicBounds( - app.getUIUtilities().getIcon(R.drawable.ic_action_delete_item, + app.getUIUtilities().getIcon(R.drawable.ic_action_trash_basket_16, activeColorResId),null,null,null); View descriptionEdit = view.findViewById(R.id.description_edit); descriptionEdit.requestFocus(); @@ -260,7 +260,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { descriptionCaption.setVisibility(View.GONE); addDelDescription.setText(view.getResources().getString(R.string.add_description)); addDelDescription.setCompoundDrawablesWithIntrinsicBounds( - app.getUIUtilities().getIcon(R.drawable.ic_action_location_off, + app.getUIUtilities().getIcon(R.drawable.ic_action_description_16, activeColorResId),null,null,null); AndroidUtils.hideSoftKeyboard(requireActivity(), descriptionEdit); descriptionEdit.clearFocus(); @@ -275,7 +275,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { addAddressBtn.setText(view.getResources().getString(R.string.delete_address)); View addressEdit = view.findViewById(R.id.address_edit); addressEdit.requestFocus(); - AndroidUtils.softKeyboardDelayed(addressEdit); + AndroidUtils.softKeyboardDelayed(requireActivity(),addressEdit); } else { addressCaption.setVisibility(View.GONE); addAddressBtn.setText(view.getResources().getString(R.string.add_address)); @@ -848,6 +848,12 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { return Algorithms.isEmpty(res) ? null : res; } + String getAddressTextValue() { + EditText addressEdit = view.findViewById(R.id.address_edit); + String res = addressEdit.getText().toString().trim(); + return Algorithms.isEmpty(res) ? null : res; + } + protected Drawable getPaintedIcon(int iconId, int color) { return getPaintedContentIcon(iconId, color); } From c757ef3a0b7a2b134d19761943974282dbaf54fc Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 18 Aug 2020 11:50:44 +0300 Subject: [PATCH 25/52] address display issue fixed --- .../osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java index db68cef5c5..021d8908e1 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java @@ -39,7 +39,7 @@ public class FavoritePointEditor extends PointEditor { } favorite = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), title, lastCategory); favorite.setDescription(""); - favorite.setAddress(address); + favorite.setAddress(address.isEmpty() ? title : address); favorite.setOriginObjectName(originObjectName); FavoritePointEditorFragmentNew.showInstance(mapActivity); } From 1184d5183aeef96e5158a0697dc7fb2a81684f18 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 18 Aug 2020 13:50:39 +0300 Subject: [PATCH 26/52] Fix map location for split tracks in analyze screen --- .../other/TrackDetailsMenu.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index f9d8c11b9b..8ac88f9a70 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -147,7 +147,28 @@ public class TrackDetailsMenu { if (points != null) { LatLon latLon = tb.getLatLonFromPixel(mx, my); gpxItem.locationOnMap = GPXLayer.createProjectionPoint(points.first, points.second, latLon); - float pos = (float) (gpxItem.locationOnMap.distance / ((OrderedLineDataSet) ds.get(0)).getDivX()); + + float pos; + if (gpxItem.chartAxisType == GPXDataSetAxisType.TIME || + gpxItem.chartAxisType == GPXDataSetAxisType.TIMEOFDAY) { + pos = gpxItem.locationOnMap.time / 1000f; + } else { + double totalDistance = 0; + int index = segment.points.indexOf(points.first); + if (index != -1) { + WptPt previousPoint = null; + for (int i = 0; i < index; i++) { + WptPt currentPoint = segment.points.get(i); + if (previousPoint != null) { + totalDistance += MapUtils.getDistance(previousPoint.lat, previousPoint.lon, currentPoint.lat, currentPoint.lon); + } + previousPoint = currentPoint; + } + totalDistance += MapUtils.getDistance(gpxItem.locationOnMap.lat, gpxItem.locationOnMap.lon, points.first.lat, points.first.lon); + } + pos = (float) (totalDistance / ((OrderedLineDataSet) ds.get(0)).getDivX()); + } + float lowestVisibleX = chart.getLowestVisibleX(); float highestVisibleX = chart.getHighestVisibleX(); float nextVisibleX = lowestVisibleX + (pos - gpxItem.chartHighlightPos); From 5ed2cd04dfa20736c66b206e5ec8d18fe3a27e20 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 18 Aug 2020 14:46:31 +0300 Subject: [PATCH 27/52] Fix map position for track details menu --- .../plus/base/MapViewTrackingUtilities.java | 18 +++++++++++++++--- .../mapcontextmenu/other/TrackDetailsMenu.java | 7 ++++++- .../other/TrackDetailsMenuFragment.java | 8 ++++++++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java b/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java index d02aa52492..854146e214 100644 --- a/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java +++ b/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java @@ -23,6 +23,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.dashboard.DashboardOnMap; import net.osmand.plus.mapcontextmenu.MapContextMenu; +import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.views.AnimateDraggingMapThread; @@ -42,6 +43,7 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc private OsmandMapTileView mapView; private DashboardOnMap dashboard; private MapContextMenu contextMenu; + private TrackDetailsMenu detailsMenu; private OsmandSettings settings; private OsmandApplication app; private boolean isMapLinkedToLocation = true; @@ -153,6 +155,10 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc this.contextMenu = contextMenu; } + public void setDetailsMenu(TrackDetailsMenu detailsMenu) { + this.detailsMenu = detailsMenu; + } + public boolean isMovingToMyLocation() { return movingToMyLocation; } @@ -270,9 +276,15 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc mapView.setRotate(0, true); } if (isMapLinkedToLocation) { - mapView.setMapPosition(settings.ROTATE_MAP.get() == OsmandSettings.ROTATE_MAP_BEARING - && !settings.CENTER_POSITION_ON_MAP.get() ? - OsmandSettings.BOTTOM_CONSTANT : OsmandSettings.CENTER_CONSTANT); + boolean trackDetailsVisible = detailsMenu != null && detailsMenu.isVisible(); + int positionType; + if (settings.ROTATE_MAP.get() == OsmandSettings.ROTATE_MAP_BEARING + && !settings.CENTER_POSITION_ON_MAP.get() && !trackDetailsVisible) { + positionType = OsmandSettings.BOTTOM_CONSTANT; + } else { + positionType = OsmandSettings.CENTER_CONSTANT; + } + mapView.setMapPosition(positionType); } } registerUnregisterSensor(app.getLocationProvider().getLastKnownLocation(), false); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index 8ac88f9a70..1e441071a4 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -348,7 +348,7 @@ public class TrackDetailsMenu { if (previousPoint != null) { totalDistance += MapUtils.getDistance(previousPoint.lat, previousPoint.lon, currentPoint.lat, currentPoint.lon); } - if (currentPoint.distance >= distance || Math.abs(totalDistance - distance) < 0.1) { + if (currentPoint.distance >= distance || totalDistance >= distance) { if (previousPoint != null && currentPoint.distance >= distance) { double percent = 1 - (totalDistance - distance) / (currentPoint.distance - previousPoint.distance); double dLat = (currentPoint.lat - previousPoint.lat) * percent; @@ -628,6 +628,11 @@ public class TrackDetailsMenu { } else { highlightDrawX = -1; } + MapActivity mapActivity = getMapActivity(); + if (lastPerformedGesture != ChartGesture.NONE && mapActivity != null + && mapActivity.getMapViewTrackingUtilities().isMapLinkedToLocation()) { + mapActivity.getMapViewTrackingUtilities().setMapLinkedToLocation(false); + } } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java index 6097f111e5..f456ba0360 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java @@ -134,12 +134,20 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment implements OsmA menu.onShow(); } startLocationUpdate(); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapViewTrackingUtilities().setDetailsMenu(menu); + } } @Override public void onPause() { super.onPause(); stopLocationUpdate(); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapViewTrackingUtilities().setDetailsMenu(menu); + } } private void startLocationUpdate() { From 593b1ccfd285c9978e51616c079ab0bf334a9bd9 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 18 Aug 2020 15:05:48 +0300 Subject: [PATCH 28/52] remove unnecessary changes --- .../src/net/osmand/plus/base/MapViewTrackingUtilities.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java b/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java index 854146e214..e04bb51559 100644 --- a/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java +++ b/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java @@ -356,9 +356,9 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc public void backToLocationImpl(int zoom, boolean forceZoom) { if (mapView != null) { OsmAndLocationProvider locationProvider = app.getLocationProvider(); - net.osmand.Location lastKnownLocation = locationProvider.getLastKnownLocation(); - net.osmand.Location lastStaleKnownLocation = locationProvider.getLastStaleKnownLocation(); - net.osmand.Location location = lastKnownLocation != null ? lastKnownLocation : lastStaleKnownLocation; + Location lastKnownLocation = locationProvider.getLastKnownLocation(); + Location lastStaleKnownLocation = locationProvider.getLastStaleKnownLocation(); + Location location = lastKnownLocation != null ? lastKnownLocation : lastStaleKnownLocation; if (!isMapLinkedToLocation()) { setMapLinkedToLocation(true); if (location != null) { From 96b39316441d26a68de7225d9eabfa4c8ff9a8e9 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Tue, 18 Aug 2020 19:43:59 +0300 Subject: [PATCH 29/52] Fix #9408 Show "My Position" context menu fragment when long tap on location button. Don't show "Whats here" menu --- .../plus/views/layers/ContextMenuLayer.java | 25 ++++++++++++++++--- .../plus/views/layers/MapControlsLayer.java | 12 +++------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java index ad8f68ee83..f4e5b18a2d 100644 --- a/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java @@ -574,11 +574,21 @@ public class ContextMenuLayer extends OsmandMapLayer { applyingMarkerLatLon = null; } + public boolean showContextMenuForMyLocation() { + PointLocationLayer provider = view.getLayerByClass(PointLocationLayer.class); + if (provider != null) { + LatLon ll = provider.getObjectLocation(null); + if (ll != null) { + PointDescription pointDescription = provider.getObjectName(null); + return showContextMenu(ll, pointDescription, ll, provider); + } + } + return false; + } + public boolean showContextMenu(double latitude, double longitude, boolean showUnknownLocation) { - RotatedTileBox cp = activity.getMapView().getCurrentRotatedTileBox(); - float x = cp.getPixXFromLatLon(latitude, longitude); - float y = cp.getPixYFromLatLon(latitude, longitude); - return showContextMenu(new PointF(x, y), activity.getMapView().getCurrentRotatedTileBox(), showUnknownLocation); + return showContextMenu(getPointFromLatLon(latitude, longitude), + activity.getMapView().getCurrentRotatedTileBox(), showUnknownLocation); } public boolean showContextMenu(@NonNull LatLon latLon, @@ -803,6 +813,13 @@ public class ContextMenuLayer extends OsmandMapLayer { return false; } + private PointF getPointFromLatLon(double latitude, double longitude) { + RotatedTileBox cp = activity.getMapView().getCurrentRotatedTileBox(); + float x = cp.getPixXFromLatLon(latitude, longitude); + float y = cp.getPixYFromLatLon(latitude, longitude); + return new PointF(x, y); + } + private List getValues(@Nullable QStringStringHash set) { List res = new ArrayList<>(); if (set != null) { diff --git a/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java index e6ce1ce4f1..cd6bf62ced 100644 --- a/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java @@ -439,15 +439,9 @@ public class MapControlsLayer extends OsmandMapLayer { } private void showContextMenuForMyLocation() { - OsmAndLocationProvider lp = app.getLocationProvider(); - Location lastKnownLocation = lp.getLastKnownLocation(); - Location lastStaleKnownLocation = lp.getLastStaleKnownLocation(); - Location location = lastKnownLocation != null ? lastKnownLocation : lastStaleKnownLocation; - if (location != null) { - ContextMenuLayer cml = mapActivity.getMapView().getLayerByClass(ContextMenuLayer.class); - if (cml != null) { - cml.showContextMenu(location.getLatitude(), location.getLongitude(), true); - } + ContextMenuLayer cml = mapActivity.getMapView().getLayerByClass(ContextMenuLayer.class); + if (cml != null) { + cml.showContextMenuForMyLocation(); } } From 9f314907938661bae94d0db1cc741d26cb1c64b9 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Wed, 19 Aug 2020 17:59:49 +0200 Subject: [PATCH 30/52] Combine ids to make context menu appearance persistent --- .../src/net/osmand/plus/activities/MapActivityActions.java | 3 +-- OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index 57c499407f..0a6bc44260 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -400,7 +400,7 @@ public class MapActivityActions implements DialogProvider { ContextMenuItem editGpxItem = new ItemBuilder() .setTitleId(R.string.context_menu_item_edit_waypoint, mapActivity) - .setId(MAP_CONTEXT_MENU_EDIT_GPX_WP) + .setId(MAP_CONTEXT_MENU_ADD_GPX_WAYPOINT) .setIcon(R.drawable.ic_action_edit_dark) .setOrder(EDIT_GPX_WAYPOINT_ITEM_ORDER) .setListener(listener).createItem(); @@ -412,7 +412,6 @@ public class MapActivityActions implements DialogProvider { .setListener(listener).createItem(); if (all) { - adapter.addItem(editGpxItem); adapter.addItem(addGpxItem); } else if (selectedObj instanceof WptPt && getMyApplication().getSelectedGpxHelper().getSelectedGPXFile((WptPt) selectedObj) != null) { diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java index 00ea982116..121536418e 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java @@ -265,14 +265,14 @@ public class OsmEditingPlugin extends OsmandPlugin { } if (isEditable) { adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.poi_context_menu_modify, mapActivity) - .setId(MAP_CONTEXT_MENU_MODIFY_POI) + .setId(MAP_CONTEXT_MENU_CREATE_POI) .setIcon(R.drawable.ic_action_edit_dark) .setOrder(MODIFY_POI_ITEM_ORDER) .setListener(listener) .createItem()); } else if (selectedObj instanceof OpenstreetmapPoint && ((OpenstreetmapPoint) selectedObj).getAction() != Action.DELETE) { adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.poi_context_menu_modify_osm_change, mapActivity) - .setId(MAP_CONTEXT_MENU_MODIFY_OSM_CHANGE) + .setId(MAP_CONTEXT_MENU_CREATE_POI) .setIcon(R.drawable.ic_action_edit_dark) .setOrder(MODIFY_OSM_CHANGE_ITEM_ORDER) .setListener(listener) @@ -287,7 +287,7 @@ public class OsmEditingPlugin extends OsmandPlugin { } if (selectedObj instanceof OsmNotesPoint) { adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.context_menu_item_modify_note, mapActivity) - .setId(MAP_CONTEXT_MENU_MODIFY_OSM_NOTE) + .setId(MAP_CONTEXT_MENU_OPEN_OSM_NOTE) .setIcon(R.drawable.ic_action_edit_dark) .setOrder(MODIFY_OSM_NOTE_ITEM_ORDER) .setListener(listener) From 4d9a7f10566c4edbf1bc7b1b9283982b3aec4a82 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Wed, 19 Aug 2020 18:07:37 +0200 Subject: [PATCH 31/52] Fix context menu --- OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java | 4 ++-- OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index 0a6bc44260..76a5615572 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -343,7 +343,7 @@ public class MapActivityActions implements DialogProvider { final double longitude, final ContextMenuAdapter adapter, Object selectedObj, - boolean all) { + boolean configureMenu) { ItemBuilder itemBuilder = new ItemBuilder(); adapter.addItem(itemBuilder @@ -411,7 +411,7 @@ public class MapActivityActions implements DialogProvider { .setOrder(ADD_GPX_WAYPOINT_ITEM_ORDER) .setListener(listener).createItem(); - if (all) { + if (configureMenu) { adapter.addItem(addGpxItem); } else if (selectedObj instanceof WptPt && getMyApplication().getSelectedGpxHelper().getSelectedGPXFile((WptPt) selectedObj) != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java index bfc8838ef0..b703544963 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java @@ -1062,7 +1062,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL } } - public ContextMenuAdapter getActionsContextMenuAdapter(boolean all) { + public ContextMenuAdapter getActionsContextMenuAdapter(boolean configure) { MapActivity mapActivity = getMapActivity(); final ContextMenuAdapter menuAdapter = new ContextMenuAdapter(getMyApplication()); if (mapActivity != null) { @@ -1070,7 +1070,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL for (OsmandMapLayer layer : mapActivity.getMapView().getLayers()) { layer.populateObjectContextMenu(latLon, getObject(), menuAdapter, mapActivity); } - mapActivity.getMapActions().addActionsToAdapter(all ? 0 : latLon.getLatitude(), all ? 0 : latLon.getLongitude(), menuAdapter, getObject(), all); + mapActivity.getMapActions().addActionsToAdapter(configure ? 0 : latLon.getLatitude(), configure ? 0 : latLon.getLongitude(), menuAdapter, getObject(), configure); } return menuAdapter; } From 7339007314e32d5327a05c08ff7b673deffa3ff4 Mon Sep 17 00:00:00 2001 From: Hinagiku Zeppeki Date: Wed, 19 Aug 2020 03:07:33 +0000 Subject: [PATCH 32/52] Translated using Weblate (Japanese) Currently translated at 96.6% (3337 of 3453 strings) --- OsmAnd/res/values-ja/strings.xml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index 8a85dde06d..bdda01ab38 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -88,9 +88,9 @@ POIを索引中… 交通機関を索引化… I/Oエラーです - キロメートル + km km/h - メートル + m 重複したマップ データ形式 \'\'{0}\'\' はサポートされていません 自動車用施設 @@ -3765,4 +3765,13 @@ POIの更新は利用できません 新しいセグメントを追加するための経路ファイルを選択します。 ストリート画像 保存せずにルート計画を終了した場合すべての変更が失われます。よろしいですか? + エンデューロバイク + 電動スクーター + 車椅子 + ゴーカート + OSMのメモを閉じました + 続けるには営業日を設定する必要があります + 地点間のルート + ルートを計画 + 経路に追加 \ No newline at end of file From 2bb9dccaa2e1a70944697d74363414d9b103df29 Mon Sep 17 00:00:00 2001 From: Boris Petrov Date: Tue, 18 Aug 2020 15:15:14 +0000 Subject: [PATCH 33/52] Translated using Weblate (French) Currently translated at 100.0% (3453 of 3453 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 3750c8f27e..e705c38fde 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -1117,7 +1117,7 @@ Indiquez le poids du véhicule à respecter sur les routes. Sélectionner GPX… Définissez l\'arrivée - Sélectionner sur la carte + Sélectionnez sur la carte Favori Préférences d\'itinéraire Informations sur l\'itinéraire From d351f55e06850c5ae0622c31385180c3212b8b23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Kotr=C4=8D?= Date: Wed, 19 Aug 2020 11:54:22 +0000 Subject: [PATCH 34/52] Translated using Weblate (Czech) Currently translated at 79.0% (2729 of 3453 strings) --- OsmAnd/res/values-cs/strings.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 9ed07ed243..43b3ad38e3 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -3480,4 +3480,22 @@ Zobrazená oblast: %1$s x %2$s Zvolte způsob uložení stažených dlaždic. Rychlé akce můžete importovat nebo exportovat prostřednictvím profilů. Odstranit vše\? + Motokára + Uzavřená OSM poznámka + Pro pokračování je potřeba nastavit pracovní dny + Trasa mezi body + Naplánovat trasu + Přidat k trase + Zobrazit ikony startu a cíle + Zvolte šířku + Vyberte interval pro zobrazování značek na trase se vzdáleností nebo časem. + Vyberte požadované dělení: podle času nebo podle vzdálenosti. + Vlastní + Směrové šipky + Naposledy upraveno + Importovat trasu + Otevřít existující trasu + Vytvořit novou trasu + Vyberte trasu k otevření. + Hotovo \ No newline at end of file From 31b934adf9b5348ed57f14f030bb479cf2adf551 Mon Sep 17 00:00:00 2001 From: aevw Date: Tue, 18 Aug 2020 13:50:50 +0000 Subject: [PATCH 35/52] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3453 of 3453 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 32 ++++++++++++---------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 9ff320c538..30cf2447b1 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -62,8 +62,8 @@ Passar antes Simular rota Lista simples - Lat %1$s -\nLon %2$s + Latitude %1$s +\nLongitude %2$s Respostas às perguntas frequentes, mudanças recentes e outras. Configurações de navegação Configurações gerais @@ -779,7 +779,7 @@ Minutos O carro foi estacionado em Gerenciar mapas - Pesquise nas proximidades + Pesquise por perto Gerenciar mapas. Usar posição… Exibir rota @@ -1363,7 +1363,7 @@ Vire levemente à esquerda e siga Aguardando sinal… Pesquisar próximo ao centro do mapa - Pesquise nas proximidades + Pesquise por perto Mesma do aparelho Vertical Horizontal @@ -1811,7 +1811,7 @@ Atualizar Somente baixar via Wi-Fi Atualização ao vivo - Atualizar agora + Atualizar Distância: Tempo: OsmAnd não tem permissão para usar o cartão de memória @@ -1834,7 +1834,7 @@ Limite de tempo máximo para clipes gravados. Limite de armazenamento Quantidade de espaço que pode ser ocupado por todos os clipes gravados. - Última alteração no mapa: %s + Última alteração: %s A cada hora Diariamente Semanalmente @@ -2086,7 +2086,7 @@ Sem estradas de gelo ou vaus Evitar estradas de gelo e vaus. Limite para orientação do mapa - Exibir notificação \'Navegação finalizada\' + Exibir notif. \'Navegação finalizada\' Cache de quadrícula Régua de raio Exibir a partir do nível de zoom @@ -2632,7 +2632,8 @@ \n • Orientação de faixas opcional, exibição do nome da rua e tempo estimado de chegada \n • Suporta pontos intermediários do seu itinerário \n • Correção de rota automático sempre que você sair da rota -\n • Busque lugares por endereço, pelo tipo (ex.: restaurante, hotel, posto de gasolina, museu), ou por coordenadas geográficas +\n • Busque lugares por endereço, pelo tipo (ex.: restaurante, hotel, posto de gasolina, museu), ou por coordenadas geográficas +\n Visualização de mapa \n• Exiba sua posição e orientação \n• Opcionalmente alinhe a tela de acordo com a bússola ou a direção de seu movimento @@ -2785,16 +2786,11 @@ \n \nAlgumas das principais características: Contribua diretamente para o OSM -\n -\n• Avisar erros de dados -\n -\n• Fazer upload de trilhas GPX para o OSM diretamente do app -\n -\n• Adicionar POIs e fazer o upload diretamente para OSM (ou mais tarde se offline) -\n -\n• Gravação de viagem opcional também em modo background (enquanto o dispositivo está no modo sleep) -\n -\nOsmAnd é um software de código aberto desenvolvido ativamente. Todos podem contribuir para o app, reportando bugs, melhorando as traduções ou programando novas funcionalidades. Além disso, o projeto conta com as contribuições financeiras para financiar o desenvolvimento e testes de novas funcionalidades. +\n • Avisar erros de dados +\n • Fazer upload de trilhas GPX para o OSM diretamente do app +\n • Adicionar POIs e fazer o upload diretamente para OSM (ou mais tarde se offline) +\n • Gravação de viagem opcional também em modo background (enquanto o dispositivo está no modo sleep) +\n OsmAnd é um software de código aberto desenvolvido ativamente. Todos podem contribuir para o app, reportando bugs, melhorando as traduções ou programando novas funcionalidades. Além disso, o projeto conta com as contribuições financeiras para financiar o desenvolvimento e testes de novas funcionalidades. \n Ponto %1$s foi excluído Mundo From 2f31e4be570986db9bbe3d34696b2de6026036cb Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 19 Aug 2020 19:05:42 +0000 Subject: [PATCH 36/52] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/pt_PT/ --- OsmAnd-telegram/res/values-pt-rPT/strings.xml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/OsmAnd-telegram/res/values-pt-rPT/strings.xml b/OsmAnd-telegram/res/values-pt-rPT/strings.xml index 40b67220ba..6cbbce3ee6 100644 --- a/OsmAnd-telegram/res/values-pt-rPT/strings.xml +++ b/OsmAnd-telegram/res/values-pt-rPT/strings.xml @@ -2,7 +2,7 @@ Posicionando… Milhas náuticas por hora (nó) - Você precisa instalar a versão gratuita ou paga do OsmAnd primeiro + Precisa instalar a versão gratuita ou paga do OsmAnd primeiro Telegram Entrar Data de início - fim @@ -10,7 +10,7 @@ Por favor, ligue \"Localização\" nas configurações do sistema Sem dados enviando localização - Selecione os contatos e grupos com os quais você deseja compartilhar sua localização. + Selecione os contactos e grupos com os quais deseja compartilhar sua localização. Aguardando resposta do Telegram Conta conectada Política de privacidade do OsmAnd @@ -33,7 +33,7 @@ Última localização atualizada: Parado Mostrar quantidade de pontos de GPS coletados e enviados. - Você precisa de uma conta e número de telefone registrados no Telegram + Precisa de uma conta e número de telefone registados no Telegram Filtro: sem registro abaixo da velocidade selecionada Ordenar por Enviado @@ -42,7 +42,7 @@ Enviado e atualizado com sucesso Escolha como as mensagens com sua localização serão exibidas. Conexão - Se você deseja conectar vários aparelhos a uma conta de telegrama, é necessário usar um aparelho diferente para compartilhar sua localização. + Se deseja conectar vários aparelhos a uma conta de telegrama, é necessário usar um aparelho diferente para compartilhar a sua localização. Palavra-passe Autorização Selecionar @@ -51,7 +51,7 @@ Robô Altitude média Data de início - Contatos e grupos compartilhando o local para você. + Contatos e grupos compartilhando o local consigo. Todos Pontos GPX recebidos: %1$s Aparência @@ -59,7 +59,7 @@ Pela distância Desativar o compartilhamento de local Coletado - Escolha um nome que você ainda não usou + Escolha um nome que ainda não usou Adicionar Mostrar utilitadoes no mapa Digite o código de autenticação @@ -81,8 +81,8 @@ Conectado m O compartilhamento está ativado (desativado) - Eu não tenho conta Telegram - Você precisa de uma conta do Telegram para usar o compartilhamento de local. + Não tenho uma conta do Telegram + Precisa de uma conta do Telegram para usar o compartilhamento de local. Desativar todo o compartilhamento Status de compartilhamento Fim @@ -92,11 +92,11 @@ Mais tarde Minha localização Instalar OsmAnd - Telegrama (a app de mensagens) é usado para conectar e se comunicar com as pessoas. + Telegram (a app de mensagens) é usado para conectar e comunicar com as pessoas. Não é possível enviar para bate-papo do Telegram: Ainda não enviado %1$d pontos - OsmAnd Tracker permite que partilhe a sua localização e veja a dos outros no OsmAnd.

O app usa a API Telegram e você precisa de uma conta do Telegram.
+ OsmAnd Tracker permite que partilhe a sua localização e veja a dos outros no OsmAnd.

O app usa a API Telegram e precisa de uma conta do Telegram.
Filtro: distância mínima para registrar um novo ponto O nome do aparelho não pode estar vazio yd @@ -152,7 +152,7 @@ %1$d h %2$d m Nome do aparelho muito longo Pontos de GPS - Ative o monitoramento para salvar todos os locais no histórico. + Ative o monitoramento para gravar todos os locais no histórico. Mostrar no mapa Enviar minha localização Compartilhar localização como @@ -160,7 +160,7 @@ mph Minutos por milha Última atualização do Telegram - Tem certeza de que deseja sair do OsmAnd Tracker para que você não possa compartilhar o local ou ver a localização de outras pessoas\? + Tem certeza de que deseja sair do OsmAnd Tracker para que não possa compartilhar o local ou ver a localização de outras pessoas\? Servidor Metros por segundo Compartilhamento: %1$s @@ -199,7 +199,7 @@ Por favor, insira o número de telefone do seu Telegram em formato internacional Definir tempo visível para todos Número de telefone - Ao clicar em \"Continuar\" você concorda com as condições da política de privacidade do Telegram e OsmAnd. + Ao clicar em \"Continuar\" concorda com as condições da política de privacidade do Telegram e OsmAnd. Milhas/pés Monitoramento está ativado Escolha a versão OsmAnd que OsmAnd Tracker usa para exibir posições. From f88c1c5ab1f3b4ffef9b1af15ec0e022fe0b26bd Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 19 Aug 2020 19:06:18 +0000 Subject: [PATCH 37/52] Translated using Weblate (Portuguese) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/pt/ --- OsmAnd-telegram/res/values-pt/strings.xml | 45 +++++++++++------------ 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/OsmAnd-telegram/res/values-pt/strings.xml b/OsmAnd-telegram/res/values-pt/strings.xml index ecd23c5bcd..8b114893d7 100644 --- a/OsmAnd-telegram/res/values-pt/strings.xml +++ b/OsmAnd-telegram/res/values-pt/strings.xml @@ -57,10 +57,10 @@ Linha do tempo é um recurso disponível agora gratuitamente. Desativar monitoramento Gravação de localização ativada - Ative o monitoramento para salvar todos os locais no histórico. - Telegrama (a app de mensagens) é usado para conectar e se comunicar com as pessoas. + Ative o monitoramento para gravar todos os locais no histórico. + Telegram (a app de mensagens) é usado para conectar e comunicar com as pessoas. OsmAnd tracker é um dos clientes que usam a Plataforma aberta do Telegram . Seus contatos podem usar qualquer outro cliente Telegram. - Ao clicar em \"Continuar\" você concorda com as condições da política de privacidade do Telegram e OsmAnd. + Ao clicar em \"Continuar\" concorda com as condições da política de privacidade do Telegram e OsmAnd. Aceitar Política de privacidade do Telegram Política de privacidade do OsmAnd @@ -82,7 +82,7 @@ Escolha como as mensagens com sua localização serão exibidas. Mapa e texto Última atualização do Telegram - Escolha um nome que você ainda não usou + Escolha um nome que ainda não usou %1$s adicionado. Não foi possível adicionar novo aparelho Nomeie seu novo aparelho no máximo 200 símbolos. @@ -90,7 +90,7 @@ O nome do aparelho não pode estar vazio Nome do aparelho Pode criar e visualizar o ID do aparelho no cliente de telegrama usando o bot de bate-papo %1$s. %2$s - Se você deseja conectar vários aparelhos a uma conta de telegrama, é necessário usar um aparelho diferente para compartilhar sua localização. + Se deseja conectar vários aparelhos a uma conta de telegrama, é necessário usar um aparelho diferente para compartilhar a sua localização. Última localização atualizada: Enviado e atualizado com sucesso Não é possível enviar para bate-papo do Telegram: @@ -117,8 +117,8 @@ Gravar Adicionar aparelho Compartilhar localização como - Contatos e grupos compartilhando o local para você. - Tem certeza de que deseja sair do OsmAnd Tracker para que você não possa compartilhar o local ou ver a localização de outras pessoas\? + Contatos e grupos compartilhando o local consigo. + Tem certeza de que deseja sair do OsmAnd Tracker para que não possa compartilhar o local ou ver a localização de outras pessoas\? Sair do OsmAnd Tracker\? Nome Pela distância @@ -159,13 +159,13 @@ Vivo Robô Registro no Telegram - Você precisa de uma conta do Telegram para usar o compartilhamento de local. + Precisa de uma conta do Telegram para usar o compartilhamento de local. Por favor, instale o Telegram e configure uma conta. Então pode usar esta app. Todos - Desligado - Você precisa de uma conta e número de telefone registrados no Telegram - Eu não tenho conta Telegram + Desativado + Precisa de uma conta e número de telefone registados no Telegram + Não tenho uma conta do Telegram Digite o número de telefone Digite o código de autenticação Definir tempo visível para todos @@ -173,12 +173,12 @@ %1$d m %1$d h Instalar - Partilhar + Compartilhar Voltar Hora visível para todos Defina a hora em que seus contatos e grupos selecionados verão sua localização em tempo real. Definir tempo - Selecione os contatos e grupos com os quais você deseja compartilhar sua localização. + Selecione os contactos e grupos com os quais deseja compartilhar sua localização. Pesquisa: Grupo ou contato Compartilhar localização Mostrar no mapa @@ -190,7 +190,7 @@ Código de Autenticação Uma faixa GPX é salva automaticamente durante a navegação. Digite a palavra-passe - Palavra-passe do Telegram + Palavra-passe do telegrama Entrar Sair Iniciando @@ -204,14 +204,14 @@ A app não tem permissão para acessar os dados de localização. Por favor, ligue \"Localização\" nas configurações do sistema Selecione um dos provedores de localização para compartilhar sua localização. - Modo de fundo + Modo em segundo plano OsmAnd Tracker é executado em segundo plano com o ecrã desligado. Distância Compartilhar localização Compartilhando localização Serviço OsmAnd Tracker Logotipo do OsmAnd - Você precisa instalar a versão gratuita ou paga do OsmAnd primeiro + Precisa instalar a versão gratuita ou paga do OsmAnd primeiro Instalar OsmAnd Mostrar utilitadoes no mapa Bate-papos ativos @@ -230,30 +230,29 @@ m/s km/h mph - Quilómetros por hora + Quilômetros por hora Milhas por hora Metros por segundo - Minutos por quilómetro + Minutos por quilômetro Minutos por milha Milhas náuticas por hora (nó) Milhas/pés Milhas/jardas - Quilómetros/metros + Quilômetros/metros Milhas náuticas Milhas/metros h min seg - O OsmAnd Tracker permite que partilhe sua localização e veja a dos outros no OsmAnd.
-
O app usa a API Telegram e você precisa de uma conta da Telegram.
+ OsmAnd Tracker permite que partilhe a sua localização e veja a dos outros no OsmAnd.

O app usa a API Telegram e precisa de uma conta do Telegram.
Minha localização Ao vivo agora Cronologia Mensagens gravadas - Selecione o fuso horário para mostrar nas suas mensagens de localização. + Selecione o fuso horário a mostrar nas suas mensagens de localização. Fuso horário Unidades e formatos - Alterar unidade de medida de distância. + Alterar unidade de distância. Unidades de comprimento Definir unidade de velocidade. Unidade de velocidade From 350524c2c3afc478c2abd635ad27a4615440a16b Mon Sep 17 00:00:00 2001 From: Hinagiku Zeppeki Date: Wed, 19 Aug 2020 03:00:45 +0000 Subject: [PATCH 38/52] Translated using Weblate (Japanese) Currently translated at 90.2% (241 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/ja/ --- OsmAnd-telegram/res/values-ja/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd-telegram/res/values-ja/strings.xml b/OsmAnd-telegram/res/values-ja/strings.xml index 1c15afa46d..71c5af7daf 100644 --- a/OsmAnd-telegram/res/values-ja/strings.xml +++ b/OsmAnd-telegram/res/values-ja/strings.xml @@ -221,8 +221,8 @@ ヤード フィート マイル - キロメートル - メートル + km + m 海里 min/m min/km From a528adb869070c6825d7559a2b1e19400fa2a603 Mon Sep 17 00:00:00 2001 From: serg Date: Thu, 20 Aug 2020 08:40:25 +0300 Subject: [PATCH 39/52] Fix #57 --- OsmAnd/res/values-af/strings.xml | 6 ----- OsmAnd/res/values-ar/strings.xml | 13 ----------- OsmAnd/res/values-az/strings.xml | 13 ----------- OsmAnd/res/values-b+be+Latn/strings.xml | 13 ----------- OsmAnd/res/values-b+hsb/strings.xml | 5 ---- OsmAnd/res/values-b+kab/strings.xml | 5 ---- OsmAnd/res/values-b+sr+Latn/strings.xml | 1 - OsmAnd/res/values-be/strings.xml | 13 ----------- OsmAnd/res/values-bg/strings.xml | 8 ------- OsmAnd/res/values-bs/strings.xml | 1 - OsmAnd/res/values-ca/strings.xml | 13 ----------- OsmAnd/res/values-cs/strings.xml | 13 ----------- OsmAnd/res/values-cy/strings.xml | 1 - OsmAnd/res/values-da/strings.xml | 13 ----------- OsmAnd/res/values-de/strings.xml | 13 ----------- OsmAnd/res/values-el/strings.xml | 13 ----------- OsmAnd/res/values-eo/strings.xml | 13 ----------- OsmAnd/res/values-es-rAR/strings.xml | 13 ----------- OsmAnd/res/values-es-rUS/strings.xml | 13 ----------- OsmAnd/res/values-es/strings.xml | 13 ----------- OsmAnd/res/values-et/strings.xml | 13 ----------- OsmAnd/res/values-eu/strings.xml | 13 ----------- OsmAnd/res/values-fa/strings.xml | 13 ----------- OsmAnd/res/values-fi/strings.xml | 10 -------- OsmAnd/res/values-fr/strings.xml | 13 ----------- OsmAnd/res/values-gl/strings.xml | 15 +----------- OsmAnd/res/values-hr/strings.xml | 7 ------ OsmAnd/res/values-hu/strings.xml | 14 ----------- OsmAnd/res/values-hy/strings.xml | 13 ----------- OsmAnd/res/values-is/strings.xml | 13 ----------- OsmAnd/res/values-it/strings.xml | 13 ----------- OsmAnd/res/values-iw/strings.xml | 12 ---------- OsmAnd/res/values-ja/strings.xml | 12 ---------- OsmAnd/res/values-ka/strings.xml | 5 ---- OsmAnd/res/values-kn/strings.xml | 2 -- OsmAnd/res/values-ko/strings.xml | 7 ------ OsmAnd/res/values-ku/strings.xml | 1 - OsmAnd/res/values-lt/strings.xml | 11 --------- OsmAnd/res/values-lv/strings.xml | 12 ---------- OsmAnd/res/values-ml/strings.xml | 12 ---------- OsmAnd/res/values-mr/strings.xml | 1 - OsmAnd/res/values-nb/strings.xml | 14 +---------- OsmAnd/res/values-nl/strings.xml | 12 ---------- OsmAnd/res/values-pl/strings.xml | 12 ---------- OsmAnd/res/values-pt-rBR/strings.xml | 12 ---------- OsmAnd/res/values-pt/strings.xml | 14 +---------- OsmAnd/res/values-ro/strings.xml | 9 ------- OsmAnd/res/values-ru/strings.xml | 14 +---------- OsmAnd/res/values-sc/strings.xml | 12 ---------- OsmAnd/res/values-sk/strings.xml | 12 ---------- OsmAnd/res/values-sl/strings.xml | 12 ---------- OsmAnd/res/values-sr/strings.xml | 12 ---------- OsmAnd/res/values-sv/strings.xml | 12 ---------- OsmAnd/res/values-ta/strings.xml | 4 ---- OsmAnd/res/values-tr/strings.xml | 12 ---------- OsmAnd/res/values-uk/strings.xml | 12 ---------- OsmAnd/res/values-vi/strings.xml | 4 ---- OsmAnd/res/values-zh-rCN/strings.xml | 12 ---------- OsmAnd/res/values-zh-rTW/strings.xml | 12 ---------- OsmAnd/res/values/strings.xml | 31 +++++++++++++------------ 60 files changed, 20 insertions(+), 622 deletions(-) diff --git a/OsmAnd/res/values-af/strings.xml b/OsmAnd/res/values-af/strings.xml index c9ad8c06b9..fc80461eb5 100644 --- a/OsmAnd/res/values-af/strings.xml +++ b/OsmAnd/res/values-af/strings.xml @@ -268,7 +268,6 @@ Lêer kan nie herbenoem word nie. Lêer met daardie naam bestaan reeds. - GPX roete Verskeie interessante plek kategorieë gevind vir die soektog: Plaaslike inligting om interessante plek te soek is nie teenwoordig nie. Soek met die naam @@ -290,7 +289,6 @@ Soek naby: Soek hier naby - Berg roete as GPX spoor Roete suksesvol geberg as \'%1$s\'. "Dokument naam: " @@ -413,7 +411,6 @@ Deel ligging GPX Roetebaken \'\'{0}\'\' was suksesvol bygevoeg Voeg roetebaken by tot opgeneemde GPX spoor - Voeg GPX roetebaken by Administratief versperring Opvoeding @@ -515,7 +512,6 @@ Vektor kaarte was nie gelaai nie GPX lêers nie gevind in /tracks adres nie - GPX spoor… Fout met lees van GPX inligting Aflyn vektor kaarte Soek vervoer by stop @@ -717,7 +713,6 @@ Log tussenpose Kies posisioneringstussenpose vir spore Spore sal geberg word in die spoor bergadres in daaglikse groepe - Skryf die spoor in `n GPX dokument Opgradeer kaart Laai teël weer af Teiken @@ -864,7 +859,6 @@ Parkering -GPX opname Spoed Teiken Hoogte diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index d01c8b1ae4..1e08eb062a 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -94,7 +94,6 @@ اسم الشارع إعادة التعيين إلى الافتراضي موقف سيارات - تسجيل المسار السرعة الوجهة الارتفاع @@ -652,7 +651,6 @@ بدء المحاكاة لا يمكن إعادة تسمية الملف. يوجد ملف بهذا الاسم. - GPX طريق وجد عدة تصنيفات POI توافق الاستعلام. البيانات المحلية لبحث POI غير موجودة. البحث بالاسم @@ -670,7 +668,6 @@ مركز الخريطة الحالي المنطلق: بحث بالجوار - حفظ النقاط كمسار تم حفظ المسار بنجاح ك \'%1$s\'. اسم الملف: يوجد ملف بنفس الاسم موجود مسبقا. @@ -781,7 +778,6 @@ مشاركة المكان أُضيفت إحداثية GPX \'\' {0} \'\' بنجاح إضافة إحداثية لمسار مسجل - إضافة إلى مسار إداري حاجز تعليم @@ -981,7 +977,6 @@ مصدر الخريطة… مصدر الخريطة عرض أسماء المفضلة - المسارات المسجلة… لغة الخريطة التفاصيل الوقت الحالي @@ -1102,9 +1097,7 @@ الفاصل الزمني العام للتسجيل الفاصل الزمني لإيقاظ GPS تفعيل وضع GPS في الخلفية - تسجيل المسار في ملف GPX حفظ المسار الحالي إلى الذاكرة الآن. - تسجيل المسار أثناء الملاحة سيتم حفظ المسار إلى مجلد المسارات أثناء الملاحة. الفاصل الزمني للتسجيل الفاصل الزمني للتسجيل أثناء الملاحة @@ -1538,7 +1531,6 @@ أيام العمل الأماكن الأخيرة المفضلة - عرض GPX عدد الأسطر هل أنت متأكد ؟ ستفقد التعديلات الغير محفوظة. هل تريد المتابعة ؟ @@ -2114,7 +2106,6 @@ تشغيل/إيقاف الصوت الصوت معطل الصوت مشغل - إضافة الإحداثية GPX إضافة مكان موقف إضافة إجراء تعديل الإجراء @@ -2489,14 +2480,11 @@ اختر وضع الملاحة إضافة نقاط مسار إضافة خط - إضافة ملفات GPX - استيراد ملفات GPX ، أو تسجيل مسارات. إضافة مفضلات استيراد المفضلة ، أو إضافة عبر نقاط على الخريطة. استيراد مسار الملف %1$s لا يحتوي على نقاط وجهة، هل تود إدخاله كمسار؟ تحريك نقطة - إضافة إلى مسار عتبة توجيه الخريطة حدد أدناه على أي سرعة يتغير توجيه الخريطة من \'اتجاه الحركة\' إلى \'البوصلة\'. تم نقل جميع العلامات إلى السجل @@ -2870,7 +2858,6 @@ طريقة عرض المسافة من موقعي إلى العلامات النشطة. عدد الأسهم تجاه العلامات النشطة ( للملاحة في الصحراء). أسود - ملفات GPX تشغيل الغوارانية متوسط وقت الوصول diff --git a/OsmAnd/res/values-az/strings.xml b/OsmAnd/res/values-az/strings.xml index e162549076..b6121e92dc 100644 --- a/OsmAnd/res/values-az/strings.xml +++ b/OsmAnd/res/values-az/strings.xml @@ -708,7 +708,6 @@ Ən son yerlər Favoritlər Yadda saxlandı: %1$s - GPX məlumatlarını göstər Əminsiniz? %1$d fayl endirilir Al @@ -1308,17 +1307,14 @@ Qovluğa GPX fayllar da əlavə edə bilərsiniz Daha çox əlavə et… OsmAnd-ın məlumat saxlama yeri (xəritələr, GPX faylları və s.): %1$s. - Yeni GPX faylı olaraq saxla İzlər Hazırkı qeyd edilən iz İz seqmentləri İz nöqtələri İz boyu naviqasiya başladılsın? - İzi GPX faylına qeyd et Tələbə görə iz qeydiyyatı Hazırkı izi indi GPX faylı olaraq saxla. Hazırkı izi saxla - Naviqasiya zamanı izi avtomatik qeyd et Naviqasiya zamanı iz GPX formatında izlər qovluğunda avtomatik saxlanacaq. GPX faylı seçilməyib. Toxunub saxlayaraq birini seçin. Alt izlər: %1$s @@ -1338,7 +1334,6 @@ Hazırkı izi göstər Qeyd edilən GPX izinə yol nöqtəsi əlavə et İzlər qovluğunda GPX faylları tapılmadı - GPX faylları… Ekran sönülü olarkən mövqeyinizi izləyir. GPX faylı saxlanır… Nöqtələr arasındakı marşrutu hesabla @@ -1477,9 +1472,7 @@ GPX nöqtəsinə düzəliş et Yol nöqtələri GPX yol nöqtəsi “{0}” əlavə edildi - GPX yol nöqtəsi əlavə et Məlumatlar GPX faylı olaraq saxlansın yoxsa yol nöqtələri “Favoritlər”ə idxal edilsin? - GPX yol nöqtəsi əlavə et Kompas istiqaməti Hərəkət istiqaməti POI-yə düzəliş et @@ -1623,7 +1616,6 @@ Vaxt-limitsiz Vektor xəritə parametrləri Bu adda fayl artıq mövcuddur. - GPX marşrut Məsafəni ölç Seçimlər GPX fayl adı: @@ -1727,7 +1719,6 @@ Ən azı bir nöqtə əlavə edin. %1$s faylı yol nöqtəsi ehtiva etmir, iz olaraq idxal edilsin? Nöqtəni daşı - GPX faylına əlavə et OSM qəbul edənlər Ümumi ianələr Qış və xizək @@ -1886,8 +1877,6 @@ Artıq müəyyənləşdirilmiş ara təyinat nöqtələriniz var. Xəritə idxalı səhvi Xəritə idxal edildi - GPX faylları əlavə et - GPX faylları idxal edin və ya izlər qeyd edin. Fayl adını yazın. Aktiv işarələrə qədər məsafənin necə göstəriləcəyini seçin. İrəlidə tunel @@ -1929,7 +1918,6 @@ Nəqliyyat rejimi: Nəqliyyat rejimi seçin Bərələrdən yayın - GPX qeydiyyatı Növbəti döngə Növbəti döngə (kiçik) İkinci növbəti döngə @@ -2086,5 +2074,4 @@ Vikisəyahət Üst panel %1$s düzəliş, cəmi %2$s mBTC - GPX faylları
\ No newline at end of file diff --git a/OsmAnd/res/values-b+be+Latn/strings.xml b/OsmAnd/res/values-b+be+Latn/strings.xml index 433a73adec..eaf9e1689c 100644 --- a/OsmAnd/res/values-b+be+Latn/strings.xml +++ b/OsmAnd/res/values-b+be+Latn/strings.xml @@ -93,11 +93,9 @@ Ahulny іntervał zapіsu Іntervał abudžeńnia GPS Uklučyć fonavy režym GPS - Pіsać śled u GPX-fajł Ahuĺny zapis miescaznachodžannia ŭ GPX-fajl moža być ukliučany abo vykliučany z dapamohaj knopki zapisu GPX na ekranie z mapaj. Zachavać dziejny slied zaraz ža jak GPX-fajl. Zachavać dziejny slied - Aŭta-zapis treka padčas navihacyi GPX-trek aŭtamatyčna zachavany ŭ kataloh track padčas navihacyi. Іntervał zapіsu Іntervał zachoŭvańnia padčas navіhacyі @@ -646,7 +644,6 @@ Zachod: %2$s
Kompas Viarnucca da standartnych Parkoŭka - Zapіs GPX Chutkaść Miesca pryznačeńnia Vyšynia @@ -906,7 +903,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Pačać madelavańnie Fajł nia moža być pieranazvany. Fajł z takoj nazvaj užo іsnuje. - GPX maršrut Niekalkі katehoryj POI znojdzieny, što adpaviadajuć zapytu: Lakalnych źviestak dla pošuku POI niama. Pošuk pa naźvie @@ -924,7 +920,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Ciapierašni centr mapy Pačatak: Šukać navokal - Zachavać jak novy GPX-fajl Maršrut zachavany jak %1$s. Nazva fajla: Fajł z takoj nazvaj užo іsnuje. @@ -1027,7 +1022,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Dasłać kaardynaty GPX-kropka «{0}» dadadzienaja Dadać kropku da zapіsanaha GPX-śledu - Dadać GPX kropku Admіnіstracyjny Pieraškoda Adukacyja @@ -1117,7 +1111,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Hałasavyja padkazkі Viektarnyja mapy nie byli zahružany GPX fajły nie znojdzieny ŭ katałohu tracks - GPX-fajly… Nie atrymalasia pračytać GPX-danyja Łakalnyja viektarnyja mapy Šukać transpart na prypynku @@ -1905,7 +1898,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Ulubionyja Ciapier zachavany a %1$s POI buduć vydalenyja, jak tolkі vy zahruzіcie vašy źmieny - Pakazać GPX-danyja Kolkaść radkoŭ Vy ŭpeŭnienyja? Usie niezachavanyja źmieny buduć stračany. Praciahvać? @@ -2168,7 +2160,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Мapillary Dadać padkladku Pryhlušyć Holas - Dadać kropku GPX Dadać miesca parkoŭki Redahavać dziejańnie Dadać upadabanaje @@ -2483,14 +2474,11 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Abrać profil navihacyi Dadać kropki maršrutu Dadać liniju - Dadać GPX-fajly - Zapisać GPX-fajly ci zapisanyja sliady. Dadać va Ŭlubionyja Impartavać upadabanyja ci dadać z dapamohaj markiroŭki punktaŭ na mapie. Impartavać GPX-fajl Fajł %1$s nie źmiaščaje kropki šlachu, impartavać jak śled? Pieramiascić kropku - Dadać u GPX-fajl Praciahvać pakazvać na mapie Vyjści biez zachavańnia? Biez animacyi @@ -2771,7 +2759,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). \n • Padpiska OsmAnd Live ciapier padtrymlivaje ŭsie funkcyi OsmAnd \n \n
- GPX-fajly Pramiežkavy čas prybyccia Pramiežkavy čas Spampavać artykuly Vikipedyi dlia %1$s dlia aŭtanomnaha čytannia. diff --git a/OsmAnd/res/values-b+hsb/strings.xml b/OsmAnd/res/values-b+hsb/strings.xml index ef2efdbf0c..9e05366624 100644 --- a/OsmAnd/res/values-b+hsb/strings.xml +++ b/OsmAnd/res/values-b+hsb/strings.xml @@ -847,7 +847,6 @@ Njedawne městna Fawority Składowane pod: %1$s - Pokazaj GPX-daty Sy sej wěsty/wěsta? Kupić Pozdźišo @@ -1170,7 +1169,6 @@ Standard (13) Detaile pokazać Přetorhnyć - Jako nowu GPX-dataju składować Přewzać Wjace njepokazać Nahrawanje jězbow @@ -1455,7 +1453,6 @@ Strona steji jenož online k dispoziciji. Chceš ju w browseru wočinić? Móžeš tež GPX-dataje dodać - GPX-dataje dodać Po zdalenosći sortěrować Jako skupinu faworitow składować Cile wubrać @@ -1485,7 +1482,6 @@ Awtodróhi preferować GPX-nahrawanje započeć GPX-nahrawanje zastajić - GPX-nahrawanje Najdalši jako prěni Najbliši jako prěni Šěrinu a dołhotu zapodać @@ -1497,7 +1493,6 @@ Karta importěrowana Za njewobmjezowane sćehnjenje kartow a aktualizacije husćišo hač jónu wob měsac: tydźensce, wšědnje abo hodźinsce. Powšitkowny interwal nahrawanja - Čaru jako GPX-dataju nahrać Interwal nahrawanja Interwal nahrawanja w běhu nawigacije Wuběr interwal za nahrawanje čary w běhu nawigacije. diff --git a/OsmAnd/res/values-b+kab/strings.xml b/OsmAnd/res/values-b+kab/strings.xml index bda77e7bfd..3faa95123f 100644 --- a/OsmAnd/res/values-b+kab/strings.xml +++ b/OsmAnd/res/values-b+kab/strings.xml @@ -145,7 +145,6 @@ Amatu Taddart Tiɣremt - Abrid n GPX Leqqem OsmAnd+ Tansa … Isem n ufaylu: @@ -189,7 +188,6 @@ Ldi OsmAnd Uṭṭun n Uzadaɣ - Sken isefka GPX Iberdan %1$.1f ɣef %2$.1f MAṬ @@ -999,7 +997,6 @@ Taneqqiḍt Taneqqiḍt Tigawin - Ifuyla Ittemcabi ar ufayli-ik GPX Ales tanekra Azegrir @@ -1118,7 +1115,6 @@ Areyyec Kkes Beddel - Ifuyla Adig Sider Annar n trusi n utrab @@ -1151,7 +1147,6 @@ Sefsex asider War talast ar zdat - Aɣmis A_maɣlal Zgel… Sken ilɣa… diff --git a/OsmAnd/res/values-b+sr+Latn/strings.xml b/OsmAnd/res/values-b+sr+Latn/strings.xml index 88e8d8e9b0..c22ba49c7b 100644 --- a/OsmAnd/res/values-b+sr+Latn/strings.xml +++ b/OsmAnd/res/values-b+sr+Latn/strings.xml @@ -123,7 +123,6 @@ Započni simulaciju Fajl ne može biti preimenovan . Fajl sa tim imenom već postoji. - GPX ruta Pretraga po imenu Mesna datoteka za održavanje promene POI-a nije pronađena i ne može da se napravi . Nadogradite Osmand+ diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 988e0c1d18..cbaf1399ed 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -346,7 +346,6 @@ Компас Скінуць да прадвызначаных Паркоўка - Запіс GPX Хуткасць Пункт прызначэння Вышыня @@ -592,7 +591,6 @@ Пачаць мадэляванне Не атрымалася змяніць назву файла. Файл з такой назвай ужо існуе. - GPX-маршрут Знойдзена некалькі звязаных катэгорый POI. Спампаваць аўтаномныя даныя для пошуку POI. Пошук па назве @@ -711,7 +709,6 @@ Даслаць каардынаты GPX-пункт \"{0}\" дададзены Дадаць пункт да запісанага GPX-следу - Дадаць пункт GPX Адміністрацыйны Перашкода Адукацыя @@ -797,7 +794,6 @@ Запісаны голас Вектарныя мапы не былі загружаныя GPX-файлаў не знойдзена ў каталогзе слядоў - GPX-файлы… Не атрымалася прачытаць GPX-даныя. Пазасеціўныя вектарныя мапы Шукаць транспарт на прыпынку @@ -971,7 +967,6 @@ Інтэрвал захавання падчас навігацыі Вызгачце інтэрвал захоўвання пунктаў следу падчас навігацыі GPX-след аўтаматычна захаваны ў каталог слядоў падчас навігацыі. - Аўтаматычна запісваць след падчас навігацыі Абнавіць мапу Абнавіць фрагмент мапы Мэта @@ -1308,7 +1303,6 @@ Працягласць Адлегласць Маршруты аўтобусаў, тралейбусаў і таксі - Пісаць след у GPX-файл Інтэрвал запісу Запіс месцазнаходжання ў GPX-файл можа быць уключаны або выключаны з дапамогай кнопкі запісу GPX мапе. Пытацца заўсёды @@ -1464,7 +1458,6 @@ Адкінуць выбар усяго Ачысціць Захаваць - Захаваць як новы GPX-файл Змяніць назву Выдаліць Выдаліць усё @@ -1700,7 +1693,6 @@ Нядаўнія месцы Улюбёныя Цяпер захаваны а %1$s - Паказаць GPX-даныя POI будуць выдаленыя, як толькі вы запампуеце вашыя змены Паказваць падчас запуску Колькасць радкоў @@ -2154,7 +2146,6 @@ \nАпісвае вобласць: %1$s x %2$s Хуткае дзеянне Дзеянне %d - Дадаць пункт да следу Дадаць дзеянне Рэдагаваць дзеянне Дадаць ва ўлюбёныя @@ -2542,14 +2533,11 @@ Абраць профіль навігацыі Дадаць пункты маршруту Дадаць лінію - Дадаць GPX-файлы - Імпартаваць GPX-файлы ці запісаныя сляды. Дадаць улюбёныя мясціны Імпартаваць улюбёныя ці дадаць з адзнак на мапе. Імпартаваць GPX-файл Файл %1$s не змяшчае пункты шляху, імпартаваць як след\? Перамясціць пункт - Дадаць у GPX-файл Працягваць паказваць на мапе Выйсці без захавання\? Без анімацыі @@ -2827,7 +2815,6 @@ Прамежкавы час Мадыфікацыя прадвызначанага стылю для павялічэння кантрастнасці пешаходных і роварных дарог. Выкарыстоўвае старыя Mapnik-колеры. Атрымайце OsmAnd Live, каб разблакаваць усе функцыі: штодзённыя абнаўленні мап з неабмежаванымі спампоўваннямі, усе платныя і бясплатныя ўбудовы, Вікіпедыю, Вікігід і шмат іншага. - GPX-файлы Рэдагаваць дзеянні • Новае: падтрымка аўтаномных турыстычных даведнікаў. Мясціны звязаныя з мапай. Зыходныя даныя ад Wikivoyage. \n diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 72b05a3ff5..c2074b7a0c 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -243,7 +243,6 @@ Компас Начални настройки Паркинг - GPX проследяване Скорост Крайна цел Надм. височина @@ -491,7 +490,6 @@ Старт на симулацията Файлът не може да бъде преименуван. Съществува файл с това име. - GPX маршрут Намерени са няколко категории POI отговарящи на тези критерии: Няма местни данни за търсене на POI. Търсене по име @@ -509,7 +507,6 @@ Текущ център на картата Начална точка: Търси близо до това място - Записване на маршрута като GPX следа Маршрутът беше успешно записан като \'%1$s\'. Име на файл: Съществува файл със същото име. @@ -612,7 +609,6 @@ Споделяне на мястото GPS позицията \'\'{0}\'\' беше успешно добавена Добавяне на точка към GPX следа - Добави GPX точка Административни Ограничения Образование @@ -699,7 +695,6 @@ Записан глас Не са заредени векторни карти Не са открити файлове GPX в папката за следи - GPX следа… Грешка при четене на GPX данни Офлайн векторни карти Търсене за общ. транспорт на тази спирка @@ -880,7 +875,6 @@ Интервал за запис по време на навигация Избор на интервал, през който да се прави запис на следата по време на навигация Следите ще бъдат записвани в папката tracks по време на самата навигация - Запиши следата в GPX файл по време на навигация Обнови картата Презареждане на картната плочка Цел @@ -1112,7 +1106,6 @@ Винаги питай Поставяне на GPS във фонов режим Прекъсване на фоновия режим GPS? - Записване на следата в GPX файл Интервал за запис Интервал за задействане на GPS-a Предпочитан език за наименованията по картата (ако този език не е наличен, ще се имената ще се изписват на английски или на местния език) @@ -1671,7 +1664,6 @@ Остават %1$s изтегляния Сигурни ли сте? Брой редове - Покажи GPX Успешно записано в: %1$s Задайте тип на POI. Последни места diff --git a/OsmAnd/res/values-bs/strings.xml b/OsmAnd/res/values-bs/strings.xml index 43a576b0de..efd99ff13d 100644 --- a/OsmAnd/res/values-bs/strings.xml +++ b/OsmAnd/res/values-bs/strings.xml @@ -59,7 +59,6 @@ Parkiralište - Monitoring Brzina Target Visina diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index c945812712..2a7bfdd9bf 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -212,7 +212,6 @@ Atura l\'animació Inicia l\'animació Ja existeix un fitxer amb aquest nom. - Ruta GPX Baixeu dades locals per cercar els PDI. Cerca pel nom Nominatim en línia @@ -221,7 +220,6 @@ Adreça… Indefinida Cerca pel voltant - Desa com un nou fitxer GPX La ruta s\'ha desat com a «%1$s». Nom del fitxer: Desa @@ -545,10 +543,8 @@ Opacitat del mapa base Informació de depuració de dibuixat El fitxer local per mantenir el canvis en els PDI no s\'ha trobat i podria no haver-se creat. - Enregistrament GPX Capes superposades fluorescents Refresca - Fitxers GPX… Mapes de vectors fora de línia Modifica el PDI Elimina el PDI @@ -650,7 +646,6 @@ Mostra paràmetres per activar el seguiment i la navegació en procés de fons mitjançant l\'activació periòdica del dispositiu GPS (amb la pantalla apagada). Preferències relatives a l\'accessibilitat. Mostra el rendiment de la renderització. - Afegeix una fita GPX Cercador de noms en línia Mostra una renderització contínua en comptes d\'una imatge de cop. Penjant les dades… @@ -910,7 +905,6 @@ Error d\'E/S Teclegeu per trobar el PDI Mostra les parades del transport - Enregistrament automàtic del trajecte durant la navegació Escolliu entre els noms nadius i els anglesos. Aquest connector proporciona tant corbes de nivell superposades com una capa d\'ombres amb efecte relleu per superposar als mapes de OsmAnd. Corredors, ciclistes, excursionistes i qualsevol interessat en el perfil de relleu del terreny ho agrairan força. (Fixeu-vos que les corbes de nivell i/o els efectes de relleu són baixades independents i complementàries, disponibles un cop s\'hagi activat el connector). \n @@ -1335,7 +1329,6 @@ Durada Distància Rutes de bus, troleibús i tramvia - Desa la traça en un fitxer GPX L\'enregistrament de la posició en un fitxer GPX es pot activar o desactivar amb el giny d\'enregistrament GPX al mapa. Interval d\'enregistrament Es demana confirmació @@ -1678,7 +1671,6 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu Preferits Ara desat a: %1$s El PDI s\'eliminara un cop pugeu els vostres canvis - Mostra les dades GPX Detalls del preferit Atura la simulació de la vostra posició. Simula la vostra posició utilitzant una ruta calculada o una traça GPX enregistrada. @@ -2132,7 +2124,6 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu Veu activada/desactivada Torna a activar la veu Desactiva la veu - Afegeix fita GPX Afegeix lloc d\'aparcament Afegeix acció Edita acció @@ -2502,14 +2493,11 @@ Abasta l\'àrea: %1$s x %2$s Escolliu el perfil de navegació Afegeix punts de la ruta Afegeix una línia - Afegiu fitxers GPX - Importeu fitxers GPX o enregistreu traces. Afegiu als preferits Importeu Preferits o afegiu-los al mapa marcant-los. Importa fitxer GPX El fitxer %1$s no conté fites, voleu importar-lo com una traça? Mou punt - Afegeix a un fitxer GPX Continua mostrant al mapa Voleu sortir sense desar? Sense animacions @@ -2797,7 +2785,6 @@ Abasta l\'àrea: %1$s x %2$s Temps de pas Aconseguiu una subscripció OsmAnd Live per llegir articles de Viquipèdia i ViquiViatges sense connexió. Modificació de l\'estil predefinit per incrementar el contrast a les vies per vianants i bicicletes. Utilitza els colors del llegat Mapnik. - Fitxers GPX Obteniu OsmAnd Live per disposar de totes les funcionalitats:Actualitzacions diàries de mapes sense límit de baixades, tots els connectors tant els de pagament, Viquipèdia, ViquiViatges i molt més. Edita les accions Us agrairem que envieu una captura de pantalla d\'aquesta notificació a support@osmand.net diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 43b3ad38e3..8981444dbb 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -142,7 +142,6 @@ Zapnout animaci Nelze přejmenovat soubor. Soubor tohoto jména již existuje. - GPX trasa Vašemu dotazu odpovídá několik kategorií POI: Lokální data pro vyhledávání POI není dostupný. Hledat podle jména @@ -160,7 +159,6 @@ Současný střed mapy Počáteční bod: Hledat v okolí - Uložit jako nový soubor GPX Trasa uložena jako „%1$s“. Jméno souboru: Soubor s tímto jménem už existuje. @@ -312,7 +310,6 @@ Sdílet polohu GPX bod na trase \'\'{0}\'\' byl přidán Přidat bod na zaznamenávanou GPX trasu - Přidat bod na GPX trasu Off-line navigace je experimentální a funguje jen pro větší vzdálenosti než 20 km. Navigace je dočasně přepnuta na on-line CloudMade. Nemohu najít zadaný adresář. Adresář pro data @@ -362,7 +359,6 @@ Nahrávka hlasu Vektorové mapy nebyly načteny Žádné GPX soubory nebyly nalezeny v adresáři tracks - GPX soubory… Nelze načíst GPX data Vektorové off-line mapy Hledat dopravu ze zastávky @@ -549,7 +545,6 @@ Vyberte interval pro ukládání trasy během navigace. Interval ukládání trasy během navigace Během navigace budou GPX trasy automaticky ukládány do adresáře s trasami. - Automaticky zaznamenat trasu během navigace Aktualizovat mapu Načíst znovu dlaždici Cíl @@ -749,7 +744,6 @@ Proporcionální paměť %4$s MB (limit Androidu %5$s MB, Dalvik %6$s MB).Kompas
Obnovit výchozí hodnoty Parkování - Záznam trasy Aktuální rychlost Cíl Nadmořská výška @@ -1297,7 +1291,6 @@ Proporcionální paměť %4$s MB (limit Androidu %5$s MB, Dalvik %6$s MB).Vzdálenost Cesty Všechny - "Ukládat trasu do GPX souboru" Body na trase Dopravní varování Blízké Oblíbené body @@ -1617,7 +1610,6 @@ Délka %2$s Počet řádků v bloku %1$s Uloženo na: %1$s POI bude smazán, jakmile své změny odešlete - Zobrazit GPX data Bengálština Tagalština Srbochorvatština @@ -2099,7 +2091,6 @@ Délka %2$s Hlas zapnout/vypnout Zrušit ztlumení hlasu Ztlumit hlas - Přidat GPX mezicíl Přidat parkovací místo Přidat akci Upravit akci @@ -2354,14 +2345,11 @@ Zobrazená oblast: %1$s x %2$s Vyberte profil navigace Přidat body trasy Přidat čáru - Přidejte soubory GPX - Přidejte soubory GPX obsahující trasy nebo vytvořte nové zaznamenáním pohybu. Přidejte Oblíbené Importujte Oblíbené nebo je přidejte označením bodů na mapě. Import souboru GPX Soubor %1$s neobsahuje body GPX trasy, chcete jej přesto importovat jako trasu? Přesunout bod - Přidat do GPX souboru Přesunout vše do historie Indikace vzdálenosti Seřadit podle @@ -2780,7 +2768,6 @@ Zobrazená oblast: %1$s x %2$s Jsou dostupná nová data Wikivoyage, aktualizujte je na nejnovější verzi. Turistický průvodce Wikivoyage Průvodce Wikivoyage Vám ukáže nejzajímavější místa planety, přímo v aplikaci OsmAnd a bez nutnosti připojení k internetu. - Soubory GPX Čas příjezdu do mezicíle Do průjezdního bodu Klepněte na tlačítko pro vyslechnutí odpovídajícího hlasového pokynu, aby jste zjistili chybné nebo chybějící pokyny. diff --git a/OsmAnd/res/values-cy/strings.xml b/OsmAnd/res/values-cy/strings.xml index 73c6212975..62c9977987 100644 --- a/OsmAnd/res/values-cy/strings.xml +++ b/OsmAnd/res/values-cy/strings.xml @@ -23,7 +23,6 @@ Parcio -Tracio Cyflymder Targed Uchder diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index b7c15305b1..52cb5b54c7 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -163,7 +163,6 @@ Reliefskygger Nulstil til standard Parkering - GPX-logning Hastighed Destination Højde @@ -416,7 +415,6 @@ Start simulering Filen kunne ikke omdøbes. En fil med dette navn findes allerede. - GPX-rute Flere kategorier af interessepunkter fundet som matcher forespørgslen: Lokale data til at søge interessepunkter findes ikke. Søg via navn @@ -583,7 +581,6 @@ Del placering GPX-rutepunkt \'{0}\' tilføjet Tilføj rutepunkt til optaget GPX-spor - Tilføj GPX-rutepunkt Administrativ Forhindringer Uddannelse @@ -666,7 +663,6 @@ Optaget stemme Vektorkort blev ikke indlæst Ingen GPX-filer blev fundet i \'/tracks\' mappen - GPX-filer… Kunne ikke læse GPX-data. Offline vektorkort Søg efter transport ved stoppested @@ -880,7 +876,6 @@ Logningsinterval under navigation Angiv logningsinterval for optagelse af spor under navigation GPX-spor gemmes automatisk i tracks-mappen under navigation. - Automatisk optagelse af spor under navigation Opdater kort Genindlæs kortbrikker Mål @@ -1276,7 +1271,6 @@ \n \nOptagede spor kan deles med venner eller anvendes til OSM-bidrag. Sportsfolk kan bruge optagede spor til at overvåge deres træning. En vis grundlæggende sporanalyse kan udføres direkte i OsmAnd, såsom omgangstider, gennemsnitshastighed mv., og spor kan selvfølgelig også senere analyseres i særlige tredjeparts analyseværktøjer. Bus-, trolleybus-, shuttlebusruter - Log spor til GPX-fil Logningsinterval Generel positionsslogning til en GPX-fil kan slås til eller fra med GPX-logning udvidelsen på kortet. Spørg altid @@ -1454,7 +1448,6 @@ Fravælg alle Slet Gem - Gem som en ny GPX-fil Omdøb Slet Slet alle @@ -1672,7 +1665,6 @@ slet Nu gemt i: %1$s Interessepunkt (IP) vil blive slettet, når ændringer overføres - Vis GPX-data Antal linjer Vis ved start Eventuelle ikke-gemte ændringer vil gå tabt. Fortsæt? @@ -2126,7 +2118,6 @@ Talevejledning til/fra Aktiver talevejledning Deaktiver talevejledning - Tilføj GPX-rutepunkt Tilføj en parkeringsplads Tilføj genvej Rediger genvej @@ -2495,14 +2486,11 @@ Repræsenterer område: %1$s x %2$s Vælg navigationsprofil Tilføj rutepunkter Tilføj linje - Tilføj GPX-filer - Importer GPX-filer eller optag spor. Tilføj favoritter Importer Favoritter, eller tilføj ved at markere punkter på kortet. Importer GPX-fil Filen %1$s indeholder ingen rutepunkter, importer den som et spor? Flyt punkt - Tilføj til GPX-fil Fortsæt med at vise på kortet Afslut uden at gemme? Ingen animationer @@ -2789,7 +2777,6 @@ Repræsenterer område: %1$s x %2$s Mellemliggende ankomsttid Mellemliggende tid Ændring af standard stil for at øge kontrasten på fodgænger- og cykelveje. Bruger Mapniks oprindelige farver. - GPX-filer Abonner på OsmAnd Live og brug alle funktioner: daglige opdateringer af kort, alle gratis og betalte udvidelser, Wikipedia, Wikivoyage og meget mere. Rediger genveje Send et skærmbillede af meddelelsen til support@osmand.net diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 1b13fe1aef..b1757568c8 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -39,12 +39,10 @@ OsmAnd im Hintergrund ausführen GPS Aufwach-Intervall für den Hintergrunddienst: GPS-Aufwachintervall - Aufzeichnung in GPX-Datei GPX-Aufzeichnung bei Bedarf Generelle Positionserfassung kann mit der Schaltfläche \'GPX\' direkt auf dem Kartenbildschirm aktiviert oder deaktiviert werden. Aktuellen Track speichern Aktuellen Track jetzt als GPX-Datei speichern. - Während der Navigation automatisch Track aufzeichnen Während der Navigation wird automatisch ein GPX-Track im Track-Ordner gespeichert. Aufzeichnungsintervall Erfassungsintervall während der Navigation @@ -363,7 +361,6 @@ Aktueller Kartenmittelpunkt Ausgangspunkt: In der Nähe suchen - Als neue GPX-Datei speichern Route erfolgreich gespeichert als \'%1$s\'. Dateiname: Datei mit gleichem Namen besteht bereits. @@ -471,7 +468,6 @@ Standort mitteilen GPX-Wegpunkt \'\'{0}\'\' hinzugefügt Wegpunkt zum aufgezeichneten GPX-Track hinzufügen - GPX-Wegpunkt hinzufügen Verwaltung Barriere Bildung @@ -568,7 +564,6 @@ Sprachansagen Sprachansage Vektorkarten wurden nicht geladen - GPX-Dateien … GPX-Daten konnten nicht gelesen werden Offline-Vektorkarten Suche nach Verbindung an Haltestelle @@ -905,7 +900,6 @@ Kompass Auf Voreinstellung zurücksetzen Parken - GPX-Aufzeichnung Geschwindigkeit Ziel Höhe @@ -1335,7 +1329,6 @@ Tags Beschreibung Aufzeichnung mit der Schaltfläche \'GPX\' oder unter \'Erweiterungen → Streckenaufzeichnung → Einstellungen\'. - GPX-Route GPX-Route umkehren Derzeitiges Ziel verwenden Gesamten Track durchlaufen @@ -1689,7 +1682,6 @@ Werktage Favoriten Der POI wird hier gelöscht, sobald Sie Ihre Änderungen hochladen - GPX-Daten anzeigen Sicher? Alle ungesicherten Änderungen gehen verloren. Fortfahren? Straßen @@ -2121,7 +2113,6 @@ Sprachausgabe ein/aus Sprachausgabe aktivieren Sprachausgabe stummschalten - GPX-Wegpunkt einfügen Parkposition festlegen Aktion hinzufügen Aktion bearbeiten @@ -2503,14 +2494,11 @@ Navigationsprofil wählen Routenpunkte hinzufügen Strecke hinzufügen - GPX-Dateien hinzufügen - GPX-Dateien importieren oder Tracks aufzeichnen. Favoriten hinzufügen Favoriten importieren oder durch Markieren von Punkten auf der Karte erstellen. GPX-Datei importieren Die Datei %1$s enthält keine Wegpunkte. Soll sie als Track importiert werden\? Punkt verschieben - Zu einer GPX-Datei hinzufügen Keine Animationen Schaltet Kartenanimationen aus. Weiterhin auf der Karte anzeigen @@ -2796,7 +2784,6 @@ Ankunftszeit Zwischenziel Zwischenankunftszeit Änderung des Standardstils, um den Kontrast von Fußgänger- und Fahrradwegen zu erhöhen. Verwendet alte Mapnik-Farben. - GPX-Dateien Holen Sie sich OsmAnd Live, um alle Funktionen freizuschalten: Tägliche Karten-Updates mit unbegrenzten Downloads, alle kostenpflichtigen und kostenlosen Plugins, Wikipedia, Wikivoyage und vieles mehr. Aktionen bearbeiten Bitte senden Sie einen Screenshot dieser Meldung an support@osmand.net diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index 59b6b8c2b4..cb4f744cd6 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -92,7 +92,6 @@ Πυξίδα Επαναφορά στα προκαθορισμένα Στάθμευση - Καταγραφή GPX Ταχύτητα Προορισμός Υψόμετρο @@ -343,7 +342,6 @@ Έναρξη προσομοίωσης Το αρχείο δεν μπορούσε να μετονομαστεί. Υπάρχει ήδη ένα αρχείο με αυτό το όνομα. - διαδρομή GPX Βρέθηκαν αρκετές σχετικές κατηγορίες ΣΕ. Λάβετε δεδομένα εκτός διαδικτύου για να αναζητήσετε ΣΕ. Αναζήτηση βάσει ονόματος @@ -360,7 +358,6 @@ Τρέχον κέντρο χάρτη Πηγή: Αναζήτηση κοντινών αποστάσεων - Αποθήκευση ως νέο αρχείο GPX Η διαδρομή αποθηκεύτηκε ως \'%1$s\'. Όνομα αρχείου: Υπάρχει ήδη αρχείο με το ίδιο όνομα. @@ -462,7 +459,6 @@ Κοινή χρήση τοποθεσίας Προστέθηκε το GPX σημείο διαδρομής \'\'{0}\'\' Προσθήκη σημείου διαδρομής στο εγγραφόμενο ίχνος GPX - Προσθήκη σημείου GPX Διοικητικό Φράκτης Εκπαίδευση @@ -553,7 +549,6 @@ Ηχογραφημένη φωνή Οι διανυσματικοί χάρτες δεν φορτώθηκαν Δεν βρέθηκαν αρχεία GPX στον κατάλογο ιχνών - Αρχεία GPX… Αδυναμία ανάγνωσης δεδομένων GPX. Διανυσματικοί χάρτες χωρίς σύνδεση Αναζήτηση Μ.Μ.Μ στη στάση @@ -728,7 +723,6 @@ Διάστημα καταγραφής κατά την πλοήγηση Προσδιορίστε το διάστημα καταγραφής για την εγγραφή ιχνών κατά την πλοήγηση Το ίχνος GPX αποθηκεύεται αυτόματα στον κατάλογο ιχνών κατά την πλοήγηση. - Αυτόματη εγγραφή ίχνους κατά την πλοήγηση Ενημέρωση χάρτη Ανανέωση πλακιδίου Στόχος @@ -1240,7 +1234,6 @@ Απόσταση Περιηγήσεις Σημεία διαδρομής - Καταγραφή ίχνους σε αρχείο GPX Η γενική καταγραφή θέσης σε αρχείο GPX μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί χρησιμοποιώντας το γραφικό στοιχείο καταγραφής GPX στον χάρτη. Διάστημα καταγραφής Λεωφορεία, τρόλεϊ, κλειστά δρομολόγια @@ -2566,7 +2559,6 @@ Πρόσφατα μέρη Αγαπημένα Τώρα αποθηκεύτηκε στο: %1$s - Εμφάνιση δεδομένων GPX Πλήθος γραμμών Είσαστε σίγουρος; Οι μη αποθηκευμένες αλλαγές θα χαθούν. Συνέχεια; @@ -2646,7 +2638,6 @@ Φωνή ναι/όχι Κατάργηση σίγασης φωνής Σίγαση φωνής - Προσθήκη σημείου διαδρομής GPX Προσθήκη θέσης στάθμευσης Προσθήκη ενέργειας Επεξεργασία ενέργειας @@ -2717,14 +2708,11 @@ Αποθήκευση σημείου διαδρομής Σημείο διαδρομής 1 Σημείο διαδρομής 1 - Προσθήκη αρχείων GPX - Εισαγωγή αρχείων GPX, ή καταγραφή ιχνών. Προσθήκη αγαπημένων Εισαγωγή αγαπημένων, ή προσθήκη τους μέσω σημείων επισήμανσης στον χάρτη. Εισαγωγή αρχείου GPX Το αρχείο %1$s δεν περιέχει σημεία διαδρομής, να εισαχθεί ως ίχνος; Μετακίνηση σημείου - Προσθήκη αρχείου GPX Αποδέκτες OSM Συνολικές δωρεές κλειστό @@ -2798,7 +2786,6 @@ Χρόνος άφιξης που μεσολάβησε Ενδιάμεσος χρόνος Τροποποίηση της τυπικής μορφής για αύξηση της αντίθεσης των πεζόδρομων και ποδηλάτου. Χρήση χρωμάτων παλιών Mapnik. - Αρχεία GPX Εγγραφείτε στο OsmAnd Live για να ξεκλειδώσετε όλα τα χαρακτηριστικά: Ημερήσιες ενημερώσεις χαρτών με απεριόριστες λήψεις, όλα πληρωμένα και χωρίς πρόσθετα, βικιπαίδεια, βικιταξίδια και πολλά άλλα. Επεξεργασία ενεργειών Παρακαλούμε, στείλτε στιγμιότυπο αυτής της ειδοποίησης στο support@osmand.net diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index d0c4f7ddb7..8f8b66acbe 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -451,7 +451,6 @@ Ne uzi elektitaj Neniu - Konservi kiel novan GPX-dosieron Pliaj agoj Ne montri plue Memori elekton @@ -593,12 +592,10 @@ Elekti intervalon de registrado por ĝenerala registrado de kurso (aktivigita per la GPX-registrada fenestraĵo sur la mapo). GPS-a vekintervalo Aktivigi GPS-an fonan reĝimon - Registri spuron al GPX-dosiero Registri spuron laŭpete Ĝeneralan registradon de pozicio al GPX‑dosiero oni povas (mal)aktivigi per la GPX‑registrada fenestraĵo sur la map‑ekrano. Konservi aktualan spuron kiel GPX-dosieron. Konservi aktualan spuron - Aŭtomate registri spuron dum navigado GPX-spuro estas aŭtomate konservata al dosierujo de spuroj dum navigado. Registrada intervalo Registrada intervalo dum navigado @@ -1118,7 +1115,6 @@ Kompaso Rekomencigi Parkumejo - GPX-registrado Rapido Celo Altitudo @@ -1363,7 +1359,6 @@ Ekigi simuladon Ne povas alinomi dosieron. Dosiero kun la sama nomo jam ekzistas. - GPX-kurso Trovis kelkajn rilatajn kategoriojn de interesejoj. Elŝutu malkonektajn datumojn por serĉi interesejojn. Serĉi laŭ nomo @@ -1554,7 +1549,6 @@ Kunhavigi lokon Aldonis GPX-navigadpunkton “{0}” Aldoni navigadpunkton al registrita GPX-spuro - Aldoni GPX-navigadpunkton Utilkampo Ripozejo Artefarita objekto @@ -1623,7 +1617,6 @@ Modifi interesejon Forigi interesejon Neniu GPX-dosiero trovita en dosierujo de kurs-spuroj - GPX-dosieroj… Ne povas legi GPX‑datumojn. Direkto de kompaso Direkto de movado @@ -1898,7 +1891,6 @@ Ŝatataj ejoj Konservita je: %1$s Interesejo estos forigita kiam vi alŝutos viajn ŝanĝojn - Montri GPX-datumojn Nombro da linioj Ĉu vi certas? Ĉiuj nekonservitaj ŝanĝoj estos forigitaj. Ĉu pluigi? @@ -2116,7 +2108,6 @@ Voĉo ek/for Malsilentigi voĉon Silentigi voĉon - Aldoni GPX-navigadpunkton Aldoni parkumejon Aldoni agon Redakti agon @@ -2491,14 +2482,11 @@ Elektu profilon de navigo Aldoni kurspunktojn Aldoni linion - Aldoni GPX-dosierojn - Registru spurojn aŭ enportu GPX-dosierojn. Aldoni ŝatatajn Enportu ŝatatajn punktojn aŭ aldonu ilin per map‑markoj al la mapo. Enporti GPX-dosieron Dosiero %1$s ne enhavas navigadpunktojn, ĉe enporti ĝin kiel spuron? Movi punkton - Aldoni al GPX-dosiero Daŭre montri sur mapo Ĉu eliri sen konservi? Sen movbildoj @@ -2786,7 +2774,6 @@ Tempo al intercelo Modifo de la norma stilo por pliigi kontraston de piediradaj kaj biciklaj vojoj. Uzas malnovan kolor-skemon de Mapnik. Akiru OsmAnd-Live por malŝlosi ĉiujn eblaĵojn: ĉiutagajn map-ĝisdatigojn, senlimigitajn elŝutojn, ĉiujn pagendajn kaj senpagajn kromprogramojn, Vikipedion, Vikivojaĝon kaj pli. - GPX-dosieroj Redakti agojn Bonvolu sendi ekrankopion de tiu ĉi averto al support@osmand.net Redakti punkton diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index be30562515..f12953660d 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -83,7 +83,6 @@ Limpiar Limpiar todo Guardar - Guardar como nuevo archivo GPX Renombrar Borrar Borrar todo @@ -447,10 +446,8 @@ Intervalo de registro para la grabación general de trazas (activar mediante el widget de grabación GPX sobre el mapa). Intervalo de registro general Intervalo de activación del GPS - Guardar traza en archivo GPX Registro de trazas bajo demanda Registra la ubicación en un archivo GPX, pudiendo des/activarlo usando el widget de grabación GPX en el mapa. - Guardar la traza automáticamente durante la navegación Una traza GPX se guardará automáticamente en la carpeta de trazas durante la navegación. Intervalo de registro durante la navegación Intervalo de registro de trazas durante la navegación @@ -828,7 +825,6 @@ Brújula Restaurar a valores predefinidos Estacionamiento - Grabación GPX Velocidad Destino Altitud @@ -1072,7 +1068,6 @@ Iniciar simulación El archivo no se pudo renombrar. Ya existe un archivo con ese nombre. - Ruta GPX Encontradas varias categorías de PDI relacionadas. Descargar datos sin conexión para buscar PDI. Buscar por nombre @@ -1189,7 +1184,6 @@ Compartir ubicación Punto GPX «{0}» añadido Añadir punto a la traza GPX grabada - Añadir punto GPX Administrativo Barrera Educación @@ -1278,7 +1272,6 @@ Indicaciones por voz Los mapas vectoriales no están cargados Sin archivos GPX en la carpeta de trazas - Archivos GPX… No se pudieron leer los datos GPX. Mapas vectoriales sin conexión Buscar transporte en parada @@ -1667,7 +1660,6 @@ borrar Ahora, guardado como: %1$s El PDI se borrará una vez subido los cambios - Mostrar datos GPX Número de líneas Mostrar al inicio ¿Estás seguro? @@ -2120,7 +2112,6 @@ Alternar activación de voz Activar voz Desactivar voz - Añadir punto GPX Añadir lugar de estacionamiento Añadir acción Editar acción @@ -2496,14 +2487,11 @@ Elegir perfil de navegación Añadir puntos de ruta Añadir línea - Añadir archivos GPX - Importa archivos GPX o graba trazas. Añadir favoritos Importa los Favoritos o añádelos marcando puntos en el mapa. Importar archivo GPX El archivo «%1$s» no contiene puntos de referencia, ¿Quieres importarlo como una traza? Mover punto - Añadir a un archivo GPX Mantener en el mapa ¿Salir sin guardar? Sin animaciones @@ -2790,7 +2778,6 @@ Hora de llegada intermedia Tiempo intermedio Modificación del estilo predefinido para un mayor contraste en los caminos peatonales y para bicicletas. Usa los colores clásicos de Mapnik. - Archivos GPX Obtén «OsmAnd Live» para desbloquear todas las características: Actualizaciones diarias de mapas con descargas ilimitadas, todos los complementos gratuitos y de pago, artículos de Wikipedia, Wikiviajes y mucho más. Editar acciones Por favor, envía una captura de pantalla de esta notificación a support@osmand.net diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index b23678c94f..c446e5a010 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -83,7 +83,6 @@ Limpiar Limpiar todo Guardar - Guardar como nuevo archivo GPX Renombrar Borrar Borrar todo @@ -447,10 +446,8 @@ Intervalo de registro para la grabación general de trazas (activar mediante el widget de grabación GPX sobre el mapa). Intervalo de registro general Intervalo de activación del GPS - Guardar traza en archivo GPX Registro de trazas bajo demanda Registra la ubicación en un archivo GPX, pudiendo des/activarlo usando el widget de grabación GPX en el mapa. - Guardar la traza automáticamente durante la navegación Una traza GPX se guardará automáticamente en la carpeta de trazas durante la navegación. Intervalo de registro durante la navegación Intervalo de registro de trazas durante la navegación @@ -828,7 +825,6 @@ Brújula Restaurar a valores predefinidos Estacionamiento - Grabación GPX Velocidad Destino Altitud @@ -1072,7 +1068,6 @@ Iniciar simulación El archivo no se pudo renombrar. Ya existe un archivo con ese nombre. - Ruta GPX Encontradas varias categorías de PDI relacionadas. Descargar datos sin conexión para buscar PDI. Buscar por nombre @@ -1189,7 +1184,6 @@ Compartir ubicación Punto GPX «{0}» añadido Añadir punto a la traza GPX grabada - Añadir punto GPX Administrativo Barrera Educación @@ -1278,7 +1272,6 @@ Indicaciones por voz Los mapas vectoriales no están cargados Sin archivos GPX en la carpeta de trazas - Archivos GPX… No se pudieron leer los datos GPX. Mapas vectoriales sin conexión Buscar transporte en parada @@ -1667,7 +1660,6 @@ borrar Ahora, guardado como: %1$s El PDI se borrará una vez subido los cambios - Mostrar datos GPX Número de líneas Mostrar al inicio ¿Estás seguro? @@ -2120,7 +2112,6 @@ Alternar activación de voz Activar voz Desactivar voz - Añadir punto GPX Añadir lugar de estacionamiento Añadir acción Editar acción @@ -2496,14 +2487,11 @@ Elegir perfil de navegación Añadir puntos de ruta Añadir línea - Añadir archivos GPX - Importa archivos GPX o graba trazas. Añadir favoritos Importa los Favoritos o añádelos marcando puntos en el mapa. Importar archivo GPX El archivo «%1$s» no contiene puntos de referencia, ¿Quieres importarlo como una traza? Mover punto - Añadir a un archivo GPX Mantener en el mapa ¿Salir sin guardar? Sin animaciones @@ -2790,7 +2778,6 @@ Hora de llegada intermedia Tiempo intermedio Modificación del estilo predefinido para un mayor contraste en los caminos peatonales y para bicicletas. Usa los colores clásicos de Mapnik. - Archivos GPX Obtén «OsmAnd Live» para desbloquear todas las características: Actualizaciones diarias de mapas con descargas ilimitadas, todos los complementos gratuitos y de pago, artículos de Wikipedia, Wikiviajes y mucho más. Editar acciones Por favor, envía una captura de pantalla de esta notificación a support@osmand.net diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index b40c247c96..43e6229319 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -93,7 +93,6 @@ Iniciar simulación El archivo no se pudo renombrar. Ya existe un archivo con ese nombre. - Ruta GPX Encontradas varias categorías de PDI relacionadas. Descargar datos sin conexión para buscar PDI. Buscar por nombre @@ -111,7 +110,6 @@ Vista actual del mapa Origen: Buscar cerca - Guardar como nuevo archivo GPX Ruta guardada como «%1$s». Nombre del archivo: Ya existe un archivo con el mismo nombre. @@ -219,7 +217,6 @@ Compartir ubicación Punto GPX «{0}» añadido Añadir punto a la traza GPX grabada - Añadir punto GPX Administrativo Barrera Educación @@ -320,7 +317,6 @@ Voz grabada Los mapas vectoriales no están cargados Sin archivos GPX en la carpeta de trazas - Archivos GPX… No se pudieron leer los datos GPX. Mapas vectoriales sin conexión Buscar transporte en parada @@ -507,7 +503,6 @@ Intervalo de registro durante la navegación Intervalo de registro de trazas durante la navegación Una traza GPX se guardará automáticamente en la carpeta de trazas durante la navegación. - Guardar la traza automáticamente durante la navegación Actualizar mapa Recargar tesela Objetivo @@ -764,7 +759,6 @@ Brújula Restaurar a valores predefinidos Aparcamiento - Grabación GPX Velocidad Destino Altitud @@ -1320,7 +1314,6 @@ \n \nLas trazas grabadas pueden ser compartidas con sus amigos o ser usadas para contribuir a OSM. Los atletas pueden usar las trazas grabadas para seguir sus entrenamientos. Algunos análisis básicos de trazas se pueden realizar directamente en OsmAnd, como tiempos por vuelta, velocidad media, etc., y por supuesto las trazas pueden analizarse posteriormente con herramientas de análisis de terceros. Rutas de autobús, trolebús y lanzadera - Guardar traza en archivo GPX Intervalo de registro Registra la ubicación en un archivo GPX, pudiendo des/activarlo usando el widget de grabación GPX en el mapa. Preguntar siempre @@ -1666,7 +1659,6 @@ borrar Ahora, guardado como: %1$s El PDI se borrará una vez subido los cambios - Mostrar datos GPX Número de líneas Mostrar al inicio ¿Está seguro? @@ -2119,7 +2111,6 @@ Alternar activación de voz Activar voz Desactivar voz - Añadir punto GPX Añadir lugar de estacionamiento Añadir acción Editar acción @@ -2505,14 +2496,11 @@ Elegir perfil de navegación Añadir puntos de ruta Añadir línea - Añadir archivos GPX - Importa archivos GPX o graba trazas. Añadir favoritos Importar Favoritos o añadir mediante puntos de marcación en el mapa. Importar archivo GPX El archivo «%1$s» no contiene puntos de referencia, ¿Quieres importarlo como una traza? Mover punto - Añadir a un archivo GPX Mover todo al historial Indicación de distancia Ordenar por @@ -2795,7 +2783,6 @@ Hora de llegada intermedia Tiempo intermedio Modificación del estilo predefinido para un mayor contraste en los caminos peatonales y para bicicletas. Usa los colores clásicos de Mapnik. - Archivos GPX Obtén «OsmAnd Live» para desbloquear todas las características: Actualizaciones diarias de mapas con descargas ilimitadas, todos los complementos gratuitos y de pago, artículos de Wikipedia, Wikiviajes y mucho más. Editar punto Añadir punto diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index 6708054273..dc197ed808 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -541,7 +541,6 @@ GPX fail Raja teekonnapunktid Vaata - GPX teekond Reisijuhid Reisijuhid Palun luba jätkamiseks OsmAnd asukoha juurdepääs. @@ -1195,7 +1194,6 @@ Tühista kogu valik Tühjenda Tühjenda kõik - Salvesta uue GPX failina Nimeta ümber Rakenda I/O viga @@ -1307,11 +1305,9 @@ Üldine logimisintervall GPS äratuse ajavahemik Luba GPS taustarežiim - Logi teekond GPX faili Vajadusel teekonna logimine Salvesta praegune teekond kohe GPX failina. Salvesta praegune teekond - Automaatne teekonna salvestamine navigeerimise ajal GPX teekond salvestatakse navigeerimise ajal automaatselt teekondade kausta. Logimise ajavahemik Logimise ajavahemik navigeerimise ajal @@ -1779,7 +1775,6 @@ Kompass Taasta algväärtused Parkimine - GPX logimine Kiirus Sihtkoht Kõrgus @@ -2069,7 +2064,6 @@ Jaga asukohta GPX teekonnapunkt \"{0}\" lisatud Lisa teekonnapunkt salvestatud GPX rajale - Lisa GPX teekonnapunkt Administratiivne Tõke Haridus @@ -2142,7 +2136,6 @@ Salvestatud hääl Hääljuhised Vektorkaarte ei laetud - GPX failid… GPX andmete laadimine ebaõnnestus. Võrguühenduseta vektorkaardid Otsi transporti peatuses @@ -2653,7 +2646,6 @@ Vaikimisi stiili muudatus, et parandada kõnniteede ja jalgrattateede kontrastsust. Kasutab vanu Mapnik värve. Rada Rajad - GPX failid Punktid Teekonnapunktid Teekonnapunkt @@ -3057,7 +3049,6 @@ kustuta Nüüd salvestatud: %1$s HP kustutatakse pärast muudatuste üleslaadimist - Kuva GPX andmed Ridade arv Oled kindel\? Kõik salvestamata muudatused lähevad kaduma. Jätkata\? @@ -3134,7 +3125,6 @@ Hääl sisse/välja Tühista hääle vaigistus Vaigista hääl - Lisa GPX teekonnapunkt Lisa parkimiskoht Lisa tegevus Muuda tegevust @@ -3304,14 +3294,11 @@ Salvesta GPX teekonnapunkt Teekonnapunkt 1 Lisa rida - Lisa GPX faile - Impordi GPX faile või salvesta radu. Lisa lemmikuid Impordi lemmikuid või lisa märkides punkte kaardil. Impordi GPX fail Fail %1$s ei sisalda teekonnapunkte, kas importida see rajana\? Teisalda punkt - Lisa GPX faili OSM saajad Annetusi kokku väljas diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index f69c786cee..fd549695d6 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -311,7 +311,6 @@ Iparrorratza Lehenetsitakora berezarri Aparkalekua - GPX grabaketa Abiadura Helmuga Altuera @@ -560,7 +559,6 @@ Simulazioa hasiarazi Ezin da fitxategia izenez aldatu. Badago izen berdineko beste fitxategi bat. - GPX ibilbidea Lotutako hainbat POI kategoria aurkitu dira. Deskargatu lineaz kanpoko datuak interesezko puntuak bilatzeko. Izenez bilatu @@ -578,7 +576,6 @@ Uneko maparen zentroa Jatorria: Bilatu inguruan - Gorde GPX fitxategi berri gisa Ibilbidea \'%1$s\' bezala gorde da. Fitxategi-izena: Izen berdineko beste fitxategi bat dago dagoeneko. @@ -684,7 +681,6 @@ Kokapena partekatu GPX \"{0}\" bide-puntua gehituta Gehitu bide-puntua grabatutako GPX lorratzari - GPX bide-puntua gehitu Administrazioa Hesiak Hezkuntza @@ -773,7 +769,6 @@ Grabatutako ahotsa Bektore mapak ez dira kargatuak izan Ez da GPX fitxategirik aurkitu lorratzen direktorioan - GPX fitxategiak… Ezin izan dira GPX datuak irakurri. Lineaz kanpoko bektore mapak Bilatu garraioa geltokian @@ -956,7 +951,6 @@ Erregistroen tartea nabigazioan Zehaztu erregistratze maiztasuna nabigazio bitarteko lorratz grabaketarako GPX lorratza automatikoki gordeko da lorratzen direktorioan nabigazioan zehar. - Erregistratu lorratza automatikoki nabigazioan zehar Mapa eguneratu Tesela birkargatu Helmuga @@ -1528,7 +1522,6 @@ Lorratza %2$s Lorratzaren puntuak Hasi nabigazioa lorratzari jarraituz? Zehaztu lorratzen grabatze orokorrerako erregistratze maiztasun bat (Mapan GPX erregistratze trepetaren bidez gaitzen da). - Erregistratu lorratza GPX fitxategian Eskaerapeko lorratz erregistroa Aurretik zehaztu GPX fitxategia luze sakatuz. Azpi-lorratzak: %1$s @@ -1958,7 +1951,6 @@ mapak eta nabigazioa Gogokoak Orain hemen gordeta: %1$s Aldaketak igotzen dituzunean POI-a ezabatuko da - Erakutsi GPX datuak Lerro kopurua Ziur zaude? Gorde gabeko aldaketak galduko dira, Jarraitu? @@ -2129,7 +2121,6 @@ Area honi dagokio: %1$s x %2$s Ahotsa bai/ez Desmututu ahotsa Mututu ahotsa - Gehitu GPX bide-puntua Gehitu aparkalekua Gehitu ekintza Editatu ekintza @@ -2501,14 +2492,11 @@ Area honi dagokio: %1$s x %2$s Hautatu nabigazio profila Gehitu ibilbide-puntuak Gehitu lerroa - Gehitu GPX fitxategiak - Inportatu GPX fitxategiak edo grabatu lorratzak. Gehitu gogokoak Inportatu gogokoak, edo gehitu mapan puntuak markatuz. Inportatu GPX fitxategia %1$s fitxategiak ez du bide-punturik, inportatu lorratz gisa? Mugitu puntua - Gehitu GPX fitxategira Maparen orientazioaren atalasea "Hautatu maparen orientazioa \'barne ipar-orratza\' eta ez \'mugimenduaren norabidea\'-ren arabera erabakitzeko abiadura." Markatzaile guztiak historialera mugituta @@ -2789,7 +2777,6 @@ Area honi dagokio: %1$s x %2$s \n • OsmAnd Live harpidetzak orain OsmAnd ezaugarri guztiak onartzen ditu \n \n - GPX fitxategiak Tarteko iritsiera ordua Tarteko denbora Editatu ekintzak diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index d6a09cf4bf..13f8bc72fb 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -99,7 +99,6 @@ قطب‌نما برگرداندن تنظیمات به حالت اولیه پارکینگ - ضبط GPX سرعت مقصد ارتفاع @@ -351,7 +350,6 @@ شهر نام فایل را نمی‌توان تغییر داد. فایلی با نام یکسان وجود دارد. - مسیر GPX جست‌وجو بر اساس نام مدیریت فایل‌های نقشه عمومی @@ -698,7 +696,6 @@ برای جست‌وجوی POIها دادهٔ آفلاین را دانلود کنید. فایل دادهٔ POI،‏ «%1$s»، زائد است و می‌توانید آن را حذف کنید. ارتقا به OsmAnd+‎ - ذخیره به‌صورت فایل GPX جدید مسیر در \'%1$s\' ذخیره شد. مرکز نقشهٔ جاری مبدأ: @@ -791,7 +788,6 @@ جست‌وجوی حرف‌به‌حرف نام ساختمان‌ها جست‌وجوی حرف‌به‌حرف نام خیابان‌ها بارکردن مجدد کاشی - ردنگاری خودکار در هنگام ناوبری در حال بارکردن کدهای پستی… در حال تبدیل اسامی محلی/انگلیسی… ناموفق @@ -902,7 +898,6 @@ گفتار ضبط‌شده نقشه‌های بُرداری بار نشدند هیچ فایل GPXای در پوشهٔ tracks پیدا نشد - فایل‌های GPX… خواندن دادهٔ GPX ناموفق بود. نقشه‌های بُرداری آفلاین در حال دانلود ساخت… @@ -917,7 +912,6 @@ ساختِ {0} نصب شد ({1}). km/h قالب دادهٔ «{0}» برای نقشه، ازرده‌خارج است و پشتیبانی نمی‌شود - افزودن نقطهٔ بین‌راهی GPX mph متشکریم که از OsmAnd استفاده می‌کنید. برای استفادهٔ آفلاین، دادهٔ منطقه‌ای را از طریق «تنظیمات» ← «مدیریت فایل‌های نقشه» دانلود کنید. سپس می‌توانید نقشه‌ها را ببینید، نشانی‌ها را پیدا کنید، مکان‌ها را جست‌وجو کنید، مسیرهای حمل‌ونقل عمومی را بیابید و... . برای نشان‌دادن ناحیهٔ انتخابی حافظهٔ اجرایی کافی وجود ندارد @@ -1278,7 +1272,6 @@ جلو پیشخوان همیشه بپرس - ثبت رد در فایل GPX مسیرهای اتوبوس، اتوبوس برقی و مسیرهای خطی ضبط سفر س @@ -2063,7 +2056,6 @@ چینی (هنگ‌کنگ) برای مسافت‌های طولانی: اگر تا ۱۰ دقیقه مسیری پیدا نشد، چند مقصد میانی اضافه کنید. استرالیا - افزودن به یک فایل GPX نشانه‌ها نام گروه اگر نام %1$s وجود نداشت، با حروف انگلیسی نشان بده @@ -2108,7 +2100,6 @@ مکان‌های اخیر علاقه‌مندی‌ها پس از آپلود تغییرات، POI حذف می‌شود - نمایش اطلاعات GPX تعداد خطوط مطمئن هستید؟ تغییراتی که ذخیره نکرده‌اید، از دست می‌رود. ادامه می‌دهید؟ @@ -2405,8 +2396,6 @@ دکمه‌هایی را اضافه کنید دکمه‌ای برای گردش در لیست زیر. افزودن یک سبک نقشه - فایل GPX اضافه کنید - فایل GPX درون‌برد کنید یا رد خود را ضبط کنید. درون‌برد فایل GPX ورود فوری مختصات نمایش خطوط جهت‌دار @@ -2463,7 +2452,6 @@ نقطهٔ بین‌راهی GPX را حذف می‌کنید؟ ویرایش نقطهٔ بین‌راهی GPX زرد تیره - افزودن نقطهٔ بین‌راهی GPX پیش‌تنظیم نام دکمه‌ای برای ایجاد یک نقطهٔ بین‌راهی GPX در مرکز صفحه. افزودن نقطهٔ بین‌راهی @@ -2813,7 +2801,6 @@ زمان رسیدن به میانی مدت تا میانی اصلاح‌یافتهٔ سبک پیشفرض برای ایجاد پادنمایی بیشتر در راه‌های پیاده و دوچرخه. از رنگ‌بندی مپنیک استفاده می‌کند. - فایل‌های GPX ‏‏OsmAnd Live را تهیه کنید تا همهٔ این قابلیت‌ها باز شود: به‌روزآوری روزانهٔ نقشه و دانلودهای نامحدود، همهٔ افزونه‌های رایگان و پولی، ویکی‌پدیا، ویکی‌سفر و... ویرایش کنش‌ها لطفاً یک نماگرفت از این اعلان به support@osmand.net بفرستید diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml index c977056828..1320514000 100644 --- a/OsmAnd/res/values-fi/strings.xml +++ b/OsmAnd/res/values-fi/strings.xml @@ -57,7 +57,6 @@ Kompassi Palauta oletusasetukset Pysäköinti - GPX kirjaus Nopeus Päämäärä Korkeus @@ -331,7 +330,6 @@ Tallenna nykyinen reitti Kirjausväli suunnistuksen aikana Jäljet tallennetaan jälkihakemistoon suunnistuksen aikana. - Kirjaa reitti automaattisesti suunnistuksen aikana Päivitä kartta Kohde Lisää suosikkeihin @@ -502,7 +500,6 @@ Keskitä karttanäkymä automaattisesti vain navigoidessa. Vektorikarttojen asetukset Tiedosto tällä nimellä on jo olemassa. - GPX reitti Päivitä OsmAnd+ ohjelmaan Etsi läheltä Reitti tallennettiin nimellä ”%1$s”. @@ -640,7 +637,6 @@ Valitse kartalta Poista valinta Poista kaikki valinnat - Tallenna uutena GPX-tiedostona Poista kaikki Jaa Vie @@ -772,7 +768,6 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläistä) perustuu mittauksiin jotka on tehnyt SRTM (Shuttle Radar Topography Mission) ja ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), ja kuvausvälineet mukana kulkeva Terra, NASAn maapallontarkkailujärjestelmän lippulaiva satelliitti. ASTER on yhteistyö NASAn, Japanin talous-, kauppa ja teollisuusministeriön (METI), ja Japanin avaruusjärjestelmien (J-spacesystems) välillä. " - GPX-tiedostot… Kartan lähde… Tekstin koko Kartan kieli @@ -799,7 +794,6 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist Muistiinpanot Vain tiet Muokkaa ryhmää - Näytä GPX-tiedot Suosikit Sulkeutuu Avautuu @@ -1727,7 +1721,6 @@ Reitin pisteet %2$s Suljetaan muutosjoukkoa… Aseta tekstin koko kartalle. OsmAnd taustapalvelu on vielä suorituksessa. Haluatko puysäyttää myös sen? - Kirjaa jälki GPX tiedostoon Jäljen kirjaus tarpeen vaatiessa @@ -1860,7 +1853,6 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t %2$s GPX väyläpiste \'\'{0}\'\' lisätty Lisää väyläpiste tallennettuun GPX jälkeen - Lisää GPX väyläpiste Hallinnollinen Indeksoidaan osoitteita.… Indeksoidaan karttaa… @@ -2411,7 +2403,6 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Min/Max Läpikuultava vaaleanpunainen Tummankeltainen - GPX-tiedostot Musta Kuukausittain Joka kolmas kuukausi @@ -2498,7 +2489,6 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Ehdotetut kartat Uusi laajennus lisätty Yhdistä segmentit - Lisää GPX-tiedostoon %1$s / kuukausi %1$.2f %2$s / kuukausi Kuukausi diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index e705c38fde..acfcc9b591 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -80,7 +80,6 @@ Démarrer l\'animation Impossible de renommer le fichier. Un fichier avec ce nom existe déjà. - Itinéraire GPX Plusieurs catégories de points d\'intérêt ont été trouvées. Téléchargez des données hors-ligne pour rechercher des points d\'intérêt. Rechercher par nom @@ -98,7 +97,6 @@ Centre de la carte Autour de : Rechercher à proximité - Enregistrer comme nouveau fichier GPX Itinéraire enregistré sous « %1$s ». Nom du fichier : Le même nom existe déjà. @@ -203,7 +201,6 @@ Partager ce point Point GPX \'\'{0}\'\' ajouté Ajouter une étape à la trace GPX enregistrée - Ajouter un point GPX Territoire Obstacle Éducation @@ -301,7 +298,6 @@ Voix enregistrée Aucune carte vectorielle n\'a été chargée Aucun fichier GPX n\'a été trouvé dans le dossier de traces - Fichiers GPX… Impossible de lire les données GPX. Cartes vectorielles OSM Recherche de transport pour cet arrêt @@ -488,7 +484,6 @@ Indiquez l\'intervalle d\'enregistrement de la trace pendant la navigation Intervalle d\'enregistrement pendant la navigation Une trace GPX est enregistrée automatiquement dans le dossier des traces pendant l\'itinéraire - Enregistrer automatiquement la trace en cours de navigation Mettre à jour la carte Recharger carreau Cible @@ -750,7 +745,6 @@ Boussole Rétablir les paramètres par défaut Parking - Enregistrement GPX Vitesse Arrivée Altitude @@ -1313,7 +1307,6 @@ Durée Distance Lignes de bus, trolleybus et navettes - Enregistrer l\'itinéraire dans un fichier GPX L\'enregistrement des positions dans un fichier GPX peut être activé ou désactivé depuis le gadget sur la carte. Intervalle d\'enregistrement Toujours demander @@ -1651,7 +1644,6 @@ Lieux récents Favoris Afficher au démarrage - Afficher les données GPX Nombre de lignes Nombre de lignes %1$s Enregistré avec succès à : %1$s @@ -2109,7 +2101,6 @@ Voix Active / Inactive Activer la voix Couper la voix - Ajouter un point GPX Ajouter un emplacement de stationnement Ajouter une action Modifier l\'action @@ -2440,14 +2431,11 @@ Sélectionnez le type de navigation Ajouter des points à la route Ajouter une ligne - Ajouter des fichiers GPX - Importer des fichiers GPX ou enregistrer des traces. Ajouter des favoris Importez des favoris ou créez des favoris sur la carte. Importer le fichier GPX Le fichier %1$s ne contient aucune étape, l\'importer comme trace ? Déplacer le point - Ajouter à un fichier GPX Toujours afficher sur la carte Quitter sans enregistrer ? Aucune animation @@ -2780,7 +2768,6 @@ Heure d\'arrivée à l\'étape Heure d\'arrivée à l\'étape Modification du style par défaut pour augmenter le contraste des voies piétonnes et cyclables. Utilise les couleurs héritées de Mapnik. - Fichiers GPX Souscrivez à OsmAnd Live et vous pourrez utiliser toutes les fonctionnalités : Mise à jour quotidienne des cartes (avec un nombre illimité de téléchargements), Greffons, Wikipédia, Guides de voyage et bien plus encore ... Modifier les actions Merci d\'envoyer une capture écran de cette notification à support@osmand.net diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index cbbd64ac7e..0c9e714fbb 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -24,11 +24,9 @@ Intre de rexistro xeral Intre de activación do GPS Activar o modo de segundo plano do GPS - Rexistrar a pista nun ficheiro GPX Rexistra a posición nun ficheiro GPX, e podes activalo ou desactivalo empregando o trebello de gravación GPX no mapa. Garda a pista actual coma ficheiro GPX agora. Gardar a pista actual - Rexistrar a pista de xeito automático durante a navegación Unha pista do GPX gárdarase de xeito automático no cartafol das pistas durante a navegación. Intre de rexistro Intre de rexistro durante a navegación @@ -578,7 +576,6 @@ Compás Restaurar valores predeterminado Aparcamento - Rexistro de GPX Velocidade Destino Altitude @@ -838,7 +835,6 @@ Iniciar a simulación Non foi posíbel renomear o ficheiro. Xa existe un ficheiro con ese nome. - Itinerario de GPX Atopadas varias categorías de PDI relacionadas. Baixar datos sen conexión para procurar PDI. Procurar polo nome @@ -856,7 +852,6 @@ Centro do mapa actual Orixe: Procurar preto daquí - Gardar coma novo ficheiro GPX A rota foi gardada coma \"%1$s\". Nome do ficheiro: Xa existe un ficheiro co mesmo nome. @@ -962,7 +957,6 @@ Compartir a localización Punto de pasaxe GPX \"{0}\" engadido Engadir punto de pasaxe á pista GPX gravada - Engadir punto de pasaxe do GPX Administración Barreira Educación @@ -1051,7 +1045,6 @@ Voz gravada Os mapas vectoriais non están cargados Non foi posíbel atopar ficheiros GPX no cartafol de pistas - Ficheiros GPX… Non foi posíbel ler os datos do GPX. Mapas vectoriais sen conexión Procurar transporte na paraxe @@ -1681,7 +1674,6 @@ Lon %2$s Enviar o PDI Gardado agora coma: %1$s O punto de interese (PDI) será eliminado unha vez enviadas as modificacións - Amosar datos GPX Número de liñas Tes a certeza de querer facelo\? Vanse perder as modificacións non gardadas. Proseguer\? @@ -2479,7 +2471,6 @@ Lon %2$s Hora da chegada intermedia Tempo intermedio Engadir punto de pasaxe - Importa ficheiros do GPX ou grava pistas. Importar Favoritos ou engadir mediante puntos de marcaxe no mapa. Importar ficheiro GPX O ficheiro %1$s non contén puntos de pasaxe, queres importalo coma unha pista\? @@ -2654,8 +2645,7 @@ Lon %2$s Negro Laosiano Cor por símbolo do sendeirismo OSMC - Ficheiros GPX - Este plugin para o OsmAnd pon ó teu acade detalles sobre pistas do esquí de baixada, de travesía, roteiros do esquí alpino, teleféricos e refachos a nivel mundial. As rotas e pistas amósanse polo código de cor en función da súa dificuldade e representados cun estilo do mapa especial \"Inverno\" que o asemella a unha paisaxe invernal nevada. + Este plugin para o OsmAnd pon ó teu acade detalles sobre pistas do esquí de baixada, de travesía, roteiros do esquí alpino, teleféricos e refachos a nivel mundial. As rotas e pistas amósanse polo código de cor en función da súa dificuldade e representados cun estilo do mapa especial \"Inverno\" que o asemella a unha paisaxe invernal nevada. \n \nActivando esta vista, muda o estilo do mapa a «Inverno e esquí», amosando as características do terreo en condicións invernais. Esta vista pódese revertir desactivando de novo eiquí ou mudando o \"Estilo do mapa\" en \"Configurar mapa\" cando o desexes. Código de Localización Aberto (OLC) @@ -2696,7 +2686,6 @@ Lon %2$s Activar ou desactivar voz Activar a voz Desactivar a voz - Engadir punto de pasaxe GPX Nome predefinido Un botón que engade un punto de pasaxe GPX no centro da pantalla. Amosar un diálogo temporal @@ -2716,10 +2705,8 @@ Lon %2$s Gardar punto de ruta Punto de pasaxe 1 Punto da rota 1 - Engadir ficheiros GPX Engadir ós Favoritos Desprazar punto - Engadir cara un ficheiro GPX Destinatarios do OSM Total das doazóns pechado diff --git a/OsmAnd/res/values-hr/strings.xml b/OsmAnd/res/values-hr/strings.xml index 8a90da3cbf..835aa5da61 100644 --- a/OsmAnd/res/values-hr/strings.xml +++ b/OsmAnd/res/values-hr/strings.xml @@ -121,7 +121,6 @@ Kompas Resetiraj na zadano Parkiralište - GPX snimanje Brzina Odredište Visina @@ -407,7 +406,6 @@ Po smijeru kretanja Izmjeni POI Izbriši POI - GPX trag… Došlo je do pogreške pri čitanju GPX podataka Offline vektorske karte Glas @@ -543,7 +541,6 @@ Interval bilježenja Odaberite interval bilježenja za staze Staze se spremaju u direktorij \'tracks\' grupirane po danima - Spremi GPX tijekom navigacije Omogući 3D prikaz na karti 3D prikaz karte Prikaži POI preko karte (koristi zadnji odabrani filtar) @@ -610,7 +607,6 @@ Upravni GPX međutočka \'\'{0}\'\' je uspješno dodana Dodaj međutočku na zabilježeni GPX zapis - Dodaj GPX međutočku Traži adresu pomoću offline karte Dogodila se pogreška u offline traženju Minimalna razina uvećanja kod korištenja vektorske karte @@ -664,7 +660,6 @@ Uploadaj GPX datoteke na OSM. Koristiti će se za poboljšanje karata. %1$d od %2$d stavke uspješno su upload-ane. Datoteka sa istim imenom već postoji. - Spremi rutu kao GPX trag Ruta je uspješno spremljena kao \'%1$s\'. Naziv datoteke: Traži u blizini ovog mjesta @@ -680,7 +675,6 @@ Server sadrži datoteke karata koje nisu kompatibilne s trenutnom verzijom aplikacije. Za preuzimanje i korištenje, molimo vas da nadogradite aplikaciju na noviju verziju. Traži po imenu POI datoteka \'%1$s\' je suvišna i može se izbrisati. - GPX ruta Nekoliko POI kategorija podudara se s upitom: Datoteka se ne može preimenovati. Datoteka s tim imenom već postoji. @@ -991,7 +985,6 @@ Hebrejski Naprijed Početna - Spremi rutu kao GPX trag Trajanje Udaljenost Sve diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index e5d4536cdf..ebbdd51012 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -143,7 +143,6 @@ Szimuláció indítása Nem sikerült átnevezni a fájlt. Már létezik ilyen nevű fájl. - GPX útvonal Számos kapcsolódó érdekespont-kategóriát sikerült találni. Offline adatok letöltése érdekes pontok kereséséhez. Név szerinti keresés @@ -161,7 +160,6 @@ Jelenlegi térképközéppont Eredet: Keresés a közelben - Mentés új GPX fájlként Az útvonal mentve mint \'%1$s\'. Fájlnév: Már létezik fájl ilyen névvel. @@ -269,7 +267,6 @@ Hely megosztása \'\'{0}\'\' GPX-útpont hozzáadva Útpont hozzáadása a rögzített GPX-útvonalhoz - GPX-útpont hozzáadása Közigazgatás Akadály Oktatás @@ -366,7 +363,6 @@ Felvett hang Nincs betöltött vektoros térkép Nem található GPX fálj a tracks könyvtárban - GPX fájlok… Nem sikerült beolvasni a GPX-adatokat. Vektoros OSM térkép Közlekedés keresése megállónál @@ -553,8 +549,6 @@ Adja meg a naplózási időközt a navigáció alatti útvonalrögzítéshez Rögzítési sűrűség navigáció közben Navigáció közben a GPX útvonal automatikusan mentésre kerül az OsmAnd „tracks” könyvtárába. - Nyomvonal automatikus felvétele navigáció közben - Térkép frissítése Térképcsempe újratöltése Célpont Hozzáadás a „Kedvencek”-hez @@ -750,7 +744,6 @@ Iránytű Alapértékek visszaállítása Parkolás - GPX naplózás Sebesség Célpont Magasság @@ -1315,7 +1308,6 @@ Mindig kérdezzen rá Adja meg az általános nyomvonalrögzítéshez használandó naplózási időközt (a térképen lévő GPX-naplózó widgettel engedélyezve). Általános naplózási időköz - Nyomvonal naplózása GPX fájlba A GPX-fájlba történő általános pozíciónaplózás be- és kikapcsolható a térképen lévő GPX-naplózó widgettel. Rögzítési időköz Busz-, trolibusz-, ingajárat-útvonalak @@ -1687,7 +1679,6 @@ Kedvenc hozzáadása Megjelenítés indításkor A POI törölve lesz, amint feltöltöd a változtatásokat - GPX adat megjelenítése Sorok száma Biztos benne\? A nem mentett változtatások el fognak veszni. Folytatod? @@ -2112,7 +2103,6 @@ Hang be/ki Hang visszakapcsolása Hang némítása - GPX-útpont hozzáadása Parkolóhely hozzáadása Művelet hozzáadása Művelet szerkesztése @@ -2444,14 +2434,11 @@ Útvonalpont mentése Útpont 1 Útvonalpont 1 - GPX-fájlok hozzáadása - GPX fájlok importálása vagy nyomvonalak rögzítése. Kedvencek hozzáadása Kedvencek importálása vagy hozzáadása a térképen pontok megjelölésével. GPX fájl importálása %1$s fájl nem tartalmaz útpontot. Importálod nyomvonalként? Pont mozgatása - Hozzáadás egy GPX-fájlhoz Importálás GPX-fájlként Importálás Kedvencként Fájl importálása @@ -2678,7 +2665,6 @@ Régi alapértelmezett „Mapnik”-stílus. A színek hasonlóak a Mapnikhez. Turisztikai stílus erős kontraszttal és a legtöbb részlettel. Tartalmazza az OsmAnd alapértelmezett stílus össze beállítását, miközben megjeleníti a lehető legtöbb részletet, különösen utakat, ösvényeket és más utazási útvonalakat. A „Turistaatlasz-szerű” stílus világos különbséget tesz az úttípusok között. Alkalmas nappali, éjszakai és szabad téri használatra is. Általános felhasználású stílus. A sűrű városok világosan jelennek meg. Jellemzői a szintvonalak, az útvonalak, a felszínminőség, a használati korlátozások, útszámozások, vadvízisport-létesítmények. Az ösvények az SAC-skála szerint jelennek meg. - GPX fájlok Műveletek szerkesztése Nem Igen diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 2f4d1757c0..e4090ae621 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -887,7 +887,6 @@ Մաքրել Մաքրել բոլորը Պահպանել - Պահել որպես նոր GPX ֆայլ Վերանվանել Ջնջել Ջնջել բոլորը @@ -1100,12 +1099,10 @@ Ընդհանուր ժամանակի ընդմիջումը GPS-ի զարթմատ ժամանակի ընդմիջումը Միացնել GPS ֆոնի ռեժիմը - Գրանցել տրեկը GPX ֆայլի տեքով Տրեկի գրանցումը ըստ պահանջի Ընդհանուր դիրքի գրանցումը GPX ֆայլի տեսքով կարող եք միացնել կամ անջատել GPX վիջետի միջոցով քարտեզի վրա։ Պահպանել ընթացիկ տրեկը որպես GPX ֆայլ։ Պահպանել ընթացիկ տրեկը - Նավիգացիայի ընթացքում ավտոմատ գրանցել տրեկը Նավիգացիայի ընթացքում GPX տրեկները ինքնաբերաբար կպահպանվեն տրեկների թղթապանակում։ Մուտքագրման ժամանակի ընդմիջումը Նավիգացիայի ընթացքում մուտքագրման ժամանակի ընդմիջումը @@ -1660,7 +1657,6 @@ Կողմնացույց Վերականգնել սկզբնական պարամետրերը Կայանատեղ - GPX գրանցում Արագություն Նպատակակետ Բարձրություն @@ -1903,7 +1899,6 @@ Սկսեք մոդելավորում Չհաջողվեց վերանվանել ֆայլը: Նման անվանումով Ֆայլը արդեն գոյություն ունի: - GPX երթուղին Գտնվեց մի զարք փոխկապակցված POI կատեգորիաներ: POIs-ի որոնման համար ներբեռնեք տեղական տվյալները: Որոնել ըստ անվան @@ -2026,7 +2021,6 @@ Կիսվել(ուղարկել) գտնվելու վայրը(դիրքը) GPX կետը «{0}» ավելացվել է Ավելացնել կետ գրանցված GPX տրեկի վրա - Ավելացնել կետ GPX տրեկի վրա Վարչական Խոչընդոտ Կրթություն @@ -2110,7 +2104,6 @@ Ձայնային հրահանգներ Վեկտորային(offline) քարտեզները ներբեռնված չեն հավելվածի մեջ GPX ֆայլերը չեն գտնվել թղթապանակում - GPX ֆայլեր… GPX տվյալների ընթերցման սխալ։ Տեղական վեկտորային(Offline) քարտեզներ Տրանսպորտի որոնում կանգառում @@ -2403,7 +2396,6 @@ «Սիրված» Պահպանվեց՝ %1$s POI-րը կհեռացվեն ձեր փոփոխությունները վերբեռնելուց հետո - Ցույց տալ GPX տվյալները Տողերի քանակը Վստա՞հ եք? Ցուցադրել դիտարկման ուղղությունը @@ -2485,7 +2477,6 @@ Ձայնը on/off Միացնել ձայնը Անջատել ձայնը - Ավելացնել GPX կետ Ավելացնել ավտոկայանատեղ Ավելացնել գործողություն խմբագրել գործողությունը @@ -2561,14 +2552,11 @@ Պահպանել երթուղու կետը Կետ 1 Երթուղու կետ 1 - Ավելացնել GPX ֆայլերը - Ներմուծեք GPX ֆայլեր կամ տրեկների գրառում: Ավելացնել «Սիրված»-եր «Սիրված»-երը կարող եք ներմուծել կամ ստեղծել, նշելով կետեր քարտեզի վրա։ Ներմուծել GPX ֆայլը Ֆայլ %1$s չի պարունակում կետեր, ներմուծել այդ որպես տրեկ? Տեղափոխել կետը - Ավելացնել սեգմենտը GPX ֆայլին Ավելին Տեսքը քարտեզի վրա Ընտրեք տրեկերից մեկը որպեսզի ձեր Ճանապարհային կետերը (waypoints) ավելացնել մարկերներին։ @@ -2842,7 +2830,6 @@ Հիմնական ոճի ձևափոխում, հետիոտնային և հեծանվավազք ճանապարհների հակադրությունը ավելացնելու համար։ Օգտագործում է ժառանգական Mapnik գույները։ Contour lines & Hillshade Քարտեզներ Սև - GPX ֆայլեր Միջանկյալ նպատակակետ ժամանելու ժամը Միջանկյալ նպատակակետ ժամանելու ժամը Քարտեզի ավտոմատ վերադարձումը միացված է։ diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index c0fc3c3942..aef88fca4b 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -215,7 +215,6 @@ Hreinsa Hreinsa allt Vista - Vista sem nýjan GPX-feril Endurnefna Eyða Eyða öllum @@ -565,7 +564,6 @@ mi GPX-ferilpunkti \'\'{0}\'\' var bætt við Bæta ferilpunkti við GPX-feril - Bæta við GPX-ferilpunkti Stjórnsýsla Menntun Neyðartilfelli @@ -853,7 +851,6 @@ Prenta leið Tollverðir Hraðamyndavél - Skrifa feril í GPX-skrá Vista núverandi feril Undirferlar: %1$s %1$s @@ -894,7 +891,6 @@ OSM-lykilorðið þitt Gegnsætt þema Yfirlag / Undirlag - GPX-leið Skrá með sama heiti er þegar til. Senda til OSM Sæktu grunnkort af heiminum til að fá hnattræna yfirsýn á alla jörðina í minni aðdrætti. @@ -943,7 +939,6 @@ Leita að almenningssamgöngum Talskilaboð Engar GPX-skrár fundust í ferlamöppunni - GPX-skrár… Eftir áttavita Eftir átt hreyfingar Enginn snúningur (norður er alltaf upp) @@ -1022,7 +1017,6 @@ Upplýsingar um tengilið Nýlegir staðir Núna vistað í: %1$s - Birta GPX-gögn Allar óvistaðar breytingar munu tapast. Halda áfram? Sæki - %1$d skrá Full útgáfa @@ -1147,7 +1141,6 @@ Götuheiti Stilla skjá Hvar er ég - GPX-skráning Tími til stefnu Næsta beygja Næsta beygja (lítil) @@ -1808,7 +1801,6 @@ Tal af/á Kveikja á tali Þagga niður í tali - Bæta við GPX-ferilpunkti Bæta við bílastæði Bæta við aðgerð Breyta aðgerð @@ -1957,7 +1949,6 @@ Gildur fullur OLC \nStendur fyrir svæði: %1$s x %2$s Atriði eftir - Skrifa feril sjálfkrafa í GPX-skrá á meðan leiðsögn stendur GPX-ferlar verða sjálfvirkt vistaðir í ferlamöppu á meðan leiðsögn stendur. Millibil skráninga á meðan leiðsögn stendur Veldu raddleiðsögn fyrir leiðsögukerfið. @@ -2299,9 +2290,7 @@ Vista leiðarpunkt Ferilpunktur 1 Leiðarpunktur 1 - Bæta við GPX-skrám Flytja inn GPX-feril - Bæta við GPX-feril Veldu flokk eftirlæta sem bæta skal kortamerkjum í. Merkja sem liðinn Bæta við afriti af upphafspunkti til að nota sem áfangastað. @@ -2326,7 +2315,6 @@ Skildu þetta eftir autt til að nota heimilisfangið eða staðarheiti. Þú getur bætt við einum eða fleiri flokkum merkisstaða til að birta á kortinu. Hnappur til að fletta í gegnum listann hér fyrir neðan. - Flytja inn GPX-skrár eða skrá ferla. Í augnablikinu er þráðlaust Wi-Fi net ekki tengt. Viltu nota núverandi internettengingu undir niðurhal? Íhugaðu að kaupa viðbótina fyrir hæðarlínur á markaðnum til að styðja við áframhaldandi þróun forritsins. Verið er að taka upp hjóð/myndskeið. Til að stöðva það, ýttu á hljóð/mynd-viðmótshlutann. @@ -2796,7 +2784,6 @@ Milli-komutími Millitími Aðlögun á sjálfgefna stílnum til að auka birtuskil leiða fyrir fótgangandi og hjólreiðafólk. Notar eldri liti úr Mapnik. - GPX-skrár Náðu í OsmAnd Live til að aflæsa öllum eiginleikum: Fáðu ótakmörkuð niðurhöl korta og daglegar kortauppfærslur, allar greiddar og ókeypis viðbætur, Wikipedia, Wikivoyage og margt fleira. Sendu skjámynd af þessari tilkynningu til support@osmand.net Breyta aðgerðum diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index cb42c908e9..5e777c78ee 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -67,7 +67,6 @@ Avvia animazione Il file non può essere rinominato. Esiste già un file con lo stesso nome. - Percorso GPX Trovate parecchie categorie PDI correlate. Download dati offline per la ricerca dei PDI. Ricerca per nome @@ -182,7 +181,6 @@ Condividi posizione Punto intermedio GPX\'\'{0}\'\' aggiunto Aggiungi un punto intermedio al percorso GPX registrato - Aggiungi un punto intermedio GPX Amministrativo Barriera Istruzione @@ -277,7 +275,6 @@ Voci registrate Mappe vettoriali non sono state caricate File GPX non trovati nella cartella tracce - GPX files… Non posso leggere i dati GPX. Mappe vettoriali offline Cerca un trasporto pubblico alla fermata @@ -456,7 +453,6 @@ Specifica l\'intervallo di registrazione per la traccia durante la navigazione Intervallo di registrazione durante la navigazione Durante la navigazione, la traccia GPX, sarà salvata automaticamente nella cartella tracce. - Registrazione automatica della traccia durante la navigazione Aggiorna mappa Ricarica tasselli Obiettivo @@ -717,7 +713,6 @@ Bussola Reimposta i valori predefiniti Parcheggio - Registrazione GPX Velocità Destinazione Altitudine @@ -1262,7 +1257,6 @@ h Durata Distanza - Registra la traccia in un file GPX La registrazione della posizione in un file GPX può essere avviata o fermata dal widget registrazione GPX nella mappa. Intervallo registrazione Percorsi bus, filobus, servizi navetta @@ -1437,7 +1431,6 @@ Deseleziona tutto Pulisci Salva - Salva come nuovo file gpx Rinomina Elimina Elimina tutto @@ -1657,7 +1650,6 @@ Preferiti Salvato adesso in: %1$s I PDI verranno cancellati una volta caricate le modiche - Visualizza dati GPX Mostra all\'avvio Conteggio delle linee Sei sicuro? @@ -2110,7 +2102,6 @@ Voce accesa/spenta Attiva la voce Disattiva la voce - Aggiungi un punto intermedio GPX Aggiungi la posizione di parcheggio Aggiungi azione Modifica azione @@ -2412,7 +2403,6 @@ Aggiungi una linea Salva il Punto Percorso Punto Percorso 1 - Aggiungi file GPX Sposta tutto nella cronologia Indicazione della direzione Ordina per @@ -2496,13 +2486,11 @@ \n • Vedi al tua velocità e altitudine \n • L\'opzione registrazione GPX ti permette di registrare il tuo percorso e di condividerlo \n • Con un componente aggiuntivo puoi abilitare la visualizzazione delle isoipse e dell\'ombreggiatura dei rilievi - Importa i file GPX o registra delle tracce. Aggiungi Preferiti Importa i Preferiti o aggiungili come marcatori sulla mappa. Importa il file GPX Il file %1$s non contiene punti intermedi, importarlo come traccia? Sposta il Punto - Aggiungi a un file GPX Impossibile modificare la nota. Strada Mostra la mappa @@ -2772,7 +2760,6 @@ Orario di arrivo intermedio Orario intermedio Acquista OsmAnd Live per sbloccare tutte le funzionalità: aggiornamenti quotidiani delle mappe con download illimitati, tutti i componenti aggiuntivi gratuiti e a pagamento, Wikipedia, Wikivoyage e molto altro. - File GPX "• Nuovo: Supporto per guide di viaggio offline globali. Le posizioni di riferimento sono collegate alla mappa. Dati iniziali da Wikivoyage. \n \n• Wikipedia: Nuovo look, link attivi, immagini ora supportate diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index 5741405350..b1c5ab994d 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -80,7 +80,6 @@ מצפן איפוס לבררת המחדל חנייה - רישום GPX מהירות יעד גובה @@ -332,7 +331,6 @@ התחלת ההנפשה לא ניתן לשנות את שם הקובץ. כבר קיים קובץ בשם הזה. - מסלול GPX נמצאו מספר קטגוריות נ״ע קשורות. להוריד נתונים בלתי מקוונים כדי לחפש נקודות עניין. חיפוש לפי שם @@ -350,7 +348,6 @@ מרכז המפה הנוכחי מקור: חיפוש בסביבת מקום - שמירה כקובץ GPX חדש המסלול נשמר בתור ‚%1$s’. שם קובץ: כבר קיים קובץ השם הזה. @@ -455,7 +452,6 @@ שיתוף המיקום נקודת הציון „{0}” נוספה ל־GPX הוספת נקודת ציון לדרך GPX מוקלטת - הוספת נקודת ציון ל־GPX מנהלית מחסום חינוך @@ -551,7 +547,6 @@ קול מוקלט המפות הווקטוריות לא נטענו לא נמצאו קובצי GPX בתיקיית המסלולים - קובצי GPX… לא ניתן לקרוא את נתוני ה־GPX. מפות וקטוריות בלתי מקוונות חיפוש תחבורה בתחנה @@ -1525,7 +1520,6 @@ עצירה לשאול תמיד הפעלת מצב רקע ל־GPS - רישום המסלול לקובץ GPX רישום מסלולים לפי דרישה הפעלת מתווך HTTP הגדרת מתווך HTTP לכל בקשות הרשת. @@ -1642,7 +1636,6 @@ הנחייה קולית כבויה/פעילה ביטול השתקת הנחייה קולית השתקת הנחייה קולית - הוספת נקודת דרך GPX הוספת מקום חנייה הוספת פעולה עריכת פעולה @@ -1709,14 +1702,11 @@ שמירת נקודת נתיב נקודת דרך 1 נקודת נתיב 1 - הוספת קובצי GPX - ייבוא קובצי GPX או הקלטת מסלולים. הוספת מועדפים ייבוא מועדפים או הוספתם על ידי סימון נקודות במפה. ייבוא קובץ GPX הקובץ %1$s אינו מכיל נקודות דרך, לייבא אותו כמסלול? הזזת נקודה - הוספה לקובץ GPX 7 הימים האחרונים השנה הזאת העברת הכול להיסטוריה @@ -2248,7 +2238,6 @@ הפעלת הקלטה מהירה נשמר כעת תחת: %1$s נקודת העניין תימחק לאחר העלאת השינויים שלך - הצגת נתוני GPX ספירה של קווים להמשיך? שינויים לא נשמרו יוסרו. להמשיך? @@ -2791,7 +2780,6 @@ זמן הגעה לנקודת ביניים זמן ביניים שינוי סגנון בררת המחדל להגברת הניגודיות של שבילי אופניים והולכי רגל. הצבעים שיהיו בשימוש תואמי Mapnik. - קובצי GPX ניתן להירשם ל־OsmAnd חי כדי לקבל גישה לכל התכונות: עדכוני מפה יומיים עם מספר בלתי מוגבל של הורדות, כל התוספים בתשלום ובחינם, ויקיפדיה, ויקימסע ועוד הרבה. עריכת פעולות נא לשלוח צילום מסך של ההתראה הזאת אל support@osmand.net diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index bdda01ab38..a912adb98e 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -61,7 +61,6 @@ 位置を共有 GPX経由地点 \'\'{0}\'\' を追加しました 記録済みGPXルートに経由地点を追加 - GPX経由地点を追加 行政区域 バリアー 教育 @@ -176,7 +175,6 @@ MB)をダウンロードしますか? 記録音声 ベクターマップはロードされませんでした GPXファイルがtracksフォルダ内に見つかりません - GPX経路… GPXデータを読み取れませんでした。 オフラインベクターマップ 交通機関の乗降場を検索 @@ -725,7 +723,6 @@ POIの更新は利用できません コンパス 標準設定に戻す 駐車場 - GPXログ 速度 目的地 標高 @@ -974,7 +971,6 @@ POIの更新は利用できません ファイルの名前を変更できませんでした。 その名前のファイルは既に存在します。 - GPXルート 関連するいくつかのPOIカテゴリーが見つかりました。 POI検索用のオフラインデータをダウンロードします。 名前で検索 @@ -992,7 +988,6 @@ POIの更新は利用できません マップ画面中心 検索基点: 近隣を検索 - GPX経路を新規保存 ルートを「%1$s」として保存しました。 ファイル名: 同じ名前のファイルが既に存在します。 @@ -1333,7 +1328,6 @@ POIの更新は利用できません 期限 距離 バス、トロリーバス、シャトルバス路線 - GPXファイルへの経路記録に関する設定 GPXファイルへ記録される位置情報全般は、マップ画面上のGPXログウィジェットを使用してONとOFFを切り替えることが可能です。 記録間隔 常に尋ねる @@ -1672,7 +1666,6 @@ POIの更新は利用できません お気に入り 正常に保存されました: %1$s POIをアップロードすると変更前の情報は削除されます - GPXを表示 基本 拡張 起動時に表示 @@ -2139,7 +2132,6 @@ POIの更新は利用できません 音声のON/OFF 音声のミュートを解除 音声をミュート - GPX経由地点を追加 駐車場所を追加 アクションを追加 アクションを編集 @@ -2607,7 +2599,6 @@ POIの更新は利用できません グループの追加 OSM用のPOIの作成や変更、OSMメモを開いたり注釈を加えたりはもちろん、記録したGPXファイルをOSMへアップロードすることもできます。 通過済みにする - GPXファイルに追加 現在地 その他 二桁の経度を使用 @@ -2641,8 +2632,6 @@ POIの更新は利用できません Wikipediaをオンライン参照 このリンクを開くとウェブブラウザで閲覧することができます。 GPXファイルとしてインポート - GPXファイルに追加しよう - GPXファイルまたは記録した経路からインポートします。 GPXファイルからインポート 中間経由地点への到着時間 検索クエリを送信しますか? @@ -2812,7 +2801,6 @@ POIの更新は利用できません 最後に使用: %1$s %1$s内 ラーオ語 - GPXファイル 再試行 ルートポイントの追加 GPX経由地点の追加 diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml index 8750a21af0..00ab69dad5 100644 --- a/OsmAnd/res/values-ka/strings.xml +++ b/OsmAnd/res/values-ka/strings.xml @@ -172,7 +172,6 @@ ანიმაციის დაწყება ფაილისათვის სახელის გადარქმევა შეუძლებელია. ფაილი მოცემული სახელით უკვე არსებობს. - GPX გზა ძებნის შედეგები შეიცავს რამოდენიმე POI კატეგორიას : ადგილობრივი მონაცემები POI-ს ძებნისათვის არ არსებობს. სახელით ძებნა @@ -190,7 +189,6 @@ უკანასკნელად ნანახი რუკის ხედი ძებნა ახლოს : ახლოს ძებნა - გზის GPX ბილიკად შენახვა გზა შეინახა წარმატებით. სახელი \'%1$s\'. "ფაილის სახელი: " ფაილი მოცემული სახელით უკვე არსებობს. @@ -292,7 +290,6 @@ მდებარეობის გაზიარება გზის წერტილი \'\'{0}\'\' წარმატებით დაემატა ჩაწერილი GPX ბილიკისათვის სანავიგაციო წერტილის დამატება - GPX-სანავიგაციო წერტილის დამატება ადმინისტრაციული ბარიერი სასწავლო @@ -386,7 +383,6 @@ ხმა ვექტორული რუკები ჩატვირთული არ იქნა GPX ფაილები /tracks დასტაში ნაპოვნი არ იქნა - GPX მიყოლა… GPX მონაცემების კითხვის შეცდომა გათიშული ვექტორული რუკები გაჩერებაზე ტრანსპორტის ძებნა @@ -736,7 +732,6 @@ კომპასი ნაგულისხმევზე დაბრუნება პარკინგი - დევნა სიჩქარე მიზანი სიმაღლე diff --git a/OsmAnd/res/values-kn/strings.xml b/OsmAnd/res/values-kn/strings.xml index 0e3884002f..9ecd3c89bb 100644 --- a/OsmAnd/res/values-kn/strings.xml +++ b/OsmAnd/res/values-kn/strings.xml @@ -68,7 +68,6 @@ ತೆಳಿಸಿ ಎಲ್ಲವನ್ನು ತೆಳಿಸಿ ಉಳಿಸಿ - ಜಿಪಿಎಕ್ಸ್ ಟ್ರ್ಯಾಕ್ಆಗಿ ಉಳಿಸಿ ಮರುಹೆಸರಿಸಿ ಅಳಿಸಿ ಎಲ್ಲವನ್ನು ಅಳಿಸಿ @@ -269,7 +268,6 @@ ಅನುಸ್ಥಾಪಿಸಿ ಮ್ಯಾಪಿಲರಿ ವಿಜೆಟ್ ಪ್ಲಗಿನ್ - GPX ಟ್ರ್ಯಾಕ್ಅನ್ನು ಸೇರಿಸಿ ಅಜ್ಞಾತ ರೀತಿಯ ರಸ್ತೆಗಳಿಗೆ ಆಗಮನದ ಸಮಯವನ್ನು ಅಂದಾಜು ಮಾಡಲು ಮತ್ತು ಎಲ್ಲಾ ರಸ್ತೆಗಳ ವೇಗವನ್ನು ಮಿತಿಗೊಳಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ (ಮಾರ್ಗವನ್ನು ಬದಲಾಯಿಸಬಹುದು) OsmAnd ಡೇಟಾ ಫೈಲ್‌ಗಳನ್ನು ಹೊಸ ಸ್ಥಳಕ್ಕೆ ಸೇರಿಸುವುದೇ\? \n%1$s > %2$s diff --git a/OsmAnd/res/values-ko/strings.xml b/OsmAnd/res/values-ko/strings.xml index 17f9e25516..f369e9661f 100644 --- a/OsmAnd/res/values-ko/strings.xml +++ b/OsmAnd/res/values-ko/strings.xml @@ -107,7 +107,6 @@ 모의주행 시작 파일 이름을 바꿀 수 없습니다. 같은 이름을 가진 파일이 이미 존재합니다. - GPX 경로 이름으로 검색한 POI에 해당하는 몇몇 카테고리를 찾았습니다 : 검색한 POI에 대한 로컬 데이터가 존재하지 않습니다. 이름으로 검색 @@ -223,7 +222,6 @@ 위치 공유 GPX 경유지 \'\'{0}\'\' 가 성공적으로 추가되었습니다 기록된 GPX 경로에 경유지 추가 - GPX 경유지 추가 관리 배리어(Barrier) 교육기관 @@ -315,7 +313,6 @@ 녹음된 음성 벡터 맵을 적재하지 않았습니다 GPX 파일을 /osmand/tracks 폴더에서 찾을 수 없습니다 - GPX 경로… GPX 데이터를 읽는 도중 오류 오프라인 벡터 맵 대중교통 정류소 검색 @@ -959,7 +956,6 @@ 나침반 기본값으로 재설정 주차 - GPX 로깅 속도 도착지 고도 @@ -1243,7 +1239,6 @@ 주변의 즐겨찾기 주변의 POI 버스, 무궤도전차, 셔틀 노선 - 현재 트랙을 GPX파일로 저장 GPX 파일에 기록하는 일반적인 위치는 지도 화면에 GPX 로깅 위젯을 사용하여 켜거나 끌 수 있습니다 로깅 간격 항상 요청 @@ -1409,7 +1404,6 @@ 모두 선택 취소 지우기 저장 - 현재 트랙을 GPX 파일로 저장 이름 바꾸기 삭제 모두 삭제 @@ -1628,7 +1622,6 @@ 즐겨찾기 %1$s에 성공적으로 저장 되었습니다 변경 내용을 업로드 하는 동안 POI는 삭제 됩니다 - GPX 보여주기 라인의 수 지정한 범주 이름이 이미 존재합니다. 다른 이름을 지정해 주세요. 범주 이름 diff --git a/OsmAnd/res/values-ku/strings.xml b/OsmAnd/res/values-ku/strings.xml index 7e95e3764b..5b960b1a4c 100644 --- a/OsmAnd/res/values-ku/strings.xml +++ b/OsmAnd/res/values-ku/strings.xml @@ -45,7 +45,6 @@ Taybetmendî Navê welatê binivîsin Te biryar da? - GPXê nîşan bide Rojên Karê Cureya POIyê Danasîn diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index a85be4ac26..f884b88c7b 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -225,7 +225,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Paleisti animaciją Failo pavadinimo pakeisti negalima. Failas tokiu pavadinimu jau yra. - GPX maršrutas Rastos kelios LV kategorijos, kurios atitinka jūsų užklausą : Nėra LV paieškai reikalingų vietinių duomenų. Ieškoti pagal pavadinimą @@ -243,7 +242,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Esamo žemėlapio centras Pradžia: Ieškoti aplink - Išsaugoti maršrutą į naują GPX failą Maršrutas išsaugotas faile \'%1$s\'. Failo pavadinimas : Failas tokiu pavadinimu jau egzistuoja. @@ -348,7 +346,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Bendrinti vietą GPX taškas \'\'{0}\'\' pridėtas Įtraukti tašką į GPX faile išsaugotą kelią - Pridėti GPX tašką Administracinis Barjeras Mokslas/Švietimas @@ -442,7 +439,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Įrašytas balsas Vektoriniai žemėlapiai neįkelti Tracks segtuve nerasta jokių GPX failų - GPX maršrutas… Įvyko klaida skaitant GPX duomenis Parsiųsti vektoriniai žemėlapiai Ieškoti transporto stotelėje @@ -747,7 +743,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Kompasas Į pradinius nustatymus Automobilio statymas - GPX įrašymas Greitis Tikslas Aukštis @@ -1271,7 +1266,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Trukmė Atstumas Visuomeninio transporto maršrutai - Įrašyti maršrutą į GPX failą Įrašymo intervalas Bendras vietos išsaugojimas į GPX failą gali būti įjungtas ar išjungtas panaudojant GPX įrankį žemėlapio ekrane. Išsaugo kelionės istoriją vieno mygtuko ekrane paspaudimu bei pateikia nustatymus, leidžiančius kelionės istoriją išsaugoti GPX faile. @@ -1605,7 +1599,6 @@ Ilguma %2$s Darbo dienos Sėkmingai išsaugota: %1$s LV bus ištrinti, kai jūs įkelsite pakeitimus - Rodyti GPX Vėliausios vietos Vengti priemiestinių traukinių Vengti priemiestinių traukinių @@ -2132,7 +2125,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Įrašyti vaizdo pastabą Fotografuoti Pridėti OSM Pastabą - Pridėti GPX tašką Įtraukti į parankinius Ar tikrai norite ištrinti veiksmą \"%s\"? Rodyti parankinių dialogą @@ -2520,9 +2512,7 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Visi duomenys OSM pastabos Išsaugoti kaip GPX failą - GPX failai Importuoti GPX failą - Įtraukti į GPX failą išj. Neįvardinta vieta Priekyje tunelis @@ -2546,7 +2536,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Atviras pasaulinis kelionių vadovas, kurie kiekvienas gali redaguoti. Tarpinis atvykimo laikas Tarpinis laikas - Pridėti GPX failus Atsisiųsti Vikipedijos duomenys Planas ir kainos Kas mėnesį diff --git a/OsmAnd/res/values-lv/strings.xml b/OsmAnd/res/values-lv/strings.xml index 8356c4149b..d18625ee05 100644 --- a/OsmAnd/res/values-lv/strings.xml +++ b/OsmAnd/res/values-lv/strings.xml @@ -153,7 +153,6 @@ Ieslēgt animāciju Failu nevar pārsaukt. Fails ar šādu nosaukumu jau eksistē. - GPX maršruts Pēc atslēgvārda atrastās POI kategorijas: Lokālie dati POI vārdu meklēšanai nav pieejami. Meklēt pēc vārda @@ -171,7 +170,6 @@ Kartes centrs Reģions: Meklēt tuvumā - Saglabāt maršrutu GPX trasē Maršruts veiksmīgi saglabāts kā \'%1$s\'. Faila nosaukums : Fails ar šādu nosaukumu jau eksistē. @@ -277,7 +275,6 @@ Koplietot atrašanās vietu GPX ceļapunkts \'\'{0}\'\' tika veiksmīgi pievienots Pievienot ceļapunktu GPX trasei - Pievienot GPX ceļapunktu Administratīvie Barjera Izglītība @@ -372,7 +369,6 @@ Ierakstīta balss Vektoru karte nav ielādēta Treku mapē nav atrasts neviens GPX fails - GPX trases… Kļūda, nolasot GPX datus Bezsaistes vektoru kartes Meklēt transportu apstāšanās vietā @@ -744,7 +740,6 @@ Kompass Iestatīt uz noklusēto Autostāvvietas - GPX ieraksts Ātrums Mērķis Augstums @@ -1424,7 +1419,6 @@ Izvēlieties intervālu treka ierakstam (ieslēgt caur GPX ieraksta logrīku kartē) Ierakstīšanas intervāls Atļaut gps darboties fonā - Rakstīt treku GPX failā Treka ieraksta logošana pēc pieprasījuma Atrašanās vietas vispārīgā ierakstīšana GPX failā var tikt ieslēgta vai izslēgta ar GPX ieraksta logrīka palīdzību uz kartes Logošanas intervāls @@ -1778,7 +1772,6 @@ Izlase Sekmīgi saglabāts: %1$s POI tiks izdzēsts pēc labojumu augšupielādes - Rādīt GPX Līniju skaits Vai esiet pārliecināts? Izmaiņas netiks saglabātas. Vai turpināt? @@ -2072,7 +2065,6 @@ Apraksta laukumu: %1$s x %2$s Balss ieslēgt/izslēgt Balss ir izslēgta Balss ir ieslēgta - Pievienot GPX ceļapunktu Pievienot stāvvietu Pievienot darbību Labot darbību @@ -2551,14 +2543,11 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl Saglabāt maršruta punktu Ceļapunkts 1 Maršruta punkts 1 - Ierakstīt un pievienot trekus - Ierakstiet vai importējiet trekus pārlūkošanai. Pievienot izlasei Pievienojiet izlases vietas no kartes vai importējiet tās no faila. Importēt treku Fails %1$s nesatur ceļapunktus, importēt kā treku? Pārvietot punktu - Pievienot GPX trekam Mainīt meklējamo vārdu. Izveidot vai labot OSM objektus Izveidot vai labot OSM POI, atvērt vai komentēt OSM piezīmes, nosūtīt ierakstītos GPX failus. @@ -3074,7 +3063,6 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl Uzlabots kontrasts kājāmgājēju un velosipēdu celiņiem. Izmanto vecākas Mapnik krāsas. GPX fails Treku ceļapunkti - GPX faili Interesantāko vietu gidi uz planētas, OsmAnd lietotnē, bez pieslēguma internetam. Palielināt meklēšanas rādiusu līdz %1$s Spiediet uz pogas un klausieties atbilstošo balss uzvedni, lai noteiktu trūkstošās vai kļūdainās uzvednes. diff --git a/OsmAnd/res/values-ml/strings.xml b/OsmAnd/res/values-ml/strings.xml index b497e0ada7..72a3c6ac63 100644 --- a/OsmAnd/res/values-ml/strings.xml +++ b/OsmAnd/res/values-ml/strings.xml @@ -334,7 +334,6 @@ ഭൂപടം ഓട്ടോസൂമാക്കിക്കാണിക്കുക "ബാക്ക്ഗ്രൗണ്ടില്‍ പ്രവര്‍ത്തിക്കുന്നത് നിര്‍ത്തുക " എവിടെയാണ് ഞാന്‍ - ജിപിഎക്സ് റിക്കോഡിങ്ങ് ഉയരം അടുത്ത തിരുവ് അടുത്ത (ചെറു) തിരുവ് @@ -358,7 +357,6 @@ "നിങ്ങളുടെ ഓഎസ്എം പാസ്സ്വേഡ് " "സിമുലേഷന്‍ ആരംഭിക്കുക " ആ പേരില്‍ ഒരു ഫയല്‍ നിലവിലുണ്ടു്. - ജിപിഎക്സ് മാര്‍ഗം അതെ പേരില്‍ ഒരു ഫയല്‍ നിലവിലുണ്ടു്. ഭൂപട വിവരങ്ങ "പുതിയ തെരച്ചില്‍" @@ -1132,7 +1130,6 @@ ഓണ്‍ലൈന്‍ ഓഎസ്എം ഭൂപടങ്ങള്‍ ചിത്രങ്ങളോടെ തരംതിരിച്ചത് അടി മൈ. - ജിപിഎക്സ് പാതയില്‍ പാതബിന്ദു ചേര്‍ക്കുക {0} വിജയകരമായി ഇന്സ്റ്റാള്‍ ചെയതിരിക്കുന്നു ({1}). "ഈ ഭൂപടം ഡൗണ്‍ലോഡ് ചെയ്യാനാവില്ല " തുടര്‍ച്ചയായി വരച്ച് കാണിക്കുക @@ -1208,7 +1205,6 @@ വൃത്തിയാക്കുക എല്ലാം വൃത്തിയാക്കുക(കളയുക -ക്ളീയര്‍) സൂക്ഷിക്കുക - "പുതിയ ജിപിഎക്സ് ഫയലായി സൂക്ഷിക്കുക " എല്ലാം നീക്കം ചെയ്യുക പങ്ക് വക്കുക പ്രയോഗിക്കുക @@ -1335,7 +1331,6 @@ ഹൈപ്പര്‍ഫോക്കല്‍ ഫോക്കസ് "അനന്തതയിലുള്ള ഫോക്കസ് " "ക്യാമറയിലെ പടത്തിന്റെ വലിപ്പം " - "ജിപിഎക്സ് വിവരങ്ങള്‍ കാണിക്കുക" എല്ലാം പരിഷ്കരിക്കട്ടെ (%1$s MB) "ഭൂപടത്തില്‍ തിരയുന്നു " " പരിഷ്ക്കരണത്തിന്റെ വലിപ്പം" @@ -1380,7 +1375,6 @@ കിഴക്കോട്ട് ബസ് റൂട്ടുകള്‍ സാധാരണ റിക്കോഡിങ്ങിന്റെ ഇടവേള - "ജിപിഎക്സ് ഫയലിലോട്ട് പാത റിക്കോഡ് ചെയ്യുക" ഇപ്പോഴത്തെ ട്രാക്ക് സംഭരിക്കുക വഴികാട്ടുമ്പോളുള്ള റിക്കോഡിങ്ങിന്റെ ഇടവേള "സ്വാഹിലി " @@ -1520,7 +1514,6 @@ അടുത്തുള്ള താല്‍പര്യബിന്ദുക്കള്‍ (പിഓഐ) കസ്റ്റം അരിപ്പ ഓണ്‍ലൈനില്‍ പേര് തെരയുക - "ജിപിഎക്സ് ഫയലുകള്‍ " "ഓണ്‍ലൈനിലുള്ള ഓഎസ്എം കുറിപ്പുകള്‍ " താല്‍പര്യ ബിന്ദു (പി ഓ ഐ )… ഭൂപടഉറവിടം… @@ -1784,7 +1777,6 @@ ലാവോ പ്രോക്സി ഹോസ്റ്റ് ശരാശരി - ജിപിഎക്സ് പാതയില്‍ പാതബിന്ദു ചേര്‍ക്കുക "താല്‍പര്യമുള്ളവയില്‍ കൂട്ടുക " ഭൂപടം സജ്ജീകരിക്കുക ഗതിനിയന്ത്രണം @@ -1921,8 +1913,6 @@ "റൂട്ട് പോയിന്റ് സൂക്ഷിക്കുക " വേപോയിന്റ് 1 റൂട്ട് പോയിന്റ് 1 - "ജിപിഎക്സ് ഫയലുകള്‍ ചേര്‍ക്കു" - "ജിപിഎക്സ് ഫയലുകള്‍ ഇംപോര്‍ട്ടോ , ട്രാക്കുകള്‍ റിക്കോ ചെയ്യുക" ഫേവറൈറ്റുകള്‍ ചേര്‍ക്കു "ആകെ സംഭാവനകള്‍ " ഓഫ് @@ -2539,7 +2529,6 @@ GPX ഫയൽ ഇംപോർട്ട് ചെയ്യുക %1$s ഫയലില്‍ -വേപോയിന്റ് ഇല്ല, ട്രാക്കായി ഇംപോർട്ട് ചെയ്യണോ\? പോയിന്റ് നീക്കുക - ഒരു GPX ഫയലിൽ ചേർക്കുക ദൂരം സൂചന മാപ്പ് ഓറിയന്റേഷൻ ത്രെഷോൾഡ് "താഴെയുള്ള \'ചലന ദിശ\' നിന്നും \'Compass Directon\' എന്നതിലേക്കുള്ള സ്വിച്ചുചെയ്യാനുള്ള വേഗത തിരഞ്ഞെടുക്കുക." @@ -2661,7 +2650,6 @@ ഇടയ്ക്കുള്ള സമയം GPX ഫയൽ ട്രാക്ക് - GPX ഫയലുകൾ യാത്ര സഹായികള്‍ ഒസ്മാൻഡിനുള്ളിലുള്ള ലോകത്തേ പ്രധാനസ്ഥലങ്ങളുടെ യാത്രാസഹായി, ഇന്റർനെറ്റാവശ്യമില്ലാത്തത്. "ഇല്ലാത്ത അല്ലെങ്കിൽ തെറ്റായ നിർദ്ദേശങ്ങൾ തിരിച്ചറിയാൻ ഒരു ബട്ടൺ ടാപ്പുചെയ്ത്, വോയ്സ് പ്രോംപ്റ്റ് ശ്രദ്ധിക്കുക." diff --git a/OsmAnd/res/values-mr/strings.xml b/OsmAnd/res/values-mr/strings.xml index a7f347d7d4..0bf238271a 100644 --- a/OsmAnd/res/values-mr/strings.xml +++ b/OsmAnd/res/values-mr/strings.xml @@ -99,7 +99,6 @@ शहर फाइलचे नाव बदलू शकत नाही. ह्या नावाची फाइल आधीच अस्तित्वात आहे. - जिपिएक्स राऊट नावाने शोधा नाव बदला स्थान शोधत आहे … diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 319f6fe989..7a1bfc35f4 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -66,7 +66,6 @@ Kompass Tilbakestill til standard Parkering - GPX-logging Hastighet Mål Høyde @@ -215,7 +214,6 @@ Start simulering Kunne ikke endre filnavn. En fil med dette navnet finnes allerede. - GPX-rute Fant flere relaterte interessepunktkategorier. Last ned frakoblet data for å søke etter interessepunkter. Søk på navn @@ -776,7 +774,6 @@ Bruk rasterkart for alt utover dette nivået. Minste vektorielle forstørrelsesnivå ufullstendig - Legg til GPX-rutepunkt Velg en taleveiledningspakke Maksimal forstørrelse å forhåndslaste Initialiserer taledata… @@ -900,7 +897,6 @@ Spør alltid GPS-vekkingsintervall Aktiver GPS-bakgrunnsmodus - Logg spor til GPX-fil Turopptak Sett opp hvordan du gjør opptak av turer. Turopptak @@ -1031,8 +1027,7 @@ Leser hurtigbufrede fliser… Dette kartet kan ikke lastes ned Høyoppløselig visning - GPX-filer… - Minnekort er ikke tilgjengelig. + Minnekort er ikke tilgjengelig. \nDu vil ikke kunne se kart eller finne ting. Minnekort er skrivebeskyttet. \nDet er nå bare mulig å se det forhåndslastede kartet, ikke laste ned nye områder. @@ -1054,7 +1049,6 @@ Historikk Velg på kart Lagre - Lagre som ny GPX-fil Endre navn Slett Del @@ -1258,7 +1252,6 @@ Spesifiser interessepunkttype. Arbeidsdager Favoritter - Vis GPX-data Veier Legg til favoritt Bruk et kategorinavn som ikke finnes allerede. @@ -2082,14 +2075,11 @@ OsmAnd vil forbinde punktene med ruter for den valgte profilen. Lagre punktene enten som rutepunkter eller som linje. Velg navigeringsprofil - Legg til GPX-filer - Importer GPX-filer eller ta opp spor. Legg til favoritter Importer favoritter eller legg dem til ved markering av punkter på kartet. Importer GPX-fil Filen %1$s inneholder ingen rutepunkter, importere den som et spor\? Flytt punkt - Legg til i GPX-fil Legg til rutepunkter Legg til linje Ingen animasjoner @@ -2269,7 +2259,6 @@ Nytt videonotat Nytt bildenotat Legg til OSM-notat - Legg til GPX-rutepunkt Legg til parkeringsplass Rediger handling Slett handling @@ -2785,7 +2774,6 @@ Mellomliggende ankomsttid Mellomliggende tid Endrer den forvalgte stilen for å øke kontrasten på gangveier og sykkelstier. Bruker de opprinnelige Mapnik-fargene. - GPX-filer Skaff deg OsmAnd Live for å låse opp alle funksjoner: Daglige kartoppdateringer med ubegrensede nedlastinger, alle programtilleggene, Wikipedia, Wikivoyage og mye mer. Rediger handlinger Send en skjermavbildning av denne merknaden til support@osmand.net diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 88b8f3c1a6..2b05c9ae6e 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -156,7 +156,6 @@ Start simulatie Kan bestandsnaam niet wijzigen. Er bestaat al een bestand met die naam. - Navigatie langs GPX-track Meerdere gerelateerde POI-categorieën gevonden. Download offline gegevens om naar POI’s te zoeken. Zoek op naam @@ -270,7 +269,6 @@ Deel Locatie GPX-routepunt \'\'{0}\'\' succesvol toegevoegd Routepunt aan de opgenomen GPX-track toevoegen - Opslaan als routepunt in GPX-track Overheid Blokkade Onderwijs @@ -362,7 +360,6 @@ Opgenomen stem Geen vectorkaarten geladen Geen GPX-bestanden gevonden in de tracks-map - GPX-track… Fout bij het lezen van GPX-gegevens. OsmAnd Offline vectorkaart Zoek Openbaar Vervoer bij halte @@ -727,7 +724,6 @@ Kompas Herstel standaard Parkeren - GPX-Track opnemen Snelheid Bestemming Hoogte @@ -1261,7 +1257,6 @@ Registreer uw afgelegde weg als track in een GPX-bestand. Gebruik de opnameknop op het kaartscherm, of laat alle reizen automatisch opslaan. \n \nOpgenomen tracks kunnen worden gedeeld met vrienden of worden gebruikt als OSM-bijdragen. Atleten kunnen opgenomen tracks gebruiken om hun trainingen te volgen. OsmAnd kan tracks analyseren (ronde tijden, gemiddelde snelheid enz.) en tracks kunnen natuurlijk ook met andere programma\'s worden geanalyseerd. - Track maken in GPX-bestand Het registreren van de afgelegde weg in een GPX-bestand kan worden aan- en uitgeschakeld met de GPX opname widget op het kaartscherm. Interval tussen geregistreerde punten Bus-, trolleybus- en pendeltaxilijnen @@ -1437,7 +1432,6 @@ Deselecteer alles Wis Opslaan - Opslaan als nieuwe GPX-track Hernoem Verwijder Verwijder alles @@ -1702,7 +1696,6 @@ Favorieten Bewaard op: %1$s De POI wordt hier gewist zodra u de wijzigingen uploadt - GPX-track op de kaart tonen Aantal regels Weet u het zeker? Niet-bewaarde wijzigingen gaan verloren. Doorgaan? @@ -2118,7 +2111,6 @@ Stembegeleiding aan/uit Stembegeleiding aan Stembegeleiding uit - GPX-routepunt toevoegen Parkeerlocatie instellen Sneltoets toevoegen Sneltoets bewerken @@ -2531,18 +2523,15 @@ Bewaar routepunt Tussenpunt 1 Punt 1 van de route - Sporen toevoegen en vastleggen Cirkel Tijdbuffer voor verzenden van live track Geef een tijd op gedurende welke posties bewaard worden als er geen internetverbinding is Mapillary-foto\'s zijn enkel online beschikbaar. - GPX-bestanden importeren of tracks opnemen. Favorieten toevoegen Favorieten importeren of toevoegen door punten te markeren op de kaart. GPX-bestand importeren Bestand %1$s bevat geen waypoints. Importeren als een track? Verplaats punt - Voeg toe aan GPX-track Filter afbeeldingen op gebruikersnaam, datum of type. Alleen actief wanneer ingezoomd. Kaart weergeven Route berekend @@ -2766,7 +2755,6 @@ \nWe verzamelen geen persoonlijke informatie, enkel zoekgegevens om het zoeken te verbeteren. Zoekterm versturen\? Wereld - GPX bestanden "Weg vastleggen.. ik " Als GPX-track opslaan Neem OsmAnd Live en krijg alle mogelijkheden: Dagelijkse kaartupdates en onbeperkte downloads, alle betaalde en gratis plugins, Wikipedia, Wikivoyage en veel meer. diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 58fea24685..0569ead26b 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -22,7 +22,6 @@ Rozpocznij symulację Nie można zmienić nazwy pliku. Plik o takiej nazwie już istnieje. - Trasa GPX Pobierz dane offline, aby wyszukać użyteczne miejsca. Szukaj wg nazwy Plik „%1$s” z danymi użytecznych miejsc jest zbędny i można go usunąć. @@ -40,7 +39,6 @@ Aktualny środek mapy Zasób: Szukaj w pobliżu - Zapisz jako nowy plik GPX Zapisano trasę jako „%1$s”. Nazwa pliku: Plik o takiej nazwie już istnieje. @@ -148,7 +146,6 @@ Udostępnij położenie Dodano punkt GPX „{0}” Dodaj punkt pośredni do śladu GPX - Dodaj punkt do GPX Administracyjne Przeszkody Edukacja @@ -250,7 +247,6 @@ Nagrany głos Nie wczytano map wektorowych Nie odnaleziono plików GPX w katalogu śladów - Pliki GPX… Nie można odczytać danych GPX. Wektorowe mapy offline Wyszukaj komunikację na przystanku @@ -751,7 +747,6 @@ Kompas Przywróć domyślne Miejsce parkowania - Rejestrowanie GPX Prędkość Cel Wysokość @@ -1316,7 +1311,6 @@ Ostrzeżenia ruchu drogowego Najbliższe ulubione miejsca Pobliskie użyteczne miejsca - Rejestrowanie śladu GPX Ogólne rejestrowanie pozycji do pliku GPX można włączyć lub wyłączyć za pomocą widgetu rejestrowania GPX na mapie. Częstość rejestrowania Aktywuje funkcje rejestrowania i zapisywania śladów za pomocą widżetu rejestrowania śladów GPX na mapie lub automatyczne rejestruje przebiegi wszystkich tras do plików GPX. @@ -1665,7 +1659,6 @@ Ulubione Zapisano o: %1$s Użyteczne miejsce zostanie usunięte po wysłaniu zmian - Wyświetlanie danych GPX Wyświetlanie podczas uruchamiania Liczba linii Wszelkie niezapisane zmiany zostaną utracone. Kontynuować? @@ -2142,7 +2135,6 @@ Dodaj podkład Podkłady map Zasoby map - Dodaj punkt pośredni GPX Nazwa Przycisk dodawania znacznika mapy na środku ekranu. Przycisk dodawania punktu pośredniego GPX na środku ekranu. @@ -2408,14 +2400,11 @@ Punkty zostaną połączone trasą wyznaczoną na podstawie wybranego profilu. Dodaj punkty trasy Dodaj linię - Dodaj pliki GPX - Importowanie plików GPX lub nagranych tras. Dodaj do ulubionych Zaimportuj Ulubione lub dodaj je poprzez zaznaczenie punktów na mapie. Importuj plik GPX Plik %1$s nie zawiera punktów trasy, czy zaimportować go jako ślad? Przesuń punkt - Dodaj do pliku GPX Wyświetlanie na mapie Zakończyć bez zapisywania? Wyłączenie animacji @@ -2741,7 +2730,6 @@ Otwórz odnośnik do Wikipedii online Zasubskrybuj OsmAnd Live, by czytać artykuły Wikipedii i Wikipodróży offline. Czytaj Wikipedię offline - Pliki GPX Edycja działań Wyślij zrzut ekranu z tego powiadomienia na adres support@osmand.net Edytuj punkt diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 30cf2447b1..512d5a56a2 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -98,7 +98,6 @@ Limpar Limpar tudo Salvar - Salvar novo arquivo GPX Renomear Apagar Apagar tudo @@ -311,7 +310,6 @@ Intervalo de registro geral Intervalo de ativação do GPS Ativar o modo de GPS em segundo plano - Registrar trilha em arquivo GPX Registro de trilha sob demanda Posição geral de registro para um arquivo GPX pode ser ativada ou desativada usando o widget de registro de GPX no mapa. Salvar a trilha atual como arquivo GPX agora. @@ -759,7 +757,6 @@ Bússola Restaurar para predefinido Estacionamento - Registro de GPX Velocidade Destino Altitude @@ -1122,7 +1119,6 @@ Iniciar simulação Não foi possível renomear o arquivo. Já existe um arquivo com esse nome. - Rota GPX Foram encontradas várias categorias de POI relacionadas. Faça o download de dados offline para pesquisar POIs. Pesquisar por nome @@ -1228,7 +1224,6 @@ Compartilhar posição Ponto de trajeto GPX \'\'{0}\'\' adicionado Adicionar parada à trilha GPX gravada - Adicionar ponto GPX Administrativo Barreira Educação @@ -1309,7 +1304,6 @@ Instruções de voz Nenhum mapa vetorial foi carregado Nenhum arquivo GPX encontrado no diretório de trilhas - Arquivos GPX… Não foi possível ler os dados do GPX. Mapas vetoriais off-line Pesquisar por transporte na parada @@ -1661,7 +1655,6 @@ apagar Salvo em: %1$s POI será excluído quando você enviar suas alterações - Mostrar dados GPX Mostrar no início Número de linhas Tem certeza? @@ -2276,7 +2269,6 @@ Transliterar se o nome %1$s for ausente Transliterar nomes Arquivo %1$s não possui pontos de passagem, importe-o como uma trilha? - Adicionar a um arquivo GPX Adicione notas de áudio, vídeo ou foto em qualquer ponto do mapa, usando o widget ou os menus de contexto. Um botão para fazer com que a tela centralize o destino da rota, um destino selecionado anteriormente se tornaria o último destino intermediário. Um botão para fazer com que a tela centralize o novo destino da rota, substituindo o destino selecionado anteriormente (se houver). @@ -2419,7 +2411,6 @@ Ligar/desligar voz Ligar voz Silenciar voz - Adicionar ponto de passagem GPX Marcar estacionamento Adicionar ação Editar ação @@ -2538,8 +2529,6 @@ Salvar ponto de rota Ponto de Passagem 1 Ponto de Rota 1 - Adicione arquivos GPX - Importe arquivos GPX ou grave trilhas. Adicione Favoritos Importe Favoritos ou adicione-os marcando pontos do mapa. Importar arquivo GPX @@ -2720,7 +2709,6 @@ Ler a Wikipédia offline Baixar tudo Você cancelou a sua assinatura OsmAnd Live - Arquivos GPX Hora de chegada intermediária Hora intermediária Adquira OsmAnd Live para desbloquear todos estes recursos: Atualização diária de mapa com downloads ilimitados, todos os plugins pagos grátis, Wikipédia, Wikivoyage e muito mais. diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index fd6f061ac5..7e8df10c6a 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -93,7 +93,6 @@ Nenhum mapa vetorial foi carregado Caminho reverso Nenhum ficheiro GPX encontrado na pasta tracks - Ficheiros GPX… Não foi possível ler os dados de GPX. Mapas vetoriais offline Procurar transporte na paragem @@ -550,7 +549,6 @@ Iniciar animação Não foi possível renomear o ficheiro. Já existe um ficheiro com esse nome. - Rota GPX Várias categorias de POI relacionadas encontradas. Descarregar dados offline para procurar POIs. O ficheiro POI \'%1$s\' é redundante e pode ser eliminado. @@ -567,7 +565,6 @@ Centro do mapa atual Pesquisar próximo a: Pesquisar nas proximidades - Guardar como novo ficheiro GPX Rota guardada como \'%1$s\'. Nome de ficheiro: Já existe um ficheiro com o mesmo nome. @@ -669,7 +666,6 @@ Partilhar localização Ponto de passagem GPX \'\'{0}\'\' foi adicionado Acrescentar ponto à trilha GPX gravada - Acrescentar ponto GPX Navegação OsmAnd off-line ainda é uma função experimental e não funciona em distâncias superiores a cerca de 20 km. \n \nO serviço de navegação está temporariamente mudado para CloudMade on-line. @@ -749,7 +745,6 @@ Bússola Resetar para original Estacionamento - GPX registo Velocidade Destino Altitude @@ -1260,7 +1255,6 @@ Escolher o intervalo de registo para a gravação do trajeto geral (ativado através do widget de gravação GPX no mapa). Intervalo de log geral Ativar o modo de GPS em segundo plano - Guardar trilho para um ficheiro GPX O registo da posição geral para um ficheiro GPX pode ser ativado ou desativado usando o widget de gravação GPX no ecrã do mapa. Intervalo de log Rotas de autocarros e tróleibus @@ -2470,8 +2464,7 @@ Cabila Berberes Impedir o registo autónomo - Ficheiros GPX - Este suplemento enriquece o mapa do OsmAnd para também produzir mapas náuticos para passeios de barco, vela e outros tipos de desportos aquáticos. + Este suplemento enriquece o mapa do OsmAnd para também produzir mapas náuticos para passeios de barco, vela e outros tipos de desportos aquáticos. \n \nUm suplemento de mapa especial para OsmAnd fornecerá todas as marcas de navegação náutica e símbolos cartográficos, para o interior assim como para navegação próxima à costa. A descrição de cada marca de navegação fornece os detalhes necessários para identificá-las e o seu significado (categoria, forma, cor, sequência, referência, etc.). \n @@ -2740,7 +2733,6 @@ Favoritos Guardado em: %1$s O POI será eliminado quando enviar as suas alterações - Mostrar dados do GPX Contagem de linhas Tem a certeza\? Quaisquer alterações por guardar serão perdidas. Continuar\? @@ -2765,7 +2757,6 @@ Ligar/desligar voz Voz Desmuda Voz muda - Adicionar ponto de rota GPX Marcar estacionamento Adicionar ação Editar ação @@ -2836,14 +2827,11 @@ Gravar ponto de rota Ponto de Passagem 1 Ponto de Rota 1 - Adicione ficheiros GPX - Importe ficheiros GPX ou grave trilhas. Adicione Favoritos Importe Favoritos ou adicione-os marcando pontos do mapa. Importar ficheiro GPX Ficheiro %1$s não possui pontos de rota, importe-o como uma trilha\? Mover Ponto - Adicionar a um ficheiro GPX Destinatários OSM Total de doações desligado diff --git a/OsmAnd/res/values-ro/strings.xml b/OsmAnd/res/values-ro/strings.xml index 6632507265..36bbd20e18 100644 --- a/OsmAnd/res/values-ro/strings.xml +++ b/OsmAnd/res/values-ro/strings.xml @@ -83,7 +83,6 @@ Busolă Resetează la implicit Parcare - Înregistrare GPX Viteză Distanța până la destinație Altitudine @@ -328,7 +327,6 @@ Porniți simularea Fișierul nu poate fi redenumit. Există un fișier cu același nume. - Rută GPX 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 @@ -346,7 +344,6 @@ Ultima afișare a hărții Origine: Căutare în împrejurimi - Salvați ca fișier GPX nou Rută salvată cu succes ca \'%1$s\'. Numele fișierului: Există un fișier cu același nume. @@ -450,7 +447,6 @@ Distribuiți locația Waypoint \'\'{0}\'\' adăugat cu succes Adaugă un waypoint la un traseu GPX înregistrat - Adaugă waypoint GPX Localități Bariere Educație @@ -540,7 +536,6 @@ Voce înregistrată Hărțile vectoriale nu au fost încărcate Nu au fost găsite fișiere GPX în directorul tracks - Trasee GPX… Eroare la citirea datelor GPX Hărți vectoriale offline Căutare transport la destinație @@ -1032,7 +1027,6 @@ Alege intervalul de logare pentru înregistrarea generală a traseelor (activat prin intermediul widget-ului de înregistrare GPX). Interval general de logare Activați modul de fundal GPS - Salveaza track-ul intr-un fișier GPX Salvarea pozitiei generale într-un fișier GPX poate fi activată prin intermediul widget-ului de inregistrare GPX de pe fereastra hărții. Interval de salvare Autobuz, troleibuz, rute de transfer @@ -1993,7 +1987,6 @@ Galben închis Roz translucent Spaniolă (America) - Fișiere GPX Redenumirea a eșuat. zile în urmă Înapoi la hartă @@ -2289,8 +2282,6 @@ Planificarea unei călătorii Căutarea pe hartă Acțiune rapidă - Adăugați fișiere GPX - Importați fișiere GPX sau înregistrați trasee. Adăugați favorite Importați Favorite sau adăugați prin marcarea punctelor pe hartă. Nodul sau calea nu pot fi găsite. diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index d9369c61ad..edb13443c4 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -452,7 +452,6 @@ Автовозврат карты только при следовании по маршруту Возвращать карту в текущее положение только при следовании по маршруту. Центрировать карту при использовании. - Маршрут GPX Найдено несколько связанных категорий POI. Загрузите данные для локального поиска POI. Поиск по имени @@ -568,7 +567,6 @@ Поделиться местоположением Путевая точка GPX «{0}» добавлена Добавить путевую точку к записанному треку GPX - Добавить путевую точку GPX Административное Препятствие Образование @@ -668,7 +666,6 @@ Голосовые данные (запись) Векторные карты не загружены в приложение Файлы GPX не найдены в папке с треками - Файлы GPX… Не удалось прочитать данные GPX. Локальные векторные карты Редактировать POI @@ -1083,7 +1080,6 @@ Компас Сбросить настройки Парковка - Запись GPX Скорость Пункт назначения Высота @@ -1574,7 +1570,6 @@ Запись поездки час Продолжительность - Запись трека в файл GPX Интервал записи Ведение записи местоположений в файл GPX можно включить или выключить с помощью виджета записи GPX на карте. Активирует функции для записи и сохранения ваших треков вручную нажатием на виджет записи GPX на карте, или также автоматически записывает все ваши маршруты навигации в файл GPX. @@ -1708,7 +1703,6 @@ Выбрать все Очистить Сохранить - Сохранить как новый файл GPX Переименовать Удалить Удалить все @@ -1940,7 +1934,6 @@ Избранные Успешно сохранён в: %1$s POI будут удалены после того как вы отправите ваши изменения - Показать данные GPX удалить Недавние места Количество строк @@ -2274,7 +2267,6 @@ Добавить POI Изменить стиль карты Стиль карты изменён на «%s». - Добавить путевую точку GPX Добавить место парковки Добавить действие Редактировать действие @@ -2598,14 +2590,11 @@ Сохранить точку маршрута Путевая точка 1 Точка маршрута 1 - Добавить файлы GPX - Импорт файлов GPX или запись треков. Добавить избранные Избранное можно импортировать или создать, отмечая точки на карте. Импортировать файл GPX Переместить точку - Добавить в файл GPX - Используйте данные OSM и Википедии + Используйте данные OSM и Википедии \n• Высококачественная информация из лучших совместных проектов мира \n• Данные OSM доступны по каждой стране или региону \n• Интересные места (POI) из Википедии прекрасно подходят для осмотра достопримечательностей @@ -2818,7 +2807,6 @@ Сохранить Для езды по бездорожью, основано на топографическом стиле (англ. «Topo»), можно использовать с зелёными спутниковыми снимками в качестве подложки. Уменьшенная толщина основных дорог, увеличенная толщина путей, дорожек, велосипедных и других маршрутов. Модификация стиля по умолчанию для увеличения контраста пешеходных и велосипедных дорог. Использует старые цвета Mapnik. - Файлы GPX Получите OsmAnd Live, чтобы разблокировать все функции: ежедневные обновления карт с неограниченной загрузкой, все платные и бесплатные плагины, Википедия, Викигид и многое другое. Промежуточное время прибытия Промежуточное время diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index cb1a8fb503..e2ad064be9 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -544,7 +544,6 @@ Bùssola Reimposta sos valores predefinidos Parchègiu - Registratzione GPX Lestresa Destinatzione Artària @@ -711,7 +710,6 @@ Firma animatzione Avia animatzione Esistit giai unu documentu cun su matessi nùmene. - Àndala GPX Chirca pro nùmene Agiorna OsmAnd+ Nominatim in lìnia @@ -721,7 +719,6 @@ Preferidos… Chirca a curtzu de: Chirca a curtzu - Sarva s’àndala comente unu documentu GPX nou Àndala sarvada comente \'%1$s\'. Nùmene documentu: Esistit giai unu documentu cun su matessi numene. @@ -935,7 +932,6 @@ Cumpartzi positzione Puntu de coladòrgiu GPX \'\'{0}\'\' annànghidu Annanghe unu puntu de coladòrgiu a sa rasta GPX registrada - Annanghe unu puntu de coladòrgiu GPX Amministrativu Barriera Istrutzione @@ -1007,7 +1003,6 @@ Boghe registrada Sas mapas vetoriales non sunt istadas carrigadas Perunu documentu GPX agatadu in sa cartella /tracks - Documentos GPX… Impossìbile lèghere sos datos GPX. Chirca unu trasportu pùblicu in sa firmada Iscantzella PDI @@ -1319,7 +1314,6 @@ Durada Distantzia Modalidade bus, filobus, tram e navetas - Carriga sa rasta in unu documentu GPX Intervallu de registratzione Sa registratzione de sa positzione in unu documentu GPX podet èssere alluta o morta impreende su widged de registratzione GPX in sa mapa. Pregunta semper @@ -1663,7 +1657,6 @@ Logos reghentes Preferidos Su PDI at a èssere iscantzelladu a pustis de su carrigamentu de sas modìficas tuas - Ammustra sos datos GPX Sarvadu in: %1$s Ammustra in su cumintzu Contu de sas lìnias @@ -2117,7 +2110,6 @@ Boghe alluta/istudada Torra a allùghere sa boghe Istuda sa boghe - Annanghe unu puntu de coladòrgiu GPX Annanghe unu parchègiu Annanghe un\'atzione Modìfica s\'atzione @@ -2494,14 +2486,11 @@ Issèbera su profilu de navigatzione Annanghe puntos a s\'àndala Annanghe una lìnia - Annanghe documentos GPX - Importa documentos GPX o registra rastas. Annanghe preferidos Importa preferidos o annanghe·los pro mèdiu de marcadores in sa mapa. Importa unu documentu GPX Su documentu %1$s non cuntenit puntos de coladòrgiu, importare comente rasta? Move puntu - Annanghe a unu documentu GPX Sighi a l\'ammustrare in sa mapa Essire chene sarvare? Peruna animatzione @@ -2789,7 +2778,6 @@ Modìfica de s\'istile predefinidu pro ismanniare su cuntrastu pro sos caminos pedonales e sas pistas tziclàbiles. Impreat sos colores de sa versione betza de Mapnik. Ora de arrivu a sa tapa Tempus de arrivu a sa tapa - Documentos GPX Abbona·ti a OsmAnd Live pro isblocare totu sas funtzionalidades: agiornamentos die pro die de sas mapas cun iscarrigamentos illimitados, totu sas estensiones de badas e a pagamentu, Wikipedia, Wikivoyage e meda àteru. Acontza sas atziones Pro praghere imbia un\'ischermada de custa notìfica a support@osmand.net diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 0e96d61ab3..c82afd67fd 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -56,7 +56,6 @@ Kompas Znovunastaviť štandardné Parkovanie - Záznam GPX Rýchlosť Cieľ Nadm. výška @@ -217,7 +216,6 @@ Začať simuláciu Nepodarilo sa premenovať súbor. Súbor s týmto názvom už existuje. - GPX trasa Boli nájdené viaceré súvisiace kategórie POI. Stiahnite offline údaje pre hľadanie POI. Hľadať podľa názvu @@ -334,7 +332,6 @@ Zdieľať umiestnenie GPX bod (waypoint) \"{0}\" pridaný Pridať waypoint do nahranej GPX stopy - Pridať GPX waypoint Administratíva Prekážky Školstvo @@ -430,7 +427,6 @@ Nahrávka hlasu Vektorové mapy neboli načítané Žiadne GPX súbory neboli nájdené v priečinku stôp - Súbory GPX… Nepodarilo sa načítať GPX údaje. Vektorové OSM mapy Hľadať prepravu na zastávke @@ -1267,7 +1263,6 @@ Vždy sa pýtať Zadajte interval pre všeobecné zaznamenávanie trasy (prístupné cez tlačidlo záznamu GPX na mape). Interval všeobecného zaznamenávania - Zaznamenať stopu do GPX súboru Zaznamenávanie polohy do GPX súboru môže byť zapnuté a vypnuté cez tlačidlo záznamu GPX na mape. Interval zaznamenávania Linky autobusov a trolejbusov @@ -1438,7 +1433,6 @@ Zrušiť výber všetkých Vymazať Uložiť - Uložiť ako nový súbor GPX Premenovať Odstrániť Odstrániť všetko @@ -1659,7 +1653,6 @@ Obľúbené Uložené o: %1$s Bod POI bude vymazaný keď zmeny odošlete - Zobraziť údaje GPX Počet riadkov Zobraziť po štarte Ste si istí? @@ -2103,7 +2096,6 @@ Hlas zapnúť/vypnúť Zapnúť hlas Stlmiť hlas - Pridať medzicieľ GPX Pridať miesto zaparkovania Pridať akciu Upraviť akciu @@ -2490,14 +2482,11 @@ Zvoľte profil navigácie Pridať body trasy Pridať čiaru - Pridať súbory GPX - Importovať súbory GPX alebo zaznamenať stopy. Pridať obľúbené Importovať Obľúbené body alebo pridať ich označením bodov na mape. Importovať súbor GPX Súbor %1$s neobsahuje body trasy, naimportovať ako stopu? Presunúť bod - Pridať do súboru GPX Žiadne animácie Vypne animácie mapy. Zobrazovať ďalej na mape @@ -2784,7 +2773,6 @@ Modifikácia štandardného štýlu pre väčší kontrast ciest pre chodcov a cyklistov. Používa staršie farby z Mapniku. Čas príchodu k prechodnému bodu Prechodný čas - Súbory GPX Získajte OsmAnd Live pre odomknutie všetkých funkcií: Denné aktualizácie máp s neobmedzeným počtom stiahnutí, všetky platené moduly, Wikipedia, Wikivoyage a mnoho ďalšieho. Upraviť akcie Prosím pošlite snímku obrazovky s týmto oznamom na support@osmand.net diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index 3c9b97d419..e10e0026c5 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -124,7 +124,6 @@ Za pravilno delovanje programa mora biti nameščen osnovni zemljevid sveta. Povrni na privzeto Parkiranje - Sledenje GPX Hitrost Kompas Zakleni zaslon @@ -582,7 +581,6 @@ Predmestje Datoteke ni mogoče preimenovati. Datoteka s tem imenom že obstaja. - Pot GPX Najdenih je več sorodnih kategorij POI. Ni krajevnih podatkov za iskanje točk POI. Podatkovna datoteka POI \'%1$s\' je zastarela in jo je priporočljivo izbrisati. @@ -593,7 +591,6 @@ Spletni Nominatim Iskanje trenutnega mesta … Trenutno mesto (določeno) - Shrani kot novo datoteko GPX Pot je bila shranjena kot »%1$s«. Ime datoteke: Datoteka z istim imenom že obstaja. @@ -643,7 +640,6 @@ Za ogled mesta sledite povezavi spletnega brskalnika %1$s ali povezavi Android %2$s Vmesna točka GPX »{0}« je dodana Dodaj vmesno točko na shranjeno sled GPX - Dodaj vmesno točko na sled GPX Prevoz Dodatne nastavitve Nastavitve @@ -701,7 +697,6 @@ Ponastavi iskanje prevoza Vektorski zemljevidi niso naloženi V mapi sledi ni najti mogoče nobene datoteke GPX. - Datoteke GPX … Napaka med branjem podatkov GPX. Vektorski zemljevidi za delo brez povezave Iskanje prevoza na postaji @@ -1304,7 +1299,6 @@ Vse Vedno vprašaj Interval beleženja - Beleženje sledi v datoteko GPX Interval beleženja Avtobusne, trolejbusne in druge proge Dnevnik potovanj @@ -1660,7 +1654,6 @@ Nedavna mesta Shranjeno ob: %1$s Točka POI bo izbrisana po pošiljanju sprememb - Pokaži podatke GPX Zaustavi simuliranje položaja. Simuliraj trenutno točko z izračunano potjo oziroma s shranjeno potjo GPX. Pokaži ob zagonu @@ -2109,7 +2102,6 @@ Novo video sporočilo Novo slikovno sporočilo Vpiši opombo OSM - Dodaj vmesno točko GPX Dodaj parkirno mesto Dodaj dejanje Uredi dejanje @@ -2455,11 +2447,8 @@ Shrani točko poti Vmesna točka 1 Točka poti 1 - Dodaj datoteke GPX - Uvozi datoteke GPX oziroma sledi beleženja. Datoteka %1$s ne vključuje nobene vmesne točke. Ali želite pot uvoziti kot sled? Premakni točko - Dodaj v datoteko GPX Uvoz priljubljenih točk oziroma dodajanje prek označb na zemljevid. Premakni vse v zgodovino Kazalec smeri @@ -2825,7 +2814,6 @@ Iskanje: država, mesto, okraj Svetovni prispevki Wikivoyage Črna - Datoteke GPX Vmesni čas prihoda Vmesni čas Program zahteva dostop do storitev geolociranja. diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 400b27ab58..8f7d182215 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -109,7 +109,6 @@ Започни симулацију Не могу да преименујем фајл. Фајл са тим именом већ постоји. - GPX рута Претрага по имену Локални фајл који одржава промене тачака од интереса није пронађен и не може да се направи. Надоградите OsmAnd+ @@ -551,7 +550,6 @@ Означи све Очисти Очисти све - Сачувај као нови GPX фајл Избриши Дели Примени @@ -694,7 +692,6 @@ Међувреме опште пријаве Међувреме буђења GPS-а Укључи да GPS ради у позадини - Уписуј путању у GPX фајл Праћење путање по захтеву Ставка уклоњена избрисане ставке @@ -1582,7 +1579,6 @@ Путеви тролејбуса Аутобуски путеви Путеви - Додај GPX пролазну тачку Уреди акцију Означи ово као тачку поласка Тренутна @@ -1696,7 +1692,6 @@ За туристе Тип превоза: Паркинг - GPX бележење Мини карта пута Радари Упозорења о саобраћају @@ -1855,7 +1850,6 @@ Пошаљи положај Подели положај Додај пролазну тачку на снимљену GPX путању - Додај GPX пролазну тачку Администрација Препрека Образовање @@ -1896,8 +1890,6 @@ Име радње Слике са Мапилара је могуће видети само ако сте повезани на интернет. Покушај поново - Додај GPX фајлове - Увези GPX фајлове или сними путање. Додај омиљене Увезите Омиљене тачке или их додајте означавајући их као ознаке на карти. Увези GPX фајл @@ -1934,7 +1926,6 @@ Прикажи изохипсе OsmAnd навигација ван мреже је привремено недоступна. Ова карта не може да се преузме - GPX фајлови… Векторске карте ван мреже Правац компаса У смеру кретања @@ -2200,7 +2191,6 @@ Радни дани Скорашња места Омиљене - Прикажи GPX податке Број линија Купи Пуна верзија @@ -2284,7 +2274,6 @@ Пролазна тачка 1 Тачка пута 1 Помери тачку - Додај у GPX фајл ОСМ примаоци Укупно донација Подешавања за развој и отклањање гррешака као што су симулација навођења, перформансе исцртавања или гласовни упити. Намењено програмерима, непотребно приликом нормалног коришћења. @@ -2750,7 +2739,6 @@ \n - Навођењем у праву траку, приказ ограничења брзине, снимљени и синтетизовани гласови за навођење \n Набавите OsmAnd Live да откључате ове могућности: дневна ажурирања карти са неограниченим бројем скидања, сви и плаћени и бесплатни додаци, Википедија, Wikivoyage и још много тога. - GPX фајлови Карта \n • Приказ тачака од интереса око Вас \n • Подешавање карте према правцу кретања (или компасу) diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 2ac9b07eff..3d7c2bdb84 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -10,7 +10,6 @@ Skärmlås Kompass Parkering - GPX-loggning Hastighet Destination Höjd @@ -324,7 +323,6 @@ Nyttjat utrymme är {1} MB. Starta simuleringen Filen kan inte döpas om. En fil med det namnet finns redan. - GPX-rutt Hittade flera POI-kategorier som matchar frågan: Lokala data för att söka POI är inte tillgängliga. Sök efter namn @@ -435,7 +433,6 @@ Nyttjat utrymme är {1} MB. Dela ut platsen Waypointen \"{0}\" har lagts till utan problem Lägg till waypoint i inspelade GPX-spår - Lägg till GPX-waypoint Administrativt Hinder Utbildning @@ -550,7 +547,6 @@ Nyttjat utrymme är {1} MB. Inspelad röst Vektorkartorna lästes inte in Hittar inga GPX-filer i spårmappen - GPX-spår … Kunde inte läsa GPX-data Offline vektorkartor Sök transport vid stopp @@ -1237,7 +1233,6 @@ Nyttjat utrymme är {1} MB. Längd Sträcka Buss-, trådbuss-, matarbusslinjer - Logga spår till GPX-fil Allmän loggning av position till en GPX-fil kan slås på/av via GPX-loggningswidgeten på kartskärmen. Loggningsintervall Fråga alltid @@ -1395,7 +1390,6 @@ Nyttjat utrymme är {1} MB. Töm Ta bort alla Spara - Spara som ett nytt GPX-spår Byt namn Ta bort Ta bort alla @@ -1609,7 +1603,6 @@ Long %2$s ta bort Sparades utan problem kl. %1$s POI tas bort så snart du laddat upp dina ändringar - Visa GPX-data Visa vid start Är du säker? Alla osparade ändringar kommer att förloras. Fortsätta ändå? @@ -2040,7 +2033,6 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s Röst på/av Röst är av Röst är på - Lägg till GPX-waypoint Lägg till P-plats Lägg till favorit " har sparats i " @@ -2656,14 +2648,11 @@ Vänligen tillhandahåll fullständig kod Spara ruttpunkt Vägpunkt 1 Ruttpunkt 1 - Lägg till och spela in spår - Spela in eller importera spår för att visa. Lägg Till Favoriter Importera eller markera favoriter på kartan. Importera spår Filen %1$s innehåller inte vägpunkter, importera det som ett spår? Flytta punkt - Lägg till i ett GPX-spår OSM-mottagare av Vinter och skidor @@ -2689,7 +2678,6 @@ Vänligen tillhandahåll fullständig kod Redigera åtgärder Skaffa OsmAnd Live för att låsa upp alla funktioner: Dagliga kartuppdateringar med obegränsat antal hämtningar, alla betal-och gratistillägg, Wikipedia, Wikivoyage och mycket mer. Ändring av standardstilen för att öka kontrasten av gång och cykelvägar. Använder färger från tidigare versioner av Mapink. - GPX-filer • Nyhet: Stöd för globala frånkopplade reseguider. Refererade platser är länkade till kartan. Datan kommer initialt från Wikivoyage. \n \n • Wikipedia: Nytt utseende, aktiva länkar, stöd för bilder diff --git a/OsmAnd/res/values-ta/strings.xml b/OsmAnd/res/values-ta/strings.xml index 3b4855713e..c7d95d4449 100644 --- a/OsmAnd/res/values-ta/strings.xml +++ b/OsmAnd/res/values-ta/strings.xml @@ -254,7 +254,6 @@ என் இடங்கள் பிடித்தவைகள் தடங்கள் - ஜிபிஎக்ஸ் கோப்புகள் தற்பொழுது பதிவாகும் தடம் ஒழி காணோளி @@ -585,7 +584,6 @@ தெளிவான அனைத்தையும் அழி சேமி - புதிய GPX கோப்பாக சேமிக்கவும் மறுபெயரிடு அழி அனைத்தையும் நீக்கு @@ -1134,7 +1132,6 @@ இருப்பிடத்தை பகிரவும் ஜி.பி.எக்ஸ் வேப்பிங் \'\'{0}\'\' சேர்க்கப்பட்டது பதிவுசெய்யப்பட்ட ஜி.பி.எக்ஸ் டிராக்கு வழிப்பாதையைச் சேர்க்கவும் - GPX வழிப்பாதையைச் சேர் நிர்வாக தடை கல்வி @@ -1311,7 +1308,6 @@ வரி சேர்க்க பிடித்தவை சேர்க்க நகரும் புள்ளி - GPX கோப்பில் சேர்க்கவும் OSM பெறுபவர்கள் மொத்த நன்கொடைகள் தொலைவில் உள்ள diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 2c6667edc8..742edb9a28 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -58,7 +58,6 @@ Kilitle Pusula Öntanımlılara sıfırla - GPX günlüğü Hız Varış Noktası Kilitle @@ -608,7 +607,6 @@ İstek üzerine\? OsmAnd Haritalar & Navigasyon OsmAnd+ Haritalar & Yolbul - GPX Rotası Birkaç ilgili POI kategorisi bulundu. POI\'leri aramak için çevrim dışı verileri indirin. POI veri dosyası \'%1$s\' gereksiz ve silinebilir. @@ -621,7 +619,6 @@ Güncel harita merkezi Menşei: Yakınlarda ara - Yeni GPX dosyası olarak kaydet Rota \'%1$s\' olarak kaydedildi. Dosya adı: GPX dosyalarını OSM topluluğuna yükleyin ve haritaları iyileştirin. @@ -1356,7 +1353,6 @@ Ücretsiz sürümü banner göster Ücretli sürümde bile ücretsiz sürümün afişini göster. Yaptığınız değişiklikleri karşıya kez POI silinecektir - GPX verilerini göster Hatlarının Sayısı Emin misiniz? Kaydedilmemiş değişiklikler kaybolacak. Devam edilsin mi\? @@ -1468,7 +1464,6 @@ Ekran yönlendirme Hiçbir adres belirlenmedi Sesli uyarılar - GPX dosyaları… Durakta ulaşım aracı ara Harita yönlendirme \'\'{0}\'\' indeks sürümü desteklenmemektedir @@ -1497,7 +1492,6 @@ Konumu görmek için %1$s web linkini ya da %2$s Android niyet linkini takip edin GPX ara-noktası \'\'{0}\'\' eklendi Kaydedilen GPX parçaya yol noktasını ekle - GPX yol noktası ekle Geocache Boş Tüm izlenen yol boyunca geç @@ -1771,7 +1765,6 @@ Genel kayıt tutma aralığı GPS Uyandırma aralık GPS arka plan modunu etkinleştirin - GPX dosyası parça Log İsteğe bağlı olarak günlük takip GPX dosyasına genel pozisyon kaydı, harita üzerindeki GPX kayıt widget\'ı kullanılarak açılabilir veya kapatılabilir. Geçerli rotayı şimdi GPX dosyası olarak kaydedin. @@ -2396,7 +2389,6 @@ Bunu kalkış noktası yap Geçerli Ara durak ekler - GPX dosyaları %1$d dosya taşındı (%2$s). %1$d dosya kopyalandı (%2$s). %1$d dosya kopyalanamadı (%2$s). @@ -3006,7 +2998,6 @@ Harita tarzı \"%s\" olarak değiştirildi. Sesi Aç Sesi Kapat - GPX ara noktası ekle Eylemi düzenle Eylemi sil \"%s\" eylemini silmek istediğinizden emin misiniz\? @@ -3168,14 +3159,11 @@ 1. rota noktası Rota Noktaları Ekle Hat Ekle - GPX dosyaları ekle - GPX dosyalarını içe aktarın veya izlenen yolları kaydedin. Sık Kullanılanlara ekle Sık Kullanılanları içe aktarın veya haritadaki noktaları işaretleyerek ekleyin. GPX dosyasını içe aktar %1$s dosyası ara noktalar içermiyor, izlenen yol olarak içe aktar\? Hareket Noktası - GPX dosyasına ekle OSM alıcıları Toplam bağış kapalı diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 87e92b6672..ec1cac1955 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -196,7 +196,6 @@ Почати моделювання Файл не можна перейменувати. Файл з таким ім’ям вже існує. - Маршрут GPX Знайдено кілька споріднених категорій POI. Завантажте дані офлайн для пошуку POI. Пошук за назвою @@ -214,7 +213,6 @@ Поточний центр мапи Початок: Шукати поруч - Зберегти як новий GPX-файл Маршрут збережено як \'%1$s\'. Ім’я файлу: Файл з таким ім’ям вже існує. @@ -319,7 +317,6 @@ Поділитись місцезнаходженням Маршрутну точку GPX \"{0}\" додано Додати точку до записаного треку - Додати точку до треку Адміністративні Перешкода Освіта @@ -414,7 +411,6 @@ Голосові дані (запис) Векторні мапи не завантажено Файли GPX не знайдені в теці з треками - GPX-файли… Не вдалося прочитати GPX-дані. Оффлайн векторні мапи Шукати транспорт на зупинці @@ -749,7 +745,6 @@ Компас Скидання налаштувань Стоянка - GPX логування Швидкість Пункт призначення Висота @@ -1312,7 +1307,6 @@ Цей втулок додає функцію запису та збереження ваших пересувань вручну, торканням віджету записування GPX на екрані мапи, або автоматично записувати всі ваші подорожі у файл GPX. \n \nЗаписаними маршрутами можна поділитись з вашими друзями або іншими учасниками спільноти OSM. Атлети можуть користуватися записаними маршрутами для відстеження власних тренувань. Основні деталі маршрутів наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість тощо, звісно, записані маршрути, також можна проаналізувати за допомогою сторонніх інструментів. - Писати трек у файл GPX Загальний запис розташування до файлу GPX можна ввімкнути або вимкнути кнопкою запис GPX на екрані з мапою. Інтервал записування Маршрути автобусів, тролейбусів та шатлів @@ -1749,7 +1743,6 @@ Робочі дні Закладки Збережено о: %1$s - Показати GPX-дані Кількість ліній Ви впевнені? Всі незбережені зміни буде втрачено. Продовжити? @@ -2111,7 +2104,6 @@ Додати POI Змінити стиль мапи Стиль мапи був змінений на „%s“. - Додати точку до треку Додати місце для паркування Додати дію Редагувати дію @@ -2497,14 +2489,11 @@ Виберіть профіль навігації Додати точки маршруту Додати лінію - Додати GPX-файли - Імпортувати GPX-файли або записати треки. Додати у закладки Імпортувати Закладки або додати їх шляхом позначення точок на мапі. Імпортувати GPX-файл Файл %1$s не містить шляхових точок, імпортувати його в якості треку? Перемістити точку - Додати до GPX-файлу Продовжувати показувати на мапі Вийти без збереження? Перемістити усе до історії @@ -2806,7 +2795,6 @@ \n• Маркери мапи: імпорт обраних груп з GPX-файлів, введення координат, новий вигляд \n• Підписка OsmAnd Live тепер підтримує усі функції OsmAnd Статті путівника Вікімандрів - Файли GPX Проміжний час прибуття Проміжний час Завантажити статті Вікіпедії для %1$s, щоб читати їх в автономному режимі. diff --git a/OsmAnd/res/values-vi/strings.xml b/OsmAnd/res/values-vi/strings.xml index 00a92a8e12..31f022961d 100644 --- a/OsmAnd/res/values-vi/strings.xml +++ b/OsmAnd/res/values-vi/strings.xml @@ -22,7 +22,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Bắt đầu mô phỏng Không thể đổi tên tập tin. Tên tập tin đã có. - Tuyến GPX Tìm thấy một số danh mục địa điểm theo yêu cầu tìm kiếm: Dữ liệu tìm kiếm địa điểm không có. Tìm theo tên @@ -47,7 +46,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Tìm kiếm gần: Tìm kiếm - Lưu tuyến đường thành tập tin GPX Đã lưu thành công \'%1$s\'. Tên tập tin : Tên tập tin đã có. @@ -193,7 +191,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Chia sẻ vị trí Đích đến \'\'{0}\'\' được thêm vào thành công Thêm đích đến vào theo dõi GPX - Thêm điểm đến GPX Hành chính Rào chắn Giáo dục @@ -309,7 +306,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Tập tin GPX không tìm thấy trong thư mục /track - Theo dõi GPX… Gặp lỗi khi đọc tập tin GPX Bản đồ vector Offline diff --git a/OsmAnd/res/values-zh-rCN/strings.xml b/OsmAnd/res/values-zh-rCN/strings.xml index 9c37f8806c..3ef53a6152 100644 --- a/OsmAnd/res/values-zh-rCN/strings.xml +++ b/OsmAnd/res/values-zh-rCN/strings.xml @@ -75,7 +75,6 @@ 指南针 重置为默认 停车 - GPX记录 速度 目的地 海拔 @@ -186,10 +185,8 @@ 城市 - GPX路径 升级OsmAnd+ 重命名 - 另存为 GPX 轨迹 上传GPX文件OSM社区。它们将被用于改善地图。 发送到OSM @@ -215,7 +212,6 @@ 发送位置 分享位置 新增航点记录GPX轨迹 - 添加GPX航点 行政 屏障 教育 @@ -251,7 +247,6 @@ 电话 声音 GPX文件中找不到/曲目目录 - GPX轨迹… GPX数据读取错误 时发生错误加载GPX 导入 @@ -1704,7 +1699,6 @@ 通用记录间隔 GPS 唤醒时间间隔 启用 GPS 背景模式 - 记录轨迹成 GPX 文件 需求轨迹日志记录 通常位置记录到一个 GPX 文件,在地图画面上使用 GPX 记录小工具,可以开启或关闭。 导航过程中,GPX 轨迹自动保存到轨道文件夹。 @@ -2209,7 +2203,6 @@ 收藏夹 已成功保存在: %1$s 一旦您上传您的更改将删除 POI - 显示 GPX 计算行数 你确定吗? 任何未保存的更改将会丢失。要继续吗? @@ -2265,7 +2258,6 @@ 添加 OSM 注记 打开关闭声音 语音开启 - 添加 GPX 地标 添加停车场 添加动作 编辑动作 @@ -2455,7 +2447,6 @@ 排序方式 无动画效果 关闭地图动画效果。 - 添加并记录轨迹 添加收藏 在地图上添加收藏地点或从文件导入。 输入经度 @@ -2561,8 +2552,6 @@ 避免特定交通类型…… 未定义 OsmAnd Live 公共交通 - 导入 GPX 文件,或者录制轨迹。 - 添加至 GPX 文件 捐赠总计 冬季与滑雪 未命名位置 @@ -2950,7 +2939,6 @@ 旅行指南 旅游指南 旅行指南 - GPX 文件 中转时间 有更新可用 选择规划 diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 6ce458b8a0..6ffdea8061 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -116,7 +116,6 @@ 電子羅盤 恢復預設 停車場 - GPX 日誌記錄 速度 目的地 海拔高度 @@ -364,7 +363,6 @@ 開始模擬 無法將檔案重新命名。 該檔名已存在。 - GPX 路線 找到多個相關的 POI 分類。 下載離線資料以搜尋 POI。 以名稱查尋 @@ -482,7 +480,6 @@ 分享位置 GPX 路點「{0}」已新增 增加航點到已錄製的 GPX 軌跡 - 增加 GPX 航點 行政機關 路障 教育 @@ -572,7 +569,6 @@ 真人語音 向量地圖未載入 在 /tracks 資料夾找不到 GPX 檔案 - GPX 檔案… 無法讀取 GPX 資料。 離線向量地圖 搜尋公車站牌 @@ -1277,7 +1273,6 @@ 持續時間 距離 公車、無軌電車,班車路線 - 記錄軌跡成 GPX 檔案 記錄間隔 可以使用地圖上的 GPX 錄製小工具來開啟或關閉將一般的位置記錄到 GPX 檔案中。 始終詢問 @@ -1441,7 +1436,6 @@ 清除 清除全部 儲存 - 另存為新的 GPX 檔案 更名 删除 全部刪除 @@ -1658,7 +1652,6 @@ 我的收藏 現在已儲存於:%1$s 一旦您上傳您的變更,POI 會被刪除 - 顯示 GPX 資料 計算行數 在起始時顯示 您確定嗎? @@ -2109,7 +2102,6 @@ 聲音開/關 取消靜音 靜音 - 增加 GPX 航點 增加停車地點 增加我的收藏 顯示我的收藏對話框 @@ -2488,14 +2480,11 @@ 選擇導航設定檔 增加路線標點 增加線路 - 新增 GPX 檔案 - 匯入 GPX 檔案或錄製軌跡。 增加到我的收藏 匯入最愛或透過地圖上的標記點來新增它們。 匯入 GPX 檔案 %1$s 檔案不包含航點,要將其匯入軌跡嗎? 移動標點 - 增加到 GPX 檔案 在地圖上維持著顯示 離開而不儲存嗎? 無動畫 @@ -2782,7 +2771,6 @@ 中轉抵達時間 中轉時間 修改預設樣式增加行人和自行車道的對比度。使用傳統的 Mapnik 配色。 - GPX 檔 獲得 OsmAnd Live 解鎖全部功能:每日地圖更新與無限下載、所有付費和免費的外掛元件、維基百科、維基導遊和更多。 編輯動作 請將此通知的螢幕快照傳送到 support@osmand.net diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 90990a2b78..3f9fbdd1dd 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -2,7 +2,7 @@ + + Save as track file + Trip recoridng + Add track waypoint + Add track waypoint + Import or record track files + Add track files + Track route + Log track to GPX file + Tracks + Tracks + Tracks + Add to a track file + Save as new track file In case of reverse direction Are you sure you want to close Plan route without saving? You will lose all changes. Street-level imagery @@ -1159,7 +1173,6 @@ Sort Coordinate input Export your markers to the following GPX file: - Save as GPX file Move to history The group will be gone the next time you start the app. Show directional lines @@ -1247,7 +1260,7 @@ Mapillary widget Allows quick contributions to Mapillary. Online street-level photos for everyone. Discover places, collaborate, capture the world. - Street-level imagery + Street-level imagery2 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 @@ -1975,7 +1988,6 @@ Clear Clear all Save - Save as new GPX file Rename Delete Delete all @@ -2012,7 +2024,6 @@ My Places Favorites Tracks - GPX files Currently recording track Audio Video @@ -2190,7 +2201,6 @@ General logging interval GPS Wake-up interval Enable GPS background mode - Log track to GPX file On demand track logging General position logging to a GPX file can be turned on or off using the GPX logging widget on the map. Save current track as GPX file now. @@ -2888,7 +2898,6 @@ Compass Reset to default Parking - GPX logging Speed Destination Altitude @@ -3137,7 +3146,6 @@ Start simulation Could not rename file. A file with that name already exists. - GPX route Found several related POI categories. Download offline data to search for POIs. Search by name @@ -3256,7 +3264,6 @@ Share location GPX waypoint \'\'{0}\'\' added Add waypoint to recorded GPX track - Add GPX waypoint Administrative Barrier Education @@ -3342,7 +3349,6 @@ Vector maps were not loaded No GPX files found in the tracks folder - GPX files… Could not read GPX data. Offline vector maps Search for transport at stop @@ -3644,7 +3650,6 @@ Favorites Now saved at: %1$s POI will be deleted once you upload your changes - Show GPX data Count of lines Are you sure? Any unsaved changes will be lost. Continue? @@ -3726,7 +3731,6 @@ Voice on/off Unmute Voice Mute Voice - Add GPX waypoint Add parking place Add action Edit action @@ -3801,14 +3805,11 @@ Save route point Waypoint 1 Route Point 1 - Add GPX files - Import GPX files or record tracks. Add Favorites Import Favorites or add them by marking points on the map. Import GPX file File %1$s does not contain waypoints, import it as a track? Move Point - Add to a GPX file OSM recipients Total donations off From 265f488874803d7769378ed595da5787fcad2f12 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 20 Aug 2020 09:08:27 +0300 Subject: [PATCH 40/52] refactoring --- .../osmand/plus/wikimedia/WikiImageHelper.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java b/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java index 68f3545129..b02af687bb 100644 --- a/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java @@ -26,7 +26,7 @@ public class WikiImageHelper { private static final String WIKIMEDIA_API_ENDPOINT = "https://commons.wikimedia.org/w/api.php"; private static final String WIKIDATA_ACTION = "?action=wbgetclaims&property=P18&entity="; private static final String WIKIMEDIA_ACTION = "?action=query&list=categorymembers&cmtitle="; - private static final String CM_LIMIT = "&cmlimit=500"; + private static final String CM_LIMIT = "&cmlimit=5000"; private static final String FORMAT_JSON = "&format=json"; private static final String IMAGE_BASE_URL = "https://upload.wikimedia.org/wikipedia/commons/"; @@ -41,8 +41,7 @@ public class WikiImageHelper { @NonNull List imageCards) { if (wikidataId.startsWith(WIKIDATA_PREFIX)) { String url = WIKIDATA_API_ENDPOINT + WIKIDATA_ACTION + wikidataId + FORMAT_JSON; - WikidataResponse response = - (WikidataResponse) sendWikipediaApiRequest(url, WikidataResponse.class); + WikidataResponse response = sendWikipediaApiRequest(url, WikidataResponse.class); if (response != null) { for (P18 p18 : response.claims.p18) { String imageFileName = p18.mainsnak.datavalue.value; @@ -63,8 +62,7 @@ public class WikiImageHelper { addImageCard(mapActivity, imageCards, fileName); } else if (wikiMediaTagContent.startsWith(WIKIMEDIA_CATEGORY)) { String url = WIKIMEDIA_API_ENDPOINT + WIKIMEDIA_ACTION + wikiMediaTagContent + CM_LIMIT + FORMAT_JSON; - WikimediaResponse response = - (WikimediaResponse) sendWikipediaApiRequest(url, WikimediaResponse.class); + WikimediaResponse response = sendWikipediaApiRequest(url, WikimediaResponse.class); if (response != null) { List subCategories = new ArrayList<>(); for (Categorymember cm : response.query.categorymembers) { @@ -86,7 +84,7 @@ public class WikiImageHelper { } } - private static Object sendWikipediaApiRequest(@NonNull String url, @NonNull Class responseClass) { + private static T sendWikipediaApiRequest(@NonNull String url, @NonNull Class responseClass) { StringBuilder rawResponse = new StringBuilder(); String errorMessage = NetworkUtils.sendGetRequest(url, null, rawResponse); if (errorMessage == null) { @@ -176,19 +174,19 @@ public class WikiImageHelper { } // Wikimedia response classes - public class WikimediaResponse { + private static class WikimediaResponse { @SerializedName("query") @Expose private Query query; } - public class Query { + private static class Query { @SerializedName("categorymembers") @Expose private List categorymembers; } - public class Categorymember { + private static class Categorymember { @SerializedName("title") @Expose private String title; From 84b710772a2331805b50d7475fe614ef6893f4a5 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Thu, 20 Aug 2020 09:09:43 +0300 Subject: [PATCH 41/52] change members limit --- OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java b/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java index b02af687bb..27d657d960 100644 --- a/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikimedia/WikiImageHelper.java @@ -26,7 +26,7 @@ public class WikiImageHelper { private static final String WIKIMEDIA_API_ENDPOINT = "https://commons.wikimedia.org/w/api.php"; private static final String WIKIDATA_ACTION = "?action=wbgetclaims&property=P18&entity="; private static final String WIKIMEDIA_ACTION = "?action=query&list=categorymembers&cmtitle="; - private static final String CM_LIMIT = "&cmlimit=5000"; + private static final String CM_LIMIT = "&cmlimit=500"; private static final String FORMAT_JSON = "&format=json"; private static final String IMAGE_BASE_URL = "https://upload.wikimedia.org/wikipedia/commons/"; From 1c1a60863ce572244ddc19bdafac13effb54ceaf Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 20 Aug 2020 10:23:35 +0300 Subject: [PATCH 42/52] favorite changes --- .../osmand/aidlapi/favorite/AFavorite.java | 5 +- OsmAnd/build.gradle | 1 + .../res/layout/point_editor_fragment_new.xml | 1164 ++++++++--------- OsmAnd/src/androidhttpweb/ServerActivity.java | 59 + .../net/osmand/aidl/favorite/AFavorite.java | 4 +- .../MapContextMenuFragment.java | 9 +- .../FavouritePointMenuController.java | 10 + .../editors/FavoritePointEditor.java | 2 +- 8 files changed, 659 insertions(+), 595 deletions(-) create mode 100644 OsmAnd/src/androidhttpweb/ServerActivity.java diff --git a/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java b/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java index ed2dabe064..39daf1d2a2 100644 --- a/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java +++ b/OsmAnd-api/src/net/osmand/aidlapi/favorite/AFavorite.java @@ -16,12 +16,13 @@ public class AFavorite extends AidlParams { private String color; private boolean visible; - public AFavorite(double lat, double lon, String name, String description, + public AFavorite(double lat, double lon, String name, String description, String address, String category, String color, boolean visible) { this.lat = lat; this.lon = lon; this.name = name; this.description = description; + this.address = address; this.category = category; this.color = color; this.visible = visible; @@ -59,7 +60,7 @@ public class AFavorite extends AidlParams { return description; } - public String getAddress() { return description; } + public String getAddress() { return address; } public String getCategory() { return category; diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle index e33b1ca75f..48d2895f25 100644 --- a/OsmAnd/build.gradle +++ b/OsmAnd/build.gradle @@ -542,6 +542,7 @@ dependencies { //implementation 'com.atilika.kuromoji:kuromoji-ipadic:0.9.0' implementation 'com.squareup.picasso:picasso:2.71828' implementation 'me.zhanghai.android.materialprogressbar:library:1.4.2' + implementation 'org.nanohttpd:nanohttpd:2.2.0' // JS core implementation group: 'org.mozilla', name: 'rhino', version: '1.7.9' // size restrictions diff --git a/OsmAnd/res/layout/point_editor_fragment_new.xml b/OsmAnd/res/layout/point_editor_fragment_new.xml index 4dcaa46680..e20eabf662 100644 --- a/OsmAnd/res/layout/point_editor_fragment_new.xml +++ b/OsmAnd/res/layout/point_editor_fragment_new.xml @@ -1,586 +1,586 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/point_edit_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@android:color/transparent" + android:fitsSystemWindows="true"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/src/androidhttpweb/ServerActivity.java b/OsmAnd/src/androidhttpweb/ServerActivity.java new file mode 100644 index 0000000000..30ac61b6b4 --- /dev/null +++ b/OsmAnd/src/androidhttpweb/ServerActivity.java @@ -0,0 +1,59 @@ +package androidhttpweb; + +import android.net.TrafficStats; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import net.osmand.plus.R; + +public class ServerActivity extends AppCompatActivity { + private boolean initialized = false; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.server_activity); + findViewById(R.id.Button01).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (!initialized) { + ((TextView) findViewById(R.id.TextView02)).setText("Click second button to deactivate server"); + initServer(); + } + } + }); + findViewById(R.id.Button03).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (initialized) { + ((TextView) findViewById(R.id.TextView02)).setText("Click first button to activate server"); + deInitServer(); + } + } + }); + } + + private void initServer() { + final String ip = "localhost"; + final int port = 24990; + final int THREAD_ID = 10000; + TrafficStats.setThreadStatsTag(THREAD_ID); + TinyWebServer.startServer(ip, port, "/web/public_html"); + TinyWebServer.object = ServerActivity.this; + } + + private void deInitServer() { + TinyWebServer.stopServer(); + initialized = false; + } + + @Override + protected void onDestroy() { + deInitServer(); + super.onDestroy(); + } +} diff --git a/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java b/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java index 376a958add..ebd1818c9b 100644 --- a/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java +++ b/OsmAnd/src/net/osmand/aidl/favorite/AFavorite.java @@ -78,10 +78,10 @@ public class AFavorite implements Parcelable { out.writeDouble(lon); out.writeString(name); out.writeString(description); - out.writeString(address); out.writeString(category); out.writeString(color); out.writeByte((byte) (visible ? 1 : 0)); + out.writeString(address); } private void readFromParcel(Parcel in) { @@ -89,10 +89,10 @@ public class AFavorite implements Parcelable { lon = in.readDouble(); name = in.readString(); description = in.readString(); - address = in.readString(); category = in.readString(); color = in.readString(); visible = in.readByte() != 0; + address = in.readString(); } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 1fb45a0c88..b29e9e1385 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -1828,14 +1828,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo String groupName = convertDisplayNameToGroupIdName(requireContext(), menu.getTypeStr()); if (menu.getMyApplication() != null){ - FavouritesDbHelper helper = menu.getMyApplication().getFavorites(); - if (helper != null && helper.getGroup(groupName) != null){ - Drawable line2icon = helper.getColoredIconForGroup(groupName); - GravityDrawable line2GravityDrawable = - new GravityDrawable(line2icon); - line2.setCompoundDrawablesWithIntrinsicBounds( - line2GravityDrawable, null, null, null); - } + } line2.setCompoundDrawablePadding(dpToPx(5f)); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java index ca01bf246e..e318bc5aa0 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java @@ -11,6 +11,7 @@ import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.TransportStop; +import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.R; @@ -23,6 +24,7 @@ import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditorFragment; import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditorFragmentNew; import net.osmand.plus.transport.TransportStopRoute; import net.osmand.util.OpeningHoursParser; +import net.osmand.view.GravityDrawable; import java.util.List; @@ -158,6 +160,14 @@ public class FavouritePointMenuController extends MenuController { @Override public Drawable getSecondLineTypeIcon() { + + FavouritesDbHelper helper = menu.getMyApplication().getFavorites(); + if (helper != null && helper.getGroup(groupName) != null) { + Drawable line2icon = helper.getColoredIconForGroup(groupName); + GravityDrawable line2GravityDrawable = + new GravityDrawable(line2icon); + } + return getIcon(R.drawable.ic_action_group_name_16, isLight() ? R.color.icon_color_default_light : R.color.ctx_menu_bottom_view_icon_dark); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java index 021d8908e1..513cd707d5 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditor.java @@ -62,7 +62,7 @@ public class FavoritePointEditor extends PointEditor { favorite = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), title, categoryName); favorite.setDescription(""); - favorite.setAddress(title); + favorite.setAddress(""); favorite.setOriginObjectName(originObjectName); FavoritePointEditorFragmentNew.showAutoFillInstance(mapActivity, autoFill); From 67f19eb9ceed4425a93981c35c2983ccd32ea248 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 20 Aug 2020 10:27:47 +0300 Subject: [PATCH 43/52] favorites changes --- OsmAnd/src/androidhttpweb/ServerActivity.java | 59 ------------------- 1 file changed, 59 deletions(-) delete mode 100644 OsmAnd/src/androidhttpweb/ServerActivity.java diff --git a/OsmAnd/src/androidhttpweb/ServerActivity.java b/OsmAnd/src/androidhttpweb/ServerActivity.java deleted file mode 100644 index 30ac61b6b4..0000000000 --- a/OsmAnd/src/androidhttpweb/ServerActivity.java +++ /dev/null @@ -1,59 +0,0 @@ -package androidhttpweb; - -import android.net.TrafficStats; -import android.os.Bundle; -import android.view.View; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; - -import net.osmand.plus.R; - -public class ServerActivity extends AppCompatActivity { - private boolean initialized = false; - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.server_activity); - findViewById(R.id.Button01).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (!initialized) { - ((TextView) findViewById(R.id.TextView02)).setText("Click second button to deactivate server"); - initServer(); - } - } - }); - findViewById(R.id.Button03).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (initialized) { - ((TextView) findViewById(R.id.TextView02)).setText("Click first button to activate server"); - deInitServer(); - } - } - }); - } - - private void initServer() { - final String ip = "localhost"; - final int port = 24990; - final int THREAD_ID = 10000; - TrafficStats.setThreadStatsTag(THREAD_ID); - TinyWebServer.startServer(ip, port, "/web/public_html"); - TinyWebServer.object = ServerActivity.this; - } - - private void deInitServer() { - TinyWebServer.stopServer(); - initialized = false; - } - - @Override - protected void onDestroy() { - deInitServer(); - super.onDestroy(); - } -} From 5b09fe5dcd8b59abbacfb0bf81450a582f780fe6 Mon Sep 17 00:00:00 2001 From: serg Date: Thu, 20 Aug 2020 11:59:41 +0300 Subject: [PATCH 44/52] Fix #57 --- OsmAnd/res/values-af/strings.xml | 1 - OsmAnd/res/values-ar/strings.xml | 2 -- OsmAnd/res/values-az/strings.xml | 2 -- OsmAnd/res/values-b+ast/strings.xml | 1 - OsmAnd/res/values-b+be+Latn/strings.xml | 2 -- OsmAnd/res/values-b+hsb/strings.xml | 1 - OsmAnd/res/values-b+kab/strings.xml | 1 - OsmAnd/res/values-b+sr+Latn/strings.xml | 1 - OsmAnd/res/values-be/strings.xml | 2 -- OsmAnd/res/values-bg/strings.xml | 1 - OsmAnd/res/values-bs/strings.xml | 1 - OsmAnd/res/values-ca/strings.xml | 1 - OsmAnd/res/values-cs/strings.xml | 1 - OsmAnd/res/values-da/strings.xml | 1 - OsmAnd/res/values-de/strings.xml | 1 - OsmAnd/res/values-el/strings.xml | 1 - OsmAnd/res/values-eo/strings.xml | 1 - OsmAnd/res/values-es-rAR/strings.xml | 1 - OsmAnd/res/values-es-rUS/strings.xml | 1 - OsmAnd/res/values-es/strings.xml | 1 - OsmAnd/res/values-et/strings.xml | 1 - OsmAnd/res/values-eu/strings.xml | 1 - OsmAnd/res/values-fa/strings.xml | 1 - OsmAnd/res/values-fi/strings.xml | 2 -- OsmAnd/res/values-fr/strings.xml | 2 -- OsmAnd/res/values-gl/strings.xml | 2 -- OsmAnd/res/values-hu/strings.xml | 2 -- OsmAnd/res/values-hy/strings.xml | 2 -- OsmAnd/res/values-id/strings.xml | 1 - OsmAnd/res/values-is/strings.xml | 2 -- OsmAnd/res/values-it/strings.xml | 2 -- OsmAnd/res/values-iw/strings.xml | 2 -- OsmAnd/res/values-ja/strings.xml | 2 -- OsmAnd/res/values-ka/strings.xml | 1 - OsmAnd/res/values-ko/strings.xml | 1 - OsmAnd/res/values-lt/strings.xml | 2 -- OsmAnd/res/values-lv/strings.xml | 2 -- OsmAnd/res/values-ml/strings.xml | 2 -- OsmAnd/res/values-mr/strings.xml | 1 - OsmAnd/res/values-nb/strings.xml | 2 -- OsmAnd/res/values-nl/strings.xml | 2 -- OsmAnd/res/values-oc/strings.xml | 1 - OsmAnd/res/values-pl/strings.xml | 2 -- OsmAnd/res/values-pt-rBR/strings.xml | 2 -- OsmAnd/res/values-pt/strings.xml | 2 -- OsmAnd/res/values-ro/strings.xml | 2 -- OsmAnd/res/values-ru/strings.xml | 2 -- OsmAnd/res/values-sc/strings.xml | 2 -- OsmAnd/res/values-sk/strings.xml | 2 -- OsmAnd/res/values-sl/strings.xml | 2 -- OsmAnd/res/values-sr/strings.xml | 2 -- OsmAnd/res/values-sv/strings.xml | 2 -- OsmAnd/res/values-ta/strings.xml | 2 -- OsmAnd/res/values-tr/strings.xml | 2 -- OsmAnd/res/values-uk/strings.xml | 2 -- OsmAnd/res/values-zh-rCN/strings.xml | 2 -- OsmAnd/res/values-zh-rTW/strings.xml | 2 -- OsmAnd/res/values/strings.xml | 4 ++-- 58 files changed, 2 insertions(+), 92 deletions(-) diff --git a/OsmAnd/res/values-af/strings.xml b/OsmAnd/res/values-af/strings.xml index fc80461eb5..b1a5e4c2f9 100644 --- a/OsmAnd/res/values-af/strings.xml +++ b/OsmAnd/res/values-af/strings.xml @@ -1059,7 +1059,6 @@ GPS inligting \\\'OpenMaps EU\\\' - \\\'GPX\\\' OsmAnd Kaarte & Navigasie OsmAnd+ Kaarte & Navigasie diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 1e08eb062a..bd5fa1ecc8 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -308,7 +308,6 @@ ملاحظات صوتية/مصورة خرائط الطرقات فقط منع عرض الحدود الإقليمية (المستويات الإدارية من 5-9). - سجل تحديد وقت عرض خرائط الطرقات فقط : خرائط الطرقات فقط تشغيل التطبيق في الوضع الآمن (باستخدام تعليمات أندرويد البطيئة بدلا من التعليمات البرمجية الأصلية) . @@ -2523,7 +2522,6 @@ فرز إدخال إحداثية تصدير علاماتك إلى ملف يمكنك تحديده هنا: - حفظ كمسار نقل إلى السجل سيتم إزالة المجموعة بعد إعادة تشغيل التطبيق. العلامات diff --git a/OsmAnd/res/values-az/strings.xml b/OsmAnd/res/values-az/strings.xml index b6121e92dc..85f0de6448 100644 --- a/OsmAnd/res/values-az/strings.xml +++ b/OsmAnd/res/values-az/strings.xml @@ -425,7 +425,6 @@ Digər xəritələr Standart xəritə Sürət limiti - GPX Təhlükəsiz rejim Proqram təhlükəsiz rejimdə işləyir (“Parametrlər”dən söndürün). Parametrlərdən GPS-i aktivləşdirin @@ -1649,7 +1648,6 @@ Marşrut hesablandı Mövqeyim Sırala - GPX faylı kimi saxla Qruplar GPX faylı idxal et Tam məqaləni oxu diff --git a/OsmAnd/res/values-b+ast/strings.xml b/OsmAnd/res/values-b+ast/strings.xml index 87812474ba..3859e72fc3 100644 --- a/OsmAnd/res/values-b+ast/strings.xml +++ b/OsmAnd/res/values-b+ast/strings.xml @@ -873,7 +873,6 @@ Mapa estándar Mapa de namái carreteres Llende de velocidá - GPX Nun s\'alcontraron edificaciones. Mapes de namái carreteres Nun s\'instaló l\'aplicación ZXing Barcode Scanner. ¿Guetala en Google Play\? diff --git a/OsmAnd/res/values-b+be+Latn/strings.xml b/OsmAnd/res/values-b+be+Latn/strings.xml index eaf9e1689c..8958acc8d0 100644 --- a/OsmAnd/res/values-b+be+Latn/strings.xml +++ b/OsmAnd/res/values-b+be+Latn/strings.xml @@ -512,7 +512,6 @@ Punktaŭ maršrutu %2$s Miežy Nie adliustroŭvać rehijanaĺnyja miežy (administatyŭnyja ŭzroŭni 5–9). Abmiežavańnie chutkaścі - GPX Budynkaŭ nia znojdziena. Vybierycie horad Dadatkovy pošuk viosak і paštovaha іndeksa @@ -2517,7 +2516,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Sartavać Uvod kaardynat Ekspartavać vašy paznaki ŭ nastupny GPX-fajl: - Zachavać jak GPX-fajl Pieramiaścić u historyju Hrupy ŭžo nie budzie paslia nastupnaha pierazapusku prahramy. Paznaki diff --git a/OsmAnd/res/values-b+hsb/strings.xml b/OsmAnd/res/values-b+hsb/strings.xml index 9e05366624..4c8081133b 100644 --- a/OsmAnd/res/values-b+hsb/strings.xml +++ b/OsmAnd/res/values-b+hsb/strings.xml @@ -1330,7 +1330,6 @@ Kopiju wuchadźišća jako cil přidać. Chorhojčki Format zapodaća koordinatow wubrać. Móžeš jón přeco změnić pod \"Nastajenja\". - Jako GPX-dataju składować Do archiwa přesunyć Směrnicy pokazaćs Z-A diff --git a/OsmAnd/res/values-b+kab/strings.xml b/OsmAnd/res/values-b+kab/strings.xml index 3faa95123f..5c24da5070 100644 --- a/OsmAnd/res/values-b+kab/strings.xml +++ b/OsmAnd/res/values-b+kab/strings.xml @@ -106,7 +106,6 @@ Wikipedia Sken amuren - GPX Ulac abrid Isem n webrid Anida i yelliɣ diff --git a/OsmAnd/res/values-b+sr+Latn/strings.xml b/OsmAnd/res/values-b+sr+Latn/strings.xml index c22ba49c7b..f11a3c314c 100644 --- a/OsmAnd/res/values-b+sr+Latn/strings.xml +++ b/OsmAnd/res/values-b+sr+Latn/strings.xml @@ -103,7 +103,6 @@ Sakrij granice Ograničenje brzine - GPX Nema pronađenih objekata. Traži grad inkrementalno Pretraga sela/Poštanski kod diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index cbaf1399ed..b7187b04b0 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -178,7 +178,6 @@ Межы Не адлюстроўваць рэгіянальныя межы (адміністатыўныя ўзроўні 5–9). Абмежаванне хуткасці - GPX Будынкаў не знойдзена. Абярыце горад Пошук па вёсках/паштовых індэксах @@ -2576,7 +2575,6 @@ Упарадкаваць Увод каардынат Экспартаваць вашыя адзнакі ў наступны GPX-файл: - Захаваць як GPX-файл Перамясціць у гісторыю Групы ўжо не будзе пасля наступнага перазапуску праграмы. Адзнакі diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index c2074b7a0c..53c0ff4242 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -152,7 +152,6 @@ Скриване на границите Не показвай административни граници (admin нива 5–9) Ограничение на скоростта - GPX Ширина %1$.3f, дължина %2$.3f Няма намерени номера. Търсене на град възходящо diff --git a/OsmAnd/res/values-bs/strings.xml b/OsmAnd/res/values-bs/strings.xml index efd99ff13d..ce150b7672 100644 --- a/OsmAnd/res/values-bs/strings.xml +++ b/OsmAnd/res/values-bs/strings.xml @@ -101,7 +101,6 @@ Samo ceste Sakrij granice Ograničenje brzine - GPX Prikaži smjer odredišta Nema rute Promjeni odredište diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 2a7bfdd9bf..df334f59ba 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -2535,7 +2535,6 @@ Abasta l\'àrea: %1$s x %2$s Ordena Entrada de coordenades Exporteu els vostres marcadors al fitxer GPX següent: - Desa com un fitxer GPX Mou a l\'historial Planifica la ruta S\'esborrarà el grup el proper cop que inicieu l\'aplicació. diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 8981444dbb..8af19fa37d 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -2378,7 +2378,6 @@ Zobrazená oblast: %1$s x %2$s Seřadit Zadání souřadnic Vyexportovat vaše značky do tohoto GPX souboru: - Uložit jako soubor GPX Přesunout do historie Skupina bude odstraněna po příštím restartu aplikace. Zobrazit vodicí čáry diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 52cb5b54c7..403b7637de 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2529,7 +2529,6 @@ Repræsenterer område: %1$s x %2$s Sorter Koordinatindtastning Eksporter markører til følgende GPX-fil: - Gem som GPX-fil Flyt til historik Gruppen vil være væk efter næste genstart. Markører diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index b1757568c8..73354f351f 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2534,7 +2534,6 @@ Sortieren Koordinateneingabe Markierungen in die hier festgelegte GPX-Datei exportieren: - Als GPX-Datei speichern In den Verlauf verschieben Die Gruppe wird beim nächsten Start der App entfernt. Passierte anzeigen diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index cb4f744cd6..437746e35a 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -1706,7 +1706,6 @@ Ταξινόμηση Η εισαγωγή συντεταγμένης Εξαγωγή των δεικτών σας στο παρακάτω αρχείο GPX: - Αποθήκευση ως αρχείο GPX Μετακίνηση στο ιστορικό Η ομάδα θα εξαφανιστεί την επόμενη φορά που θα ξεκινήσετε την εφαρμογή. Εμφάνιση κατευθυντήριων γραμμών diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 8f8b66acbe..93172e04ae 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -2532,7 +2532,6 @@ Ordigi Enigi koordinatojn Elporti map-markojn al dosiero la GPX-dosiero: - Konservi kiel GPX-dosieron Movi al historio La grupo estos forigita post la sekva restarto de la aplikaĵo. Aldoni kopion de komencpunkto kiel celon. diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index f12953660d..65d69e2127 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -2530,7 +2530,6 @@ Ordenar Ingresar coordenadas Exporta los marcadores al siguiente archivo GPX: - Guardar como archivo GPX Mover al historial El grupo desaparecerá la próxima vez que inicies la aplicación. Marcadores diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index c446e5a010..e8e2070077 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -2530,7 +2530,6 @@ Ordenar Ingresar coordenadas Exporta los marcadores al siguiente archivo GPX: - Guardar como archivo GPX Mover al historial El grupo desaparecerá la próxima vez que inicies la aplicación. Marcadores diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index 43e6229319..bf7548fed4 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -2535,7 +2535,6 @@ Ordenar Ingresar coordenadas Exporta los marcadores al siguiente archivo GPX: - Guardar como archivo GPX Mover al historial El grupo desaparecerá la próxima vez que inicies la aplicación. Marcadores diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index dc197ed808..75ac52b1b4 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -381,7 +381,6 @@ Planeeri teekond Sorteeri Koordinaatide sisestamine - Salvesta GPX failina Teisalda ajalukku Markerid Koordinaatide formaat diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index fd549695d6..1c475f4fa7 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -2607,7 +2607,6 @@ Area honi dagokio: %1$s x %2$s Ordenatu Koordenatuen sarrera Esportatu zure markatzaileak honako GPX fitxategi honetara: - Gorde GPX fitxategi gisa Eraman historialera Taldea ez da egongo da aplikazioa berrabiarazten denean. Erakutsi norabide lerroak diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 13f8bc72fb..8c268a77e6 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -2372,7 +2372,6 @@ ویرایش یادداشت ناموفق بود. اصلاح یادداشت اصلاح یادداشت OSM - ذخیره در قالب فایل GPX فلش‌ها را روی نقشه نشان بده ردشده‌ها را نشان بده ردشده‌ها را مخفی کن diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml index 1320514000..7659f1d3ce 100644 --- a/OsmAnd/res/values-fi/strings.xml +++ b/OsmAnd/res/values-fi/strings.xml @@ -515,7 +515,6 @@ Rakennuksia ei löytynyt. Etsi lisää paikkakuntia/postinumeroita Nopeusrajoitus - GPX Pysäköintipaikka Merkitse pysäköintipaikaksi @@ -1955,7 +1954,6 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Lajittele Koordinaattien syöttö Vie markkerisi seuraavaan GPX-tiedostoon: - Tallenna GPX-tiedostona Siirrä historiaan Ryhmä poistetaan sovelluksen uudelleenkäynnistyksen jälkeen. Näytä nuolet kartalla diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index acfcc9b591..a91a11011f 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -873,7 +873,6 @@ Rechercher plus de villes / codes postaux Lat %1$.3f lon %2$.3f Limite de vitesse - GPX Frontières Masquer les limites administratives régionales (niveaux 5 à 9). Courbes de niveau @@ -2519,7 +2518,6 @@ Trier Saisie des coordonnées Exporter vos marques dans le fichier GPX suivant : - Enregistrer comme fichier GPX Déplacer vers l\'historique Le groupe sera supprimé au prochain démarrage de l\'application. Marques diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 0c9e714fbb..2b9984299a 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -444,7 +444,6 @@ Fronteiras Agochar fronteiras rexionais (niveis administrativos do 5 ó 9). Límite da velocidade - GPX Non se atopou ningún edificio. Procurar cidades a incrementos Procurar máis vilas/códigos postais @@ -2461,7 +2460,6 @@ Lon %2$s Importar grupos dende os Favoritos ou puntos de pasaxe do GPX. Importar grupos dos Favoritos ou puntos de pasaxe, coma marcaxes. poden importarse coma Favoritos ou coma un ficheiro GPX. - Gardar coma ficheiro GPX Derradeiro uso: %1$s Procurar no mapa e engadir puntos Nivel do achegamento da pantalla: %1$s diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index ebbdd51012..aa47bd6ab5 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -874,7 +874,6 @@ További falvak/irányítószámok keresése %1$.3f szélesség, %2$.3f hosszúság Sebességkorlátozás - GPX Határvonalak Regionális határok megjelenítésének kikapcsolása (5–9 közigazgatási szint). Szintvonalak @@ -2366,7 +2365,6 @@ Sorba rendezés Koordináta bevitele Jelölők exportálása az alábbi GPX fájlba: - Mentés GPX fájlként Áthelyezés az előzményekbe A csoport el fog tűnni, amikor legközelebb elindítod az alkalmazást. Irányjelző vonalak megjelenítése diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index e4090ae621..73b22752e7 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -156,7 +156,6 @@ Դասակարգել Կոորդինատների մուտքագրում Արտահանեք ձեր մարկերները հետևյալ GPX ֆայլի մեջ: - Պահպանել որպես GPX ֆայլ Տեղափոխեք պատմություն Ծրագրի հերթական վերագործարկվելուց հետո խումբը կհեռացվի։ Ցույց տալ ուղեցույցներ @@ -1394,7 +1393,6 @@ Սահմանները Թաքցնել տարածաշրջանային սահմանները (admin levels 5–9)։ Արագության սահմանափակումը - GPX Շենքեր չեն գտնվել: Ընտրեք քաղաք Որոնել ըստ գյուղի/ փոստային բաժանմունքի(ինդեքսի) diff --git a/OsmAnd/res/values-id/strings.xml b/OsmAnd/res/values-id/strings.xml index 941b4b3137..501e0dbbb9 100644 --- a/OsmAnd/res/values-id/strings.xml +++ b/OsmAnd/res/values-id/strings.xml @@ -148,7 +148,6 @@ Urutkan Input koordinat Ekspor penanda anda ke file yang dapat Anda tentukan di sini: - Simpan sebagai berkas GPX Pindahkan ke riwayat Grup akan dihapus setelah aplikasi berikutnya dimulai ulang. Tampilkan garis saran diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index aef88fca4b..47b3da704c 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -1108,7 +1108,6 @@ Hæðarlínur Staðlað kort Kort einungis með vegum - GPX Engar byggingar fundust. Kort einungis með vegum Öryggishamur @@ -2234,7 +2233,6 @@ Skipuleggja leið Innsett hnit Flyttu kortamerkin þín út í eftirfarandi GPX-skrá: - Vista sem GPX-skrá Flytja í aðgerðaferil Hópurinn verður horfinn eftir að forritið hefur verið endurræst. Birta stefnulínur diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 5e777c78ee..f4019ce9e9 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -844,7 +844,6 @@ Mappa solo strade incompleto Limite di velocità - GPX Confini Non visualizzare i confini regionali (livelli amministrativi 5-9). parti @@ -2439,7 +2438,6 @@ Ordina Inserimento coordinate Esporta i tuoi marcatori nel seguente file GPX: - Salva come file GPX Sposta nella cronologia Il gruppo verrà rimosso al prossimo riavvio dell\'app. Mostra le linee di direzione diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index b1c5ab994d..62eca33659 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -879,7 +879,6 @@ לא נמצאו בניינים. רוחב %1$.3f אורך %2$.3f מהירות מותרת - התחלה גבולות הסתרת גבולות אזוריים (דרגות ניהול 5‏-9). קטעים @@ -1282,7 +1281,6 @@ סיום תכנון נתיב מיון - שמירה כקובץ GPX העברה להיסטוריה השבתת ניתוב דו־שלבי לניווט הרכב. מצב מסך מלא diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index a912adb98e..47b683fe32 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -654,7 +654,6 @@ POIの更新は利用できません 道路のみのマップ 境界 制限速度 - GPX 該当する建物は見つかりませんでした。 さらに市町村検索/郵便番号 道路のみのマップを表示するときに選択します: @@ -2476,7 +2475,6 @@ POIの更新は利用できません 並び替え 座標入力 マーカーは以下に指定したファイル名でエクスポートされます: - 経路を保存 履歴に移動 グループは再起動後に削除されます。 案内線を表示 diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml index 00ab69dad5..63ff651a4b 100644 --- a/OsmAnd/res/values-ka/strings.xml +++ b/OsmAnd/res/values-ka/strings.xml @@ -872,7 +872,6 @@ შეწყვეტა დაწყება სიჩქარის ლიმიტი - GPX დევნა გან %1$.3f, გრძ %2$.3f OsmAnd წარმოადგენს აპლიკაციას ღია კოდით გათიშული და მიმდინარე რუკებით ნავიგაციისათვის აირჩიეთ ტრანსპორტის ტიპი diff --git a/OsmAnd/res/values-ko/strings.xml b/OsmAnd/res/values-ko/strings.xml index f369e9661f..e1e4664e09 100644 --- a/OsmAnd/res/values-ko/strings.xml +++ b/OsmAnd/res/values-ko/strings.xml @@ -1085,7 +1085,6 @@ 정의/편집… 무제한 EU 지도 열기 - GPX OSM 패스워드(선택) 이메일 카메라 포커스 유형 diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index f884b88c7b..3d1dcde185 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -836,7 +836,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Leidžiamas greitis Ribos Neberodyti regionų ribų (administratoriaus 5-9 lygiai). - pradėti dalys Aukščio kontūrų linijos Šis įskiepis įgalina tiek aukščio kontūrų linijų tiek ir (reljefo) kalnų šešėlių sluoksnių atvaizdavimą and OsmAnd žemėlapių. Ši funkcija gali būti naudinga atletams, keliautojams ir visiems, kas aktuali reljefo struktūra. (Atkreipkite dėmesį į tai kad kontūrų linijos ir/arba reljefo duomenys yra atskiri, papildomi parsiuntimai prieinami aktyvavus įskiepį) @@ -2511,7 +2510,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Pasirinkite failo tipą Visi duomenys OSM pastabos - Išsaugoti kaip GPX failą Importuoti GPX failą išj. Neįvardinta vieta diff --git a/OsmAnd/res/values-lv/strings.xml b/OsmAnd/res/values-lv/strings.xml index d18625ee05..8aff25adb4 100644 --- a/OsmAnd/res/values-lv/strings.xml +++ b/OsmAnd/res/values-lv/strings.xml @@ -997,7 +997,6 @@ Robežas Noņemt reģionālo robežu attēlošanu (admin līmeņi 5-9) Ātruma limiti - GPX Nav atrastas ēkas. Meklēt apdzīvotās vietas/pasta indeksus Izvēlieties, kad rādīt tikai ceļu tīkla kartes: @@ -2457,7 +2456,6 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl Kārtot Koordināšu ievade Eksportēt marķierus sekojošajā GPX failā: - Saglabāt kā GPX failu Pārvietot uz vēsturi Pēc lietotnes restarta šī grupa vairs neeksistēs. Rādīt vadošās līnijas diff --git a/OsmAnd/res/values-ml/strings.xml b/OsmAnd/res/values-ml/strings.xml index 72a3c6ac63..36973fdaa9 100644 --- a/OsmAnd/res/values-ml/strings.xml +++ b/OsmAnd/res/values-ml/strings.xml @@ -1095,7 +1095,6 @@ "ഇല്ല " ദൂരം അളക്കുക ഓഡിയോ കുറിപ്പുകള്‍ - ജിപിഎക്സ് "കെട്ടിടം കണ്ടുപിടിക്കാനായില്ല." ഉപകരണ സജ്ജീകരണത്തില്‍ നിന്നും ജിപിഎസ് സജീവമാക്കുക "വഴി കണ്ടെത്തിയില്ല " @@ -2551,7 +2550,6 @@ പൂർത്തിയാക്കുക റൂട്ട് പ്ലാന്‍ ചെയ്യുക ഇനിപ്പറയുന്ന GPX ഫയലിലേക്ക് നിങ്ങളുടെ മാർക്കറുകൾ എക്സ്പോര്‍ട്ട് ചെയ്യുക: - GPX ഫയൽ ആയി സംരക്ഷിക്കുക ചരിത്രത്തിലേക്ക് നീക്കുക നിങ്ങൾ അടുത്ത തവണ ആപ്പ് ആരംഭിക്കുമ്പോൾ ഈ ഗ്രൂപ്പ് നഷ്ടമാകും. സിസ്റ്റം കീബോർഡ് ഉപയോഗിക്കുക diff --git a/OsmAnd/res/values-mr/strings.xml b/OsmAnd/res/values-mr/strings.xml index 0bf238271a..dc88632806 100644 --- a/OsmAnd/res/values-mr/strings.xml +++ b/OsmAnd/res/values-mr/strings.xml @@ -348,7 +348,6 @@ फक्त रस्त्याचा नकाशा सीमा वेग मर्यादा - जिपिएक्स अक्षांश %1$.3f, रेखांश %2$.3f इमारत सापडली नाही. इच्छित स्थळाची दिशा दाखवा diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 7a1bfc35f4..2067ed2c50 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -934,7 +934,6 @@ Ta bilde Dropbox-programtillegg utilgjengelig - GPX Opprett interessepunkt-filter Kjør \n i bakgrunnen @@ -2136,7 +2135,6 @@ Sorter Koordinatinntasting Eksporter dine markører til følgende GPX-fil: - Lagre som GPX-fil Alle kartmarkører flyttet til historikk Kartmarkør flyttet til historikk Kartmarkør flyttet til aktive diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 2b05c9ae6e..7dc3e4666f 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -844,7 +844,6 @@ Zoek naar meer dorpen/postcodes Lat %1$.3f Lon %2$.3f Snelheidslimiet - GPX Grenzen Geen weergave van regio- en provinciegrenzen (grensniveaus 5-9). gedeelten @@ -2481,7 +2480,6 @@ Sorteer Invoer van coördinaten Exporteer uw Markeervlaggetjes naar het volgende GPX-bestand: - Opslaan als GPX-bestand Verplaats naar geschiedenis De groep wordt verwijderd na een herstart van de app. Richtingslijnen tonen diff --git a/OsmAnd/res/values-oc/strings.xml b/OsmAnd/res/values-oc/strings.xml index 646da2f246..666b1c4db6 100644 --- a/OsmAnd/res/values-oc/strings.xml +++ b/OsmAnd/res/values-oc/strings.xml @@ -371,7 +371,6 @@ Planificar l\'itinerari Ordenar Intrada dei coordonadas - Sauvagardar per fichier GPX Moure a la cronologia Mostrar lei linhas de direccion Mostrar lei sagetas sus la mapa diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 0569ead26b..3ba6e8ead6 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -881,7 +881,6 @@ Granice Pomiń wyświetlenie granic regionalnych (poziomy administratora 5-9). Ograniczenie prędkości - Ślad Poziomice Inne mapy Poziomice @@ -2447,7 +2446,6 @@ Planowanie trasy Sortuj Znaczniki zostaną wyeksportowane do poniższego pliku GPX: - Zapisz jako plik GPX Przenieś do historii Grupa zostanie usunięta po ponownym uruchomieniu. Użycie klawiatury systemowej diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 512d5a56a2..7fe9b564c1 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -805,7 +805,6 @@ Especificar intervalo de monitoramento on-line. Nascer/Pôr do Sol Limite de velocidade - GPX Nenhum edifício encontrado. Pesquisar cidade incrementalmente Pesquisar mais povoados/código postal @@ -1977,7 +1976,6 @@ Ordenar Inserção de coordenada Exporte seus marcadores para o seguinte arquivo GPX: - Salvar como arquivo GPX Mover para o histórico O grupo será excluído na próxima vez em que reiniciar o aplicativo. Mostrar setas no mapa diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 7e8df10c6a..f612886dff 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -1010,7 +1010,6 @@ Use sensor magnético Outro Curvas de nível - GPX Mapas OsmAnd & Navegação Mapas OsmAnd+ & Navegação A descarregar… @@ -1828,7 +1827,6 @@ Ordenar Introdução de coordenada Exporte os seus marcadores para um ficheiro que pode especificar aqui: - Guardar como ficheiro GPX Mover para histórico O grupo terá desaparecido na próxima vez que iniciar a aplicação. Mostrar linhas direcionais diff --git a/OsmAnd/res/values-ro/strings.xml b/OsmAnd/res/values-ro/strings.xml index 36bbd20e18..21967c4580 100644 --- a/OsmAnd/res/values-ro/strings.xml +++ b/OsmAnd/res/values-ro/strings.xml @@ -828,7 +828,6 @@ Număr negăsit. Lat %1$.3f Long %2$.3f Limita de viteză - Start Ascunde limitele administrative Dezactivează afișarea limitelor administrative 5-9 Curbe de nivel @@ -1730,7 +1729,6 @@ Planul rutei Introduceți coordonatele Exportați marcajele dvs. în următorul fișier GPX: - Salvați ca fișier GPX Grupul va dispărea data viitoare când porniți aplicația. Afișați liniile direcționale Arată săgețile pe hartă diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index edb13443c4..12cb22b85e 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -1197,7 +1197,6 @@ Ш %1$.3f Д %2$.3f неполный Ограничение скорости - GPX Прочие карты Карты SRTM Настройки аудио и видео @@ -2373,7 +2372,6 @@ В этом году Планирование маршрута Ввод координат - Сохранить как файл GPX Переместить в историю Группа будет выключена при следующем запуске приложения. Показывать стрелки на карте diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index e2ad064be9..44b03bce33 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -299,7 +299,6 @@ Làcanas Cua sas làcanas regionales (livellos amministrativos 5–9). Lìmite de lestresa - GPX Perunu edifìtziu agatau. Chirca incrementale de sa tzitade Chirca àteras biddas/còdighes postales @@ -2536,7 +2535,6 @@ Òrdina Insertada de sas coordinadas Esporta sos marcadores tuos in custu documentu GPX: - Sarva comente documentu GPX Pone in sa cronologia Su grupu at a èssere iscantzelladu a pustis de s\'allughìngiu imbeniente de s\'aplicatzione. Impossìbile modificare sa nota. diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index c82afd67fd..d77df41ce5 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -851,7 +851,6 @@ Hľadať viac obcí/PSČ Šírka %1$.3f dĺžka %2$.3f Obmedzenie rýchlosti - GPX Hranice oblastí Potlačiť zobrazenie hraníc regiónov (administratívne úrovne 5 až 9). časti @@ -2522,7 +2521,6 @@ Zotriediť Zadanie súradníc Exportovať vaše značky do nasledovného súboru GPX: - Uložiť ako súbor GPX Presunúť do histórie Skupina bude odstránená pri nasledujúcom štarte aplikácie. Zobraziť smerové čiary diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index e10e0026c5..ff3e9f3f93 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -876,7 +876,6 @@ Vir ploščic zemljevida Vir zemljevida Omejitve hitrosti - Beleženje GPX Ne izriši upravnih mej Izbira onemogoči izris upravnih mej (na ravneh približanja od 5 do 9). Izris izohips @@ -2522,7 +2521,6 @@ Načrtovanje poti Razvrsti Vpis koordinat - Shrani kot datoteko GPX Premakni v zgodovino Skupina bo odstranjena ob ponovnem zagonu programa. Prag usmerjenosti zemljevida diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 8f7d182215..8be5467e9e 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -94,7 +94,6 @@ Изохипсе Границе Ограничење брзине - GPX Нема пронађених објеката. Тражи град инкрементално Претрага за још села/поштанских кодова @@ -1445,7 +1444,6 @@ Сортирај Унос координата Извезите ознаке у следећи GPX фајл: - Сачувај као GPX фајл Премести у историју Z-A A-Z diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 3d7c2bdb84..1249d3d1d4 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -697,7 +697,6 @@ Nyttjat utrymme är {1} MB. Gränser Undertryck visning av regionala gränser (adminnivåer 5-9). Hastighetsbegränsning - GPX Inga byggnader hittades. Sök stad stegvis Sök efter fler byar/postnummer @@ -2183,7 +2182,6 @@ Vänligen tillhandahåll fullständig kod Undvik isvägar och vadställen. Min plats Sortera - Spara som GPX-fil Flytta till historiken Visa pilar på kartan Visa passerade diff --git a/OsmAnd/res/values-ta/strings.xml b/OsmAnd/res/values-ta/strings.xml index c7d95d4449..a985a28553 100644 --- a/OsmAnd/res/values-ta/strings.xml +++ b/OsmAnd/res/values-ta/strings.xml @@ -95,7 +95,6 @@ வகைபடுத்து. ஒருங்கிணைப்பு உள்ளீடு பின்வரும் ஜிபிஎக்ஸ் கோப்புக்கு குறிப்பாங்களை ஏற்றுமதி செய்: - ஜிபிஎக்ஸ் கோப்பாக சேமி வறலாற்றுக்கு நகர்த்து அடுத்த முறை இந்த செயலியை இயக்கும் பொழுது இந்த குழு அழிந்திருக்கும். வழிகாட்டி குறிப்புகளை காட்டு @@ -1062,7 +1061,6 @@ பிராந்திய எல்லைகளை காட்சிப்படுத்த (நிர்வாகம் அளவு 5-9). \n வேக வரம்பு - ஜிபிஎக்ஸ் கட்டிடங்கள் இல்லை. "நகரத்தை தேடுங்கள் படிப்படியாக " மேலும் கிராமங்கள் / அஞ்சல் குறியீட்டைத் தேடுக diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 742edb9a28..995607a897 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -1521,7 +1521,6 @@ SAC ölçeğine göre yolları görselleştir. Yürüyüş sembolü üst katmanı OSMC izlerine göre yolları görselleştir. - GPX Sesli uyarılar müzik çalmayı duraklatır. Müziği duraklat Wikipedia @@ -2235,7 +2234,6 @@ Harita üzerine dokunmak denetim düğmeleri ve widget\'lara geçiş yapmayı sağlar. Waypoint\'ler harita işaretleyicilerine eklendi İşaretleyicilerinizi şu GPX dosyasına aktarın: - GPX dosyası olarak kaydet Haritada yön gösterici okları göster OsmAnd seçilmiş profil için rotalı noktalara bağlanacak. Lütfen en az bir nokta ekleyiniz. diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index ec1cac1955..d07e352378 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -846,7 +846,6 @@ Безпечний режим Програму запущено в безпечному режимі (вимкніть його в \'Налаштуваннях\'). Оберіть \"Використати місцезнаходження...\" для прив\'язки нотатки до даного місцезнаходження. - GPX Фоновий режим OsmAnd досі запущений. Зупинити його роботу також? Закрити набір змін Програма \'ZXing Barcode Scanner\' не встановлена. Шукати в Google Play? @@ -2528,7 +2527,6 @@ Впорядкувати Введення координат Експортувати Ваші позначки у наступний GPX-файл: - Зберегти як GPX-файл Перемістити до історії Група буде вилучена після перезапуску застосунку. Показувати напрямні лінії diff --git a/OsmAnd/res/values-zh-rCN/strings.xml b/OsmAnd/res/values-zh-rCN/strings.xml index 3ef53a6152..0cd04bb76f 100644 --- a/OsmAnd/res/values-zh-rCN/strings.xml +++ b/OsmAnd/res/values-zh-rCN/strings.xml @@ -15,7 +15,6 @@ 部分 其它地图 速度限制 - GPX “安全模式” 沒有路由 删除目的地 @@ -2358,7 +2357,6 @@ 使用位置 排序 坐标输入 - 保存为GPX轨迹文件 今天 昨天 阅读完整文章 diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 6ffdea8061..de6093a869 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -983,7 +983,6 @@ \n \n全球圖資(在 70 ° 以北和 70 ° 以南之間)的量測基礎在於 SRTM(Shuttle Radar Topography Mission)和 ASTER(Advanced Spaceborne Thermal Emission and Reflection Radiometer),安裝在美國太空總署地球觀測系統的旗艦衛星 Terra 上的遙測儀器,ASTER 是美國太空總署、日本經濟產業省(METI)、日本太空系統(J-spacesystems)之間的通力合作的產物。 OpenMaps EU - GPX 相機對焦類型 相機對焦模式: 自動對焦 @@ -2523,7 +2522,6 @@ 分類 座標輸入 將您的標記匯出到下方的 GPX 檔案: - 另存為 GPX 檔案 移至歷程 群組在下一次應用程式重新啟動後才會消失。 標記 diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 3f9fbdd1dd..3cd0f265a9 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -20,6 +20,7 @@ Add track files Track route Log track to GPX file + GPX Tracks Tracks Tracks @@ -1260,7 +1261,7 @@ Mapillary widget Allows quick contributions to Mapillary. Online street-level photos for everyone. Discover places, collaborate, capture the world. - Street-level imagery2 + 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 @@ -2619,7 +2620,6 @@ Boundaries Suppress display of regional boundaries (admin levels 5–9). Speed limit - GPX No buildings found. Search city incrementally Search for more villages/postcodes From 2f36b59ae78ba82dc65ca6436fc8cc030e11c496 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 20 Aug 2020 12:55:29 +0300 Subject: [PATCH 45/52] icons fixed and refactored --- .../net/osmand/plus/FavouritesDbHelper.java | 9 ++-- .../MapContextMenuFragment.java | 51 +++++++++---------- .../FavouritePointMenuController.java | 22 +++++--- .../other/MultiSelectionArrayAdapter.java | 27 +++------- 4 files changed, 50 insertions(+), 59 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index c7b2ae6255..1461a3983b 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -3,7 +3,6 @@ package net.osmand.plus; import android.app.Activity; import android.content.Context; import android.graphics.drawable.Drawable; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -104,7 +103,7 @@ public class FavouritesDbHelper { } public int getColor() { - return color; + return color; } public boolean isVisible() { @@ -138,7 +137,7 @@ public class FavouritesDbHelper { if (favoriteGroup != null) { int color = favoriteGroup.getColor() == 0 ? context.getResources().getColor(R.color.color_favorite) : favoriteGroup.getColor(); - return context.getUIUtilities().getPaintedIcon(R.drawable.ic_action_folder, color); + return context.getUIUtilities().getPaintedIcon(R.drawable.ic_action_group_name_16, color); } return null; } @@ -198,10 +197,10 @@ public class FavouritesDbHelper { if (fp.getColor() == 0xFF000000 || fp.getColor() == ContextCompat.getColor(context, R.color.color_favorite)) { fp.setColor(0); } - if (fp.getBackgroundType() == FavouritePoint.DEFAULT_BACKGROUND_TYPE){ + if (fp.getBackgroundType() == FavouritePoint.DEFAULT_BACKGROUND_TYPE) { fp.setBackgroundType(null); } - if(fp.getIconId()== FavouritePoint.DEFAULT_UI_ICON_ID){ + if (fp.getIconId() == FavouritePoint.DEFAULT_UI_ICON_ID) { fp.setIconId(0); } FavoriteGroup group = getOrCreateGroup(fp, 0); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index b29e9e1385..45b6573c8c 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -46,7 +46,6 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; -import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadPoint; @@ -55,11 +54,9 @@ import net.osmand.data.RotatedTileBox; import net.osmand.data.TransportRoute; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; -import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.LockableScrollView; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.UiUtilities.DialogButtonType; @@ -69,19 +66,20 @@ import net.osmand.plus.base.BaseOsmAndFragment; import net.osmand.plus.base.ContextMenuFragment; import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents; import net.osmand.plus.helpers.FontCache; +import net.osmand.plus.mapcontextmenu.AdditionalActionsBottomSheetDialogFragment.ContextMenuItemClickListener; import net.osmand.plus.mapcontextmenu.MenuController.MenuState; import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController; import net.osmand.plus.mapcontextmenu.MenuController.TitleProgressController; import net.osmand.plus.mapcontextmenu.controllers.TransportStopController; -import net.osmand.plus.mapcontextmenu.AdditionalActionsBottomSheetDialogFragment.ContextMenuItemClickListener; import net.osmand.plus.routepreparationmenu.ChooseRouteFragment; import net.osmand.plus.routepreparationmenu.MapRouteInfoMenu; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.transport.TransportStopRoute; import net.osmand.plus.views.AnimateDraggingMapThread; import net.osmand.plus.views.OsmandMapTileView; -import net.osmand.plus.views.layers.TransportStopsLayer; import net.osmand.plus.views.controls.HorizontalSwipeConfirm; import net.osmand.plus.views.controls.SingleTapConfirm; +import net.osmand.plus.views.layers.TransportStopsLayer; import net.osmand.plus.widgets.style.CustomTypefaceSpan; import net.osmand.router.TransportRouteResult; import net.osmand.util.Algorithms; @@ -91,7 +89,6 @@ import java.util.ArrayList; import java.util.List; import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MORE_ID; -import static net.osmand.plus.FavouritesDbHelper.FavoriteGroup.convertDisplayNameToGroupIdName; import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP; import static net.osmand.plus.settings.fragments.ConfigureMenuItemsFragment.MAIN_BUTTONS_QUANTITY; @@ -177,7 +174,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + Bundle savedInstanceState) { MapActivity mapActivity = getMapActivity(); if (mapActivity == null) { @@ -609,7 +606,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo containerLayoutListener = new OnLayoutChangeListener() { @Override public void onLayoutChange(View view, int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) { + int oldLeft, int oldTop, int oldRight, int oldBottom) { if (!transportBadgesCreated) { createTransportBadges(); } @@ -678,11 +675,11 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } private View getActionView(ContextMenuItem contextMenuItem, - final int position, - final ContextMenuAdapter mainAdapter, - final ContextMenuAdapter additionalAdapter, - final ContextMenuItemClickListener mainListener, - final ContextMenuItemClickListener additionalListener) { + final int position, + final ContextMenuAdapter mainAdapter, + final ContextMenuAdapter additionalAdapter, + final ContextMenuItemClickListener mainListener, + final ContextMenuItemClickListener additionalListener) { UiUtilities uiUtilities = requireMyApplication().getUIUtilities(); LayoutInflater inflater = UiUtilities.getInflater(getMyApplication(), nightMode); View view = inflater.inflate(R.layout.context_menu_action_item, null); @@ -831,7 +828,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo v.setAlpha(alpha); if (visible && v.getVisibility() != View.VISIBLE) { v.setVisibility(View.VISIBLE); - } else if (!visible && v.getVisibility() == View.VISIBLE) { + } else if (!visible && v.getVisibility() == View.VISIBLE) { v.setVisibility(View.INVISIBLE); } } @@ -839,7 +836,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo private void updateVisibility(View v, boolean visible) { if (visible && v.getVisibility() != View.VISIBLE) { v.setVisibility(View.VISIBLE); - } else if (!visible && v.getVisibility() == View.VISIBLE) { + } else if (!visible && v.getVisibility() == View.VISIBLE) { v.setVisibility(View.INVISIBLE); } } @@ -1025,7 +1022,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } private void applyPosY(final int currentY, final boolean needCloseMenu, boolean needMapAdjust, - final int previousMenuState, final int newMenuState, int dZoom) { + final int previousMenuState, final int newMenuState, int dZoom) { final int posY = getPosY(currentY, needCloseMenu, previousMenuState); if (getViewY() != posY || dZoom != 0) { if (posY < getViewY()) { @@ -1713,7 +1710,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo - (newMenuTopShadowAllHeight - menuTopShadowAllHeight)); } else { menuTopViewHeightExcludingTitle = newMenuTopViewHeight - line1.getMeasuredHeight() - line2MeasuredHeight - - titleButtonHeight - downloadButtonsHeight - titleBottomButtonHeight - additionalButtonsHeight - titleProgressHeight-line3Height; + - titleButtonHeight - downloadButtonsHeight - titleBottomButtonHeight - additionalButtonsHeight - titleProgressHeight - line3Height; menuTitleTopBottomPadding = (line1.getMeasuredHeight() - line1.getLineCount() * line1.getLineHeight()) + (line2MeasuredHeight - line2LineCount * line2LineHeight); menuButtonsHeight = view.findViewById(R.id.context_menu_bottom_buttons).getHeight() @@ -1820,15 +1817,15 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo if (!Algorithms.isEmpty(typeStr)) { line2Str.append(typeStr); Drawable icon = menu.getTypeIcon(); - if (icon != null){ - GravityDrawable gravityIcon = new GravityDrawable(icon); - AndroidUtils.setCompoundDrawablesWithIntrinsicBounds( - line2, gravityIcon, null, null, null); - } - String groupName = convertDisplayNameToGroupIdName(requireContext(), - menu.getTypeStr()); - if (menu.getMyApplication() != null){ - + if (icon != null) { + if (menu.getTypeIcon() instanceof GravityDrawable) { + GravityDrawable line2Icon = (GravityDrawable) menu.getTypeIcon(); + line2Icon.setBoundsFrom(icon); + line2.setCompoundDrawablesWithIntrinsicBounds(line2Icon, null, null, null); + } else { + line2.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); + } + line2.setCompoundDrawablePadding(AndroidUtils.dpToPx(requireContext(), 5f)); } line2.setCompoundDrawablePadding(dpToPx(5f)); } @@ -2211,7 +2208,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } public static boolean showInstance(final MapContextMenu menu, final MapActivity mapActivity, - final boolean centered) { + final boolean centered) { try { if (menu.getLatLon() == null || mapActivity == null || mapActivity.isActivityDestroyed()) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java index e318bc5aa0..a62535f210 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java @@ -14,6 +14,7 @@ import net.osmand.data.TransportStop; import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.base.PointImageDrawable; @@ -160,14 +161,19 @@ public class FavouritePointMenuController extends MenuController { @Override public Drawable getSecondLineTypeIcon() { - - FavouritesDbHelper helper = menu.getMyApplication().getFavorites(); - if (helper != null && helper.getGroup(groupName) != null) { - Drawable line2icon = helper.getColoredIconForGroup(groupName); - GravityDrawable line2GravityDrawable = - new GravityDrawable(line2icon); + if (this.getMapActivity() != null) { + OsmandApplication app = this.getMapActivity().getMyApplication(); + if (app != null) { + FavouritesDbHelper helper = app.getFavorites(); + String group = fav.getCategory(); + if (helper != null && helper.getGroup(group) != null) { + Drawable line2icon = helper.getColoredIconForGroup(group); + GravityDrawable gravityIcon = new GravityDrawable(line2icon); + gravityIcon.setBoundsFrom(line2icon); + return gravityIcon; + } + } } - return getIcon(R.drawable.ic_action_group_name_16, isLight() ? R.color.icon_color_default_light : R.color.ctx_menu_bottom_view_icon_dark); } @@ -209,6 +215,6 @@ public class FavouritePointMenuController extends MenuController { if (originObject instanceof Amenity) { AmenityMenuController.addTypeMenuItem((Amenity) originObject, builder); } - } + } } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index 299a23f95a..cdc766cab7 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -12,8 +12,6 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; -import net.osmand.data.FavouritePoint; -import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.util.Algorithms; @@ -21,8 +19,6 @@ import net.osmand.view.GravityDrawable; import java.util.List; -import static net.osmand.plus.FavouritesDbHelper.FavoriteGroup.convertDisplayNameToGroupIdName; - public class MultiSelectionArrayAdapter extends ArrayAdapter { private MapMultiSelectionMenu menu; @@ -98,22 +94,15 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter Date: Thu, 20 Aug 2020 12:58:01 +0300 Subject: [PATCH 46/52] unused import removed --- OsmAnd/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle index 48d2895f25..e33b1ca75f 100644 --- a/OsmAnd/build.gradle +++ b/OsmAnd/build.gradle @@ -542,7 +542,6 @@ dependencies { //implementation 'com.atilika.kuromoji:kuromoji-ipadic:0.9.0' implementation 'com.squareup.picasso:picasso:2.71828' implementation 'me.zhanghai.android.materialprogressbar:library:1.4.2' - implementation 'org.nanohttpd:nanohttpd:2.2.0' // JS core implementation group: 'org.mozilla', name: 'rhino', version: '1.7.9' // size restrictions From f3f7916fbccafbab4c0cfefe8d9172fb24eb73ca Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 20 Aug 2020 13:15:06 +0300 Subject: [PATCH 47/52] Minor fixes --- .../main/java/net/osmand/GPXUtilities.java | 2 +- .../plus/dialogs/MapLayerMenuListener.java | 2 +- .../net/osmand/plus/helpers/GpxUiHelper.java | 2 +- .../net/osmand/plus/helpers/ImportHelper.java | 4 +-- .../MeasurementToolFragment.java | 13 ++------ .../StartPlanRouteBottomSheet.java | 2 +- .../plus/myplaces/FavoritesActivity.java | 2 +- .../FollowTrackFragment.java | 31 ++++++++++--------- 8 files changed, 27 insertions(+), 31 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java index a1e257cef2..0001bfd9b2 100644 --- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java @@ -1290,7 +1290,7 @@ public class GPXUtilities { return pt; } - public TrkSegment getTrkSegment() { + public TrkSegment getNonEmptyTrkSegment() { for (GPXUtilities.Track t : tracks) { for (TrkSegment s : t.segments) { if (s.points.size() > 0) { diff --git a/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java b/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java index 053e2c7536..9234239040 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/MapLayerMenuListener.java @@ -47,7 +47,7 @@ final class MapLayerMenuListener extends OnRowItemClick { GpxSelectionHelper selectedGpxHelper = mapActivity.getMyApplication().getSelectedGpxHelper(); List selectedGpxFiles = selectedGpxHelper.getSelectedGPXFiles(); - List files = GpxUiHelper.getSelectedTrackNames(mapActivity.getMyApplication()); + List files = GpxUiHelper.getSelectedTrackPaths(mapActivity.getMyApplication()); if (selectedGpxFiles.isEmpty()) { Map fls = selectedGpxHelper.getSelectedGpxFilesBackUp(); for (Map.Entry f : fls.entrySet()) { diff --git a/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java b/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java index da701851d1..e6a7677232 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java @@ -810,7 +810,7 @@ public class GpxUiHelper { } } - public static List getSelectedTrackNames(OsmandApplication app) { + public static List getSelectedTrackPaths(OsmandApplication app) { List trackNames = new ArrayList<>(); for (SelectedGpxFile file : app.getSelectedGpxHelper().getSelectedGPXFiles()) { trackNames.add(file.getGpxFile().path); diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index 43f51e40c1..3d63266db9 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -117,7 +117,7 @@ public class ImportHelper { public interface OnGpxImportCompleteListener { void onImportComplete(boolean success); - void onSavingComplete(boolean success, GPXFile result); + void onSaveComplete(boolean success, GPXFile result); } public ImportHelper(final AppCompatActivity activity, final OsmandApplication app, final OsmandMapTileView mapView) { @@ -1094,7 +1094,7 @@ public class ImportHelper { boolean success = Algorithms.isEmpty(warning); if (gpxImportCompleteListener != null) { - gpxImportCompleteListener.onSavingComplete(success, result); + gpxImportCompleteListener.onSaveComplete(success, result); } if (success) { if (showInDetailsActivity) { diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 4c744dc74b..af0b256032 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -131,7 +131,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route private boolean progressBarVisible; private boolean pointsListOpened; private boolean planRouteMode = false; - private boolean attachToRoads; private Boolean saved; private boolean portrait; private boolean nightMode; @@ -159,10 +158,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route this.planRouteMode = planRouteMode; } - public void setAttachToRoads(boolean attachToRoads) { - this.attachToRoads = attachToRoads; - } - @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @@ -469,7 +464,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route if (editingCtx.isNewData() && planRouteMode) { StartPlanRouteBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), createStartPlanRouteListener()); - } else if (attachToRoads && !(editingCtx.isNewData() || editingCtx.hasRoutePoints() || editingCtx.isInSnapToRoadMode())) { + } else if (!(editingCtx.isNewData() || editingCtx.hasRoutePoints() || editingCtx.isInSnapToRoadMode())) { SnapTrackWarningBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), this); } } @@ -892,7 +887,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route public void addNewGpxData(GPXFile gpxFile) { QuadRect rect = gpxFile.getRect(); - TrkSegment segment = gpxFile.getTrkSegment(); + TrkSegment segment = gpxFile.getNonEmptyTrkSegment(); ActionType actionType = segment == null ? ActionType.ADD_ROUTE_POINTS : ActionType.EDIT_SEGMENT; NewGpxData newGpxData = new NewGpxData(gpxFile, rect, actionType, segment); @@ -1803,12 +1798,10 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route return showFragment(fragment, fragmentManager); } - public static boolean showInstance(FragmentManager fragmentManager, MeasurementEditingContext editingCtx, - boolean planRoute, boolean attachToRoads) { + public static boolean showInstance(FragmentManager fragmentManager, MeasurementEditingContext editingCtx, boolean planRoute) { MeasurementToolFragment fragment = new MeasurementToolFragment(); fragment.setEditingCtx(editingCtx); fragment.setPlanRouteMode(planRoute); - fragment.setAttachToRoads(attachToRoads); return showFragment(fragment, fragmentManager); } diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java b/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java index acd9077f17..de235b0dc5 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/StartPlanRouteBottomSheet.java @@ -172,7 +172,7 @@ public class StartPlanRouteBottomSheet extends MenuBottomSheetDialogFragment { } @Override - public void onSavingComplete(boolean success, GPXUtilities.GPXFile result) { + public void onSaveComplete(boolean success, GPXUtilities.GPXFile result) { } }); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java index f238464cba..f310802c44 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java @@ -136,7 +136,7 @@ public class FavoritesActivity extends TabActivity { } @Override - public void onSavingComplete(boolean success, GPXUtilities.GPXFile result) { + public void onSaveComplete(boolean success, GPXUtilities.GPXFile result) { } }); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java index 1084a664c8..1812fb3d2d 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/FollowTrackFragment.java @@ -21,8 +21,8 @@ import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; -import net.osmand.GPXUtilities; import net.osmand.GPXUtilities.GPXFile; +import net.osmand.GPXUtilities.TrkSegment; import net.osmand.IndexConstants; import net.osmand.PlatformUtil; import net.osmand.data.QuadRect; @@ -201,13 +201,13 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca boolean osmandRouter = mode.getRouteService() == RouteProvider.RouteService.OSMAND; if (rparams != null && osmandRouter) { // if (!routingHelper.isCurrentGPXRouteV2()) { - int textId = R.string.gpx_option_reverse_route; - String title = app.getString(textId); - LocalRoutingParameter parameter = new OtherLocalRoutingParameter(textId, title, rparams.isReverse()); + int textId = R.string.gpx_option_reverse_route; + String title = app.getString(textId); + LocalRoutingParameter parameter = new OtherLocalRoutingParameter(textId, title, rparams.isReverse()); - ReverseTrackCard reverseTrackCard = new ReverseTrackCard(mapActivity, parameter); - reverseTrackCard.setListener(this); - cardsContainer.addView(reverseTrackCard.build(mapActivity)); + ReverseTrackCard reverseTrackCard = new ReverseTrackCard(mapActivity, parameter); + reverseTrackCard.setListener(this); + cardsContainer.addView(reverseTrackCard.build(mapActivity)); // } if (!gpxFile.hasRtePt()) { AttachTrackToRoadsCard attachTrackCard = new AttachTrackToRoadsCard(mapActivity); @@ -226,7 +226,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR); - List selectedTrackNames = GpxUiHelper.getSelectedTrackNames(app); + List selectedTrackNames = GpxUiHelper.getSelectedTrackPaths(app); List list = GpxUiHelper.getSortedGPXFilesInfo(dir, selectedTrackNames, false); if (list.size() > 0) { String defaultCategory = app.getString(R.string.shared_string_all); @@ -346,12 +346,12 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca if (card instanceof ImportTrackCard) { importTrack(); } else if (card instanceof TrackEditCard) { - openPlanRoute(false); + openPlanRoute(true); close(); } else if (card instanceof SelectTrackCard) { updateSelectionMode(true); } else if (card instanceof AttachTrackToRoadsCard) { - openPlanRoute(true); + openPlanRoute(false); close(); } else if (card instanceof ReverseTrackCard || card instanceof NavigateTrackOptionsCard) { @@ -439,7 +439,7 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } @Override - public void onSavingComplete(boolean success, GPXFile result) { + public void onSaveComplete(boolean success, GPXFile result) { if (success) { selectTrackToFollow(result); updateSelectionMode(false); @@ -456,17 +456,20 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca } } - public void openPlanRoute(boolean attachToRoads) { + public void openPlanRoute(boolean useAppMode) { MapActivity mapActivity = getMapActivity(); if (mapActivity != null && gpxFile != null) { QuadRect rect = gpxFile.getRect(); - GPXUtilities.TrkSegment segment = gpxFile.getTrkSegment(); + TrkSegment segment = gpxFile.getNonEmptyTrkSegment(); ActionType actionType = segment == null ? ActionType.ADD_ROUTE_POINTS : ActionType.EDIT_SEGMENT; NewGpxData newGpxData = new NewGpxData(gpxFile, rect, actionType, segment); MeasurementEditingContext editingContext = new MeasurementEditingContext(); editingContext.setNewGpxData(newGpxData); - MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext, true, attachToRoads); + if (useAppMode) { + editingContext.setAppMode(app.getRoutingHelper().getAppMode()); + } + MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), editingContext, true); } } From 8846416896d2109ad5c2ddba92720b0df80f576a Mon Sep 17 00:00:00 2001 From: serg Date: Thu, 20 Aug 2020 13:25:28 +0300 Subject: [PATCH 48/52] Update strings.xml --- OsmAnd/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 3cd0f265a9..dba2d46e7a 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -2,7 +2,7 @@