From 306b304b95b714ba11b62c72c2cb0e927a55b9b5 Mon Sep 17 00:00:00 2001 From: madwasp79 Date: Tue, 26 Mar 2019 14:05:58 +0200 Subject: [PATCH 01/76] Application Profiles. Settings menu. --- OsmAnd/AndroidManifest.xml | 1848 +++++++++-------- .../res/drawable/fab_extended_blue_idle.xml | 6 + .../drawable/fab_extended_blue_pressed.xml | 6 + OsmAnd/res/drawable/fab_extended_drawable.xml | 5 + .../res/layout/activity_profile_settings.xml | 9 + OsmAnd/res/layout/profile_list_item.xml | 84 + OsmAnd/res/layout/profiles_list_fragment.xml | 45 + OsmAnd/res/values/sizes.xml | 5 + OsmAnd/res/values/strings.xml | 238 +-- OsmAnd/res/xml/settings_pref.xml | 1 + .../plus/activities/SettingsActivity.java | 7 + .../plus/profiles/ProfileMenuAdapter.java | 87 + .../profiles/SettingsProfileActivity.java | 90 + .../profiles/SettingsProfileFragment.java | 42 + 14 files changed, 1519 insertions(+), 954 deletions(-) create mode 100644 OsmAnd/res/drawable/fab_extended_blue_idle.xml create mode 100644 OsmAnd/res/drawable/fab_extended_blue_pressed.xml create mode 100644 OsmAnd/res/drawable/fab_extended_drawable.xml create mode 100644 OsmAnd/res/layout/activity_profile_settings.xml create mode 100644 OsmAnd/res/layout/profile_list_item.xml create mode 100644 OsmAnd/res/layout/profiles_list_fragment.xml create mode 100644 OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java create mode 100644 OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java create mode 100644 OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index d523ab0dc2..cc91fb289b 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -1,895 +1,1071 @@ + xmlns:tools="http://schemas.android.com/tools" + package="net.osmand.plus" + android:installLocation="auto"> - - - - - - - - - - - - - - + - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + + + + + + + + + - - + + - - - - - - - - - - - - - - + + + - + + + + - - - - - - - + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + https://stackoverflow.com/a/31028507/4654078 + --> - - - - - - - - - - - - - + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + - - - - - - - + + + + + + + + + + + - - - - - - + + - + + + + + + + + + + - - - - - - + + - - - - - + + + + + + + + + + + - - - - + + - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + --> + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + - - - - - - + - - - - - - + + + + + + + + - - + - - - + - - - - - - - - - - - - - + - + - - - + \ No newline at end of file diff --git a/OsmAnd/res/drawable/fab_extended_blue_idle.xml b/OsmAnd/res/drawable/fab_extended_blue_idle.xml new file mode 100644 index 0000000000..38d7efd49e --- /dev/null +++ b/OsmAnd/res/drawable/fab_extended_blue_idle.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OsmAnd/res/drawable/fab_extended_blue_pressed.xml b/OsmAnd/res/drawable/fab_extended_blue_pressed.xml new file mode 100644 index 0000000000..fecb5efccc --- /dev/null +++ b/OsmAnd/res/drawable/fab_extended_blue_pressed.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OsmAnd/res/drawable/fab_extended_drawable.xml b/OsmAnd/res/drawable/fab_extended_drawable.xml new file mode 100644 index 0000000000..9d90401dba --- /dev/null +++ b/OsmAnd/res/drawable/fab_extended_drawable.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/activity_profile_settings.xml b/OsmAnd/res/layout/activity_profile_settings.xml new file mode 100644 index 0000000000..0e850d0149 --- /dev/null +++ b/OsmAnd/res/layout/activity_profile_settings.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/profile_list_item.xml b/OsmAnd/res/layout/profile_list_item.xml new file mode 100644 index 0000000000..d193c7b16c --- /dev/null +++ b/OsmAnd/res/layout/profile_list_item.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/profiles_list_fragment.xml b/OsmAnd/res/layout/profiles_list_fragment.xml new file mode 100644 index 0000000000..29b549104f --- /dev/null +++ b/OsmAnd/res/layout/profiles_list_fragment.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 87d3b0a278..599e61f216 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -327,4 +327,9 @@ 0.01 1.2 + + 64dp + 20dp + 18dp + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index d07d048d45..cba13a36df 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -1,16 +1,18 @@ - + --> + Select the profiles to be visible in the app. + Application profiles Degrees Milliradians Angular measurement units @@ -133,7 +135,7 @@ %1$s / month %1$.2f %2$s / month Save %1$s. - Current subscription + Current subscription Renews monthly Renews quarterly Renews annually @@ -154,23 +156,23 @@ Node or way cannot be found. No search results?\nGive us feedback + • Fixed crash on startup that occurred on some devices\n\n + • New Markers feature: Display already traversed markers\n\n + • Search history now shows previously searched categories\n\n + • Fixed crash on startup that occurred with non-latin maps\n\n + • Improve rendering speed issues on Android 8.0 devices\n\n + • Support for polygon (non-amenity) objects editing\n\n + • Measure distance: Add \"Measure\" button to Actions in the context menu\n\n + + • Navigation: Fix progress bar, fast swapping of the start and end point of the route\n\n + • Map markers: Fix turning on/off groups, ability to hide markers from the map\n\n + • OSM Edit: Ability to edit tags for non-point objects and ways, fix missing comments on notes, backup of edits\n\n + • Improve Wikipedia and Wikivoyage parsing, updated files are already available\n\n + • Context menu: Fix transport shields color in the night mode, fix additional menu sizes\n\n + • Boat navigation: Support for waterway fairway\n\n + • Other bugfixes\n\n + Committing way… Increase search radius to %1$s \"%1$s\", as well as your location.

@@ -215,9 +217,9 @@ Paid app Paid plugin New Wikivoyage data available, update it to enjoy. - Download Wikivoyage travel guides to view articles about places around the world without a connection to the Internet. - Update available - Download file + Download Wikivoyage travel guides to view articles about places around the world without a connection to the Internet. + Update available + Download file The free worldwide travel guide anyone can edit. Travel guides are currently based on Wikivoyage. Test all features during open beta testing for free. Afterwards, travel guides will be available to subscribers of OsmAnd Unlimited and owners of OsmAnd+. You can and should edit any article on Wikivoyage. Share knowledge, experience, talent, and your attention @@ -277,16 +279,16 @@ Enter longitude Enter latitude Enter latitude and longitude - DD°MM′SS″ - DD.DDDDDD° - DD.DDDDD° - DD°MM.MMMM′ - DD°MM.MMM′ - E - W - S - N - Optional point name + DD°MM′SS″ + DD.DDDDDD° + DD.DDDDD° + DD°MM.MMMM′ + DD°MM.MMM′ + E + W + S + N + Optional point name Nearby routes within Within Type the filename. @@ -326,12 +328,12 @@ GPX file with coordinates and data of the selected notes. GPX file with coordinates and data of all notes. + • New: Support for global offline travel guides. Referenced locations are linked to the map. Initial data from Wikivoyage.\n\n + • Wikipedia: New look, active links, images now supported\n\n + • Open Track UI: Support for waypoint groups\n\n + • Map markers: Import of selected groups from GPX files, coordinate input, new look\n\n + • OsmAnd Live subscription now supports all OsmAnd features\n\n +
Modify the search query. Actions Marker @@ -384,12 +386,12 @@ Import as GPX file Import as Favorites Import file - Wrong input - Enter new name - Back - View - Waypoints added to map markers - Wrong format + Wrong input + Enter new name + Back + View + Waypoints added to map markers + Wrong format Road Show map Route calculated @@ -618,41 +620,41 @@ Show depth contours and points. Nautical depth contours + \u2022 New feature: Quick action button\n\n + \u2022 Improved touch screen gesture response (e.g. concurrent panning and zooming)\n\n + \u2022 New map fonts covering more locales\n\n + \u2022 Support TTS for regional language variants (and accents)\n\n + \u2022 Visibility enhancements in several map styles and Wikipedia\n\n + \u2022 Support Open Location Code (OLC)\n\n + \u2022 Display elevation, slope, and speed profile for recorded GPX tracks and calculated routes\n\n + \u2022 \"Driving style\" setting and logic improvements for bicycle routing\n\n + \u2022 Altitude data settings for bicycle routing\n\n + \u2022 Several other improvements and bug fixes\n\n + and more… + + \u2022 Mapillary plugin with street-level imagery\n\n + \u2022 Ruler widget for distance measurement\n\n + \u2022 GPX split intervals with detailed info about your track\n\n + \u2022 Other improvements and bug fixes\n\n + + \u2022 Completely reworked map markers with directional lines and route planning\n\n + \u2022 Measure distance tool offering snap to road feature and saving points as track\n\n + \u2022 OsmAnd Live: Bug fixes, fresh data on the server every 30 minutes, updates implemented into the navigation\n\n + + \u2022 Updated the context menu: Show when the POI opens / closes\n\n + \u2022 Transport menu: all available routes are now at the top\n\n + \u2022 Wikipedia: added the button to open the original article, updated the appearance of articles\n\n + \u2022 Route: added possibility to swap start and end points in one tap\n\n + \u2022 Notes: added sorting by type and date\n\n + \u2022 OSM edits: Show an icon and a name of the POI category, display completed actions\n\n + \u2022 New quick coordinate input screen for quick markers creation\n\n + \u2022 Detection of stop signs now considers driving direction\n\n + \u2022 New algorithm providing meaningful ascent/descent values for GPX tracks\n\n + \u2022 Terrain (ascent) aware hiking time (Naismith\'s rule)\n\n + Auto-split recordings after gap Start new segment after gap of 6 min, new track after gap of 2 h, or new file after a longer gap if the date has changed. Contour line density @@ -687,14 +689,14 @@ Record No data + \u2022 Tappable icons on the map\n\n + \u2022 Powerful POI filter search: Search, e.g. restaurants by cuisine, or campgrounds with specific facilities\n\n + \u2022 New Topo Map style for cyclists and hikers\n\n + \u2022 Enhanced trip recording\n\n + \u2022 Improved navigation notifications (Android Wear)\n\n + \u2022 Many other improvements and bug fixes\n\n + and more… + Contour lines color scheme Logging minimum speed Filter: No logging of points below this speed. @@ -763,14 +765,14 @@ Remove selected items from \'History\'? Show %1$s on the map + \u2022 New very powerful free text search\n\n + \u2022 Car audio system / speaker phone integration via Bluetooth\n\n + \u2022 Improved route guidance, voice prompting, and turn lane indication\n\n + \u2022 Improved transport layer with route rendering\n\n + \u2022 Added more locales and now support regional locales\n\n + \u2022 Many other improvements and bug fixes\n\n + and more… + Search %1$s away shared via OsmAnd Categories @@ -832,16 +834,16 @@ No waypoints found An anonymous user cannot:\n- Create groups;\n- Sync groups and devices with the server;\n- Manage groups and devices in a personal dashboard on the website. Report - + The app is now allowed to write to external storage, but needs to be started again to do so. + \u2022 OSM Live. Support map contributors and developers and get hourly map updates. \n\n + \u2022 Map markers. A new way to quickly select places on the map.\n\n + \u2022 More detailed OSM maps with country specific road shields and lots of new map features.\n\n + \u2022 Improved Look and Feel of Route preparation. \n\n + \u2022 Many improvements in the map context menu such as contextual address lookup.\n\n + and more… + Move ↑ Move ↓ Finish navigation @@ -965,16 +967,16 @@ Show on start Copied to clipboard + \u2022 New context-sensitive UI for tapping locations on the map and on other screens\n\n + \u2022 Map screen is now launched directly unless \'Show dashboard on app start\' is selected\n\n + \u2022 Configure which and how cards are displayed on the dashboard\n\n + \u2022 Bypass the dashboard if you like menu-based app control\n\n + \u2022 To download maps, regions can be directly selected by tapping on the world map\n\n + \u2022 POI Search now supports more specific queries\n\n + \u2022 Improved POI and OSM editing functionality\n\n + \u2022 Map data download structure and interface reworked\n\n + and more… + Save offline Modified OSM POI Deleted OSM POI diff --git a/OsmAnd/res/xml/settings_pref.xml b/OsmAnd/res/xml/settings_pref.xml index 6792b5b218..8f9e0c2fcc 100644 --- a/OsmAnd/res/xml/settings_pref.xml +++ b/OsmAnd/res/xml/settings_pref.xml @@ -1,6 +1,7 @@ + diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java index cc0c57a2c1..db7df49a1c 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java @@ -14,6 +14,7 @@ import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; import net.osmand.plus.Version; import net.osmand.plus.liveupdates.OsmLiveActivity; +import net.osmand.plus.profiles.SettingsProfileActivity; public class SettingsActivity extends SettingsBaseActivity { @@ -28,6 +29,7 @@ public class SettingsActivity extends SettingsBaseActivity { private Preference general; private Preference routing; private Preference subscription; + private Preference profiles; @Override @@ -40,6 +42,8 @@ public class SettingsActivity extends SettingsBaseActivity { general.setOnPreferenceClickListener(this); routing = (Preference) screen.findPreference("routing_settings"); routing.setOnPreferenceClickListener(this); + profiles = (Preference) screen.findPreference("application_profiles"); + profiles.setOnPreferenceClickListener(this); subscription = (Preference) screen.findPreference("subscription_settings"); subscription.setOnPreferenceClickListener(this); @@ -88,6 +92,9 @@ public class SettingsActivity extends SettingsBaseActivity { if (preference == general) { startActivity(new Intent(this, SettingsGeneralActivity.class)); return true; + } else if (preference == profiles){ + startActivity(new Intent(this, SettingsProfileActivity.class)); + return true; } else if (preference == routing) { startActivity(new Intent(this, SettingsNavigationActivity.class)); return true; diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java new file mode 100644 index 0000000000..9a1a3c5705 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java @@ -0,0 +1,87 @@ +package net.osmand.plus.profiles; + +import android.graphics.drawable.Drawable; +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.SwitchCompat; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; +import java.util.List; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.profiles.ProfileMenuAdapter.ProfileViewHolder; +import net.osmand.plus.profiles.SettingsProfileActivity.ProfileItem; + +public class ProfileMenuAdapter extends RecyclerView.Adapter { + + private List items; + OsmandApplication app; + + public ProfileMenuAdapter(List items, OsmandApplication app) { + this.items = items; + this.app = app; + } + + public List getItems() { + return items; + } + + public void addItem(ProfileItem profileItem) { + items.add(profileItem); + notifyDataSetChanged(); + } + + @NonNull + @Override + public ProfileViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.profile_list_item, parent, false); + return new ProfileViewHolder(itemView); + } + + @Override + public void onBindViewHolder(@NonNull ProfileViewHolder holder, int position) { + ProfileItem item = items.get(position); + holder.title.setText(item.getTitle()); + holder.descr.setText(item.getDescr()); + Drawable drawable = app.getUIUtilities().getThemedIcon(item.getIconRes()); + holder.icon.setImageDrawable(drawable); + holder.aSwitch.setChecked(item.getState()); + holder.aSwitch.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + //todo change profile state; + } + }); + holder.profileOptions.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + //todo open profile settings; + } + }); + } + + @Override + public int getItemCount() { + return items.size(); + } + + class ProfileViewHolder extends RecyclerView.ViewHolder { + TextView title, descr; + SwitchCompat aSwitch; + ImageView icon, profileOptions; + + ProfileViewHolder(View itemView) { + super(itemView); + title = itemView.findViewById(R.id.profile_title); + descr = itemView.findViewById(R.id.profile_descr); + aSwitch = itemView.findViewById(R.id.profile_switch); + icon = itemView.findViewById(R.id.profile_icon); + profileOptions = itemView.findViewById(R.id.profile_settings); + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java new file mode 100644 index 0000000000..0ed2c31532 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java @@ -0,0 +1,90 @@ +package net.osmand.plus.profiles; + +import android.os.Bundle; +import android.view.MenuItem; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.activities.OsmandActionBarActivity; + +public class SettingsProfileActivity extends OsmandActionBarActivity { + + private OsmandApplication app; + + + + @Override + public void onCreate(Bundle savedInstanceState) { + app = getMyApplication(); + app.applyTheme(this); + super.onCreate(savedInstanceState); + setContentView(R.layout.single_fragment_layout); + if (savedInstanceState == null) { + SettingsProfileFragment profileFragment = new SettingsProfileFragment(); + profileFragment.setArguments(getIntent().getExtras()); + getSupportFragmentManager().beginTransaction().add(android.R.id.content, profileFragment).commit(); + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int itemId = item.getItemId(); + switch (itemId) { + case android.R.id.home: + finish(); + return true; + + } + return false; + } + + @Override + protected void onResume() { + super.onResume(); + } + + public class ProfileItem { + private int iconRes; + private String title; + private String descr; + private boolean state; + + public ProfileItem(int iconRes, String title, String descr, boolean state) { + this.iconRes = iconRes; + this.title = title; + this.descr = descr; + this.state = state; + } + + public int getIconRes() { + return iconRes; + } + + public void setIconRes(int iconRes) { + this.iconRes = iconRes; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescr() { + return descr; + } + + public void setDescr(String descr) { + this.descr = descr; + } + + public boolean getState() { + return state; + } + + public void setState(boolean state) { + this.state = state; + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java new file mode 100644 index 0000000000..65f8dbfe8c --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java @@ -0,0 +1,42 @@ +package net.osmand.plus.profiles; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v7.widget.AppCompatButton; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import net.osmand.PlatformUtil; +import net.osmand.plus.R; +import net.osmand.plus.base.BaseOsmAndFragment; +import org.apache.commons.logging.Log; + +public class SettingsProfileFragment extends BaseOsmAndFragment { + + private static final Log LOG = PlatformUtil.getLog(SettingsProfileFragment.class); + + private ProfileMenuAdapter adapter; + private RecyclerView recyclerView; + private AppCompatButton btn; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.profiles_list_fragment, container, false); + + recyclerView = view.findViewById(R.id.profiles_list); + btn = view.findViewById(R.id.add_profile_btn); + btn.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + //todo add new profile; + } + }); + + return view; + } +} From b7e080ac1c3625f913f9f8b165b39fdc3a8201b1 Mon Sep 17 00:00:00 2001 From: madwasp79 Date: Tue, 26 Mar 2019 16:28:14 +0200 Subject: [PATCH 02/76] Application Profiles. Settings menu. Almost done. --- .../res/drawable/fab_extended_blue_idle.xml | 6 -- .../drawable/fab_extended_blue_pressed.xml | 6 -- OsmAnd/res/drawable/fab_extended_drawable.xml | 4 +- .../res/layout/activity_profile_settings.xml | 9 -- OsmAnd/res/layout/profile_list_item.xml | 10 +- OsmAnd/res/layout/profiles_list_fragment.xml | 33 +++++-- .../plus/profiles/ProfileMenuAdapter.java | 13 ++- .../profiles/SettingsProfileActivity.java | 44 --------- .../profiles/SettingsProfileFragment.java | 95 ++++++++++++++++++- README.md | 2 +- 10 files changed, 138 insertions(+), 84 deletions(-) delete mode 100644 OsmAnd/res/drawable/fab_extended_blue_idle.xml delete mode 100644 OsmAnd/res/drawable/fab_extended_blue_pressed.xml delete mode 100644 OsmAnd/res/layout/activity_profile_settings.xml diff --git a/OsmAnd/res/drawable/fab_extended_blue_idle.xml b/OsmAnd/res/drawable/fab_extended_blue_idle.xml deleted file mode 100644 index 38d7efd49e..0000000000 --- a/OsmAnd/res/drawable/fab_extended_blue_idle.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OsmAnd/res/drawable/fab_extended_blue_pressed.xml b/OsmAnd/res/drawable/fab_extended_blue_pressed.xml deleted file mode 100644 index fecb5efccc..0000000000 --- a/OsmAnd/res/drawable/fab_extended_blue_pressed.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OsmAnd/res/drawable/fab_extended_drawable.xml b/OsmAnd/res/drawable/fab_extended_drawable.xml index 9d90401dba..b4e52993b4 100644 --- a/OsmAnd/res/drawable/fab_extended_drawable.xml +++ b/OsmAnd/res/drawable/fab_extended_drawable.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/OsmAnd/res/layout/activity_profile_settings.xml b/OsmAnd/res/layout/activity_profile_settings.xml deleted file mode 100644 index 0e850d0149..0000000000 --- a/OsmAnd/res/layout/activity_profile_settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OsmAnd/res/layout/profile_list_item.xml b/OsmAnd/res/layout/profile_list_item.xml index d193c7b16c..b6da74edbb 100644 --- a/OsmAnd/res/layout/profile_list_item.xml +++ b/OsmAnd/res/layout/profile_list_item.xml @@ -32,7 +32,7 @@ android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" - android:layout_weight="4"> + android:layout_weight="5"> - + android:orientation="horizontal" + android:gravity="center_vertical"> + + + + + + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java index 9a1a3c5705..6c188b2c24 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java @@ -14,7 +14,8 @@ import java.util.List; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.profiles.ProfileMenuAdapter.ProfileViewHolder; -import net.osmand.plus.profiles.SettingsProfileActivity.ProfileItem; +import net.osmand.plus.profiles.SettingsProfileFragment.ProfileItem; + public class ProfileMenuAdapter extends RecyclerView.Adapter { @@ -47,10 +48,12 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter public void onBindViewHolder(@NonNull ProfileViewHolder holder, int position) { ProfileItem item = items.get(position); holder.title.setText(item.getTitle()); - holder.descr.setText(item.getDescr()); + holder.title.setTextColor(app.getResources().getColor(isNightMode(app) ? R.color.main_font_dark : R.color.main_font_light)); + holder.descr.setText(String.format("Type: %s", item.getDescr())); Drawable drawable = app.getUIUtilities().getThemedIcon(item.getIconRes()); holder.icon.setImageDrawable(drawable); - holder.aSwitch.setChecked(item.getState()); + holder.icon.setImageDrawable(app.getUIUtilities().getIcon(item.getIconRes(), isNightMode(app) ? R.color.active_buttons_and_links_dark : R.color.active_buttons_and_links_light)); + holder.aSwitch.setChecked(item.isSelected()); holder.aSwitch.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -70,6 +73,10 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter return items.size(); } + private static boolean isNightMode(OsmandApplication ctx) { + return !ctx.getSettings().isLightContent(); + } + class ProfileViewHolder extends RecyclerView.ViewHolder { TextView title, descr; SwitchCompat aSwitch; diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java index 0ed2c31532..4417572672 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java @@ -42,49 +42,5 @@ public class SettingsProfileActivity extends OsmandActionBarActivity { super.onResume(); } - public class ProfileItem { - private int iconRes; - private String title; - private String descr; - private boolean state; - public ProfileItem(int iconRes, String title, String descr, boolean state) { - this.iconRes = iconRes; - this.title = title; - this.descr = descr; - this.state = state; - } - - public int getIconRes() { - return iconRes; - } - - public void setIconRes(int iconRes) { - this.iconRes = iconRes; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDescr() { - return descr; - } - - public void setDescr(String descr) { - this.descr = descr; - } - - public boolean getState() { - return state; - } - - public void setState(boolean state) { - this.state = state; - } - } } diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java index 65f8dbfe8c..949bb03ab4 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java @@ -3,13 +3,17 @@ package net.osmand.plus.profiles; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatButton; +import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.LinearLayout; +import java.util.ArrayList; +import java.util.List; import net.osmand.PlatformUtil; +import net.osmand.plus.ApplicationMode; import net.osmand.plus.R; import net.osmand.plus.base.BaseOsmAndFragment; import org.apache.commons.logging.Log; @@ -20,14 +24,40 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { private ProfileMenuAdapter adapter; private RecyclerView recyclerView; - private AppCompatButton btn; + private LinearLayout btn; + + private List allDefaultModes; + private List selectedDefaultModes; + private List profilesList; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + profilesList = new ArrayList<>(); + allDefaultModes = ApplicationMode.allPossibleValues(); + allDefaultModes.remove(ApplicationMode.DEFAULT); + selectedDefaultModes = new ArrayList<>(ApplicationMode.values(getMyApplication())); + selectedDefaultModes.remove(ApplicationMode.DEFAULT); + for (ApplicationMode am : allDefaultModes) { + ProfileItem profileItem = new ProfileItem( + am.getSmallIconDark(), + am.toHumanStringCtx(getMyApplication().getApplicationContext()), + am.toHumanStringCtx(getMyApplication().getApplicationContext()), + true); + if (selectedDefaultModes.contains(am)) { + profileItem.setSelected(true); + } + profilesList.add(profileItem); + } + + + } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.profiles_list_fragment, container, false); - recyclerView = view.findViewById(R.id.profiles_list); btn = view.findViewById(R.id.add_profile_btn); btn.setOnClickListener(new OnClickListener() { @@ -36,7 +66,66 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { //todo add new profile; } }); + adapter = new ProfileMenuAdapter(profilesList, getMyApplication()); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + recyclerView.setAdapter(adapter); + return view; } + + public class ProfileItem { + private int iconRes; + private String title; + private String descr; + private boolean isSelected; + private boolean isAppDefault; + + public ProfileItem(int iconRes, String title, String descr, boolean isAppDefault) { + this.iconRes = iconRes; + this.title = title; + this.descr = descr; + this.isAppDefault = isAppDefault; + } + + public int getIconRes() { + return iconRes; + } + + public void setIconRes(int iconRes) { + this.iconRes = iconRes; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescr() { + return descr; + } + + public void setDescr(String descr) { + this.descr = descr; + } + + public boolean isSelected() { + return isSelected; + } + + public void setSelected(boolean isSelected) { + this.isSelected = isSelected; + } + + public boolean isAppDefault() { + return isAppDefault; + } + + public void setAppDefault(boolean appDefault) { + isAppDefault = appDefault; + } + } } diff --git a/README.md b/README.md index 903f32387d..8dd1a35992 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Functionality * Add POIs and directly upload them to OSM (or later if offline) * Optional trip recording also in background mode (while device is in sleep mode) -OsmAnd is open source and actively being developed. Everyone can contribute to the application by reporting bugs, [improving translations](https://hosted.weblate.org/projects/osmand/), or coding new features. The project is in a lively state of continuous improvement by all these forms of developer and user interaction. The project progress also relies on financial contributions to fund the development, coding, and testing of new functionality. By buying OsmAnd+ and subscribing to OsmAnd Live you help the application to be even more awesome! It is also possible to make a general donation, see http://osmand.net/help-online#buy_app. +OsmAnd is open source and actively being developed. Everyone can contribute to the application by reporting bugs, [improving translations](https://hosted.weblate.org/projects/osmand/), or coding new features. The project is in a lively selected of continuous improvement by all these forms of developer and user interaction. The project progress also relies on financial contributions to fund the development, coding, and testing of new functionality. By buying OsmAnd+ and subscribing to OsmAnd Live you help the application to be even more awesome! It is also possible to make a general donation, see http://osmand.net/help-online#buy_app. #### Approximate map coverage and quality: From 6bd8fda90a0624d065b0d0ec4b97ee4a4425f23f Mon Sep 17 00:00:00 2001 From: madwasp79 Date: Tue, 26 Mar 2019 17:50:04 +0200 Subject: [PATCH 03/76] Application Profiles. Settings menu. Done. --- OsmAnd/AndroidManifest.xml | 7 +- OsmAnd/build.gradle | 625 +- OsmAnd/res/layout/profiles_list_fragment.xml | 3 +- OsmAnd/res/values/strings.xml | 5538 ++++++++--------- .../SettingsDevelopmentActivity.java | 2 + .../plus/profiles/ProfileMenuAdapter.java | 27 +- .../profiles/SettingsProfileFragment.java | 42 +- 7 files changed, 3150 insertions(+), 3094 deletions(-) diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index cc91fb289b..6cc4201970 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -91,6 +91,7 @@ android:restoreAnyVersion="true" android:theme="@style/OsmandDarkTheme"> + @@ -1060,12 +1061,10 @@ - + android:name=".profiles.SettingsProfileActivity"> - \ No newline at end of file diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle index 9d5eb59fed..5bc653c285 100644 --- a/OsmAnd/build.gradle +++ b/OsmAnd/build.gradle @@ -19,162 +19,162 @@ apply plugin: 'com.android.application' // Configure eclipse-aar plugin def analytics = (!System.getenv("APP_FEATURES") || System.getenv("APP_FEATURES").contains("+play_market")) && - getGradle().getStartParameter().getTaskRequests().toString().contains("Free") + getGradle().getStartParameter().getTaskRequests().toString().contains("Free") task printc { - configurations.each { if(it.isCanBeResolved()) println it.name } + configurations.each { if (it.isCanBeResolved()) println it.name } } android { - compileSdkVersion 27 - buildToolsVersion "27.0.3" + compileSdkVersion 27 + buildToolsVersion "27.0.3" - signingConfigs { - development { - storeFile file("../keystores/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } + signingConfigs { + development { + storeFile file("../keystores/debug.keystore") + storePassword "android" + keyAlias "androiddebugkey" + keyPassword "android" + } - publishing { - storeFile file("/var/lib/jenkins/osmand_key") - storePassword System.getenv("OSMAND_APK_PASSWORD") - keyAlias "osmand" - keyPassword System.getenv("OSMAND_APK_PASSWORD") - } - } + publishing { + storeFile file("/var/lib/jenkins/osmand_key") + storePassword System.getenv("OSMAND_APK_PASSWORD") + keyAlias "osmand" + keyPassword System.getenv("OSMAND_APK_PASSWORD") + } + } - defaultConfig { - minSdkVersion System.getenv("MIN_SDK_VERSION") ? System.getenv("MIN_SDK_VERSION").toInteger() : - (analytics ? 15 : 14) - targetSdkVersion 26 - versionCode 330 - versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode - multiDexEnabled true - versionName "3.3.0" - versionName System.getenv("APK_VERSION")? System.getenv("APK_VERSION").toString(): versionName - versionName System.getenv("APK_VERSION_SUFFIX")? versionName + System.getenv("APK_VERSION_SUFFIX").toString(): versionName - } + defaultConfig { + minSdkVersion System.getenv("MIN_SDK_VERSION") ? System.getenv("MIN_SDK_VERSION").toInteger() : + (analytics ? 15 : 14) + targetSdkVersion 26 + versionCode 330 + versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode + multiDexEnabled true + versionName "3.3.0" + versionName System.getenv("APK_VERSION") ? System.getenv("APK_VERSION").toString() : versionName + versionName System.getenv("APK_VERSION_SUFFIX") ? versionName + System.getenv("APK_VERSION_SUFFIX").toString() : versionName + } - lintOptions { - lintConfig file("lint.xml") - abortOnError false - warningsAsErrors false - } + lintOptions { + lintConfig file("lint.xml") + abortOnError false + warningsAsErrors false + } - bundle { - language { - // Specifies that the app bundle should not support - // configuration APKs for language resources. These - // resources are instead packaged with each base and - // dynamic feature APK. - enableSplit = false - } - } + bundle { + language { + // Specifies that the app bundle should not support + // configuration APKs for language resources. These + // resources are instead packaged with each base and + // dynamic feature APK. + enableSplit = false + } + } - // related to kuromoji - //packagingOptions { - // exclude '/META-INF/CONTRIBUTORS.md' - // exclude '/META-INF/LICENSE.md' - // exclude '/META-INF/NOTICE.md' - //} + // related to kuromoji + //packagingOptions { + // exclude '/META-INF/CONTRIBUTORS.md' + // exclude '/META-INF/LICENSE.md' + // exclude '/META-INF/NOTICE.md' + //} - // This is from OsmAndCore_android.aar - for some reason it's not inherited - aaptOptions { - // Don't compress any embedded resources - noCompress "qz" - cruncherEnabled = false - } + // This is from OsmAndCore_android.aar - for some reason it's not inherited + aaptOptions { + // Don't compress any embedded resources + noCompress "qz" + cruncherEnabled = false + } - dexOptions { - javaMaxHeapSize "4g" - } + dexOptions { + javaMaxHeapSize "4g" + } - sourceSets { - main { - manifest.srcFile "AndroidManifest.xml" - jni.srcDirs = [] - jniLibs.srcDirs = ["libs"] - aidl.srcDirs = ["src"] - java.srcDirs = ["src"] - resources.srcDirs = ["src"] - renderscript.srcDirs = ["src"] - res.srcDirs = ["res"] - assets.srcDirs = ["assets"] - } - debug { - manifest.srcFile "AndroidManifest-debug.xml" - } - free { - manifest.srcFile "AndroidManifest-free.xml" - } - freedev { - manifest.srcFile "AndroidManifest-freedev.xml" - } - freecustom { - manifest.srcFile "AndroidManifest-freecustom.xml" - } + sourceSets { + main { + manifest.srcFile "AndroidManifest.xml" + jni.srcDirs = [] + jniLibs.srcDirs = ["libs"] + aidl.srcDirs = ["src"] + java.srcDirs = ["src"] + resources.srcDirs = ["src"] + renderscript.srcDirs = ["src"] + res.srcDirs = ["res"] + assets.srcDirs = ["assets"] + } + debug { + manifest.srcFile "AndroidManifest-debug.xml" + } + free { + manifest.srcFile "AndroidManifest-free.xml" + } + freedev { + manifest.srcFile "AndroidManifest-freedev.xml" + } + freecustom { + manifest.srcFile "AndroidManifest-freecustom.xml" + } - legacy { - jniLibs.srcDirs = ["libc++"] - } - } + legacy { + jniLibs.srcDirs = ["libc++"] + } + } - flavorDimensions "version", "coreversion", "abi" - productFlavors { - // ABI - armv7 { - dimension "abi" - ndk { - abiFilter 'armeabi-v7a' - } - } - arm64 { - dimension "abi" - ndk { - abiFilter 'arm64-v8a' - } - } - x86 { - dimension "abi" - ndk { - abiFilter 'x86' - } - } - fat { - dimension "abi" - ndk { - abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a' - } - } + flavorDimensions "version", "coreversion", "abi" + productFlavors { + // ABI + armv7 { + dimension "abi" + ndk { + abiFilter 'armeabi-v7a' + } + } + arm64 { + dimension "abi" + ndk { + abiFilter 'arm64-v8a' + } + } + x86 { + dimension "abi" + ndk { + abiFilter 'x86' + } + } + fat { + dimension "abi" + ndk { + abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a' + } + } - // Version - freedev { - dimension "version" - applicationId "net.osmand.dev" - // resConfig "en" - } - free { - dimension "version" - applicationId "net.osmand" - } - freeres { - dimension "version" - applicationId "net.osmand" - resConfig "en" - } - freecustom { - dimension "version" - applicationId "net.osmand.freecustom" - } - full { - dimension "version" - applicationId "net.osmand.plus" - } + // Version + freedev { + dimension "version" + applicationId "net.osmand.dev" + // resConfig "en" + } + free { + dimension "version" + applicationId "net.osmand" + } + freeres { + dimension "version" + applicationId "net.osmand" + resConfig "en" + } + freecustom { + dimension "version" + applicationId "net.osmand.freecustom" + } + full { + dimension "version" + applicationId "net.osmand.plus" + } fulldev { dimension "version" applicationId "net.osmand.plus" @@ -182,260 +182,261 @@ android { //resConfigs "xxhdpi", "nodpi" } - // CoreVersion - legacy { - dimension "coreversion" - } + // CoreVersion + legacy { + dimension "coreversion" + } - qtcore { - dimension "coreversion" - } + qtcore { + dimension "coreversion" + } - qtcoredebug { - dimension "coreversion" - } - } + qtcoredebug { + dimension "coreversion" + } + } - buildTypes { - debug { - signingConfig signingConfigs.development - } - release { - signingConfig signingConfigs.publishing - } - } + buildTypes { + debug { + signingConfig signingConfigs.development + } + release { + signingConfig signingConfigs.publishing + } + } } def replaceNoTranslate(line) { - if (line.contains("\"app_name\"") && System.getenv("TARGET_APP_NAME")) { - return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<") - } - if (line.contains("\"app_name_free\"") && System.getenv("TARGET_APP_NAME")) { - return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<") - } - if (line.contains("\"app_edition\"") && System.getenv("APP_EDITION")) { - return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_EDITION") + "<") - } - if (line.contains("\"versionFeatures\"") && System.getenv("APP_FEATURES")) { - return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_FEATURES") + "<") - } - return line; + if (line.contains("\"app_name\"") && System.getenv("TARGET_APP_NAME")) { + return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<") + } + if (line.contains("\"app_name_free\"") && System.getenv("TARGET_APP_NAME")) { + return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<") + } + if (line.contains("\"app_edition\"") && System.getenv("APP_EDITION")) { + return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_EDITION") + "<") + } + if (line.contains("\"versionFeatures\"") && System.getenv("APP_FEATURES")) { + return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_FEATURES") + "<") + } + return line; } task updateNoTranslate(type: Copy) { - from('.') { - include 'no_translate.xml' - filter { - line -> replaceNoTranslate(line); - } - } - into 'res/values/' + from('.') { + include 'no_translate.xml' + filter { + line -> replaceNoTranslate(line); + } + } + into 'res/values/' } task validateTranslate { - println "Validating translations" + println "Validating translations" - file("res").eachFileRecurse groovy.io.FileType.FILES, { - if (it.name == "strings.xml" || it.name == "phrases.xml") { - it.eachLine { line -> - if (line.contains("\$ s") || line.contains("\$ d") || line.contains("\$ f") || - line.contains(" \$s") || line.contains(" \$d") || line.contains(" \$f") || - line.contains("1\$ ") || line.contains("2\$ ") || line.contains("3\$ ") || - (line.contains("% \$") || line.contains("% 1") || - line.contains("% 2") || line.contains("% 3"))) { - throw new GradleException("Incorrect translation " + it.getAbsolutePath() + " " + line); - } - } - } - } + file("res").eachFileRecurse groovy.io.FileType.FILES, { + if (it.name == "strings.xml" || it.name == "phrases.xml") { + it.eachLine { line -> + if (line.contains("\$ s") || line.contains("\$ d") || line.contains("\$ f") || + line.contains(" \$s") || line.contains(" \$d") || line.contains(" \$f") || + line.contains("1\$ ") || line.contains("2\$ ") || line.contains("3\$ ") || + (line.contains("% \$") || line.contains("% 1") || + line.contains("% 2") || line.contains("% 3"))) { + throw new GradleException("Incorrect translation " + it.getAbsolutePath() + " " + line); + } + } + } + } } task downloadWorldMiniBasemap { - doLast { - ant.get(src: 'http://builder.osmand.net/basemap/World_basemap_mini_2.obf', dest: 'assets/World_basemap_mini.obf', skipexisting: 'true') - } + doLast { + ant.get(src: 'http://builder.osmand.net/basemap/World_basemap_mini_2.obf', dest: 'assets/World_basemap_mini.obf', skipexisting: 'true') + } } task collectVoiceAssets(type: Sync) { - from "../../resources/voice" - into "assets/voice" - include "**/*.js" + from "../../resources/voice" + into "assets/voice" + include "**/*.js" } task cleanNoTranslate(type: Delete) { - delete('res/values/no_translate.xml') + delete('res/values/no_translate.xml') } task collectFonts(type: Copy) { - from "../../resources/fonts" - from "../../resources/rendering_styles/fonts" + from "../../resources/fonts" + from "../../resources/rendering_styles/fonts" // from "../../resources/rendering_styles/fonts/OpenSans" - into "assets/fonts" - include "*.ttf" + into "assets/fonts" + include "*.ttf" } task collectHelpContentsStyle(type: Copy) { - from("../../help/website/help/") { - include "style.css" - } - into "assets" + from("../../help/website/help/") { + include "style.css" + } + into "assets" } task collectHelpContentsAssets(type: Copy) { - from("../../help/website/help") { - include "about.html" - include "changes.html" - include "faq.html" - include "technical-articles.html" - include "map-legend.html" - } - from("../../help/website/feature_articles") { - include "*.html" - } + from("../../help/website/help") { + include "about.html" + include "changes.html" + include "faq.html" + include "technical-articles.html" + include "map-legend.html" + } + from("../../help/website/feature_articles") { + include "*.html" + } - into "assets/feature_articles" + into "assets/feature_articles" } task copyStyleIcons(type: Copy) { - from "../../resources/rendering_styles/style-icons/" - into "res/" - include "**/*.png" + from "../../resources/rendering_styles/style-icons/" + into "res/" + include "**/*.png" } task copyWidgetIcons(type: Exec) { - if (!Os.isFamily(Os.FAMILY_WINDOWS)) { - commandLine 'sh', file("./copy_widget_icons.sh").getAbsolutePath() - } + if (!Os.isFamily(Os.FAMILY_WINDOWS)) { + commandLine 'sh', file("./copy_widget_icons.sh").getAbsolutePath() + } } task collectExternalResources { - dependsOn collectVoiceAssets, - collectFonts, - collectHelpContentsAssets, - collectHelpContentsStyle, - copyStyleIcons, - updateNoTranslate, - validateTranslate, - copyWidgetIcons, - downloadWorldMiniBasemap + dependsOn collectVoiceAssets, + collectFonts, + collectHelpContentsAssets, + collectHelpContentsStyle, + copyStyleIcons, + updateNoTranslate, + validateTranslate, + copyWidgetIcons, + downloadWorldMiniBasemap } // Legacy core build import org.apache.tools.ant.taskdefs.condition.Os task buildOsmAndCore(type: Exec) { - Gradle gradle = getGradle() - String tskReqStr = gradle.getStartParameter().getTaskRequests().toString().toLowerCase() - String flavour = ""; - if(!tskReqStr.contains("fat")) { - if(tskReqStr.contains("arm64")) { - flavour = flavour.length() == 0 ? "ARM64_ONLY" : "" - } - if(tskReqStr.contains("armv7")) { - flavour = flavour.length() == 0 ? "ARMV7_ONLY" : "" - } - if(tskReqStr.contains("x86")) { - flavour = flavour.length() == 0 ? "X86_ONLY" : "" - } - } - - description "Build Legacy OsmAndCore" + Gradle gradle = getGradle() + String tskReqStr = gradle.getStartParameter().getTaskRequests().toString().toLowerCase() + String flavour = ""; + if (!tskReqStr.contains("fat")) { + if (tskReqStr.contains("arm64")) { + flavour = flavour.length() == 0 ? "ARM64_ONLY" : "" + } + if (tskReqStr.contains("armv7")) { + flavour = flavour.length() == 0 ? "ARMV7_ONLY" : "" + } + if (tskReqStr.contains("x86")) { + flavour = flavour.length() == 0 ? "X86_ONLY" : "" + } + } - if (!Os.isFamily(Os.FAMILY_WINDOWS)) { - if(flavour.length() > 0) { - environment "$flavour", "1" - } - commandLine "bash", file("./old-ndk-build.sh").getAbsolutePath() - } else { - commandLine "cmd", "/c", "echo", "Not supported" - } + description "Build Legacy OsmAndCore" + + if (!Os.isFamily(Os.FAMILY_WINDOWS)) { + if (flavour.length() > 0) { + environment "$flavour", "1" + } + commandLine "bash", file("./old-ndk-build.sh").getAbsolutePath() + } else { + commandLine "cmd", "/c", "echo", "Not supported" + } } task cleanupDuplicatesInCore() { - dependsOn buildOsmAndCore - // doesn't work for legacy debug builds - doLast { - file("libc++/armeabi-v7a").mkdirs() - file("libs/armeabi-v7a/libc++_shared.so").renameTo(file("libc++/armeabi-v7a/libc++_shared.so")) - file("libc++/arm64-v8a").mkdirs() - file("libs/arm64-v8a/libc++_shared.so").renameTo(file("libc++/arm64-v8a/libc++_shared.so")) - file("libc++/x86").mkdirs() - file("libs/x86/libc++_shared.so").renameTo(file("libc++/x86/libc++_shared.so")) - } + dependsOn buildOsmAndCore + // doesn't work for legacy debug builds + doLast { + file("libc++/armeabi-v7a").mkdirs() + file("libs/armeabi-v7a/libc++_shared.so").renameTo(file("libc++/armeabi-v7a/libc++_shared.so")) + file("libc++/arm64-v8a").mkdirs() + file("libs/arm64-v8a/libc++_shared.so").renameTo(file("libc++/arm64-v8a/libc++_shared.so")) + file("libc++/x86").mkdirs() + file("libs/x86/libc++_shared.so").renameTo(file("libc++/x86/libc++_shared.so")) + } } afterEvaluate { - android.applicationVariants.all { variant -> - variant.javaCompiler.dependsOn(collectExternalResources, buildOsmAndCore, cleanupDuplicatesInCore) - } + android.applicationVariants.all { variant -> + variant.javaCompiler.dependsOn(collectExternalResources, buildOsmAndCore, cleanupDuplicatesInCore) + } } task appStart(type: Exec) { - // linux - commandLine 'adb', 'shell', 'am', 'start', '-n', 'net.osmand.plus/net.osmand.plus.activities.MapActivity' - // windows - // commandLine 'cmd', '/c', 'adb', 'shell', 'am', 'start', '-n', 'net.osmand.plus/net.osmand.plus.activities.MapActivity' + // linux + commandLine 'adb', 'shell', 'am', 'start', '-n', 'net.osmand.plus/net.osmand.plus.activities.MapActivity' + // windows + // commandLine 'cmd', '/c', 'adb', 'shell', 'am', 'start', '-n', 'net.osmand.plus/net.osmand.plus.activities.MapActivity' } project.logger.warn("Analytics enabled for free version: $analytics") dependencies { - implementation project(path: ':OsmAnd-java', configuration: 'android') - if (analytics) { - // Analytics is totally removed to stay free from 3rd party collecting users data + implementation project(path: ':OsmAnd-java', configuration: 'android') + if (analytics) { + // Analytics is totally removed to stay free from 3rd party collecting users data // implementation 'com.google.firebase:firebase-core:12.0.1' // implementation 'com.google.firebase:firebase-messaging:12.0.1' // implementation 'com.google.firebase:firebase-iid:12.0.1' // implementation 'com.google.firebase:firebase-config:12.0.1' // implementation 'com.facebook.android:facebook-android-sdk:4.31.0' - } - implementation 'com.android.support:multidex:1.0.1' - implementation 'com.android.support:gridlayout-v7:27.1.1' - implementation 'com.android.support:cardview-v7:27.1.1' - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:design:27.1.1' - implementation 'com.android.support:customtabs:27.1.1' - implementation fileTree(include: ['gnu-trove-osmand.jar', 'icu4j-49_1_patched.jar'], dir: 'libs') + } + implementation 'com.android.support:multidex:1.0.1' + implementation 'com.android.support:gridlayout-v7:27.1.1' + implementation 'com.android.support:cardview-v7:27.1.1' + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'com.android.support:design:27.1.1' + implementation 'com.android.support:customtabs:27.1.1' + implementation fileTree(include: ['gnu-trove-osmand.jar', 'icu4j-49_1_patched.jar'], dir: 'libs') - implementation group: 'commons-logging', name: 'commons-logging', version: '1.2' - implementation 'commons-codec:commons-codec:1.11' - implementation 'it.unibo.alice.tuprolog:tuprolog:3.2.1' - implementation 'org.beanshell:bsh-core:2.0b4' - implementation 'org.apache.commons:commons-compress:1.17' - implementation 'com.moparisthebest:junidecode:0.1.1' - implementation 'org.immutables:gson:2.5.0' - implementation 'com.vividsolutions:jts-core:1.14.0' - // turn off for now - //implementation 'com.atilika.kuromoji:kuromoji-ipadic:0.9.0' - implementation 'com.squareup.picasso:picasso:2.71828' - // JS core - implementation group: 'org.mozilla', name: 'rhino', version: '1.7.9' + implementation group: 'commons-logging', name: 'commons-logging', version: '1.2' + implementation 'commons-codec:commons-codec:1.11' + implementation 'it.unibo.alice.tuprolog:tuprolog:3.2.1' + implementation 'org.beanshell:bsh-core:2.0b4' + implementation 'org.apache.commons:commons-compress:1.17' + implementation 'com.moparisthebest:junidecode:0.1.1' + implementation 'org.immutables:gson:2.5.0' + implementation 'com.vividsolutions:jts-core:1.14.0' + // turn off for now + //implementation 'com.atilika.kuromoji:kuromoji-ipadic:0.9.0' + implementation 'com.squareup.picasso:picasso:2.71828' + // JS core + implementation group: 'org.mozilla', name: 'rhino', version: '1.7.9' // size restrictions // implementation 'com.ibm.icu:icu4j:50.1' // implementation 'net.sf.trove4j:trove4j:3.0.3' - qtcoreImplementation fileTree(include: ['QtAndroid.jar', 'QtAndroidBearer.jar'], dir: 'libs') - qtcoredebugImplementation fileTree(include: ['QtAndroid.jar', 'QtAndroidBearer.jar'], dir: 'libs') + implementation 'com.android.support.constraint:constraint-layout:1.1.3' + qtcoreImplementation fileTree(include: ['QtAndroid.jar', 'QtAndroidBearer.jar'], dir: 'libs') + qtcoredebugImplementation fileTree(include: ['QtAndroid.jar', 'QtAndroidBearer.jar'], dir: 'libs') - legacyImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@jar" - qtcoredebugImplementation "net.osmand:OsmAndCore_androidNativeDebug:0.1-SNAPSHOT@aar" - qtcoredebugImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@aar" - qtcoreImplementation "net.osmand:OsmAndCore_androidNativeRelease:0.1-SNAPSHOT@aar" - qtcoreImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@aar" - implementation ("com.getkeepsafe.taptargetview:taptargetview:1.12.0"){ - exclude group: 'com.android.support' - } - implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1' - implementation ("com.github.HITGIF:TextFieldBoxes:1.3.5"){ - exclude group: 'com.android.support' - } + legacyImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@jar" + qtcoredebugImplementation "net.osmand:OsmAndCore_androidNativeDebug:0.1-SNAPSHOT@aar" + qtcoredebugImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@aar" + qtcoreImplementation "net.osmand:OsmAndCore_androidNativeRelease:0.1-SNAPSHOT@aar" + qtcoreImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@aar" + implementation("com.getkeepsafe.taptargetview:taptargetview:1.12.0") { + exclude group: 'com.android.support' + } + implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1' + implementation("com.github.HITGIF:TextFieldBoxes:1.3.5") { + exclude group: 'com.android.support' + } } -if(analytics) { - println "Apply GMS plugin" - apply plugin: 'com.google.gms.google-services' +if (analytics) { + println "Apply GMS plugin" + apply plugin: 'com.google.gms.google-services' } diff --git a/OsmAnd/res/layout/profiles_list_fragment.xml b/OsmAnd/res/layout/profiles_list_fragment.xml index 78e9d2a5f8..dfeaaa53f5 100644 --- a/OsmAnd/res/layout/profiles_list_fragment.xml +++ b/OsmAnd/res/layout/profiles_list_fragment.xml @@ -26,7 +26,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/top_divider" - android:clipToPadding="false"/> + android:clipToPadding="false" + android:paddingBottom="72dp"/> - - Select the profiles to be visible in the app. - Application profiles - Degrees - Milliradians - Angular measurement units - Change what azimuth is measured in. - %s mode - Select a public transport types you want to avoid during navigation: - Avoid transport types… - Walk - Value of tag \"%s\" cannot exceed 255 chars. \nPlease edit it before continue. - Length of \"%s\" value - Learn more about how OsmAnd calculates routes in our blog. - Public transport navigation is currently in beta testing, errors and inaccuracies may occur. - Add intermediate point - %1$d transfers - Add start and end points - Add start point - Select start point - Unpaved - Sand - Grass - Grass paver - Ground - Dirt - Mud - Ice - Salt - Snow - Asphalt - Paved - Concrete - Sett - Cobblestone - Paving stones - Pebblestone - Stone - Metal - Wood - Gravel - Fine gravel - Compacted - Excellent - Good - Intermediate - Bad - Very bad - Horrible - Very horrible - Impassable - Motorway - State road - Road - Street - Service - Footway - Track - Bridleway - Steps - Path - Cycleway - Undefined - + Select the profiles to be visible in the app. + Application profiles + Degrees + Milliradians + Angular measurement units + Change what azimuth is measured in. + %s mode + Select a public transport types you want to avoid during navigation: + Avoid transport types… + Walk + Value of tag \"%s\" cannot exceed 255 chars. \nPlease edit it before continue. + Length of \"%s\" value + Learn more about how OsmAnd calculates routes in our blog. + Public transport navigation is currently in beta testing, errors and inaccuracies may occur. + Add intermediate point + %1$d transfers + Add start and end points + Add start point + Select start point + Unpaved + Sand + Grass + Grass paver + Ground + Dirt + Mud + Ice + Salt + Snow + Asphalt + Paved + Concrete + Sett + Cobblestone + Paving stones + Pebblestone + Stone + Metal + Wood + Gravel + Fine gravel + Compacted + Excellent + Good + Intermediate + Bad + Very bad + Horrible + Very horrible + Impassable + Motorway + State road + Road + Street + Service + Footway + Track + Bridleway + Steps + Path + Cycleway + Undefined + • New \'Directions\' screen: Displays Home and Work destination buttons, \'previous route\' shortcut, list of active GPX tracks and markers, search history\n\n • Additional info under \'Route details\': road types, surface, steepness, smoothness\n\n • Public transport navigation supporting all kinds of transportation: metro, bus, tram, etc.\n\n @@ -83,79 +83,79 @@ • Fixed crashes on opening some public transport stops\n\n • Removed Facebook and Firebase analytics from the free version (OsmAnd+ doesn\'t include it)\n\n - Enable public transport for OsmAnd Live changes. - OsmAnd Live public transport - Time of day - By %1$s - Step by step - Road types - Exit at - Board at stop - Swap - Show more - Displayed tracks - Show/Hide GPX Tracks - Tapping this action button shows or hides selected GPX tracks on the map - Hide GPX Tracks - Show GPX Tracks - Please add Destination first - Previous route - Add home - Add work - Work - - t - Сapacity - Width - Height - Swap start and destination - Add destination - Add intermediate - Add starting point - Intermediate point - Transfers - On foot - Way - Points of interest (POI) - Calculating route… - Public transport - Select a road you want to avoid during navigation, either on the map, or from the list below: - Show along the route - Simulate navigation - Choose track file to follow - Voice announcements - Intermediate destinations - Arrive at %1$s - Subscriptions - By OsmAnd - Plan & Pricing - Monthly - Every three months - Annually - %1$s / month - %1$.2f %2$s / month - Save %1$s. - Current subscription - Renews monthly - Renews quarterly - Renews annually - %1$.2f %2$s - Select the payment period convenient for you: - Part of the income goes to OpenStreetMap contributors. - Delete map marker \'%s\'? - Edit map marker - Third-party app - Search street - Select the city first - Restore - Markers added as a group of Favorites or GPX waypoints marked "Passed" will remain on the map. If the group is not active, the markers will disappear from the map. - Keep passed markers on the map - There is more transport on this stop. - Please grant OsmAnd location access to continue. - Thank you for your feedback - Node or way cannot be found. - No search results?\nGive us feedback - - - Committing way… - Increase search radius to %1$s - \"%1$s\", as well as your location.

+ Committing way… + Increase search radius to %1$s + \"%1$s\", as well as your location.

No personal info is collected, search data is only used to improve the search algorithm.
]]>
- Send search query? - World - Point %1$s deleted - Edit point - Add point - Save as track - You added %1$s points. Type a filename and tap \"Save\". - Please send a screenshot of this notification to support@osmand.net - Edit actions - Get OsmAnd Live to unlock all features: Daily map updates with unlimited downloads, all paid and free plugins, Wikipedia, Wikivoyage and much more. - Modification of the default style to increase contrast of pedestrian and bicycle roads. Uses legacy Mapnik colors. - Bookmark - Hide full description - Show full description - Suitable for use during off-road driving. Suitable for use with green satellite images as an underlay map. Key points: Reduced main road thickness, increased thickness of tracks, paths, bicycle and other routes. Based on \'Topo\' style. - Nautical navigation style. Key features: Buoys, lighthouses, riverways, sea lanes and marks, harbours, seamark services, depth contours. - Skiing style. Key features: Renders pistes, ski-lifts and other ski features in a convenient way. Less distracting secondary map objects. - Simple and contrasting style for car navigation. Gentle on the eyes in the night mode. Key features: Contour lines, contrasting orange styled roads, less distracting secondary map objects. - Contrast style designed primarily for hiking, trekking and cycling in nature. Good readability in complex external lighting. Key features: Contrasting roads and natural objects, different types of routes, contour lines with advanced settings, more details at corresponding zoom levels than the "default" style. "Surface integrity" option allows distinguishing road surface quality. No night mode. - Old \'Mapnik\'-style default rendering style. Key features: Colors are similar to \'Mapnik\' style. - High detail style for touring purposes. Includes all configuration options of default style, in addition: Displays as much detail as possible, in particular all roads, paths, and other ways to travel. Clear visual distinction between all different road types, reminiscent of many touring atlases. High contrast color scheme for outdoor use, day and night mode. - General purpose style. Simplified cleaner rendering in densely populated cities. Key features: Contour lines, routes, surface quality, access restrictions, road shields, paths rendering according to SAC scale, whitewater sport features. - Open Wikipedia link online - The link will be opened in a web browser. - Get OsmAnd Live subscription to read Wikipedia and Wikivoyage articles offline. - How to open the link? - Read Wikipedia offline - Download all - App restart - Show images - You have canceled your OsmAnd Live subscription - Renew subscription to continue using all the features: + Send search query? + World + Point %1$s deleted + Edit point + Add point + Save as track + You added %1$s points. Type a filename and tap \"Save\". + Please send a screenshot of this notification to support@osmand.net + Edit actions + Get OsmAnd Live to unlock all features: Daily map updates with unlimited downloads, all paid and free plugins, Wikipedia, Wikivoyage and much more. + Modification of the default style to increase contrast of pedestrian and bicycle roads. Uses legacy Mapnik colors. + Bookmark + Hide full description + Show full description + Suitable for use during off-road driving. Suitable for use with green satellite images as an underlay map. Key points: Reduced main road thickness, increased thickness of tracks, paths, bicycle and other routes. Based on \'Topo\' style. + Nautical navigation style. Key features: Buoys, lighthouses, riverways, sea lanes and marks, harbours, seamark services, depth contours. + Skiing style. Key features: Renders pistes, ski-lifts and other ski features in a convenient way. Less distracting secondary map objects. + Simple and contrasting style for car navigation. Gentle on the eyes in the night mode. Key features: Contour lines, contrasting orange styled roads, less distracting secondary map objects. + Contrast style designed primarily for hiking, trekking and cycling in nature. Good readability in complex external lighting. Key features: Contrasting roads and natural objects, different types of routes, contour lines with advanced settings, more details at corresponding zoom levels than the "default" style. "Surface integrity" option allows distinguishing road surface quality. No night mode. + Old \'Mapnik\'-style default rendering style. Key features: Colors are similar to \'Mapnik\' style. + High detail style for touring purposes. Includes all configuration options of default style, in addition: Displays as much detail as possible, in particular all roads, paths, and other ways to travel. Clear visual distinction between all different road types, reminiscent of many touring atlases. High contrast color scheme for outdoor use, day and night mode. + General purpose style. Simplified cleaner rendering in densely populated cities. Key features: Contour lines, routes, surface quality, access restrictions, road shields, paths rendering according to SAC scale, whitewater sport features. + Open Wikipedia link online + The link will be opened in a web browser. + Get OsmAnd Live subscription to read Wikipedia and Wikivoyage articles offline. + How to open the link? + Read Wikipedia offline + Download all + App restart + Show images + You have canceled your OsmAnd Live subscription + Renew subscription to continue using all the features: - Based on the articles you bookmarked, the following maps are recommended for you to download: - Maps you need - OsmAnd team - Popular destinations - Paid app - Paid plugin - New Wikivoyage data available, update it to enjoy. - Download Wikivoyage travel guides to view articles about places around the world without a connection to the Internet. - Update available - Download file - The free worldwide travel guide anyone can edit. - Travel guides are currently based on Wikivoyage. Test all features during open beta testing for free. Afterwards, travel guides will be available to subscribers of OsmAnd Unlimited and owners of OsmAnd+. - You can and should edit any article on Wikivoyage. Share knowledge, experience, talent, and your attention - Start editing - Get unlimited access - Welcome to the open beta - Travel Guides - Guides to the most interesting places on the planet, inside OsmAnd, without a connection to the Internet. - Map updates: every month - Map updates: every hour - In-app purchase - One-time payment - Once purchased, it will be permanently available to you. - Buy - %1$s - Subscribe - %1$s - Wikivoyage offline - Unlimited downloads - Wikipedia offline - Contour lines & Hillshade maps - Unlock all OsmAnd features - Choose plan - Purchase one of the following to receive the offline travel guide functionality: - Choose suitable item: - Don\'t - Do - Only on Wi-Fi - Download images - - Article images can be downloaded for offline use.\nAlways available in \'Explore\' → \'Options\'. - Only on Wi-Fi - Select a travel book - Travel book - Page only available online. Open in web browser? - Image cache - Delete search history - Download images - Travel guides - Wikivoyage - Article removed - Search: country, city, province - Read - Bookmarked articles - Explore - Contents - Result - Use double digit longitude - Travel guides - Waypoints removed from map markers - Could not find anything: - Add all of the track\'s waypoints, or select separate categories. - Total - Clear all intermediate points - Group deleted - Whitewater sports - Distance: farthest first - Distance: nearest first - Enter longitude - Enter latitude - Enter latitude and longitude - DD°MM′SS″ - DD.DDDDDD° - DD.DDDDD° - DD°MM.MMMM′ - DD°MM.MMM′ - E - W - S - N - Optional point name - Nearby routes within - Within - Type the filename. - Map import error - Map imported - Make this the start point - Current - Adds intermediate stop - Adds initial stop - Move destination up, and create it - Show closed notes - Show/Hide OSM notes on the map. - GPX - suitable for export to JOSM or other OSM editors. - OSC - suitable for export to OpenStreetMap. - GPX file - OSC file - Choose file type - Select the export type: OSM notes, POI, or both. - All data - OSM Notes - Opens tomorrow at - POI labels - Without name - What\'s here: - parked at - Pick up until - Without time limit - Read full article - Read article - All points of the group - Open from - Open till - Closes at - Opens at - Opens at - Additional actions - GPX file with coordinates and data of the selected notes. - GPX file with coordinates and data of all notes. - + Article images can be downloaded for offline use.\nAlways available in \'Explore\' → \'Options\'. + Only on Wi-Fi + Select a travel book + Travel book + Page only available online. Open in web browser? + Image cache + Delete search history + Download images + Travel guides + Wikivoyage + Article removed + Search: country, city, province + Read + Bookmarked articles + Explore + Contents + Result + Use double digit longitude + Travel guides + Waypoints removed from map markers + Could not find anything: + Add all of the track\'s waypoints, or select separate categories. + Total + Clear all intermediate points + Group deleted + Whitewater sports + Distance: farthest first + Distance: nearest first + Enter longitude + Enter latitude + Enter latitude and longitude + DD°MM′SS″ + DD.DDDDDD° + DD.DDDDD° + DD°MM.MMMM′ + DD°MM.MMM′ + E + W + S + N + Optional point name + Nearby routes within + Within + Type the filename. + Map import error + Map imported + Make this the start point + Current + Adds intermediate stop + Adds initial stop + Move destination up, and create it + Show closed notes + Show/Hide OSM notes on the map. + GPX - suitable for export to JOSM or other OSM editors. + OSC - suitable for export to OpenStreetMap. + GPX file + OSC file + Choose file type + Select the export type: OSM notes, POI, or both. + All data + OSM Notes + Opens tomorrow at + POI labels + Without name + What\'s here: + parked at + Pick up until + Without time limit + Read full article + Read article + All points of the group + Open from + Open till + Closes at + Opens at + Opens at + Additional actions + GPX file with coordinates and data of the selected notes. + GPX file with coordinates and data of all notes. + - Modify the search query. - Actions - Marker - Create or modify OSM objects - Create or modify OSM POI, open or comment OSM Notes, and contribute recorded GPX files. - Deleted - Edited - Added - Marker %s activated. - Tap a marker on the map to move it to the top of the active markers without opening the context menu. - \'One tap\' active - Take notes! - Add audio, video or photo note to every point on the map, using widget or context menu. - Notes by date - By date - By type - Looking for tracks with waypoints - More - Appearance on the map - Select a track to add its waypoints to the markers. - Select a Favorites category to add to the markers. - Track waypoints - Favorites category - Add a group - Import groups from Favorites or GPX waypoints. - Create map markers! - Long or short tap \'Places\', then tap the marker flag button. - Import groups - Import Favorite groups or waypoints as markers. - Markers marked as passed will appear on this screen. - Two - One - Show directional line from your position to the active marker locations. - Show one or two arrows indicating the direction to the active markers. - Choose how to display the distance to active markers. - Choose how many direction indicators to display. - Number of decimal digits - Right - Left - Show number pad - Paste - Automatically switch to the next field after entering %1$d decimal digits. - %1$d digits - Next field - Rename marker - A tap on the map toggles the control buttons and widgets. - Fullscreen mode - Mark passed - can be imported as Favorites or a GPX file. - Import as GPX file - Import as Favorites - Import file - Wrong input - Enter new name - Back - View - Waypoints added to map markers - Wrong format - Road - Show map - Route calculated - Round trip - You must add at least one marker to use this function. - Could not modify note - Modify note - Modify OSM note - Add copy of starting point as destination. - Make round trip - - Markers - Coordinate format - Use system keyboard - Choose coordinate input format. You can always change it by tapping \'Options\'. - Quick coordinate input - Avoid ice roads, fords - Avoid ice roads and fords. - Use position - Add your position as start point to plan the perfect route. - My position - Finish - Plan route - Sort - Coordinate input - is saved - 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 - Show arrows on the map - Show passed - Hide passed - Remove from map markers\' - descending - ascending - Date added - Order by: - Select how to indicate distance and direction to map markers on the map screen: - Map orientation threshold - Select speed of switching orientation from \'Movement direction\' to \'Compass directon\' below. - All map markers moved to history - Map marker moved to history - Map marker moved to active - List - Groups - Last used: %1$s - Make active - Today - Yesterday - Last 7 days - This year - - - Move all to history - Distance indication - Sort by - No animations - Disables animations in the app. - Keep showing on map - Exit without saving? - Line - Save as route points - Save as line - Route point - Edit line - Add point before - Add point after - Options - OsmAnd will connect the points with routes for the selected profile. - Save the points either as route points or as a line. - Select navigation profile - Please add at least one point. - GPX file name: - Show on map after saving - Browse the map and add points - Measure distance - Pause/resume navigation - Tap this button to pause or resume the navigation. - Show \'Navigation finished\' dialog - Start/stop navigation - Tap this button to start or end the navigation. - Store recorded tracks in monthly folders - Store recorded tracks in sub-folders per recording month (like 2018-01). - Reset - Reload - Reload tiles to see up to date data. - Tile cache - Wrong username - To - From - View only images added - Date - Type username - View only images added by - Username - Filter images by submitter, by date or by type. Only active in closeup zoom. - Display only 360° images - Radius ruler - Permissions - OsmAnd cannot import the file. Please check if OsmAnd has permission to read file from its location. - Distance corrected - Mapillary image - Open Mapillary - Install - Improve photo coverage with Mapillary - Install Mapillary to add one or more photos to this map location. - Online photos - Add photos - We do not have photos for this location. - Contribute your own street-level view of this location via Mapillary. - Mapillary widget - Allows quick contributions to Mapillary. - Online street-level photos for everyone. Discover places, collaborate, capture the world. - Mapillary - Street-level photos for everyone. Discover places, collaborate, capture the world. - Your destination is located in an area with private access. Allow access to the private roads for this trip? - Restart search - Increase search radius - Nothing found - Modify the search query or increase the search radius. - Toggle OSM Notes - Show OSM Notes - Hide OSM Notes - Tapping this action button shows or hides OSM Notes on the map. - Sorted by distance - Search Favorites - To see relief hillshading on the map, download the hillshade overlay map of this region. - To see relief hillshading on the map, you need to buy and install the \'Contour Lines\' plugin - Hide from zoom level - Download the \'Contour Line\' map for use in this region. - Plugin - To see contour lines on the map, you need to buy and install the \'Contour Lines\' plugin - Color scheme - Display from zoom level - Allow private access - Allow access to private areas. - Display zoom level: %1$s - Group name - Change color - Edit name - Animate My Position - Enable animated map panning of \'My Position\' during navigation. - Overview - Select street - in %1$s - Type address - Type city or town - Type postcode - Nearest cities - Select city - Select postcode - Auto zoom map on/off - Tapping this action button turns on/off auto zoom map according to your speed. - Enable auto zoom map - Disable auto zoom map - Add destination - Replace destination - Add first intermediate - Tapping this action button makes the screen center the route destination, any previously selected destination becomes the last intermediate destination. - Tapping this action button makes the screen center the new route destination, replacing the previously selected destination (if any). - Tapping this action button makes the screen center the first intermediate destination. - No overlay - No underlay - Error - Subscribe to our mailing list about app discounts and get 3 more map downloads! - Sea depth contour lines and seamarks. - Thank you for purchasing \'Nautical depth contours\' - Nautical depth contours + Modify the search query. + Actions + Marker + Create or modify OSM objects + Create or modify OSM POI, open or comment OSM Notes, and contribute recorded GPX files. + Deleted + Edited + Added + Marker %s activated. + Tap a marker on the map to move it to the top of the active markers without opening the context menu. + \'One tap\' active + Take notes! + Add audio, video or photo note to every point on the map, using widget or context menu. + Notes by date + By date + By type + Looking for tracks with waypoints + More + Appearance on the map + Select a track to add its waypoints to the markers. + Select a Favorites category to add to the markers. + Track waypoints + Favorites category + Add a group + Import groups from Favorites or GPX waypoints. + Create map markers! + Long or short tap \'Places\', then tap the marker flag button. + Import groups + Import Favorite groups or waypoints as markers. + Markers marked as passed will appear on this screen. + Two + One + Show directional line from your position to the active marker locations. + Show one or two arrows indicating the direction to the active markers. + Choose how to display the distance to active markers. + Choose how many direction indicators to display. + Number of decimal digits + Right + Left + Show number pad + Paste + Automatically switch to the next field after entering %1$d decimal digits. + %1$d digits + Next field + Rename marker + A tap on the map toggles the control buttons and widgets. + Fullscreen mode + Mark passed + can be imported as Favorites or a GPX file. + Import as GPX file + Import as Favorites + Import file + Wrong input + Enter new name + Back + View + Waypoints added to map markers + Wrong format + Road + Show map + Route calculated + Round trip + You must add at least one marker to use this function. + Could not modify note + Modify note + Modify OSM note + Add copy of starting point as destination. + Make round trip + + Markers + Coordinate format + Use system keyboard + Choose coordinate input format. You can always change it by tapping \'Options\'. + Quick coordinate input + Avoid ice roads, fords + Avoid ice roads and fords. + Use position + Add your position as start point to plan the perfect route. + My position + Finish + Plan route + Sort + Coordinate input + is saved + 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 + Show arrows on the map + Show passed + Hide passed + Remove from map markers\' + descending + ascending + Date added + Order by: + Select how to indicate distance and direction to map markers on the map screen: + Map orientation threshold + Select speed of switching orientation from \'Movement direction\' to \'Compass directon\' below. + All map markers moved to history + Map marker moved to history + Map marker moved to active + List + Groups + Last used: %1$s + Make active + Today + Yesterday + Last 7 days + This year + + + Move all to history + Distance indication + Sort by + No animations + Disables animations in the app. + Keep showing on map + Exit without saving? + Line + Save as route points + Save as line + Route point + Edit line + Add point before + Add point after + Options + OsmAnd will connect the points with routes for the selected profile. + Save the points either as route points or as a line. + Select navigation profile + Please add at least one point. + GPX file name: + Show on map after saving + Browse the map and add points + Measure distance + Pause/resume navigation + Tap this button to pause or resume the navigation. + Show \'Navigation finished\' dialog + Start/stop navigation + Tap this button to start or end the navigation. + Store recorded tracks in monthly folders + Store recorded tracks in sub-folders per recording month (like 2018-01). + Reset + Reload + Reload tiles to see up to date data. + Tile cache + Wrong username + To + From + View only images added + Date + Type username + View only images added by + Username + Filter images by submitter, by date or by type. Only active in closeup zoom. + Display only 360° images + Radius ruler + Permissions + OsmAnd cannot import the file. Please check if OsmAnd has permission to read file from its location. + Distance corrected + Mapillary image + Open Mapillary + Install + Improve photo coverage with Mapillary + Install Mapillary to add one or more photos to this map location. + Online photos + Add photos + We do not have photos for this location. + Contribute your own street-level view of this location via Mapillary. + Mapillary widget + Allows quick contributions to Mapillary. + Online street-level photos for everyone. Discover places, collaborate, capture the world. + Mapillary + Street-level photos for everyone. Discover places, collaborate, capture the world. + Your destination is located in an area with private access. Allow access to the private roads for this trip? + Restart search + Increase search radius + Nothing found + Modify the search query or increase the search radius. + Toggle OSM Notes + Show OSM Notes + Hide OSM Notes + Tapping this action button shows or hides OSM Notes on the map. + Sorted by distance + Search Favorites + To see relief hillshading on the map, download the hillshade overlay map of this region. + To see relief hillshading on the map, you need to buy and install the \'Contour Lines\' plugin + Hide from zoom level + Download the \'Contour Line\' map for use in this region. + Plugin + To see contour lines on the map, you need to buy and install the \'Contour Lines\' plugin + Color scheme + Display from zoom level + Allow private access + Allow access to private areas. + Display zoom level: %1$s + Group name + Change color + Edit name + Animate My Position + Enable animated map panning of \'My Position\' during navigation. + Overview + Select street + in %1$s + Type address + Type city or town + Type postcode + Nearest cities + Select city + Select postcode + Auto zoom map on/off + Tapping this action button turns on/off auto zoom map according to your speed. + Enable auto zoom map + Disable auto zoom map + Add destination + Replace destination + Add first intermediate + Tapping this action button makes the screen center the route destination, any previously selected destination becomes the last intermediate destination. + Tapping this action button makes the screen center the new route destination, replacing the previously selected destination (if any). + Tapping this action button makes the screen center the first intermediate destination. + No overlay + No underlay + Error + Subscribe to our mailing list about app discounts and get 3 more map downloads! + Sea depth contour lines and seamarks. + Thank you for purchasing \'Nautical depth contours\' + Nautical depth contours - Worldwide Wikivoyage articles - Southern hemisphere nautical depth points - Northern hemisphere nautical depth points - Nautical depth contours - Nautical maps - Analyze on map - Visible - Restore purchases - Map fonts - Right-hand driving - Automatic - Don\'t send anonymous app usage statistics - OsmAnd collects info about which parts of the app you open. Your location is never sent, nor is anything you enter into the app or details of areas you view, search, or download. - Don\'t show startup messages - Don\'t show app discounts & special local event messages. - Parking options - Thank you for purchasing the paid version of OsmAnd. - Hilly - Less hilly - Flat - Shorter routes - Balanced - Prefer byways - Preferred terrain: flat or hilly. - Slope - Add new folder - Point(s) deleted. - You are going to delete %1$d point(s). Are you sure? - Turns to pass on this route - Waypoints, points of interest, named features - Track - Maximum speed - Average speed - Time moving - Time span - Max - Start time - End time - Color - Select GPX file folder - File can not be moved. - Move - Tracks - Driving style - Route elevation - Descent - Ascent - Altitude range - Average altitude - Time - Total distance - Select elevation fluctuation - Use elevation data - Factor in terrain elevation (via SRTM, ASTER, and EU-DEM data). - Show depth contours and points. - Nautical depth contours - - - - - Auto-split recordings after gap - Start new segment after gap of 6 min, new track after gap of 2 h, or new file after a longer gap if the date has changed. - Contour line density - Contour line density - High - Medium - Low - Contour line width - Contour line width - Water - Hide water - Allow motorways - Allow motorways. - Upload your OSM Note anonymously or by using your OpenStreetMap.org profile. - Nearby Wikipedia articles - Search city or region - Take %1$d exit and go - Upload POI - Route calculation - You do not have any GPX files yet - You may also add GPX files to the folder - Add more… - Appearance - Enable recording quick start - Display a system notification allowing to start trip recording. - Notifications - Continue - Pause - Paused - Trip - Recorded - Record - No data - - Contour lines color scheme - Logging minimum speed - Filter: No logging of points below this speed. - Logging minimum displacement - Filter: Set minimum distance from a point to log a new one. - Logging minimum accuracy - Filter: No logging unless this accuracy is reached. - Christmas POI - Anticipating Christmas and New Year holidays, you can choose to display the POI associated with Christmas: Christmas trees, markets, etc. - Show Christmas POI? - Light brown - Dark brown - Contour lines color scheme - Road surface integrity - Type city, address, POI name - Transliterate if %1$s name is missing - Transliterate names - Edit categories - Subcategories - Selected categories - Create custom filter - Custom search - Filters - Apply filters - Save filter - Delete filter - New filter - Please enter a name for the new filter, this will be added to your \'Categories\' tab. - Subscription charged per month. Cancel it on Google Play at any time. - Donation to OpenStreetMap community - Part of your donation is sent to the OSM users who submit changes to OpenStreetMap. The cost of the subscription remains the same. - Subscription enables hourly, daily, weekly updates, and unlimited downloads for all maps globally. - Get it - Get for %1$s - Get for %1$s month - Get unlimited map downloads, and map updates more than once a month: weekly, daily, or hourly. - Unlimited map downloads, updates, and Wikipedia plugin. - Miles/meters - Skip downloading maps - You have no offline map installed. You may choose a map from the list or download maps later via \'Menu - %1$s\'. - Select another region - Searching maps… - Let OsmAnd determine your location and suggest maps to download for that region. - Location not found - No Internet connection - Required to download maps. - Searching for location… - Free space - OsmAnd\'s data storage (for maps, GPX files, etc.): %1$s. - Grant permission - Allow location access - Get directions and discover new places without an Internet connection - Find my position - Update all maps now? - Clear all tiles - Fuel-efficient way - Use fuel-efficient way (usually shorter). - Are you sure you want to replace Favorite %1$s? - Overground objects - Change - Get started - %1$s stops before - Coordinates search - Advanced coordinates search - Back to search - Remove selected items from \'History\'? - Show %1$s on the map - - Search %1$s away - shared via OsmAnd - Categories - Postcode - from - District - Neighbourhood - Search - Open 24/7 - Memory card - Coordinate format - Format for geographical coordinates. - Bus - Train - Current track - Battery level - Change marker position - Move the map to change marker position - - Follow us - Audio directions - Indicate target point direction by sound. - Haptic directions - Indicate target point direction by vibration. - Enable navigation for OsmAnd Live changes. - OsmAnd Live navigation - Destination not set - Magnetic bearing - Relative bearing - No route recalculation after leaving it - No route recalculation after going off route. - No route recalculation for opposite direction - No route recalculation while just moving in the opposite direction. - Smart autoannounce - Notify only when direction to the target point changes. - Autoannounce period - Minimal time interval between announcements. - Default color - Choose category - Enter name - Enter category - Enter description. - Map linked to location - Collapsed list - Expanded list - Empty list - Tree list - Not installed - Expand - Navigate up - Sort - Map mode - %s GPX files selected - Fine - Thin - Medium - Bold - Please add map markers via map - No waypoints found - An anonymous user cannot:\n- Create groups;\n- Sync groups and devices with the server;\n- Manage groups and devices in a personal dashboard on the website. - Report + Search %1$s away + shared via OsmAnd + Categories + Postcode + from + District + Neighbourhood + Search + Open 24/7 + Memory card + Coordinate format + Format for geographical coordinates. + Bus + Train + Current track + Battery level + Change marker position + Move the map to change marker position + + Follow us + Audio directions + Indicate target point direction by sound. + Haptic directions + Indicate target point direction by vibration. + Enable navigation for OsmAnd Live changes. + OsmAnd Live navigation + Destination not set + Magnetic bearing + Relative bearing + No route recalculation after leaving it + No route recalculation after going off route. + No route recalculation for opposite direction + No route recalculation while just moving in the opposite direction. + Smart autoannounce + Notify only when direction to the target point changes. + Autoannounce period + Minimal time interval between announcements. + Default color + Choose category + Enter name + Enter category + Enter description. + Map linked to location + Collapsed list + Expanded list + Empty list + Tree list + Not installed + Expand + Navigate up + Sort + Map mode + %s GPX files selected + Fine + Thin + Medium + Bold + Please add map markers via map + No waypoints found + An anonymous user cannot:\n- Create groups;\n- Sync groups and devices with the server;\n- Manage groups and devices in a personal dashboard on the website. + Report - The app is now allowed to write to external storage, but needs to be started again to do so. - - Move ↑ - Move ↓ - Finish navigation - Avoid road - Switched to internal memory since the selected data storage folder is read only. Please choose a writable storage directory. - Shared memory - Top bar - Full report - Recalculate route - OpenStreetMap username and password - Donations - Number of recipients - Edits %1$s, rank %2$s, total edits %3$s - Edits %1$s, sum %2$s mBTC - OSM Editors ranking - OsmAnd Live subscription - Subscribe - Needed to provide you information about contributions. - Public Name - Do not show my name in reports - Support region - Month cost - Monthly payment - Active - Inactive - Please enter a valid e-mail address - Please enter public name - Thank you for supporting OsmAnd!\nTo activate all new features you need to restart OsmAnd. - Part of your donation will be sent to OSM users who submit changes to the map in that region. - Subscription settings - Please purchase a subscription to OsmAnd Live first - This subscription enables hourly updates for all maps around the world. + Move ↑ + Move ↓ + Finish navigation + Avoid road + Switched to internal memory since the selected data storage folder is read only. Please choose a writable storage directory. + Shared memory + Top bar + Full report + Recalculate route + OpenStreetMap username and password + Donations + Number of recipients + Edits %1$s, rank %2$s, total edits %3$s + Edits %1$s, sum %2$s mBTC + OSM Editors ranking + OsmAnd Live subscription + Subscribe + Needed to provide you information about contributions. + Public Name + Do not show my name in reports + Support region + Month cost + Monthly payment + Active + Inactive + Please enter a valid e-mail address + Please enter public name + Thank you for supporting OsmAnd!\nTo activate all new features you need to restart OsmAnd. + Part of your donation will be sent to OSM users who submit changes to the map in that region. + Subscription settings + Please purchase a subscription to OsmAnd Live first + This subscription enables hourly updates for all maps around the world. Part of the income goes back to the OSM community and is paid out for each OSM contribution. If you love OsmAnd and OSM and want to support and be supported by them, this is the perfect way to do it. - Select map marker - Other markers - Upload anonymously - Show transparency seekbar - Not enough space! + Select map marker + Other markers + Upload anonymously + Show transparency seekbar + Not enough space! Storage space needed is {3} MB temporarily, {1} MB permanently. Available space is only {2} MB. - Download {0} file(s)? + Download {0} file(s)? Storage space used is {3} MB temporarily, {1} MB permanently. ({2} MB space available.) - Download {0} file(s)? + Download {0} file(s)? Storage space used is {1} MB. (Available space is {2} MB.) - Upload OSM Note - First map marker - Second map marker - Toolbar - Widgets - Add all points as map markers? - Add to map markers - Select map markers - Reverse order - Activate the map markers feature. - Remove all active markers? - Clear map marker history? - Active markers - Map markers - Map marker - It is recommended to turn off polygon rendering. - Show MTB routes - Show polygons - - Find parking - Status - Save changes - E-mail address - Underground objects - Data not available - Remove - Read more - "Remove downloaded updates and get back to the original map edition" - Add time span - Road blocked - Select - Reverse starting point & destination - POI icons - Item removed - items removed - Undo all - Type - Starting point - Not selected - Recorder Split - Use Recorder Split - Rewrite clips when used space exceeds the storage size. - Clip length - Upper time limit for recorded clips. - Storage size - Amount of space that can be occupied by all recorded clips. - Live updates - Available maps - Select voice guidance - Select or download voice guidance for your language. - Select roads you want to avoid during navigation. - Sound - App has no permission to access location data. - App has no permission to access the camera. - App has no permission to access the microphone. - Distance: - Time: - Horse routes - No address determined - Near - Hide - Lowest quality - Highest quality - Video output quality - Select video quality. - Audio output format - Select audio output format. - Audio bitrate - Select audio bitrate. - Please specify the correct POI type or skip it. - Menu button launches the dashboard rather than the menu - Access from map - \'Off\' directly launches the map screen. - Show on start - Copied to clipboard - + Find parking + Status + Save changes + E-mail address + Underground objects + Data not available + Remove + Read more + "Remove downloaded updates and get back to the original map edition" + Add time span + Road blocked + Select + Reverse starting point & destination + POI icons + Item removed + items removed + Undo all + Type + Starting point + Not selected + Recorder Split + Use Recorder Split + Rewrite clips when used space exceeds the storage size. + Clip length + Upper time limit for recorded clips. + Storage size + Amount of space that can be occupied by all recorded clips. + Live updates + Available maps + Select voice guidance + Select or download voice guidance for your language. + Select roads you want to avoid during navigation. + Sound + App has no permission to access location data. + App has no permission to access the camera. + App has no permission to access the microphone. + Distance: + Time: + Horse routes + No address determined + Near + Hide + Lowest quality + Highest quality + Video output quality + Select video quality. + Audio output format + Select audio output format. + Audio bitrate + Select audio bitrate. + Please specify the correct POI type or skip it. + Menu button launches the dashboard rather than the menu + Access from map + \'Off\' directly launches the map screen. + Show on start + Copied to clipboard + - Save offline - Modified OSM POI - Deleted OSM POI - Open OSM Note - Reopened OSM Note - Commented OSM Note - Deleted OSM Note - Created OSM Note - OSM Note - Create note - Add comment - Reopen note - Close note - Note created - Could not create note - Note closed - Could not close note - OSM password (optional) - Message - Author name - Could not add comment - Comment added - Commit - Delete GPX waypoint? - Edit GPX waypoint - Location - OSM edits shared via OsmAnd - Low German - Macedonian - Frysk - Albanian (Tosk) - Read more - What\'s new in - Proposed objects - Update - Upload - Created OSM POI - World basemap (covering the whole world at low zoom level) missing or outdated. Please consider downloading it for a global overview. - QR code - Map downloaded - The %1$s map is ready for use. - Show map - "Sets the flag indicating first app startup, keeps all other settings unchanged." - Simulate first app start - geo: - Share location - Send - Please use a category name that doesn\'t already exist. - Category name - Add new category - Regions - Regionwide maps - World maps - Hillshade layer disabled - Contour lines disabled - Add new - Select category - Define unit of speed. - Unit of speed - nmi - Nautical miles - Kilometers per hour - Miles per hour - Meters per second - Minutes per kilometer - Minutes per mile - Nautical miles per hour (knots) - kn - min/m - min/km - m/s - Trip recording - Navigation - Run in background - GPS wake-up interval - Favorite info - Stop simulating your position. - Simulate your position using a calculated route or a recorded GPX track. - Looking up address - GPX file with note locations. - Locations - Plugins - Avoid shuttle train - Avoid using shuttle trains - Hazard - Bold outline - No updates available - Live updates - Default (13) - Default (translucent cyan) - GPX color - GPX color - GPX width - GPX width - Dark yellow - Red - Translucent red - Orange - Translucent orange - Yellow - Translucent yellow - Light green - Translucent light green - Green - Translucent green - Light blue - Translucent light blue - Blue - Translucent blue - Purple - Pink - Translucent pink - Brown - Black - Translucent purple - Restart the app manually to apply all changes. - Light - Dark - Piedmontese - Bengali - Tagalog - Serbo-Croatian - Azerbaijani - Breton - Albanian - Icelandic - Bishnupriya - Navajo - Irish - Latin - Kurdish - Tamil - Malayalam - Luxembourgish - Lao - Ossetian - Esperanto - Spanish (American) - Spanish (Argentina) - Norwegian Bokmål - Volapuk - Thai - Telugu - Norwegian Nynorsk - Newar / Nepal Bhasa - Malaysian - Haitian - Galician - Estonian - Cebuano - Asturian - Sorbian (Upper) - Kabyle - Berber - You have old incompatible Wikipedia data. Archive it? - Download additional Wikipedia data (%1$s MB) ? - Location service not enabled. Turn it on? - Prevent standalone logging - Will pause GPX logging when the app is killed (via recent apps). (OsmAnd background indication disappears from the Android notification bar.) - Import to OsmAnd - Read full article (online) - Wikipedia - Wikipedia - Show details - Delete OSM edit - Disabled - Color by network affiliation - Color by OSMC hiking symbol - Log Off - House numbers - Copy OsmAnd data files to the new destination? - Maps could not be created in specified directory - Copying files failed - External storage - Multiuser storage - Internal app memory - Manually specified - Internal memory - Data storage folder - Map Storage - Copy - Filter by name - Type to search all - Open now - OSM mapper assistant - A-GPS info - Manage - Edit - Places - Search - Show description. - Message - A-GPS data last downloaded: %1$s - In many countries (Germany, France, Italy, and others) the use of speed camera warnings is illegal. OsmAnd does not assume any liability if you violate the law. Please tap \'Yes\' only if you are eligible to use this feature. - Download maps - To correctly reflect your traffic signs and regulations, please select your driving region: - OsmAnd provides global offline map browsing and offline navigation. - Welcome - Current route - OSM changes added to local changeset - Mark to delete - You are going to delete %1$d notes. Are you sure? - You are going to upload %1$d change(s) to OSM. Are you sure? - Clear history? - Specify wait time to remain on the route planning screen. - Start turn-by-turn guidance after… - Go - overdue - Action create - Action modify - Action delete - OSM edits - - h - - min - Parking time limited to - - left - Your edits - Visit after - Visit before - Simulate your position - Flat list - Lat %1$s\nLon %2$s - Frequently asked questions, recent changes, and others. - Navigation settings - General settings - - OK - Cancel - Dismiss - Yes - Don\'t use - No - On - Off - Previous - Next - Enable - Disable - Enabled - Disabled - Selected - selected - Never - None - and - or - Help - Settings - History - Select on map - Select all - Deselect - Deselect all - Clear - Clear all - Save - Save as new GPX file - Rename - Delete - Delete all - Share - Apply - Start - Stop - Import - Export - More… - More actions - Do not show again - Remember choice - Refresh - Download - Downloading - Downloaded - I/O error - Unexpected error - Action {0} - Close - Exit - Show - Show all - Collapse - Show on map - Map - Favorite - Favorites - Address - Add - Add to \'Favorites\' - My Position - My Places - Favorites - Tracks - GPX files - Currently recording track - Audio - Video - Photo - Launch - Route points - Track segments - Track points - Online maps - With this plugin you can access many types of online (so called tile or raster) maps, from predefined OpenStreetMap tiles (like Mapnik) to satellite images and special purpose layers like weather maps, climate maps, geological maps, hillshade layers, etc. + Save offline + Modified OSM POI + Deleted OSM POI + Open OSM Note + Reopened OSM Note + Commented OSM Note + Deleted OSM Note + Created OSM Note + OSM Note + Create note + Add comment + Reopen note + Close note + Note created + Could not create note + Note closed + Could not close note + OSM password (optional) + Message + Author name + Could not add comment + Comment added + Commit + Delete GPX waypoint? + Edit GPX waypoint + Location + OSM edits shared via OsmAnd + Low German + Macedonian + Frysk + Albanian (Tosk) + Read more + What\'s new in + Proposed objects + Update + Upload + Created OSM POI + World basemap (covering the whole world at low zoom level) missing or outdated. Please consider downloading it for a global overview. + QR code + Map downloaded + The %1$s map is ready for use. + Show map + "Sets the flag indicating first app startup, keeps all other settings unchanged." + Simulate first app start + geo: + Share location + Send + Please use a category name that doesn\'t already exist. + Category name + Add new category + Regions + Regionwide maps + World maps + Hillshade layer disabled + Contour lines disabled + Add new + Select category + Define unit of speed. + Unit of speed + nmi + Nautical miles + Kilometers per hour + Miles per hour + Meters per second + Minutes per kilometer + Minutes per mile + Nautical miles per hour (knots) + kn + min/m + min/km + m/s + Trip recording + Navigation + Run in background + GPS wake-up interval + Favorite info + Stop simulating your position. + Simulate your position using a calculated route or a recorded GPX track. + Looking up address + GPX file with note locations. + Locations + Plugins + Avoid shuttle train + Avoid using shuttle trains + Hazard + Bold outline + No updates available + Live updates + Default (13) + Default (translucent cyan) + GPX color + GPX color + GPX width + GPX width + Dark yellow + Red + Translucent red + Orange + Translucent orange + Yellow + Translucent yellow + Light green + Translucent light green + Green + Translucent green + Light blue + Translucent light blue + Blue + Translucent blue + Purple + Pink + Translucent pink + Brown + Black + Translucent purple + Restart the app manually to apply all changes. + Light + Dark + Piedmontese + Bengali + Tagalog + Serbo-Croatian + Azerbaijani + Breton + Albanian + Icelandic + Bishnupriya + Navajo + Irish + Latin + Kurdish + Tamil + Malayalam + Luxembourgish + Lao + Ossetian + Esperanto + Spanish (American) + Spanish (Argentina) + Norwegian Bokmål + Volapuk + Thai + Telugu + Norwegian Nynorsk + Newar / Nepal Bhasa + Malaysian + Haitian + Galician + Estonian + Cebuano + Asturian + Sorbian (Upper) + Kabyle + Berber + You have old incompatible Wikipedia data. Archive it? + Download additional Wikipedia data (%1$s MB) ? + Location service not enabled. Turn it on? + Prevent standalone logging + Will pause GPX logging when the app is killed (via recent apps). (OsmAnd background indication disappears from the Android notification bar.) + Import to OsmAnd + Read full article (online) + Wikipedia + Wikipedia + Show details + Delete OSM edit + Disabled + Color by network affiliation + Color by OSMC hiking symbol + Log Off + House numbers + Copy OsmAnd data files to the new destination? + Maps could not be created in specified directory + Copying files failed + External storage + Multiuser storage + Internal app memory + Manually specified + Internal memory + Data storage folder + Map Storage + Copy + Filter by name + Type to search all + Open now + OSM mapper assistant + A-GPS info + Manage + Edit + Places + Search + Show description. + Message + A-GPS data last downloaded: %1$s + In many countries (Germany, France, Italy, and others) the use of speed camera warnings is illegal. OsmAnd does not assume any liability if you violate the law. Please tap \'Yes\' only if you are eligible to use this feature. + Download maps + To correctly reflect your traffic signs and regulations, please select your driving region: + OsmAnd provides global offline map browsing and offline navigation. + Welcome + Current route + OSM changes added to local changeset + Mark to delete + You are going to delete %1$d notes. Are you sure? + You are going to upload %1$d change(s) to OSM. Are you sure? + Clear history? + Specify wait time to remain on the route planning screen. + Start turn-by-turn guidance after… + Go + overdue + Action create + Action modify + Action delete + OSM edits + + h + + min + Parking time limited to + + left + Your edits + Visit after + Visit before + Simulate your position + Flat list + Lat %1$s\nLon %2$s + Frequently asked questions, recent changes, and others. + Navigation settings + General settings + + OK + Cancel + Dismiss + Yes + Don\'t use + No + On + Off + Previous + Next + Enable + Disable + Enabled + Disabled + Selected + selected + Never + None + and + or + Help + Settings + History + Select on map + Select all + Deselect + Deselect all + Clear + Clear all + Save + Save as new GPX file + Rename + Delete + Delete all + Share + Apply + Start + Stop + Import + Export + More… + More actions + Do not show again + Remember choice + Refresh + Download + Downloading + Downloaded + I/O error + Unexpected error + Action {0} + Close + Exit + Show + Show all + Collapse + Show on map + Map + Favorite + Favorites + Address + Add + Add to \'Favorites\' + My Position + My Places + Favorites + Tracks + GPX files + Currently recording track + Audio + Video + Photo + Launch + Route points + Track segments + Track points + Online maps + With this plugin you can access many types of online (so called tile or raster) maps, from predefined OpenStreetMap tiles (like Mapnik) to satellite images and special purpose layers like weather maps, climate maps, geological maps, hillshade layers, etc. \n\nAny of these maps can either be used as the main (base) map to be displayed on the OsmAnd map screen, or as an overlay or underlay to another base map (like OsmAnd\'s standard offline maps). In order to make any underlay map more visible, certain elements of the OsmAnd vector maps can easily be hidden via the \'Configure map\' menu as desired. \n\nTile maps can be obtained directly via online sources, or can be prepared for offline use (and manually copied to OsmAnd\'s data folder) as an SQLite database which can be produced by a variety of 3rd party map preparation tools. - Trip recording - This plugin activates the functionality to record and save your tracks by manually touching the GPX logging widget on the map screen, or also to automatically log all of your navigation routes to a GPX file. + Trip recording + This plugin activates the functionality to record and save your tracks by manually touching the GPX logging widget on the map screen, or also to automatically log all of your navigation routes to a GPX file. \n\nRecorded tracks can be shared with your friends or be used for OSM contributions. Athletes can use recorded tracks to monitor their trainings. Some basic track analysis can be performed directly in OsmAnd, like lap times, average speed etc., and tracks can of course also later be analyzed in special 3rd party analysis tools. - Contour lines plugin - OsmAnd plugin for offline contour lines - This plugin provides both a contour line overlay and a (relief) hillshade layer to be displayed on top of OsmAnd\'s standard maps. This functionality will be much appreciated by athletes, hikers, trekkers, and anybody interested in the relief structure of a landscape. + Contour lines plugin + OsmAnd plugin for offline contour lines + This plugin provides both a contour line overlay and a (relief) hillshade layer to be displayed on top of OsmAnd\'s standard maps. This functionality will be much appreciated by athletes, hikers, trekkers, and anybody interested in the relief structure of a landscape. \n\nThe global data (between 70 ° north and 70 ° south) is based on measurements by SRTM (Shuttle Radar Topography Mission) and ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), an imaging instrument onboard Terra, the flagship satellite of NASA\'s Earth Observing System. ASTER is a cooperative effort between NASA, Japan\'s Ministry of Economy, Trade and Industry (METI), and Japan Space Systems (J-spacesystems). - Contour Lines - This plugin provides both a contour line overlay and a (relief) hillshade layer to be displayed on top of OsmAnd\'s standard maps. This functionality will be much appreciated by athletes, hikers, trekkers, and anybody interested in the relief structure of a landscape. (Please note that contour line and/or relief data are separate, additional downloads available after activating the plugin.) + Contour Lines + This plugin provides both a contour line overlay and a (relief) hillshade layer to be displayed on top of OsmAnd\'s standard maps. This functionality will be much appreciated by athletes, hikers, trekkers, and anybody interested in the relief structure of a landscape. (Please note that contour line and/or relief data are separate, additional downloads available after activating the plugin.) \n\nThe global data (between 70 ° north and 70 ° south) is based on measurements by SRTM (Shuttle Radar Topography Mission) and ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), an imaging instrument onboard Terra, the flagship satellite of NASA\'s Earth Observing System. ASTER is a cooperative effort between NASA, Japan\'s Ministry of Economy, Trade and Industry (METI), and Japan Space Systems (J-spacesystems). - Touring map view - Activating this view changes OsmAnd\'s map style to \'Touring view\', this is a special high-detail view for travelers and professional drivers. + Touring map view + Activating this view changes OsmAnd\'s map style to \'Touring view\', this is a special high-detail view for travelers and professional drivers. \n\nThis view provides, at any given map zoom, the maximum amount of travel details available in the map data (particularly roads, tracks, paths, and orientation marks). \n\nIt also clearly depicts all types of roads unambiguously by color coding, which is useful when e.g. driving large vehicles. \n\nAnd it provides special touring options like showing bicycle routes or Alpine mountain routes. \n\nA special map download is not needed, the view is created from our standard maps. \n\nThis view can be reverted by either de-activating it again here, or by changing the \'Map style\' under \'Configure map\' as desired. - Nautical map view - This plugin enriches the OsmAnd map and navigation app to also produce nautical maps for boating, sailing, and other types of watersports. + Nautical map view + This plugin enriches the OsmAnd map and navigation app to also produce nautical maps for boating, sailing, and other types of watersports. \n\nA special map add-on for OsmAnd will provide all nautical navigation marks and chart symbols, for inland as well as for nearshore navigation. The description of each navigation mark provides the details needed to identify them and their meaning (category, shape, color, sequence, reference, etc.). \n\nTo return to one of OsmAnd\'s conventional map styles, simply either de-activate this plugin again, or change the \'Map style\' under \'Configure map\' as desired. - Ski map view - This plugin for OsmAnd puts at your fingertips details of global downhill ski slopes, cross country ski runs, Alpine ski routes, cable cars and ski lifts. Routes and pistes are shown color-coded by difficulty, and depicted in a special \'Winter\' map style which assimilates a snow-colored winter landscape. + Ski map view + This plugin for OsmAnd puts at your fingertips details of global downhill ski slopes, cross country ski runs, Alpine ski routes, cable cars and ski lifts. Routes and pistes are shown color-coded by difficulty, and depicted in a special \'Winter\' map style which assimilates a snow-colored winter landscape. \n\nActivating this view changes the map style to \'Winter and ski\', showing all landscape features under wintry conditions. This view can be reverted by either de-activating it again here, or by changing the \'Map style\' under \'Configure map\' as desired. - Audio/video notes - The Audio/video notes plugin provides the functionality to take audio/photography/video notes during a trip, using either a button on the map screen, or directly the context menu for any position on the map. - Parking Position - The parking position plugin lets you record where your car is parked and how much parking time is left (if there is a time limit). + Audio/video notes + The Audio/video notes plugin provides the functionality to take audio/photography/video notes during a trip, using either a button on the map screen, or directly the context menu for any position on the map. + Parking Position + The parking position plugin lets you record where your car is parked and how much parking time is left (if there is a time limit). \nBoth the location and time are visible on the OsmAnd dashboard as well as in a widget on the map screen. An alarm can be added to the Android calendar as a reminder. - Distance calculator & planning tool - This plugin provides a map screen widget allowing creation of paths by tapping the map, or by using or modifying existing GPX files, to plan a trip and measure the distance between points. The results can be saved as a GPX file, which can later be used for guidance. - Accessibility - This plugin makes the device\'s accessibility features available directly in OsmAnd. It facilitates e.g. adjusting the speech rate for TTS voices, configuring directional-pad screen navigation, using a trackball for zoom control, or text-to-speech feedback, for example to auto announcing your position. - OSM editing - Via this plugin OsmAnd can be used to make OSM contributions like creating or modifying OSM POI objects, opening or commenting OSM Notes, and contributing recorded GPX files. OSM is a community driven, global public domain mapping project. For details please refer to https://openstreetmap.org. Active participation is appreciated, and contributions can be made directly from OsmAnd, if you specify your personal OSM credentials in the app. - This plugin displays settings for development and debugging features like to test or simulate routing, the screen rendering performance, or voice prompting. These settings are intended for developers and are not needed for the general user. - OsmAnd development - Renaming failed. - days behind - Back to map - Share note - Location:\n Lat %1$s\n Lon %2$s - Watch - Notes - Online map - Roads only - Ski slopes - Free %1$s - Device memory - Piste grooming - In order to display ski maps, the special offline map needs to be downloaded - In order to display nautical maps, the special offline map needs to be downloaded - Edit group - Parking spot - REMOVE THE TAG - GPS status - Download nightly builds. - Builds - Street lighting - Proxy - Specify a proxy server. - Privacy - Points - Start navigation along track? - Trigger an alternative route by selecting roads to avoid - Pedestrian crosswalks - Road style - Road style - Default - Default - German road atlas - High contrast roads - Railroad crossing - Pedestrian crosswalk - Railroad crossings - Pedestrian crosswalks - American road atlas - No v1.9 routing rules - Do not use routing rules introduced in v1.9. - Download offline maps? - You have downloaded %1$s maps - Download new map - Manage - Map language - Transport stops - Zone - Open Location Code - Invalid OLC\n - Short OLC\nPlease provide a full code - Valid full OLC\nRepresents area: %1$s x %2$s - Northing - Easting - All Downloads - Updates - Local - Unable to download, please check your Internet connection. - All files up to date - Use OpenGL rendering - Use hardware accelerated OpenGL rendering (may use more battery, or not work on very old devices). - No bypass found - Home - Updates available for %1$s maps - Search for - Coordinates - Bus, trolleybus, shuttle routes - Tram and train routes - Subway routes - %1$s needs this permission to turn off the screen for the power saving feature. - Turn screen on - Turn on device screen (if off) when approaching a turn. - Avoid roads… - Train routes - Tram routes - Share taxi routes - Trolleybus routes - Bus routes - Hide - Routes - - Details - Transport - Other map attributes - Remaining elements - Rendering attributes - Status bar - Right panel - Left panel - Configure map - Within - Anonymous user - Logged in as %1$s - Speed limit tolerance - Select speed limit tolerance margin, above which you will receive a voice warning. - The Favorite name has been modified to %1$s to facilitate properly saving the string with emoticons to a file. - Print route - Favorite point name duplicate - Specified Favorite name already in use, was changed to %1$s to avoid duplication. - Set the text size on the map. - Text size - Speed limit - Border control - Toll booth - Stop sign - Traffic calming - Speed camera - Traffic warning - Nearby Favorites - Nearby POI - Traffic warnings - OsmAnd background service still running. Stop it, too? - Stop GPS background mode? - Stop - Always ask - Choose logging interval for the general track recording (enabled via the GPX logging widget on the map). - 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 screen. - Save current track as GPX file now. - Save current track - Auto-record track during navigation - A GPX track is automatically saved to the tracks folder during navigation. - Logging interval - Logging interval during navigation - Choose logging interval for track recording during navigation. - Select the voice guidance for navigation. - Voice guidance - Enable HTTP proxy - Configure an HTTP proxy for all network requests. - Proxy Host - Configure your proxy\'s hostname (e.g. 127.0.0.1). - Proxy Port - Configure your proxy\'s port number (e.g. 8118). - Trip recording - Configure how to record your trips. - h - Duration - Distance - Average - %1$d of %2$d - Ascent/Descent - Moving time - Max/Min - Min/Max - Tours - All - Waypoints - Download missing maps %1$s (%2$d MB)? - Browse map - Car - Bicycle - Pedestrian - Color-code buildings by type - Continue Navigation - Pause Navigation - Keep - Preferred language for labels on the map (if unavailable, English or local names will be used). - Preferred map language - Local names - Swahili - Hebrew - Forward - Dashboard - Send tracking data to a specified web service if GPX logging is enabled. - Online tracking (GPX required) - Start online tracking - Stop online tracking - Start GPX logging - Stop GPX logging - Start new segment - Buildings - Non-vehicle highways - Text - Wood and scrubs - Buildings on zoom 15 - More details - Fewer details - Access restrictions - Show access restrictions and toll - Show road quality - Show road surface - Show cycle routes - Downloads not found, please check your connection to the Internet. - Nothing was found. If you can\'t find your region, you can make it yourself (see https://osmand.net). - No GPX files selected. Select one by long-tapping. - Select to show - Split interval - Sort by distance - Sort by name - Show zoom buttons during navigation. - Show zoom buttons - Save as group of Favorites - Select destinations - POI overlay labels - Loading %1$s… - Current time - Waypoint - \n\nLong-tap to view on the map - Start turn-by-turn guidance automatically - \n\nLong-tap for options - Subtracks: %1$s - Waypoints: %1$s - Distance: %1$s (%2$s points) - Start time: %1$tF, %1$tT - End time: %1$tF, %1$tT - Average speed: %1$s - Maximum speed: %1$s - Average altitude: %1$s - Altitude range: %1$s - Descent/ascent: %1$s - Time span: %1$s - Time moving: %1$s - Segment - %1$s points - Point %1$s - - %1$s \nRoute points %2$s - %1$s \nPoints - %1$s \nTrack %2$s - Empty GPX file - Display color - Connect - days - Calculate route between points - Display position always in center - Voice - Misc - Localization - addresses nationwide - World altitude correction - World seamarks - World bitcoin payments - World overview map - World ski map - Chinese - Portuguese (Brazil) - English - English (United Kingdom) - Afrikaans - Albanian - Arabic - Armenian - Basque - Belarusian - Belarusian (Latin) - Bosnian - Bulgarian - Catalan - Croatian - Czech - Danish - Dutch - Finnish - French - Georgian - German - Greek - Hebrew - Hindi - Hungarian - Hungarian (formal) - Indonesian - Italian - Japanese - Kannada - Korean - Latvian - Lithuanian - Marathi - Norwegian Bokmål - Persian - Polish - Portuguese - Romanian - Russian - Sardinian - Serbian - Serbian (Latin) - Chinese (Simplified) - Chinese (Hong Kong) - Slovak - Slovenian - Spanish - Swedish - Chinese (Traditional) - Turkish - Ukrainian - Vietnamese - Welsh - Guaraní - North America - Canada - Europe - Italy - Europe - Great Britain - Offline calculation of OsmAnd route segment - Calculate OsmAnd route for first and last route segment - Use shown track for navigation? - Add as subsequent destination - Select GPX… - Select Destination - Route preferences - Route info - Prefer motorways - Prefer motorways - Avoid toll roads - Avoid toll roads - Avoid unpaved roads - Avoid unpaved roads. - Avoid ferries - Avoid ferries - Avoid motorways - Avoid motorways - Avoid stairs - Avoid stairs - Avoid border crossings - Avoid crossing national borders - Weight limit - Specify permitted vehicle weight limit on routes. - Height limit - Specify vehicle height to be permitted on routes. - Since Android version 4.4 (KitKat) you cannot download and update maps to the old storage folder (%s). Copy all OsmAnd files to new storage location? + Distance calculator & planning tool + This plugin provides a map screen widget allowing creation of paths by tapping the map, or by using or modifying existing GPX files, to plan a trip and measure the distance between points. The results can be saved as a GPX file, which can later be used for guidance. + Accessibility + This plugin makes the device\'s accessibility features available directly in OsmAnd. It facilitates e.g. adjusting the speech rate for TTS voices, configuring directional-pad screen navigation, using a trackball for zoom control, or text-to-speech feedback, for example to auto announcing your position. + OSM editing + Via this plugin OsmAnd can be used to make OSM contributions like creating or modifying OSM POI objects, opening or commenting OSM Notes, and contributing recorded GPX files. OSM is a community driven, global public domain mapping project. For details please refer to https://openstreetmap.org. Active participation is appreciated, and contributions can be made directly from OsmAnd, if you specify your personal OSM credentials in the app. + This plugin displays settings for development and debugging features like to test or simulate routing, the screen rendering performance, or voice prompting. These settings are intended for developers and are not needed for the general user. + OsmAnd development + Renaming failed. + days behind + Back to map + Share note + Location:\n Lat %1$s\n Lon %2$s + Watch + Notes + Online map + Roads only + Ski slopes + Free %1$s + Device memory + Piste grooming + In order to display ski maps, the special offline map needs to be downloaded + In order to display nautical maps, the special offline map needs to be downloaded + Edit group + Parking spot + REMOVE THE TAG + GPS status + Download nightly builds. + Builds + Street lighting + Proxy + Specify a proxy server. + Privacy + Points + Start navigation along track? + Trigger an alternative route by selecting roads to avoid + Pedestrian crosswalks + Road style + Road style + Default + Default + German road atlas + High contrast roads + Railroad crossing + Pedestrian crosswalk + Railroad crossings + Pedestrian crosswalks + American road atlas + No v1.9 routing rules + Do not use routing rules introduced in v1.9. + Download offline maps? + You have downloaded %1$s maps + Download new map + Manage + Map language + Transport stops + Zone + Open Location Code + Invalid OLC\n + Short OLC\nPlease provide a full code + Valid full OLC\nRepresents area: %1$s x %2$s + Northing + Easting + All Downloads + Updates + Local + Unable to download, please check your Internet connection. + All files up to date + Use OpenGL rendering + Use hardware accelerated OpenGL rendering (may use more battery, or not work on very old devices). + No bypass found + Home + Updates available for %1$s maps + Search for + Coordinates + Bus, trolleybus, shuttle routes + Tram and train routes + Subway routes + %1$s needs this permission to turn off the screen for the power saving feature. + Turn screen on + Turn on device screen (if off) when approaching a turn. + Avoid roads… + Train routes + Tram routes + Share taxi routes + Trolleybus routes + Bus routes + Hide + Routes + + Details + Transport + Other map attributes + Remaining elements + Rendering attributes + Status bar + Right panel + Left panel + Configure map + Within + Anonymous user + Logged in as %1$s + Speed limit tolerance + Select speed limit tolerance margin, above which you will receive a voice warning. + The Favorite name has been modified to %1$s to facilitate properly saving the string with emoticons to a file. + Print route + Favorite point name duplicate + Specified Favorite name already in use, was changed to %1$s to avoid duplication. + Set the text size on the map. + Text size + Speed limit + Border control + Toll booth + Stop sign + Traffic calming + Speed camera + Traffic warning + Nearby Favorites + Nearby POI + Traffic warnings + OsmAnd background service still running. Stop it, too? + Stop GPS background mode? + Stop + Always ask + Choose logging interval for the general track recording (enabled via the GPX logging widget on the map). + 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 screen. + Save current track as GPX file now. + Save current track + Auto-record track during navigation + A GPX track is automatically saved to the tracks folder during navigation. + Logging interval + Logging interval during navigation + Choose logging interval for track recording during navigation. + Select the voice guidance for navigation. + Voice guidance + Enable HTTP proxy + Configure an HTTP proxy for all network requests. + Proxy Host + Configure your proxy\'s hostname (e.g. 127.0.0.1). + Proxy Port + Configure your proxy\'s port number (e.g. 8118). + Trip recording + Configure how to record your trips. + h + Duration + Distance + Average + %1$d of %2$d + Ascent/Descent + Moving time + Max/Min + Min/Max + Tours + All + Waypoints + Download missing maps %1$s (%2$d MB)? + Browse map + Car + Bicycle + Pedestrian + Color-code buildings by type + Continue Navigation + Pause Navigation + Keep + Preferred language for labels on the map (if unavailable, English or local names will be used). + Preferred map language + Local names + Swahili + Hebrew + Forward + Dashboard + Send tracking data to a specified web service if GPX logging is enabled. + Online tracking (GPX required) + Start online tracking + Stop online tracking + Start GPX logging + Stop GPX logging + Start new segment + Buildings + Non-vehicle highways + Text + Wood and scrubs + Buildings on zoom 15 + More details + Fewer details + Access restrictions + Show access restrictions and toll + Show road quality + Show road surface + Show cycle routes + Downloads not found, please check your connection to the Internet. + Nothing was found. If you can\'t find your region, you can make it yourself (see https://osmand.net). + No GPX files selected. Select one by long-tapping. + Select to show + Split interval + Sort by distance + Sort by name + Show zoom buttons during navigation. + Show zoom buttons + Save as group of Favorites + Select destinations + POI overlay labels + Loading %1$s… + Current time + Waypoint + \n\nLong-tap to view on the map + Start turn-by-turn guidance automatically + \n\nLong-tap for options + Subtracks: %1$s + Waypoints: %1$s + Distance: %1$s (%2$s points) + Start time: %1$tF, %1$tT + End time: %1$tF, %1$tT + Average speed: %1$s + Maximum speed: %1$s + Average altitude: %1$s + Altitude range: %1$s + Descent/ascent: %1$s + Time span: %1$s + Time moving: %1$s + Segment + %1$s points + Point %1$s + + %1$s \nRoute points %2$s + %1$s \nPoints + %1$s \nTrack %2$s + Empty GPX file + Display color + Connect + days + Calculate route between points + Display position always in center + Voice + Misc + Localization + addresses nationwide + World altitude correction + World seamarks + World bitcoin payments + World overview map + World ski map + Chinese + Portuguese (Brazil) + English + English (United Kingdom) + Afrikaans + Albanian + Arabic + Armenian + Basque + Belarusian + Belarusian (Latin) + Bosnian + Bulgarian + Catalan + Croatian + Czech + Danish + Dutch + Finnish + French + Georgian + German + Greek + Hebrew + Hindi + Hungarian + Hungarian (formal) + Indonesian + Italian + Japanese + Kannada + Korean + Latvian + Lithuanian + Marathi + Norwegian Bokmål + Persian + Polish + Portuguese + Romanian + Russian + Sardinian + Serbian + Serbian (Latin) + Chinese (Simplified) + Chinese (Hong Kong) + Slovak + Slovenian + Spanish + Swedish + Chinese (Traditional) + Turkish + Ukrainian + Vietnamese + Welsh + Guaraní + North America - Canada + Europe - Italy + Europe - Great Britain + Offline calculation of OsmAnd route segment + Calculate OsmAnd route for first and last route segment + Use shown track for navigation? + Add as subsequent destination + Select GPX… + Select Destination + Route preferences + Route info + Prefer motorways + Prefer motorways + Avoid toll roads + Avoid toll roads + Avoid unpaved roads + Avoid unpaved roads. + Avoid ferries + Avoid ferries + Avoid motorways + Avoid motorways + Avoid stairs + Avoid stairs + Avoid border crossings + Avoid crossing national borders + Weight limit + Specify permitted vehicle weight limit on routes. + Height limit + Specify vehicle height to be permitted on routes. + Since Android version 4.4 (KitKat) you cannot download and update maps to the old storage folder (%s). Copy all OsmAnd files to new storage location? \n Note 1: Your old files will remain untouched (but can be deleted manually). \n Note 2: In the new storage location it will not be possible to share files between OsmAnd and OsmAnd+. - Copying file (%s) to the new destination… - Copying OsmAnd data files to the new destination (%s)… - Copying OsmAnd data files… - Offline OsmAnd route calculation - Truck - Navigation preferences - Routing preferences - Specify the speech rate for TTS. - Speech Rate - Fast route calculation failed (%s), fallback to slow calculation. - Disable two-phase routing for car navigation. - Disable complex routing - Seamark - Select the profiles to be visible in the app. - App Profiles - Map rendering - Hiking - Motorcycle - Boat - Aircraft - You are going to delete %1$d OSM changes. Are you sure? - Please calculate the route first - Simulate using calculated route - Simulate using GPX track - Long distance: Please add intermediate destinations if no route is found within 10 minutes. - No auto zoom - To close-up - To mid-range - To long-range - Map magnifier - World basemap - Version: - About - Version info, licenses, project members - Zooms downloaded: %1$s - Expire (minutes): %1$s - Downloadable: %1$s - Maximum zoom: %1$s - Minimum zoom: %1$s - Tile data: %1$s - Tilesource %1$s was saved - Elliptic mercator - Maximum zoom - Expire (minutes) - Minimum zoom - URL - Choose existing… - Define/Edit… - FPS debug info - Select the driving region: US, Europe, UK, Asia, and others. - Driving region - Japan - United States - Canada - Europe, Asia, Latin America, & similar - UK, India, & similar - Australia - Announce… - Configure to announce street names, traffic warnings (forced stops, speed bumps), speed camera warnings, speed limits. - Street names (TTS) - Speed limit - Speed cameras - Traffic warnings - Please specify OSM user and password in \'Settings\' - Clear intermediate destinations - Keep intermediate destinations - You already have intermediate destinations set. - Directions to - Directions from - Map: - Lat %1$.3f, lon %2$.3f - - Destination - To: - Via: - From: - Browse map - Default profile - Map view and navigation settings are remembered per use profile. Set your default profile here. - Destination %1$s - Set as destination - Select city or street first - Search for street in neighborhood cities - Optimized order of intermediate destinations en-route to the destination. - Sort door-to-door - OSM change file was generated %1$s - Could not back up OSM changes - Back up as OSM change - Delete Point - time - accuracy - speed - elevation - Point - GPX file name - GPX file saved to {0} - * Tap to mark a point.\n + Copying file (%s) to the new destination… + Copying OsmAnd data files to the new destination (%s)… + Copying OsmAnd data files… + Offline OsmAnd route calculation + Truck + Navigation preferences + Routing preferences + Specify the speech rate for TTS. + Speech Rate + Fast route calculation failed (%s), fallback to slow calculation. + Disable two-phase routing for car navigation. + Disable complex routing + Seamark + Select the profiles to be visible in the app. + App Profiles + Map rendering + Hiking + Motorcycle + Boat + Aircraft + You are going to delete %1$d OSM changes. Are you sure? + Please calculate the route first + Simulate using calculated route + Simulate using GPX track + Long distance: Please add intermediate destinations if no route is found within 10 minutes. + No auto zoom + To close-up + To mid-range + To long-range + Map magnifier + World basemap + Version: + About + Version info, licenses, project members + Zooms downloaded: %1$s + Expire (minutes): %1$s + Downloadable: %1$s + Maximum zoom: %1$s + Minimum zoom: %1$s + Tile data: %1$s + Tilesource %1$s was saved + Elliptic mercator + Maximum zoom + Expire (minutes) + Minimum zoom + URL + Choose existing… + Define/Edit… + FPS debug info + Select the driving region: US, Europe, UK, Asia, and others. + Driving region + Japan + United States + Canada + Europe, Asia, Latin America, & similar + UK, India, & similar + Australia + Announce… + Configure to announce street names, traffic warnings (forced stops, speed bumps), speed camera warnings, speed limits. + Street names (TTS) + Speed limit + Speed cameras + Traffic warnings + Please specify OSM user and password in \'Settings\' + Clear intermediate destinations + Keep intermediate destinations + You already have intermediate destinations set. + Directions to + Directions from + Map: + Lat %1$.3f, lon %2$.3f + + Destination + To: + Via: + From: + Browse map + Default profile + Map view and navigation settings are remembered per use profile. Set your default profile here. + Destination %1$s + Set as destination + Select city or street first + Search for street in neighborhood cities + Optimized order of intermediate destinations en-route to the destination. + Sort door-to-door + OSM change file was generated %1$s + Could not back up OSM changes + Back up as OSM change + Delete Point + time + accuracy + speed + elevation + Point + GPX file name + GPX file saved to {0} + * Tap to mark a point.\n * Long-tap the map to delete previous point.\n * Long-tap on a point to view and attach description.\n * Tap the measurement widget to see more actions. - Start editing - Finish editing - Begin a new subtrack - Clear all points - Open existing GPX file - Please wait until current task is finished - Reduces noise in compass readings but adds inertia. - Use Kalman filter - For the compass reading, use the magnetic sensor instead of the orientation sensor. - Use magnetic sensor - Other - %1$d files left - %1$d files left to download - Full version - Dismiss route - Stop navigation - Clear destination - Not connected to Wi-Fi. Use current connection to the Internet to download? - Street name - House number - Website - Phone - Shows settings for turning on background tracking and navigation by periodically waking up the GPS device (with the screen off). - Install version - Choose how the app looks. - App theme - Accessibility options - Select address - Select Favorite - OSM modifications - Hillshade layer - GPS info - Arrival time - Intermediate arrival time - checked - unchecked - Prefer motorways - Prefer… - Prefer motorways. - none - OpenMaps EU - Wikipedia - Hillshades - Contour lines - Audio/Video data - Are you sure you want to stop the navigation? - Are you sure you want to clear your destination (and intermediate destinations)? - Calculate precise routes without glitches. Still distance-limited and slow. - Precise routing (alpha) - Show - Photo %1$s %2$s - Take a photo - Take a photo - The Dropbox plugin allows you to sync tracks and audio/video notes with your Dropbox account. - Dropbox plugin - Change order - Please consider paying for the \'Contour lines\' plugin to support further development. - Select on request - Record video - Record audio - Select default widget action. - Default widget action - Select the video output format. - Video output format - Use system recorder for video. - Use system recorder - Use the system app for photos. - Use camera app - Configure audio and video settings. - Audio/video settings - Recording failed - Camera not available - Recording Audio/video. Stop by tapping the AV widget. - An audio from the specified recording is being played.\n%1$s - Open external player - Delete this item? - unavailable - Take an audio note - Take a video note - Recording layer - Recording can not be played - Delete recording - Play - Recording %1$s %3$s %2$s - Recording - Audio/video notes - Distance measurement - Location to associate with the note is not defined yet. \"Use location…\" to assign a note to the location specified. - Audio notes - parts - Contour lines - Other maps - Roads only - Contour lines - Standard map - Roads-only map - Alpine hiking scale (SAC) - Render paths according to the SAC scale. - Hiking symbol overlay - Render paths according to OSMC traces. - Boundaries - Suppress display of regional boundaries (admin levels 5–9). - Speed limit - GPX - No buildings found. - Search city incrementally - Search more villages/postcode - Select when to display roads-only maps: - Roads-only maps - Run the app in safe mode (using slower Android instead of native code). - Safe mode - The app is running in safe mode (turn it off in \'Settings\'). - Close changeset - ZXing Barcode Scanner app not installed. Search in Google Play? - Select a road color scheme: - Road color scheme - Show destination direction - Enable the \"Trip recording\" plugin to use position logging services (GPX logging, online tracking) - Calculate possibly non-optimal route over long distances - Please enable GPS in the settings - Logging services - No route - Remove destination - Destination %1$s - Intermediate destination %1$s - Add as last intermediate destination - Add as first intermediate destination - Add as last intermediate destination - Add as first intermediate destination - Replace the destination - You have already set a destination: - Destinations - Intermediate destination %1$s is too far from the nearest road. - Intermediate destination reached - Add as intermediate destination - Intermediate destination - Intermediate time - Ending point too far from nearest road. - Add Tag - Advanced Mode… - Parking - Emergency - Public transport - Entertainment - Accommodation - Restaurants - Sightseeing - Car aid - Food shop - For tourists - Fuel - Show alerts… - Configure traffic warnings (speed limits, forced stops, speed bumps, tunnels), speed camera warnings, and lane info. - Use the compass when no heading is detected otherwise. - Use compass - Avoid motorways - Zoom level according to your speed (while map is synchronized with current position). - Auto zoom map - Snap position to roads during navigation. - Snap to road - Voice prompts pause, not just subdue, music playback. - Pause music - OsmAnd Maps & Navigation - Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps - + Start editing + Finish editing + Begin a new subtrack + Clear all points + Open existing GPX file + Please wait until current task is finished + Reduces noise in compass readings but adds inertia. + Use Kalman filter + For the compass reading, use the magnetic sensor instead of the orientation sensor. + Use magnetic sensor + Other + %1$d files left + %1$d files left to download + Full version + Dismiss route + Stop navigation + Clear destination + Not connected to Wi-Fi. Use current connection to the Internet to download? + Street name + House number + Website + Phone + Shows settings for turning on background tracking and navigation by periodically waking up the GPS device (with the screen off). + Install version + Choose how the app looks. + App theme + Accessibility options + Select address + Select Favorite + OSM modifications + Hillshade layer + GPS info + Arrival time + Intermediate arrival time + checked + unchecked + Prefer motorways + Prefer… + Prefer motorways. + none + OpenMaps EU + Wikipedia + Hillshades + Contour lines + Audio/Video data + Are you sure you want to stop the navigation? + Are you sure you want to clear your destination (and intermediate destinations)? + Calculate precise routes without glitches. Still distance-limited and slow. + Precise routing (alpha) + Show + Photo %1$s %2$s + Take a photo + Take a photo + The Dropbox plugin allows you to sync tracks and audio/video notes with your Dropbox account. + Dropbox plugin + Change order + Please consider paying for the \'Contour lines\' plugin to support further development. + Select on request + Record video + Record audio + Select default widget action. + Default widget action + Select the video output format. + Video output format + Use system recorder for video. + Use system recorder + Use the system app for photos. + Use camera app + Configure audio and video settings. + Audio/video settings + Recording failed + Camera not available + Recording Audio/video. Stop by tapping the AV widget. + An audio from the specified recording is being played.\n%1$s + Open external player + Delete this item? + unavailable + Take an audio note + Take a video note + Recording layer + Recording can not be played + Delete recording + Play + Recording %1$s %3$s %2$s + Recording + Audio/video notes + Distance measurement + Location to associate with the note is not defined yet. \"Use location…\" to assign a note to the location specified. + Audio notes + parts + Contour lines + Other maps + Roads only + Contour lines + Standard map + Roads-only map + Alpine hiking scale (SAC) + Render paths according to the SAC scale. + Hiking symbol overlay + Render paths according to OSMC traces. + Boundaries + Suppress display of regional boundaries (admin levels 5–9). + Speed limit + GPX + No buildings found. + Search city incrementally + Search more villages/postcode + Select when to display roads-only maps: + Roads-only maps + Run the app in safe mode (using slower Android instead of native code). + Safe mode + The app is running in safe mode (turn it off in \'Settings\'). + Close changeset + ZXing Barcode Scanner app not installed. Search in Google Play? + Select a road color scheme: + Road color scheme + Show destination direction + Enable the \"Trip recording\" plugin to use position logging services (GPX logging, online tracking) + Calculate possibly non-optimal route over long distances + Please enable GPS in the settings + Logging services + No route + Remove destination + Destination %1$s + Intermediate destination %1$s + Add as last intermediate destination + Add as first intermediate destination + Add as last intermediate destination + Add as first intermediate destination + Replace the destination + You have already set a destination: + Destinations + Intermediate destination %1$s is too far from the nearest road. + Intermediate destination reached + Add as intermediate destination + Intermediate destination + Intermediate time + Ending point too far from nearest road. + Add Tag + Advanced Mode… + Parking + Emergency + Public transport + Entertainment + Accommodation + Restaurants + Sightseeing + Car aid + Food shop + For tourists + Fuel + Show alerts… + Configure traffic warnings (speed limits, forced stops, speed bumps, tunnels), speed camera warnings, and lane info. + Use the compass when no heading is detected otherwise. + Use compass + Avoid motorways + Zoom level according to your speed (while map is synchronized with current position). + Auto zoom map + Snap position to roads during navigation. + Snap to road + Voice prompts pause, not just subdue, music playback. + Pause music + OsmAnd Maps & Navigation + Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps + OsmAnd (OSM Automated Navigation Directions)\n\n OsmAnd is an open source software navigation app with access to a wide variety of global OpenStreetMap (OSM) data. All map data (vector or tile maps) can be stored on the phone memory card for offline usage. Offline and online routing functionality is also offered, including turn-by-turn voice guidance.\n\n @@ -1945,12 +1945,12 @@ OsmAnd is actively being developed and our project and its continued progress relies on financial contributions for development and testing of new functionality. Please consider buying OsmAnd+, or funding specific new features or making a general donation on https://osmand.net. - + OsmAnd (OSM Automated Navigation Directions) is a map and navigation app with access to the free, worldwide, and high-quality OpenStreetMap (OSM) data.\n\n Enjoy voice and optical navigator, viewing POIs (points of interest), creating and managing GPX tracks, using contour lines visualization and altitude info (through plugin), a choice between driving, cycling, pedestrian modes, OSM editing and much more. - + GPS navigation\n • Choose between offline (no roaming charges when you are abroad) or online (faster) mode\n • Turn-by-turn voice guidance leads you along the way (recorded and synthesized voices)\n @@ -1963,7 +1963,7 @@ • Supports intermediate points on your itinerary\n • Record your own or upload a GPX track and follow it\n - + Map\n • Displays POIs (point of interests) around you\n • Adjusts the map to your direction of motion (or compass)\n @@ -1973,11 +1973,11 @@ • Allows you to choose how to display names on the map: In English, local, or phonetic spelling\n • Displays specialized online tiles, satellite view (from Bing), different overlays like touring/navigation GPX tracks and additional layers with customizable transparency\n - + Skiing\n OsmAnd ski maps plugin enables you to see ski tracks with level of complexity and some additional info, like location of lifts and other facilities. - + Cycling\n • Find cycle paths on the map\n • GPS navigation in cycling mode builds your route using cycle paths\n @@ -1985,7 +1985,7 @@ • GPX recording option enables you to record your trip and share it\n • Via an additional plugin you can enable contour lines and hillshading - + Walking, hiking, city tour\n • The map shows you walking and hiking paths\n • Wikipedia in your preferred language can tell you a lot during a city tour\n @@ -1993,13 +1993,13 @@ • GPS navigation in pedestrian mode builds your route using walking paths\n • Upload and follow a GPX route or record and share your own\n - + Contribute to OSM\n • Report data bugs\n • Upload GPX tracks to OSM directly from the app\n • Add POIs and directly upload them to OSM (or later if offline)\n - + OsmAnd is actively developed open source software. Everyone can contribute to the app by reporting bugs, improving translations or coding new features. Additionally the project relies on financial contributions to fund coding and testing of new functionalities.\n Approximate map coverage and quality:\n • Western Europe: ****\n @@ -2015,9 +2015,9 @@ Most countries around the globe are available for download!\n Get a reliable navigator in your country - be it France, Germany, Mexico, UK, Spain, Netherlands, USA, Russia, Brazil or any other. - OsmAnd+ Maps & Navigation - Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps - + OsmAnd+ Maps & Navigation + Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps + OsmAnd+ (OSM Automated Navigation Directions)\n\n OsmAnd+ is an open source software navigation app with access to a wide variety of global OpenStreetMap (OSM) data. All map data (vector or tile maps) can be stored on the phone memory card for offline use. Offline and online routing functionality is also offered, including turn-by-turn voice guidance.\n\n @@ -2038,7 +2038,7 @@ - Map alignment according to compass or direction of motion\n - Lane guidance, speed limit display, recorded and TTS voices\n - + OsmAnd+ (OSM Automated Navigation Directions) is a map and navigation app with access to the free, worldwide, and high-quality OpenStreetMap (OSM) data.\n Enjoy voice and optical navigation, viewing POIs (points of interest), creating and managing GPX tracks, using contour lines visualization and altitude info, a choice between driving, cycling, pedestrian modes, OSM editing and much more.\n\n @@ -2046,7 +2046,7 @@ Some of the main features: - + Navigation\n • Works online (fast) or offline (no roaming charges when you are abroad)\n • Turn-by-turn voice guidance (recorded and synthesized voices)\n @@ -2055,7 +2055,7 @@ • Automatic re-routing whenever you deviate from the route\n • Search for places by address, by type (e.g: Restaurant, hotel, gas station, museum), or by geographical coordinates\n - + Map Viewing\n • Display your position and orientation\n • Optionally align the picture according to compass or your direction of motion\n @@ -2064,7 +2064,7 @@ • Display specialized online tiles, satellite view (from Bing), different overlays like touring/navigation GPX tracks and additional layers with customizable transparency\n • Optionally display place names in English, local, or phonetic spelling\n - + Use OSM and Wikipedia Data\n • High-quality info from the best collaborative projects of the world\n • OSM data available per country or region\n @@ -2074,14 +2074,14 @@ • Selection between complete region data and just road network (Example: All of Japan is 700 MB or 200 MB for the road network part thereof) - + Safety Features\n • Optional automated day/night view switching\n • Optional speed limit display, with reminder if you exceed it\n • Optional speed-dependent zooming\n • Share your location so that your friends can find you\n - + Bicycle and Pedestrian Features\n • Viewing foot, hiking, and bike paths, great for outdoor activities\n • Special routing and display modes for bike and pedestrian\n @@ -2090,7 +2090,7 @@ • Optional speed and altitude display\n • Display of contour lines and hillshading (via additional plugin) - + Contribute directly to OSM\n • Report data bugs\n • Upload GPX tracks to OSM directly from the app\n @@ -2098,7 +2098,7 @@ • Optional trip recording also in background mode (while device is in sleep mode)\n OsmAnd is actively developed open source software. Everyone can contribute to the app by reporting bugs, improving translations or coding new features. Additionally the project relies on financial contributions to fund coding and testing of new functionalities.\n - + Approximate map coverage and quality:\n • Western Europe: ****\n • Eastern Europe: ***\n @@ -2113,977 +2113,977 @@ Most countries around the globe available as downloads\n From Afghanistan to Zimbabwe, from Australia to the USA. Argentina, Brazil, Canada, France, Germany, Mexico, UK, Spain, …\n - Create POI filter - Transport mode: - Select transport mode - Sunrise: %1$s \nSunset: %2$s - Day/night info - Map style - Configure screen - Lanes - Avoid unpaved roads - Avoid ferries - Avoid… - Avoid e.g. toll roads, unpaved, ferries. - Fluorescent routes - Ruler - Viewing direction - Transparent widgets - Run\n app in background - Stop\n running in background - GPS wake-up interval: %s - Continuous - Tap the lock icon to unlock screen - Street name - Configure screen - Where am I - Lock screen - Compass - Reset to default - Parking - GPX logging - Speed - Destination - Altitude - Time to go - Next turn - Next turn (small) - Second next turn - Mini route map - Lock screen - Unlock screen - The screen is locked - Set wake-up interval: - Speed cameras - Traffic warnings - Avoid toll roads - Continue following previous unfinished navigation? (%1$s seconds) - Awaiting position to calculate route - Hours - Minutes - The car is parked at - Select speed of route simulation - Allocated memory %1$s MB (Android limit %2$s MB, Dalvik %3$s MB). - Allocated memory - Total native memory allocated by app %1$s MB (Dalvik %2$s MB, other %3$s MB). + Create POI filter + Transport mode: + Select transport mode + Sunrise: %1$s \nSunset: %2$s + Day/night info + Map style + Configure screen + Lanes + Avoid unpaved roads + Avoid ferries + Avoid… + Avoid e.g. toll roads, unpaved, ferries. + Fluorescent routes + Ruler + Viewing direction + Transparent widgets + Run\n app in background + Stop\n running in background + GPS wake-up interval: %s + Continuous + Tap the lock icon to unlock screen + Street name + Configure screen + Where am I + Lock screen + Compass + Reset to default + Parking + GPX logging + Speed + Destination + Altitude + Time to go + Next turn + Next turn (small) + Second next turn + Mini route map + Lock screen + Unlock screen + The screen is locked + Set wake-up interval: + Speed cameras + Traffic warnings + Avoid toll roads + Continue following previous unfinished navigation? (%1$s seconds) + Awaiting position to calculate route + Hours + Minutes + The car is parked at + Select speed of route simulation + Allocated memory %1$s MB (Android limit %2$s MB, Dalvik %3$s MB). + Allocated memory + Total native memory allocated by app %1$s MB (Dalvik %2$s MB, other %3$s MB). Proportional memory %4$s MB (Android limit %5$s MB, Dalvik %6$s MB). - Total native memory - Starting point too far from nearest road. - Shared location - Pick up the car from parking - Warning - A notification to pick up your car has been added to your calendar. It will remain there until you will delete it manually. - Set parking time limit - Delete the parking location marker? - Delete a parking marker - Choose the type of parking - Time-limited - Time-unlimited - Add a notification to the Calendar app - Time-limited parking - Time-unlimited parking - The location of your parked vehicle. %1$s - To pick up the vehicle at: - PM - AM - Parking spot - Mark as parking location - Delete parking marker - Public - Identifiable - Trackable - Private - ASAP - Share route as GPX file - Route shared via OsmAnd - Roundabout: Take %1$d exit and go - Keep left and go - Keep right and go - Make all areal land features on map transparent. - Polygons - Rendering mode - Optimize map for - - Display from zoom level (requires contour data): - Show contour lines - Increase amount of map detail shown. - Show more map detail - Routing data - Format - POI (Point of interest) search - Address search - Coordinates - Public transport search - A way to search for Favorites - OsmAnd offline navigation is temporarily not available. - Left-hand traffic - For countries where people drive on the left side of the road. - Tap any existing item to see more details, long-tap to deactivate or delete. Current data on device (%1$s free): - Starting point not yet determined - Position not yet known - Modify transparency (0 - transparent, 255 - opaque) - Cancel file download? - - Thank you for using OsmAnd. Download regional data for offline use via \'Settings\' → \'Manage map files\' to view maps, locate addresses, look up POIs, find public transport and more. - Basemap is selected for download so that the app functions. - Online and cached tile maps - Standard maps (vector) - Download and manage offline map files stored on your device. - Enable the \'Online maps\' plugin to select different map sources - Online and tile maps - Use online maps (download and cache tiles on memory card). - Configure online or cached tile map sources. - Plugins - Plugins activate advanced settings and additional functionality. - Plugins - Vector maps likely display faster. May not work well on some devices. - Select a voice and test by playing prompts - Native rendering - Test voice prompts - No offline vector map present for this location. Download one in \'Settings\' (\'Manage map files\'), or switch to the \'Online maps\' plugin. - Send GPX files to OSM? - Visibility - Tags - Description - Please specify your OSM username and password to upload GPX files. - Support - Support new features - Donate to see new features implemented in the app. - Display ruler - Info - Return to position - Accessibility mode - Turns on the features for impaired users. - According to the Android system setting - Back to menu - Zoom out - Zoom in - Zoom level is - north - north-north-east - north-east - east-north-east - east - east-south-east - south-east - south-south-east - south - south-south-west - south-west - west-south-west - west - west-north-west - north-west - north-north-west - forward - right-forward - to the right - right-backward - backward - left-backward - to the left - left-forward - o\'clock - toward - Accuracy - Altitude - No info - Sidewise (8 sectors) - Clockwise (12 sectors) - Direction style - Choose style to express relative directions while moving. - Start auto announcing - Stop auto announcing - I am here - Change map zooming by horizontal trackball movement. - Use trackball for zoom control - Accessibility related preferences. - Early - Normal - Late - In the last meters - Arrival announcement - How soon do you want the arrival announcement? - Not enough process memory to display selected area - Fluorescent overlays - Use fluorescent colors to display tracks and routes. - Offline editing - Always use offline editing. - POI changes inside app do not affect downloaded map files, changes are saved as a file on your device instead. - Uploading… - {0} POI/Notes were uploaded - Upload all - Upload modification to OSM - Delete modification - Asynchronous OSM editing: - OSM POIs/Notes saved on device - Show and manage OSM POIs/Notes noted in database on device. - Specify the online tracking interval. - Online tracking interval - Specify the web address with parameter syntax: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. - Online tracking web address - Time buffer for online tracking - Specify a time buffer to keep locations to send without connection - Log track using GPX widget or via \'Trip recording\' settings. - Show current track - You can download or update %1$s maps. - Free version - Show POI description. - North America - Europe - Netherlands - North America - United States - Central America - South America - Europe - Europe - France - Europe - Germany - Russia - Africa - Asia - Australia and Oceania - Worldwide and topic maps - Worldwide Wikipedia POIs - Voice prompts (recorded, limited features) - Voice prompts (TTS-synthesized, prefer) - Wikipedia (offline) - User defined - File containing previously exported Favorites already exists. Replace it? - Profile Specific Settings - Navigation - Specify options for navigation. - Global Settings - Manage map files - General - Configure display and common settings for the app. - Global app settings - Your OSM username - Needed for openstreetmap.org submissions. - Your OSM password - Background mode - OsmAnd runs in the background with the screen off. - There is not enough free space to download %1$s MB (free: %2$s). - Transparent theme - Native library not supported on this device. - Initializing native library… - Auto-center map view - Time until the map view synchronizes with the current position. - - Only manually (tap arrow) - Re-announce navigation instructions at regular intervals. - Repeat navigation instructions - Auto-center nav only - Auto-center map view only while navigating. - Auto-center map view in use. - Vector renderer specific options - Overlay / underlay - Map source settings - Vector map settings - Delete %1$s? - Suburb - Hamlet - Village - Town - City - Stop simulation - Start simulation - File can not be renamed. - File with that name already exists. - GPX route - Several POI categories found matching the query: - Local data to search POI is not present. - Search by name - The POI data file \'%1$s\' is redundant and can be deleted. - Local file to maintain POI changes not found and could not be created. - Upgrade OsmAnd+ - Download the new version of the app to be able to use the new map files. - Online Nominatim - Searching position… - My Position (found) - Address… - Favorites… - Undefined - - Current map center - Origin: - Search nearby - Route saved as \'%1$s\'. - Filename: - File with same name already exists. - Upload GPX files to the OSM community, improving the maps. - %1$d of %2$d item(s) uploaded. - Send to OSM - Show more map detail - Show some vector map detail (roads etc.) at lower zoom levels already. - Favorite points deleted. - You are going to delete %1$d Favorites and %2$d Favorite groups. Are you sure? - Home - Friends - Places - Others - Name - Category - No, thanks - Download the base world map to get an overview covering the whole world at low zoom levels. - Download (\'offline\') data to use maps offline. - Released - Local version - %1$d of %2$d item(s) deactivated. - %1$d of %2$d item(s) deleted. - %1$d of %2$d item(s) activated. - No items to %1$s - You are about to %1$s %2$s item(s). Continue? - Manage map files. - Activate - Deactivate - POI data - Address data - Public transport data - Map data - Deactivated - Voice prompts (TTS) - Voice prompts (recorded) - - POI data - TTS voice - New Search - Select the text size for names on the map. - Map font size - Rendering debug info - Display the rendering performance. - Unpacking new data… - An online navigation service is selected but you are not connected to the Internet. - Unsupported language - The selected language is not supported by the installed Android TTS (text-to-speech) engine. Look for another TTS engine in the market? Otherwise the preset TTS language will be used. - Missing data - Go to the market to download selected language? - Reverse GPX direction - Use current destination - Pass along entire track - - Offline vector map present for this location. \n\t\n\tTo use activate \'Menu\' → \'Configure map\' → \'Map Source…\' → \'Offline vector maps\'. - Voice guidance output - Select the speaker to play the voice guidance. - Phone call audio (also to interrupt car BT stereos) - Notification audio - Media/music audio - The app cannot download the map layer %1$s, reinstalling it might help. - Modify the overlay transparency. - Overlay transparency - Modify the base map transparency. - Base map transparency - Underlay map… - Underlay map - Choose the underlay map. - Overlay map… - Overlay map - Choose the overlay map. - Map already installed, \'Settings\' will be updated. - Select (tile) maps to install or update. - Unable to perform operation without a connection to the Internet. - Install more… - Use raster maps for anything beyond this level. - Minimum vector zoom level - Online OSM map classification with images. - Could not perform offline search. - Could not parse geo intent \'%s\'. - Search by geo location - System - Select display language (takes effect when OsmAnd is restarted). - Display language - incomplete - Change what distance is measured in. - Units of length - Miles/feet - Miles/yards - Kilometers/meters - yd - ft - mph - mi - Share location using - Location: %1$s\n%2$s - To see location follow the web link %1$s or Android intent link %2$s - Send location - Share location - GPX Waypoint \'\'{0}\'\' added - Add waypoint to recorded GPX track - Add GPX waypoint - Administrative - Barrier - Education - Emergency - Entertainment - Finance - Geocache - Healthcare - Historic - Landuse - Leisure - Man made - Military - Natural - Office - Other - Shop - Sport - Sustenance - Tourism - Transport - Indexing address… - Indexing map… - Indexing POI… - Indexing transport… - km - km/h - m - Deprecated map data format \'\'{0}\'\', not supported - Nearest POIs - Custom filter - Online NameFinder - Reading cached tiles… - The index \'\'{0}\'\' did not fit into memory - The version of index \'\'{0}\'\' is not supported - OsmAnd offline navigation is an experimental feature and it does not work for longer distances than about 20 km.\n\nNavigation temporarily switched to online CloudMade service. - Can not find the specified folder. - All offline data in the old installed app will be supported by the new one, but Favorite points must be exported from the old app and then imported in the new one. - Build {0} was installed ({1}). - Downloading build… - Install OsmAnd - {0} of {1} {2} MB ? - Retrieving the list of OsmAnd builds failed - Loading OsmAnd builds… - Select an OsmAnd build to install - GPS status app not installed. Search in market? - - No voice guidance available, please go to \'Settings\' → \'Navigation settings\' → \'Voice guidance\' and select or download a voice prompt package. - No voice guidance selected - Day - Night - Sunrise/sunset - Light sensor - Select rationale for switching between night and day mode. - Day/night mode - Download {0} file(s) ({1} MB)? - {0} item(s) selected - Downloaded - Fastest route - Enable to calculate fastest route or disable for fuel-saving route. - At zoom {0} download {1} tiles ({2} MB) - Download map - Select maximum zoom to preload - This map could not be downloaded - Continuous rendering - Display continuous rendering instead of image-at-once. - Could not draw selected area - Use location… - Renderer loaded - Could not load renderer - Vector renderer - Choose the rendering appearance. - Show POI website - Show POI phone - type to filter - High resolution display - Do not stretch (and blur) map tiles on high density displays. - Search public transport - Transport results (no destination): - Transport results ({0} to destination): - Reset transport search - Recorded voice - Voice prompts - Vector maps were not loaded - - No GPX files found in the tracks folder - GPX files… - Could not read GPX data - Offline vector maps - Search transport at stop - Modify POI - Delete POI - Compass direction - Movement direction - No rotation (north always upwards) - Select map screen alignment. - Map orientation - Route details - Favorites imported - Save data as GPX file or import waypoints to \'Favorites\'? - GPX file containing Favorites not found at {0} - Favorites saved to {0} - No Favorite points to save - Favorites shared via OsmAnd - Could not load GPX - Send report - Could not find any downloaded maps on memory card. - Type to find a POI - Any - Thanks to Yandex for traffic info. - Yandex traffic - Route - OSM Notes (online) - POI overlay… - Map source… - Map layers - Search POI - Use a trackball device to move the map. - Use trackball - Sets highest waiting time allowed for each background position fix. - Maximum wait for fix - Where am I? - OsmAnd navigation service - Network - GPS - seconds - min. - Set wake-up interval used by the background service. - Select location method used by the background service. - Location provider - Tracks your position while the screen is off. - Run OsmAnd in background - The background navigation service requires a location provider to be turned on. - Hide filter - Show filter - Filter - Sound is on - Sound is off - Initializing voice data… - Unsupported version of voice data - Specified voice data is corrupted - Selected voice data is not available - Memory card not accessible.\nYou won\'t be able to see maps or find things. - Memory card read-only.\nIt is now only possible to see the preloaded map, not download new areas. - Unzipping file… - Turn right and go - Turn sharply right and go - Turn slightly right and go - Turn left and go - Turn sharply left and go - Turn slightly left and go - Make U-turn and go - Head - Later - Download regions - Awaiting signal… - Search near current map center - Search nearby - Same as device - Portrait - Landscape - Screen orientation - Portrait, landscape, or device. - Opening hours format can not be changed - Add new rule - Routes - Stop - stops - Subsequent itinerary - Prior itinerary - Finish search - Choose stop to get off - prior distance - subsequent distance - stops to pass - Itinerary distance - Transport - Show public transport stops on the map. - Show transport stops - OsmAnd navigation app - POI data was updated ({0} were loaded) - Could not update local POI list - Could not load data from server - No offline POI data available for this area - Zooming in lets you update POIs - Update POI - Update local data from the Internet? - City: {0} - Street: {0}, {1} - Intersection: {0} x {1} in {2} - Building: {0}, {1}, {2} - Favorite - Uploading data… - Uploading… - Nothing found - Searching… - Searching address… - Online search using OSM Nominatim - Online search: House number, street, city - Offline search - Online search - Max. online zoom - Do not browse online map tiles for zoom levels beyond this. - Total distance %1$s, traveling time %2$d h %3$d min. - Select an online or offline navigation service. - Navigation service - The data storage folder on the memory card is not accessible! - Download {0} - {1} ? - Offline data for {0} already exists ({1}). Update it ({2})? - Address - Downloading list of available regions… - Could not fetch list of regions from https://osmand.net. - Favorite point was edited - No Favorite points exist - Replace - Display route - Start guidance - Please select destination first - Directions - Opening hours - Opening changeset… - Closing changeset… - Committing node… - Loading POI… - Authorization failed - failed - Converting local/English names… - Loading streets/buildings… - Loading postcodes… - Loading streets… - Loading cities… - POI - Could not save GPX file - Could not calculate route - Could not calculate route - Calculated route is empty - New route calculated, distance - You have arrived at your destination - Invalid coordinates - Go back to OsmAnd map - Loading data… - Reading local data… - Last OsmAnd run crashed. Log file is at {0}. Please report the issue and attach the log file. - Saving GPX file… - Finished - Use the Internet to calculate a route. - Use online navigation - Specify OpenStreetMap.org (OSM) settings needed for OSM submissions. - Specify language, download/reload data. - Data - Additional settings - Update map - Reload tile - Target - Select between local and English names. - Use English names on maps - App settings - Search address - Choose building - Choose street - Choose city or postcode - Choose country - Display viewing direction - Enable 3D view of the map. - Map View 3D - Show the last selected POI overlay on the map. - Show POI overlay - Choose the source of online or cached map tiles. - Tile map source - Map source - Use the Internet - Show your position - Show GPS coordinates on the map - Download missing map tiles - Navigation app - Search - Search - Choose POI - Find more - Search street incrementally - Search building incrementally - Choose region from list - Choose intersecting street - Closest amenities - Driving - Cycling - Walking - Center - Bottom - Input latitude & longitude in the selected format (D - degrees, M - minutes, S - seconds) - Latitude - Longitude - DDD.DD - DDD MM.MM - DDD MM SS.SS - Select address - Region - City - Street - Building - Building - Intersecting street - - Update map - Create POI - Enter Favorite name - Favorite - Favorite point \'\'{0}\'\' added. - Add Favorite - Edit Favorite - Delete Favorite - Delete Favorite point \'%s\'? - Favorite point {0} deleted. - Edit POI - Create POI - Delete {0} (comment)? - Delete POI - POI deleted - add - change - delete - Action {0} completed. - Could not perform action {0}. - I/O error while performing action {0}. - Info about node was not loaded - Open - Comment - Reopen - POI changing - All other tags are preserved - Commit - Filter - Save As - Delete selected filter? - Filter {0} has been deleted - Filter {0} has been created - e-mail - Camera focus type - Select the internal camera focus mode. - Auto focus - Hyperfocal focus - Extended depth of field (EDOF) - Focus is set at infinity - Macro (close-up) focus mode - The camera continuously tries to focus - Play sound on photo shot - Choose whether to play a sound when shooting photos. - Camera Picture Size - Select the internal camera picture size. - Invalid format: %s - You need to be connected to the Internet to install this plugin. - Get - Smart route recalculation - For long trips, only recalculate the initial part of the route. - Do you like OsmAnd? - We care about your opinion and your feedback is important to us. - Rate this app - Please give OsmAnd a score on Google Play - Tell us why. - Please tell us what would you want to change in this app. - Failed to upload - Delete change - Uploaded {0}/{1} - Try again - Error: {0} - Configure dashboard - Card was hidden - Undo - Skip - OsmAnd - Offline Maps\n& Navigation - Commit POI - Basic - Advanced - Building Number - Next - Opening at - Closing at - Contact info - Add opening hours - POI Type - Number of rows in dash %1$s - Please specify POI type. - Working days - Recent places - 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? - %1$s downloads left - Roads - Downloading - %1$d file - Show free version banner - Display the free version banner even in the paid version. - Buy - Please activate the \'Nautical map view\' plugin - Please activate the \'Contour lines\' plugin - Later - Full version - Downloads - The roads-only map is not needed, since you have the standard (full) map. Download it anyway? - %1$.1f of %2$.1f MB - %.1f MB - Update all (%1$s MB) - Free downloads used - Displays the amount of free downloads left. - Choose where you want to store maps and other data files. - Enter country name - New version - First steps with OsmAnd - Features - Help improve OsmAnd - Other - Plugins - First use - How to download maps, set basic settings. - Set up navigation. - Planning a trip - FAQ - Frequently asked questions - Map viewing - Searching the map - Installation and troubleshooting - Technical articles - Versions - Feedback - Contact - Map legend - The name contains too many capital letters. Continue? - Do you really want to save POI without type? - Modify OSM change - Use dashboard - Use menu - Dashboard or menu control - A choice is offered to primarily control the app via the flexible dashboard or a static menu. Your choice can always be changed in the dashboard settings. - Update - Only download on Wi-Fi - Live update - Update now - OsmAnd lacks permission to use the memory card - Last update: %s - Update time - Update size - "Last map change: %s" - Hourly - Daily - Weekly - Morning - Night - Select month and country - Number of contributors - Number of edits - Report for - File name contains illegal character - Quick action - Action %d - Screen %d - Add map marker - Add POI - Change map style - The map style has been changed to \"%s\". - New audio note - New video note - New photo note - Add OSM Note - Voice on/off - Unmute Voice - Mute Voice - Add GPX waypoint - Add parking place - Add action - Edit action - Add Favorite - Add action - Delete action - Are you sure you want to delete the action \"%s\"? - Show Favorites dialog - Name preset - Tapping this action button adds a map marker at the screen center location. - Tapping this action button will add a GPX waypoint in the middle of the screen. - Tapping this action button adds an audio note in the middle of the screen. - Tapping this action button adds a video note in the middle of the screen. - Tapping this action button adds a photo note in the middle of the screen. - Tapping this action button adds an OSM note in the middle of the screen. - Tapping this action button adds a POI in the middle of the screen. - Tapping this action button disables or enables voice guidance during navigation. - Tapping this action button adds a parking location in the middle of the screen. - Tapping this action button switch between Day and Night modes for OsmAnd - Day Mode - Night Mode - Switch Day/Night mode - Show an interim dialog - " is saved to " - Place - Specified quick action name already in use, changed to %1$s to avoid duplication. - Quick action name duplicate - Tapping this action button shows or hides the Favorite points on the map. - Tapping this action button shows or hides POIs on the map. - Show/hide Favorites - Show Favorites - Hide Favorites - Show/hide POI - Show %1$s - Hide %1$s - Add a category - Create items - Configure map - Navigation - Leave blank to use the address or place name. - This message is included in the comment field. - Message - Select the category to save the Favorite in. - Select an optional category. - POI list - Add one or more POI categories to display on the map. - Tapping this action button pages through the list below. - Add a map style - Fill out all parameters - Map styles - Change map overlay - Map overlays - Add overlay - The map overlay has been changed to \"%s\". - The map underlay has been changed to \"%s\". - Change map underlay - Map underlays - Add underlay - Change map source - Map sources - Add map source - The map source has been changed to \"%s\". - Change button position - Long-tapping and dragging the button changes its position on the screen. - Action name - You need to be connected to the Internet to view photos from Mapillary. - Retry - Add Route Points - Add Waypoint - Add Line - Save GPX Waypoint - Save Route Point - Waypoint 1 - Route Point 1 - Add GPX files - Import GPX files, or record tracks. - Add Favorites - Import Favorites, or add via 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 - Winter and ski - Touring view - Nautical - Copy Point/POI name - Unnamed location - Tunnel ahead - Tunnels - Download the Wikipedia articles for %1$s to read them offline. - Download Wikipedia data - Open article online - View article in a web browser. - this region - Searching for the corresponding wiki article - Article not found - How to open Wikipedia articles? - Tap a button and listen to the corresponding voice prompt to identify missing or faulty prompts. - Class - Surface - Smoothness - Steepness - You are using {0} Map which is powered by OsmAnd. Do you want to launch OsmAnd full version? - Launch OsmAnd? + Total native memory + Starting point too far from nearest road. + Shared location + Pick up the car from parking + Warning + A notification to pick up your car has been added to your calendar. It will remain there until you will delete it manually. + Set parking time limit + Delete the parking location marker? + Delete a parking marker + Choose the type of parking + Time-limited + Time-unlimited + Add a notification to the Calendar app + Time-limited parking + Time-unlimited parking + The location of your parked vehicle. %1$s + To pick up the vehicle at: + PM + AM + Parking spot + Mark as parking location + Delete parking marker + Public + Identifiable + Trackable + Private + ASAP + Share route as GPX file + Route shared via OsmAnd + Roundabout: Take %1$d exit and go + Keep left and go + Keep right and go + Make all areal land features on map transparent. + Polygons + Rendering mode + Optimize map for + + Display from zoom level (requires contour data): + Show contour lines + Increase amount of map detail shown. + Show more map detail + Routing data + Format + POI (Point of interest) search + Address search + Coordinates + Public transport search + A way to search for Favorites + OsmAnd offline navigation is temporarily not available. + Left-hand traffic + For countries where people drive on the left side of the road. + Tap any existing item to see more details, long-tap to deactivate or delete. Current data on device (%1$s free): + Starting point not yet determined + Position not yet known + Modify transparency (0 - transparent, 255 - opaque) + Cancel file download? + + Thank you for using OsmAnd. Download regional data for offline use via \'Settings\' → \'Manage map files\' to view maps, locate addresses, look up POIs, find public transport and more. + Basemap is selected for download so that the app functions. + Online and cached tile maps + Standard maps (vector) + Download and manage offline map files stored on your device. + Enable the \'Online maps\' plugin to select different map sources + Online and tile maps + Use online maps (download and cache tiles on memory card). + Configure online or cached tile map sources. + Plugins + Plugins activate advanced settings and additional functionality. + Plugins + Vector maps likely display faster. May not work well on some devices. + Select a voice and test by playing prompts + Native rendering + Test voice prompts + No offline vector map present for this location. Download one in \'Settings\' (\'Manage map files\'), or switch to the \'Online maps\' plugin. + Send GPX files to OSM? + Visibility + Tags + Description + Please specify your OSM username and password to upload GPX files. + Support + Support new features + Donate to see new features implemented in the app. + Display ruler + Info + Return to position + Accessibility mode + Turns on the features for impaired users. + According to the Android system setting + Back to menu + Zoom out + Zoom in + Zoom level is + north + north-north-east + north-east + east-north-east + east + east-south-east + south-east + south-south-east + south + south-south-west + south-west + west-south-west + west + west-north-west + north-west + north-north-west + forward + right-forward + to the right + right-backward + backward + left-backward + to the left + left-forward + o\'clock + toward + Accuracy + Altitude + No info + Sidewise (8 sectors) + Clockwise (12 sectors) + Direction style + Choose style to express relative directions while moving. + Start auto announcing + Stop auto announcing + I am here + Change map zooming by horizontal trackball movement. + Use trackball for zoom control + Accessibility related preferences. + Early + Normal + Late + In the last meters + Arrival announcement + How soon do you want the arrival announcement? + Not enough process memory to display selected area + Fluorescent overlays + Use fluorescent colors to display tracks and routes. + Offline editing + Always use offline editing. + POI changes inside app do not affect downloaded map files, changes are saved as a file on your device instead. + Uploading… + {0} POI/Notes were uploaded + Upload all + Upload modification to OSM + Delete modification + Asynchronous OSM editing: + OSM POIs/Notes saved on device + Show and manage OSM POIs/Notes noted in database on device. + Specify the online tracking interval. + Online tracking interval + Specify the web address with parameter syntax: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. + Online tracking web address + Time buffer for online tracking + Specify a time buffer to keep locations to send without connection + Log track using GPX widget or via \'Trip recording\' settings. + Show current track + You can download or update %1$s maps. + Free version + Show POI description. + North America + Europe - Netherlands + North America - United States + Central America + South America + Europe + Europe - France + Europe - Germany + Russia + Africa + Asia + Australia and Oceania + Worldwide and topic maps + Worldwide Wikipedia POIs + Voice prompts (recorded, limited features) + Voice prompts (TTS-synthesized, prefer) + Wikipedia (offline) + User defined + File containing previously exported Favorites already exists. Replace it? + Profile Specific Settings + Navigation + Specify options for navigation. + Global Settings + Manage map files + General + Configure display and common settings for the app. + Global app settings + Your OSM username + Needed for openstreetmap.org submissions. + Your OSM password + Background mode + OsmAnd runs in the background with the screen off. + There is not enough free space to download %1$s MB (free: %2$s). + Transparent theme + Native library not supported on this device. + Initializing native library… + Auto-center map view + Time until the map view synchronizes with the current position. + + Only manually (tap arrow) + Re-announce navigation instructions at regular intervals. + Repeat navigation instructions + Auto-center nav only + Auto-center map view only while navigating. + Auto-center map view in use. + Vector renderer specific options + Overlay / underlay + Map source settings + Vector map settings + Delete %1$s? + Suburb + Hamlet + Village + Town + City + Stop simulation + Start simulation + File can not be renamed. + File with that name already exists. + GPX route + Several POI categories found matching the query: + Local data to search POI is not present. + Search by name + The POI data file \'%1$s\' is redundant and can be deleted. + Local file to maintain POI changes not found and could not be created. + Upgrade OsmAnd+ + Download the new version of the app to be able to use the new map files. + Online Nominatim + Searching position… + My Position (found) + Address… + Favorites… + Undefined + + Current map center + Origin: + Search nearby + Route saved as \'%1$s\'. + Filename: + File with same name already exists. + Upload GPX files to the OSM community, improving the maps. + %1$d of %2$d item(s) uploaded. + Send to OSM + Show more map detail + Show some vector map detail (roads etc.) at lower zoom levels already. + Favorite points deleted. + You are going to delete %1$d Favorites and %2$d Favorite groups. Are you sure? + Home + Friends + Places + Others + Name + Category + No, thanks + Download the base world map to get an overview covering the whole world at low zoom levels. + Download (\'offline\') data to use maps offline. + Released + Local version + %1$d of %2$d item(s) deactivated. + %1$d of %2$d item(s) deleted. + %1$d of %2$d item(s) activated. + No items to %1$s + You are about to %1$s %2$s item(s). Continue? + Manage map files. + Activate + Deactivate + POI data + Address data + Public transport data + Map data + Deactivated + Voice prompts (TTS) + Voice prompts (recorded) + + POI data + TTS voice + New Search + Select the text size for names on the map. + Map font size + Rendering debug info + Display the rendering performance. + Unpacking new data… + An online navigation service is selected but you are not connected to the Internet. + Unsupported language + The selected language is not supported by the installed Android TTS (text-to-speech) engine. Look for another TTS engine in the market? Otherwise the preset TTS language will be used. + Missing data + Go to the market to download selected language? + Reverse GPX direction + Use current destination + Pass along entire track + + Offline vector map present for this location. \n\t\n\tTo use activate \'Menu\' → \'Configure map\' → \'Map Source…\' → \'Offline vector maps\'. + Voice guidance output + Select the speaker to play the voice guidance. + Phone call audio (also to interrupt car BT stereos) + Notification audio + Media/music audio + The app cannot download the map layer %1$s, reinstalling it might help. + Modify the overlay transparency. + Overlay transparency + Modify the base map transparency. + Base map transparency + Underlay map… + Underlay map + Choose the underlay map. + Overlay map… + Overlay map + Choose the overlay map. + Map already installed, \'Settings\' will be updated. + Select (tile) maps to install or update. + Unable to perform operation without a connection to the Internet. + Install more… + Use raster maps for anything beyond this level. + Minimum vector zoom level + Online OSM map classification with images. + Could not perform offline search. + Could not parse geo intent \'%s\'. + Search by geo location + System + Select display language (takes effect when OsmAnd is restarted). + Display language + incomplete + Change what distance is measured in. + Units of length + Miles/feet + Miles/yards + Kilometers/meters + yd + ft + mph + mi + Share location using + Location: %1$s\n%2$s + To see location follow the web link %1$s or Android intent link %2$s + Send location + Share location + GPX Waypoint \'\'{0}\'\' added + Add waypoint to recorded GPX track + Add GPX waypoint + Administrative + Barrier + Education + Emergency + Entertainment + Finance + Geocache + Healthcare + Historic + Landuse + Leisure + Man made + Military + Natural + Office + Other + Shop + Sport + Sustenance + Tourism + Transport + Indexing address… + Indexing map… + Indexing POI… + Indexing transport… + km + km/h + m + Deprecated map data format \'\'{0}\'\', not supported + Nearest POIs + Custom filter + Online NameFinder + Reading cached tiles… + The index \'\'{0}\'\' did not fit into memory + The version of index \'\'{0}\'\' is not supported + OsmAnd offline navigation is an experimental feature and it does not work for longer distances than about 20 km.\n\nNavigation temporarily switched to online CloudMade service. + Can not find the specified folder. + All offline data in the old installed app will be supported by the new one, but Favorite points must be exported from the old app and then imported in the new one. + Build {0} was installed ({1}). + Downloading build… + Install OsmAnd - {0} of {1} {2} MB ? + Retrieving the list of OsmAnd builds failed + Loading OsmAnd builds… + Select an OsmAnd build to install + GPS status app not installed. Search in market? + + No voice guidance available, please go to \'Settings\' → \'Navigation settings\' → \'Voice guidance\' and select or download a voice prompt package. + No voice guidance selected + Day + Night + Sunrise/sunset + Light sensor + Select rationale for switching between night and day mode. + Day/night mode + Download {0} file(s) ({1} MB)? + {0} item(s) selected + Downloaded + Fastest route + Enable to calculate fastest route or disable for fuel-saving route. + At zoom {0} download {1} tiles ({2} MB) + Download map + Select maximum zoom to preload + This map could not be downloaded + Continuous rendering + Display continuous rendering instead of image-at-once. + Could not draw selected area + Use location… + Renderer loaded + Could not load renderer + Vector renderer + Choose the rendering appearance. + Show POI website + Show POI phone + type to filter + High resolution display + Do not stretch (and blur) map tiles on high density displays. + Search public transport + Transport results (no destination): + Transport results ({0} to destination): + Reset transport search + Recorded voice + Voice prompts + Vector maps were not loaded + + No GPX files found in the tracks folder + GPX files… + Could not read GPX data + Offline vector maps + Search transport at stop + Modify POI + Delete POI + Compass direction + Movement direction + No rotation (north always upwards) + Select map screen alignment. + Map orientation + Route details + Favorites imported + Save data as GPX file or import waypoints to \'Favorites\'? + GPX file containing Favorites not found at {0} + Favorites saved to {0} + No Favorite points to save + Favorites shared via OsmAnd + Could not load GPX + Send report + Could not find any downloaded maps on memory card. + Type to find a POI + Any + Thanks to Yandex for traffic info. + Yandex traffic + Route + OSM Notes (online) + POI overlay… + Map source… + Map layers + Search POI + Use a trackball device to move the map. + Use trackball + Sets highest waiting time allowed for each background position fix. + Maximum wait for fix + Where am I? + OsmAnd navigation service + Network + GPS + seconds + min. + Set wake-up interval used by the background service. + Select location method used by the background service. + Location provider + Tracks your position while the screen is off. + Run OsmAnd in background + The background navigation service requires a location provider to be turned on. + Hide filter + Show filter + Filter + Sound is on + Sound is off + Initializing voice data… + Unsupported version of voice data + Specified voice data is corrupted + Selected voice data is not available + Memory card not accessible.\nYou won\'t be able to see maps or find things. + Memory card read-only.\nIt is now only possible to see the preloaded map, not download new areas. + Unzipping file… + Turn right and go + Turn sharply right and go + Turn slightly right and go + Turn left and go + Turn sharply left and go + Turn slightly left and go + Make U-turn and go + Head + Later + Download regions + Awaiting signal… + Search near current map center + Search nearby + Same as device + Portrait + Landscape + Screen orientation + Portrait, landscape, or device. + Opening hours format can not be changed + Add new rule + Routes + Stop + stops + Subsequent itinerary + Prior itinerary + Finish search + Choose stop to get off + prior distance + subsequent distance + stops to pass + Itinerary distance + Transport + Show public transport stops on the map. + Show transport stops + OsmAnd navigation app + POI data was updated ({0} were loaded) + Could not update local POI list + Could not load data from server + No offline POI data available for this area + Zooming in lets you update POIs + Update POI + Update local data from the Internet? + City: {0} + Street: {0}, {1} + Intersection: {0} x {1} in {2} + Building: {0}, {1}, {2} + Favorite + Uploading data… + Uploading… + Nothing found + Searching… + Searching address… + Online search using OSM Nominatim + Online search: House number, street, city + Offline search + Online search + Max. online zoom + Do not browse online map tiles for zoom levels beyond this. + Total distance %1$s, traveling time %2$d h %3$d min. + Select an online or offline navigation service. + Navigation service + The data storage folder on the memory card is not accessible! + Download {0} - {1} ? + Offline data for {0} already exists ({1}). Update it ({2})? + Address + Downloading list of available regions… + Could not fetch list of regions from https://osmand.net. + Favorite point was edited + No Favorite points exist + Replace + Display route + Start guidance + Please select destination first + Directions + Opening hours + Opening changeset… + Closing changeset… + Committing node… + Loading POI… + Authorization failed + failed + Converting local/English names… + Loading streets/buildings… + Loading postcodes… + Loading streets… + Loading cities… + POI + Could not save GPX file + Could not calculate route + Could not calculate route + Calculated route is empty + New route calculated, distance + You have arrived at your destination + Invalid coordinates + Go back to OsmAnd map + Loading data… + Reading local data… + Last OsmAnd run crashed. Log file is at {0}. Please report the issue and attach the log file. + Saving GPX file… + Finished + Use the Internet to calculate a route. + Use online navigation + Specify OpenStreetMap.org (OSM) settings needed for OSM submissions. + Specify language, download/reload data. + Data + Additional settings + Update map + Reload tile + Target + Select between local and English names. + Use English names on maps + App settings + Search address + Choose building + Choose street + Choose city or postcode + Choose country + Display viewing direction + Enable 3D view of the map. + Map View 3D + Show the last selected POI overlay on the map. + Show POI overlay + Choose the source of online or cached map tiles. + Tile map source + Map source + Use the Internet + Show your position + Show GPS coordinates on the map + Download missing map tiles + Navigation app + Search + Search + Choose POI + Find more + Search street incrementally + Search building incrementally + Choose region from list + Choose intersecting street + Closest amenities + Driving + Cycling + Walking + Center + Bottom + Input latitude & longitude in the selected format (D - degrees, M - minutes, S - seconds) + Latitude + Longitude + DDD.DD + DDD MM.MM + DDD MM SS.SS + Select address + Region + City + Street + Building + Building + Intersecting street + + Update map + Create POI + Enter Favorite name + Favorite + Favorite point \'\'{0}\'\' added. + Add Favorite + Edit Favorite + Delete Favorite + Delete Favorite point \'%s\'? + Favorite point {0} deleted. + Edit POI + Create POI + Delete {0} (comment)? + Delete POI + POI deleted + add + change + delete + Action {0} completed. + Could not perform action {0}. + I/O error while performing action {0}. + Info about node was not loaded + Open + Comment + Reopen + POI changing + All other tags are preserved + Commit + Filter + Save As + Delete selected filter? + Filter {0} has been deleted + Filter {0} has been created + e-mail + Camera focus type + Select the internal camera focus mode. + Auto focus + Hyperfocal focus + Extended depth of field (EDOF) + Focus is set at infinity + Macro (close-up) focus mode + The camera continuously tries to focus + Play sound on photo shot + Choose whether to play a sound when shooting photos. + Camera Picture Size + Select the internal camera picture size. + Invalid format: %s + You need to be connected to the Internet to install this plugin. + Get + Smart route recalculation + For long trips, only recalculate the initial part of the route. + Do you like OsmAnd? + We care about your opinion and your feedback is important to us. + Rate this app + Please give OsmAnd a score on Google Play + Tell us why. + Please tell us what would you want to change in this app. + Failed to upload + Delete change + Uploaded {0}/{1} + Try again + Error: {0} + Configure dashboard + Card was hidden + Undo + Skip + OsmAnd + Offline Maps\n& Navigation + Commit POI + Basic + Advanced + Building Number + Next + Opening at + Closing at + Contact info + Add opening hours + POI Type + Number of rows in dash %1$s + Please specify POI type. + Working days + Recent places + 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? + %1$s downloads left + Roads + Downloading - %1$d file + Show free version banner + Display the free version banner even in the paid version. + Buy + Please activate the \'Nautical map view\' plugin + Please activate the \'Contour lines\' plugin + Later + Full version + Downloads + The roads-only map is not needed, since you have the standard (full) map. Download it anyway? + %1$.1f of %2$.1f MB + %.1f MB + Update all (%1$s MB) + Free downloads used + Displays the amount of free downloads left. + Choose where you want to store maps and other data files. + Enter country name + New version + First steps with OsmAnd + Features + Help improve OsmAnd + Other + Plugins + First use + How to download maps, set basic settings. + Set up navigation. + Planning a trip + FAQ + Frequently asked questions + Map viewing + Searching the map + Installation and troubleshooting + Technical articles + Versions + Feedback + Contact + Map legend + The name contains too many capital letters. Continue? + Do you really want to save POI without type? + Modify OSM change + Use dashboard + Use menu + Dashboard or menu control + A choice is offered to primarily control the app via the flexible dashboard or a static menu. Your choice can always be changed in the dashboard settings. + Update + Only download on Wi-Fi + Live update + Update now + OsmAnd lacks permission to use the memory card + Last update: %s + Update time + Update size + "Last map change: %s" + Hourly + Daily + Weekly + Morning + Night + Select month and country + Number of contributors + Number of edits + Report for + File name contains illegal character + Quick action + Action %d + Screen %d + Add map marker + Add POI + Change map style + The map style has been changed to \"%s\". + New audio note + New video note + New photo note + Add OSM Note + Voice on/off + Unmute Voice + Mute Voice + Add GPX waypoint + Add parking place + Add action + Edit action + Add Favorite + Add action + Delete action + Are you sure you want to delete the action \"%s\"? + Show Favorites dialog + Name preset + Tapping this action button adds a map marker at the screen center location. + Tapping this action button will add a GPX waypoint in the middle of the screen. + Tapping this action button adds an audio note in the middle of the screen. + Tapping this action button adds a video note in the middle of the screen. + Tapping this action button adds a photo note in the middle of the screen. + Tapping this action button adds an OSM note in the middle of the screen. + Tapping this action button adds a POI in the middle of the screen. + Tapping this action button disables or enables voice guidance during navigation. + Tapping this action button adds a parking location in the middle of the screen. + Tapping this action button switch between Day and Night modes for OsmAnd + Day Mode + Night Mode + Switch Day/Night mode + Show an interim dialog + " is saved to " + Place + Specified quick action name already in use, changed to %1$s to avoid duplication. + Quick action name duplicate + Tapping this action button shows or hides the Favorite points on the map. + Tapping this action button shows or hides POIs on the map. + Show/hide Favorites + Show Favorites + Hide Favorites + Show/hide POI + Show %1$s + Hide %1$s + Add a category + Create items + Configure map + Navigation + Leave blank to use the address or place name. + This message is included in the comment field. + Message + Select the category to save the Favorite in. + Select an optional category. + POI list + Add one or more POI categories to display on the map. + Tapping this action button pages through the list below. + Add a map style + Fill out all parameters + Map styles + Change map overlay + Map overlays + Add overlay + The map overlay has been changed to \"%s\". + The map underlay has been changed to \"%s\". + Change map underlay + Map underlays + Add underlay + Change map source + Map sources + Add map source + The map source has been changed to \"%s\". + Change button position + Long-tapping and dragging the button changes its position on the screen. + Action name + You need to be connected to the Internet to view photos from Mapillary. + Retry + Add Route Points + Add Waypoint + Add Line + Save GPX Waypoint + Save Route Point + Waypoint 1 + Route Point 1 + Add GPX files + Import GPX files, or record tracks. + Add Favorites + Import Favorites, or add via 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 + Winter and ski + Touring view + Nautical + Copy Point/POI name + Unnamed location + Tunnel ahead + Tunnels + Download the Wikipedia articles for %1$s to read them offline. + Download Wikipedia data + Open article online + View article in a web browser. + this region + Searching for the corresponding wiki article + Article not found + How to open Wikipedia articles? + Tap a button and listen to the corresponding voice prompt to identify missing or faulty prompts. + Class + Surface + Smoothness + Steepness + You are using {0} Map which is powered by OsmAnd. Do you want to launch OsmAnd full version? + Launch OsmAnd?
diff --git a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java index fd0d2290d4..b13cc6aab6 100644 --- a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java +++ b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java @@ -14,6 +14,7 @@ import android.preference.PreferenceScreen; import android.support.v7.app.AlertDialog; import android.view.View; +import net.osmand.PlatformUtil; import net.osmand.StateChangedListener; import net.osmand.plus.ApplicationMode; import net.osmand.plus.OsmAndLocationSimulation; @@ -22,6 +23,7 @@ import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.SettingsBaseActivity; import net.osmand.plus.activities.actions.AppModeDialog; +import net.osmand.plus.profiles.SettingsProfileFragment; import net.osmand.util.SunriseSunset; import java.text.SimpleDateFormat; diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java index 6c188b2c24..c1c1140940 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java @@ -11,6 +11,7 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import java.util.List; +import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.profiles.ProfileMenuAdapter.ProfileViewHolder; @@ -20,10 +21,13 @@ import net.osmand.plus.profiles.SettingsProfileFragment.ProfileItem; public class ProfileMenuAdapter extends RecyclerView.Adapter { private List items; + private ProfileListener listener = null; OsmandApplication app; - public ProfileMenuAdapter(List items, OsmandApplication app) { + + public ProfileMenuAdapter(List items, OsmandApplication app, ProfileListener listener) { this.items = items; + this.listener = listener; this.app = app; } @@ -36,6 +40,12 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter notifyDataSetChanged(); } + public void updateItemsList(List newList) { + items.clear(); + items.addAll(newList); + notifyDataSetChanged(); + } + @NonNull @Override public ProfileViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -45,8 +55,8 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter } @Override - public void onBindViewHolder(@NonNull ProfileViewHolder holder, int position) { - ProfileItem item = items.get(position); + public void onBindViewHolder(@NonNull final ProfileViewHolder holder, int position) { + final ProfileItem item = items.get(position); holder.title.setText(item.getTitle()); holder.title.setTextColor(app.getResources().getColor(isNightMode(app) ? R.color.main_font_dark : R.color.main_font_light)); holder.descr.setText(String.format("Type: %s", item.getDescr())); @@ -57,13 +67,14 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter holder.aSwitch.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - //todo change profile state; + listener.changeProfileStatus(item, holder.aSwitch.isChecked()); + PlatformUtil.getLog(ProfileMenuAdapter.class).debug("Is checked: " + holder.aSwitch.isChecked()); } }); holder.profileOptions.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - //todo open profile settings; + listener.editProfile(item); } }); } @@ -91,4 +102,10 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter profileOptions = itemView.findViewById(R.id.profile_settings); } } + + public interface ProfileListener { + void changeProfileStatus(ProfileItem item, boolean isSelected); + void editProfile(ProfileItem item); + } } + diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java index 949bb03ab4..7990912ec9 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java @@ -11,11 +11,15 @@ import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.LinearLayout; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import net.osmand.PlatformUtil; import net.osmand.plus.ApplicationMode; import net.osmand.plus.R; import net.osmand.plus.base.BaseOsmAndFragment; +import net.osmand.plus.profiles.ProfileMenuAdapter.ProfileListener; +import net.sf.junidecode.App; import org.apache.commons.logging.Log; public class SettingsProfileFragment extends BaseOsmAndFragment { @@ -26,8 +30,10 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { private RecyclerView recyclerView; private LinearLayout btn; + ProfileListener listener = null; + private List allDefaultModes; - private List selectedDefaultModes; + private Set selectedDefaultModes; private List profilesList; @Override @@ -36,7 +42,7 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { profilesList = new ArrayList<>(); allDefaultModes = ApplicationMode.allPossibleValues(); allDefaultModes.remove(ApplicationMode.DEFAULT); - selectedDefaultModes = new ArrayList<>(ApplicationMode.values(getMyApplication())); + selectedDefaultModes = new LinkedHashSet<>(ApplicationMode.values(getMyApplication())); selectedDefaultModes.remove(ApplicationMode.DEFAULT); for (ApplicationMode am : allDefaultModes) { ProfileItem profileItem = new ProfileItem( @@ -66,7 +72,37 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { //todo add new profile; } }); - adapter = new ProfileMenuAdapter(profilesList, getMyApplication()); + listener = new ProfileListener() { + @Override + public void changeProfileStatus(ProfileItem item, boolean isSelected) { + LOG.debug(item.getTitle() + " - " + isSelected); + StringBuilder vls = new StringBuilder(ApplicationMode.DEFAULT.getStringKey()+","); + ApplicationMode mode = null; + for (ApplicationMode sam : allDefaultModes) { + if (sam.toHumanString(getContext()).equals(item.getTitle())) { + mode = sam; + } + } + + if(isSelected && mode != null) { + selectedDefaultModes.add(mode); + } else if (mode != null) { + selectedDefaultModes.remove(mode); + } + + for (ApplicationMode sam : selectedDefaultModes) { + vls.append(sam.getStringKey()).append(","); + } + getSettings().AVAILABLE_APP_MODES.set(vls.toString()); + + } + + @Override + public void editProfile(ProfileItem item) { + + } + }; + adapter = new ProfileMenuAdapter(profilesList, getMyApplication(), listener); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); recyclerView.setAdapter(adapter); From 289e2e86792ba578b2eea4be601ed33a18a361c7 Mon Sep 17 00:00:00 2001 From: madwasp79 Date: Thu, 28 Mar 2019 07:05:33 +0200 Subject: [PATCH 04/76] Profile details edit - work in progress --- OsmAnd/AndroidManifest.xml | 10 ++++- OsmAnd/res/layout/profile_list_item.xml | 1 + .../activities/OsmandActionBarActivity.java | 44 +++++++++---------- .../plus/profiles/ProfileMenuAdapter.java | 1 - .../profiles/SelectedProfileActivity.java | 31 +++++++++++++ .../profiles/SelectedProfileFragment.java | 24 ++++++++++ .../profiles/SettingsProfileActivity.java | 7 +-- .../profiles/SettingsProfileFragment.java | 9 +++- 8 files changed, 95 insertions(+), 32 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java create mode 100644 OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index 6cc4201970..483726be1e 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -1063,8 +1063,14 @@ - + android:name=".profiles.SettingsProfileActivity"/> + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/profile_list_item.xml b/OsmAnd/res/layout/profile_list_item.xml index b6da74edbb..de8c88797e 100644 --- a/OsmAnd/res/layout/profile_list_item.xml +++ b/OsmAnd/res/layout/profile_list_item.xml @@ -64,6 +64,7 @@ android:src="@drawable/ic_action_additional_option" android:tint="?attr/primary_icon_color" android:layout_gravity="center_vertical" + android:clickable="true" android:padding="@dimen/setting_profile_item_switch_margin"/> @Override public void onClick(View v) { listener.changeProfileStatus(item, holder.aSwitch.isChecked()); - PlatformUtil.getLog(ProfileMenuAdapter.class).debug("Is checked: " + holder.aSwitch.isChecked()); } }); holder.profileOptions.setOnClickListener(new OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java b/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java new file mode 100644 index 0000000000..f396f91d89 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java @@ -0,0 +1,31 @@ +package net.osmand.plus.profiles; + +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.Nullable; + +import net.osmand.plus.R; +import net.osmand.plus.activities.OsmandActionBarActivity; + +public class SelectedProfileActivity extends OsmandActionBarActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + getMyApplication().applyTheme(this); + super.onCreate(savedInstanceState); + setContentView(R.layout.single_fragment_layout); + + Intent intent = getIntent(); + if (intent.getExtras() != null) { + if (getSupportActionBar() != null) { + getSupportActionBar().setTitle(intent.getStringExtra("profile_name")); + } + } + +// if (savedInstanceState == null) { +// SettingsProfileFragment profileFragment = new SettingsProfileFragment(); +// profileFragment.setArguments(getIntent().getExtras()); +// getSupportFragmentManager().beginTransaction().add(android.R.id.content, profileFragment).commit(); +// } + } +} diff --git a/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java new file mode 100644 index 0000000000..09c2dcb1de --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java @@ -0,0 +1,24 @@ +package net.osmand.plus.profiles; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import net.osmand.plus.base.BaseOsmAndFragment; + +public class SelectedProfileFragment extends BaseOsmAndFragment { + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return super.onCreateView(inflater, container, savedInstanceState); + } +} diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java index 4417572672..081c3ac7d2 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileActivity.java @@ -8,14 +8,9 @@ import net.osmand.plus.activities.OsmandActionBarActivity; public class SettingsProfileActivity extends OsmandActionBarActivity { - private OsmandApplication app; - - - @Override public void onCreate(Bundle savedInstanceState) { - app = getMyApplication(); - app.applyTheme(this); + getMyApplication().applyTheme(this); super.onCreate(savedInstanceState); setContentView(R.layout.single_fragment_layout); if (savedInstanceState == null) { diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java index 7990912ec9..5ebe72bb58 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java @@ -1,5 +1,6 @@ package net.osmand.plus.profiles; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -42,6 +43,10 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { profilesList = new ArrayList<>(); allDefaultModes = ApplicationMode.allPossibleValues(); allDefaultModes.remove(ApplicationMode.DEFAULT); + allDefaultModes.remove(ApplicationMode.AIRCRAFT); + allDefaultModes.remove(ApplicationMode.MOTORCYCLE); + allDefaultModes.remove(ApplicationMode.HIKING); + allDefaultModes.remove(ApplicationMode.TRAIN); selectedDefaultModes = new LinkedHashSet<>(ApplicationMode.values(getMyApplication())); selectedDefaultModes.remove(ApplicationMode.DEFAULT); for (ApplicationMode am : allDefaultModes) { @@ -99,7 +104,9 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { @Override public void editProfile(ProfileItem item) { - + Intent intent = new Intent(getActivity(), SelectedProfileActivity.class); + intent.putExtra("profile_name", item.title); + startActivity(intent); } }; adapter = new ProfileMenuAdapter(profilesList, getMyApplication(), listener); From 4b1d1ef6b5830a1e59fb92df9bcaa5644a3d6a8c Mon Sep 17 00:00:00 2001 From: madwasp79 Date: Thu, 28 Mar 2019 17:50:17 +0200 Subject: [PATCH 05/76] work in progress --- OsmAnd/res/drawable/btn_right_round.xml | 2 +- OsmAnd/res/drawable/btn_round.xml | 5 +- .../res/layout/fragment_selected_profile.xml | 356 ++++++++++++++++++ OsmAnd/res/values/colors.xml | 4 + .../net/osmand/plus/profiles/AppProfile.java | 97 +++++ .../plus/profiles/ProfileMenuAdapter.java | 21 +- .../profiles/SelectedProfileActivity.java | 26 +- .../profiles/SelectedProfileFragment.java | 48 ++- .../profiles/SettingsProfileActivity.java | 2 +- .../profiles/SettingsProfileFragment.java | 72 +--- 10 files changed, 545 insertions(+), 88 deletions(-) create mode 100644 OsmAnd/res/layout/fragment_selected_profile.xml create mode 100644 OsmAnd/src/net/osmand/plus/profiles/AppProfile.java diff --git a/OsmAnd/res/drawable/btn_right_round.xml b/OsmAnd/res/drawable/btn_right_round.xml index 843840c380..dd4ff6f2e0 100644 --- a/OsmAnd/res/drawable/btn_right_round.xml +++ b/OsmAnd/res/drawable/btn_right_round.xml @@ -10,7 +10,7 @@ diff --git a/OsmAnd/res/drawable/btn_round.xml b/OsmAnd/res/drawable/btn_round.xml index eb1818b047..15222336a3 100644 --- a/OsmAnd/res/drawable/btn_round.xml +++ b/OsmAnd/res/drawable/btn_round.xml @@ -1,7 +1,6 @@ - - - + + \ No newline at end of file diff --git a/OsmAnd/res/layout/fragment_selected_profile.xml b/OsmAnd/res/layout/fragment_selected_profile.xml new file mode 100644 index 0000000000..40c2469ec9 --- /dev/null +++ b/OsmAnd/res/layout/fragment_selected_profile.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +