Merge branch 'master' into straight_to
This commit is contained in:
commit
b39612f985
59 changed files with 890 additions and 458 deletions
|
@ -29,6 +29,7 @@ import java.util.Iterator;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
@ -54,6 +55,8 @@ public class OsmandRegions {
|
|||
|
||||
private BinaryMapIndexReader reader;
|
||||
private String locale = "en";
|
||||
// locale including region
|
||||
private String locale2 = null;
|
||||
private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandRegions.class);
|
||||
|
||||
WorldRegion worldRegion = new WorldRegion(WorldRegion.WORLD);
|
||||
|
@ -73,6 +76,7 @@ public class OsmandRegions {
|
|||
Integer nameEnType = null;
|
||||
Integer nameType = null;
|
||||
Integer nameLocaleType = null;
|
||||
Integer nameLocale2Type = null;
|
||||
Integer langType = null;
|
||||
Integer metricType = null;
|
||||
Integer leftHandDrivingType = null;
|
||||
|
@ -374,7 +378,19 @@ public class OsmandRegions {
|
|||
}
|
||||
|
||||
public void setLocale(String locale) {
|
||||
setLocale(locale, null);
|
||||
}
|
||||
|
||||
public void setLocale(String locale, String country) {
|
||||
this.locale = locale;
|
||||
// Check locale and give 2 locale names
|
||||
if("zh".equals(locale)) {
|
||||
if("TW".equalsIgnoreCase(country)) {
|
||||
this.locale2 = "zh-hant";
|
||||
} else if("CN".equalsIgnoreCase(country)) {
|
||||
this.locale2 = "zh-hans";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -427,7 +443,12 @@ public class OsmandRegions {
|
|||
parentRelations.put(rd.regionFullName, rd.regionParentFullName);
|
||||
}
|
||||
rd.regionName = mapIndexFields.get(mapIndexFields.nameType, object);
|
||||
rd.regionNameLocale = mapIndexFields.get(mapIndexFields.nameLocaleType, object);
|
||||
if(mapIndexFields.nameLocale2Type != null) {
|
||||
rd.regionNameLocale = mapIndexFields.get(mapIndexFields.nameLocale2Type, object);
|
||||
}
|
||||
if (rd.regionNameLocale == null) {
|
||||
rd.regionNameLocale = mapIndexFields.get(mapIndexFields.nameLocaleType, object);
|
||||
}
|
||||
rd.regionNameEn = mapIndexFields.get(mapIndexFields.nameEnType, object);
|
||||
rd.params.regionLang = mapIndexFields.get(mapIndexFields.langType, object);
|
||||
rd.params.regionLeftHandDriving = mapIndexFields.get(mapIndexFields.leftHandDrivingType, object);
|
||||
|
@ -543,6 +564,9 @@ public class OsmandRegions {
|
|||
mapIndexFields.nameType = object.getMapIndex().getRule(FIELD_NAME, null);
|
||||
mapIndexFields.nameEnType = object.getMapIndex().getRule(FIELD_NAME_EN, null);
|
||||
mapIndexFields.nameLocaleType = object.getMapIndex().getRule(FIELD_NAME + ":" + locale, null);
|
||||
if(locale2 != null) {
|
||||
mapIndexFields.nameLocale2Type = object.getMapIndex().getRule(FIELD_NAME + ":" + locale2, null);
|
||||
}
|
||||
mapIndexFields.parentFullName = object.getMapIndex().getRule(FIELD_REGION_PARENT_NAME, null);
|
||||
mapIndexFields.fullNameType = object.getMapIndex().getRule(FIELD_REGION_FULL_NAME, null);
|
||||
mapIndexFields.langType = object.getMapIndex().getRule(FIELD_LANG, null);
|
||||
|
@ -565,9 +589,15 @@ public class OsmandRegions {
|
|||
String nm = b.getNameByType(or.mapIndexFields.nameEnType);
|
||||
if (nm == null) {
|
||||
nm = b.getName();
|
||||
System.out.println(or.getLocaleName(or.getDownloadName(b), false));
|
||||
}
|
||||
if (or.isDownloadOfType(b, MAP_TYPE)) {
|
||||
found.add(nm.toLowerCase());
|
||||
String localName = b.getNameByType(or.mapIndexFields.nameLocaleType);
|
||||
if(or.mapIndexFields.nameLocale2Type != null) {
|
||||
localName = b.getNameByType(or.mapIndexFields.nameLocale2Type);
|
||||
}
|
||||
System.out.println(String.format("Region %s %s", b.getName(), localName));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -580,6 +610,9 @@ public class OsmandRegions {
|
|||
|
||||
public static void main(String[] args) throws IOException {
|
||||
OsmandRegions or = new OsmandRegions();
|
||||
Locale tw = Locale.CHINA;
|
||||
or.setLocale(tw.getLanguage(), null);
|
||||
// or.setLocale(tw.getLanguage(), tw.getCountry());
|
||||
or.prepareFile("/Users/victorshcherb/osmand/repos/resources/countries-info/regions.ocbf");
|
||||
LinkedList<WorldRegion> lst = new LinkedList<WorldRegion>();
|
||||
lst.add(or.getWorldRegion());
|
||||
|
@ -598,14 +631,14 @@ public class OsmandRegions {
|
|||
// or.cacheAllCountries();
|
||||
// System.out.println("Init " + (System.currentTimeMillis() - t));
|
||||
|
||||
//testCountry(or, 15.8, 23.09, "chad");
|
||||
testCountry(or, 52.10, 4.92, "the netherlands", "utrecht");
|
||||
testCountry(or, 52.15, 7.50, "north rhine-westphalia");
|
||||
testCountry(or, 28.8056, 29.9858, "egypt");
|
||||
testCountry(or, 53.8820, 27.5726, "belarus", "minsk");
|
||||
// testCountry(or, 52.10, 4.92, "the netherlands", "utrecht");
|
||||
// testCountry(or, 52.15, 7.50, "north rhine-westphalia");
|
||||
// testCountry(or, 28.8056, 29.9858, "egypt");
|
||||
// testCountry(or, 40.0760, 9.2807, "italy", "sardinia");
|
||||
testCountry(or, 35.7521, 139.7887, "japan");
|
||||
testCountry(or, 46.5145, 102.2580, "mongolia");
|
||||
testCountry(or, 62.54, 43.36, "arkhangelsk oblast", "northwestern federal district");
|
||||
// testCountry(or, 35.7521, 139.7887, "japan");
|
||||
// testCountry(or, 46.5145, 102.2580, "mongolia");
|
||||
// testCountry(or, 62.54, 43.36, "arkhangelsk oblast", "northwestern federal district");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ public abstract class MapRenderingTypes {
|
|||
|
||||
private static final Log log = PlatformUtil.getLog(MapRenderingTypes.class);
|
||||
public static final String[] langs = new String[] { "af", "als", "ar", "az", "be", "bg", "bn", "bpy", "br", "bs", "ca", "ceb", "cs", "cy", "da", "de", "el", "eo", "es", "et", "eu", "fa", "fi", "fr", "fy", "ga", "gl", "he", "hi", "hsb",
|
||||
"hr", "ht", "hu", "hy", "id", "is", "it", "ja", "ka", "ko", "ku", "la", "lb", "lo", "lt", "lv", "mk", "ml", "mr", "ms", "nds", "new", "nl", "nn", "no", "nv", "os", "pl", "pms", "pt", "ro", "ru", "sc", "sh", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "vi", "vo", "zh" };
|
||||
"hr", "ht", "hu", "hy", "id", "is", "it", "ja", "ka", "ko", "ku", "la", "lb", "lo", "lt", "lv", "mk", "ml", "mr", "ms", "nds", "new", "nl", "nn", "no", "nv", "os", "pl", "pms", "pt", "ro", "ru", "sc", "sh", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "vi", "vo", "zh", "zh-hans", "zh-hant", };
|
||||
|
||||
|
||||
public final static byte RESTRICTION_NO_RIGHT_TURN = 1;
|
||||
|
|
|
@ -43,4 +43,14 @@
|
|||
<string name="shared_string_settings">Επιλογές</string>
|
||||
<string name="shared_string_enabled">Ενεργοποιημένο</string>
|
||||
<string name="units_and_formats">Μονάδες μέτρησης & φορμά</string>
|
||||
<string name="shared_string_exit">Έξοδος</string>
|
||||
<string name="yard">γδ</string>
|
||||
<string name="foot">πδ</string>
|
||||
<string name="mile">μλ</string>
|
||||
<string name="mile_per_hour">μαω</string>
|
||||
<string name="si_mi_feet">Μίλια/πόδια</string>
|
||||
<string name="si_mi_yard">Μίλια/γιάρδες</string>
|
||||
<string name="si_km_m">Χιλιόμετρα/μέτρα</string>
|
||||
<string name="unit_of_length_descr">Αλλαγή απόστασης που μετριέται.</string>
|
||||
<string name="unit_of_length">Μονάδες μήκους</string>
|
||||
</resources>
|
|
@ -8,7 +8,7 @@
|
|||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:id="@+id/button_icon"
|
||||
android:layout_width="@dimen/standard_icon_size"
|
||||
android:layout_height="@dimen/standard_icon_size"
|
||||
|
|
39
OsmAnd/res/layout/bottom_sheet_item_preference_btn.xml
Normal file
39
OsmAnd/res/layout/bottom_sheet_item_preference_btn.xml
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="@dimen/bottom_sheet_list_item_height"
|
||||
android:paddingBottom="@dimen/content_padding_half"
|
||||
android:paddingTop="@dimen/content_padding_half"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding">
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="@dimen/standard_icon_size"
|
||||
android:layout_height="@dimen/standard_icon_size"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="@dimen/bottom_sheet_icon_margin"
|
||||
android:layout_marginRight="@dimen/bottom_sheet_icon_margin"
|
||||
android:tint="?attr/active_color_basic"
|
||||
tools:src="@drawable/ic_action_info_dark"/>
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:singleLine="true"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_gravity="center_vertical"
|
||||
osmand:typeface="@string/font_roboto_medium"
|
||||
android:textColor="?attr/active_color_basic"
|
||||
tools:text="Title"/>
|
||||
|
||||
</LinearLayout>
|
|
@ -121,7 +121,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/update"
|
||||
android:text="@string/shared_string_update"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp"/>
|
||||
|
||||
|
|
|
@ -2785,7 +2785,7 @@
|
|||
<string name="touring_view_render_descr">أسلوب الملاحة مع التباين العالي والحد الأعلى من التفاصيل. يتضمن كل خيارات النمط الافتراضي OsmAnd ، مع عرض أكبر قدر ممكن من التفاصيل ، ولا سيما الطرق والمسارات وطرق السفر الأخرى. التمييز الواضح بين \"جولة الأطلس\" بين أنواع الطرق. مناسبة للاستخدام النهاري والليلي وفي الهواء الطلق.</string>
|
||||
<string name="default_render_descr">أسلوب الغرض العام. تقديم نظافة مبسطة في المدن المكتظة بالسكان. الملامح الرئيسية: خطوط الكنتور ، والطرق ، وجودة السطح ، والقيود المفروضة على الوصول ، ودروع الطريق ، والمسارات التي تظهر وفقًا لمقياس SAC ، وميزات رياضة الماء الأبيض.</string>
|
||||
<string name="travel_card_download_descr">قم بتنزيل أدلة السفر هذه من ويكي الرحلات لعرض مقالات حول الأماكن في العالم بدون إنترنت.</string>
|
||||
<string name="welcome_to_open_beta_description">دليل السفر حاليا على أساس wikivoyage.اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.بعد ذلك، وأدلة السفر ستكون متاحة للمشتركين في osmand محدود و اصحاب osmand +.</string>
|
||||
<string name="welcome_to_open_beta_description">دليل السفر حاليا على أساس Wikivoyage. اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.بعد ذلك، وأدلة السفر ستكون متاحة للمشتركين في osmand غير المحدود و اصحاب +osmand.</string>
|
||||
<string name="av_locations_selected_desc">ملف GPX مع الإحداثيات والبيانات من الملاحظات المحددة.</string>
|
||||
<string name="av_locations_all_desc">ملف GPX مع الإحداثيات والبيانات من كافة الملاحظات.</string>
|
||||
<!--string name="release_3_0">• جديد: دعم للسفر دون اتصال عالمية وأدلة. وترتبط المواقع المشار إليها على الخريطة. الحصول على البيانات الأولية من ويكيفوياجي.
|
||||
|
@ -3352,7 +3352,7 @@
|
|||
<string name="osm_editing">تعديل OpenStreetMap</string>
|
||||
<string name="app_mode_osm">OSM</string>
|
||||
<string name="select_nav_icon_descr">سترى الأيقونة فقط أثناء الملاحة أو أثناء التحرك.</string>
|
||||
<string name="button_rate">معدل</string>
|
||||
<string name="button_rate">قيم</string>
|
||||
<string name="select_map_icon_descr">تظهر أيقونة الخريطة فقط على الخريطة ، وتتغير أثناء التنقل إلى أيقونة التنقل.</string>
|
||||
<string name="logcat_buffer_descr">تحقق وتبادل سجلات مفصلة من التطبيق</string>
|
||||
<string name="search_offline_geo_error">تعذر تحليل الهدف الجغرافي \'%s\'.</string>
|
||||
|
@ -3398,4 +3398,5 @@
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">غروب الشمس على %1$s</string>
|
||||
<string name="sunrise_at">شروق الشمس على %1$s</string>
|
||||
<string name="accessibility_mode_disabled">تم تعطيل وضع إمكانية الوصول في النظام الخاص بك.</string>
|
||||
</resources>
|
|
@ -336,7 +336,7 @@
|
|||
<string name="poi_optician">Optiker</string>
|
||||
<string name="poi_optometrist">Optiker</string>
|
||||
<string name="poi_orchard">Obstplantage</string>
|
||||
<string name="poi_organic">Biolebensmittel</string>
|
||||
<string name="poi_organic">Bioprodukte</string>
|
||||
<string name="poi_orienteering">Orientierungslauf</string>
|
||||
<string name="poi_outdoor">Outdoor-Geschäft</string>
|
||||
<string name="poi_paddle_tennis">Padel-Tennis</string>
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
<string name="osmand_plus_short_description_80_chars">Globale Landkarten- und Navigationsanwendung für Offline- und Online-OSM-Karten</string>
|
||||
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions)
|
||||
\n
|
||||
\nOsmAnd+ ist die Kaufversion der Open-Source Software Navigationsapp OsmAnd (OSM Automated Navigation Directions) mit Zugriff auf eine Vielzahl öffentlich zugänglicher, weltweit verfügbarer Daten von OpenStreetMap (OSM). Alle Karten (Vektor- oder Kachelformate) können lokal auf der Speicherkarte abgelegt und offline verwendet werden. Offline- und Online-Routing-Funktionalität wird ebenfalls angeboten, einschließlich einer Schritt-für-Schritt-Sprachführung.
|
||||
\nOsmAnd+ ist die Kaufversion der Open-Source Software Navigationsapp OsmAnd mit Zugriff auf eine Vielzahl öffentlich zugänglicher, weltweit verfügbarer OSM-Daten. Alle Karten (Vektor- oder Kachelformate) können lokal auf der Speicherkarte abgelegt und offline verwendet werden. Offline- und Online-Routing-Funktionalität wird ebenfalls angeboten, einschließlich einer Schritt-für-Schritt-Sprachführung.
|
||||
\n
|
||||
\nMit dem Kauf der kostenpflichtigen Version OsmAnd+ unterstützen Sie das Projekt, fördern seine Weiterentwicklung und erhalten stets die aktuellsten Daten.
|
||||
\n
|
||||
|
@ -187,7 +187,7 @@
|
|||
<string name="debugging_and_development">OsmAnd-Entwicklung</string>
|
||||
<string name="native_rendering">Natives Rendern</string>
|
||||
<string name="test_voice_prompts">Sprachansagen testen</string>
|
||||
<string name="switch_to_raster_map_to_see">Offline-Vektorkarte für diese Position herunterladen (über \'Einstellungen\' → \'Kartenverwaltung\') oder schalten Sie auf die Erweiterung \'Online-Karten\' um.</string>
|
||||
<string name="switch_to_raster_map_to_see">Offline-Vektorkarte für diese Position herunterladen (über \'Einstellungen → Kartenverwaltung\') oder schalten Sie auf die Erweiterung \'Online-Karten\' um.</string>
|
||||
<string name="send_files_to_osm">GPX-Dateien an OSM senden?</string>
|
||||
<string name="validate_gpx_upload_name_pwd">Bitte tragen Sie Ihren OSM-Benutzernamen und Ihr Passwort ein, um GPX-Dateien hochzuladen.</string>
|
||||
<string name="default_buttons_support">Unterstütze OsmAnd</string>
|
||||
|
@ -262,7 +262,7 @@
|
|||
<string name="local_openstreetmap_settings_descr">In der Gerätedatenbank vermerkte OSM-POIs/-Notizen anzeigen und verwalten.</string>
|
||||
<string name="live_monitoring_m">Online-Aufzeichnung (benötigt GPX)</string>
|
||||
<string name="live_monitoring_m_descr">Track-Daten zu einem festgelegten Internetdienst senden, wenn die GPX-Aufzeichnung aktiviert ist.</string>
|
||||
<string name="live_monitoring_url">Internetadresse zur Aufzeichnung</string>
|
||||
<string name="live_monitoring_url">Webadresse zur Aufzeichnung</string>
|
||||
<string name="live_monitoring_url_descr">Spezifikation der Internetadresse zur Aufzeichnung mit Parametern: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
|
||||
<string name="live_monitoring_interval">Online-Aufzeichnungsintervall</string>
|
||||
<string name="live_monitoring_interval_descr">Angabe des Intervalls für die Online-Aufzeichnung.</string>
|
||||
|
@ -420,7 +420,7 @@
|
|||
<string name="tts_missing_language_data">Gewählte Sprache aus dem Market installieren?</string>
|
||||
<string name="switch_to_vector_map_to_see">Es gibt eine Offline-Vektorkarte für diesen Ort.
|
||||
\n\t
|
||||
\n\tWählen Sie \'Menü\' → \'Karte konfigurieren\' → \'Kartenquelle…\' → \'Offline-Vektorkarten\', um sie zu verwenden.</string>
|
||||
\n\tWählen Sie \'Menü → Karte konfigurieren → Kartenquelle… → Offline-Vektorkarten\', um sie zu verwenden.</string>
|
||||
<string name="choose_audio_stream">Navi-Sprachausgabe</string>
|
||||
<string name="choose_audio_stream_descr">Lautsprecher für Sprachansagen auswählen.</string>
|
||||
<string name="voice_stream_voice_call">Wie Anrufe (unterbricht Bluetooth-Verbindung zum Autoradio)</string>
|
||||
|
@ -639,7 +639,7 @@
|
|||
<string name="route_head">Geradeaus</string>
|
||||
<string name="first_time_continue">Weiter</string>
|
||||
<string name="first_time_download">Offline-Daten herunterladen</string>
|
||||
<string name="first_time_msg">Danke, dass Sie OsmAnd verwenden. Laden Sie regionale Daten für die Offline-Verwendung über \'Einstellungen\' → \'Kartenverwaltung\' herunter, um Landkarten anzusehen, Adressen, POIs und öffentliche Verkehrsmittel zu finden.</string>
|
||||
<string name="first_time_msg">Danke, dass Sie OsmAnd verwenden. Laden Sie regionale Daten für die Offline-Verwendung über \'Einstellungen → Kartenverwaltung\' herunter, um Landkarten anzusehen, Adressen, POIs und öffentliche Verkehrsmittel zu finden.</string>
|
||||
<string name="search_poi_location">Warte auf Signal…</string>
|
||||
<string name="search_near_map">Suche in der Nähe</string>
|
||||
<string name="search_nearby">Suche um Aufenthaltsort</string>
|
||||
|
@ -1823,7 +1823,6 @@ Lon %2$s</string>
|
|||
<string name="av_audio_bitrate">Audio-Bitrate</string>
|
||||
<string name="av_audio_bitrate_descr">Audio-Bitrate wählen.</string>
|
||||
<string name="rendering_attr_horseRoutes_name">Reitwege</string>
|
||||
<string name="update">Aktualisieren</string>
|
||||
<string name="only_download_over_wifi">Nur über WLAN herunterladen</string>
|
||||
<string name="live_update">Live-Aktualisierung</string>
|
||||
<string name="update_now">Jetzt aktualisieren</string>
|
||||
|
@ -2716,7 +2715,7 @@ Lon %2$s</string>
|
|||
<string name="shared_string_contents">Inhalte</string>
|
||||
<string name="wikivoyage_download_pics">Bilder herunterladen</string>
|
||||
<string name="wikivoyage_download_pics_descr">Artikelbilder können für den Offline-Einsatz heruntergeladen werden.
|
||||
\nImmer verfügbar unter \'Durchsuchen\' → \'Optionen\'.</string>
|
||||
\nImmer verfügbar unter \'Durchsuchen → Optionen\'.</string>
|
||||
<string name="online_webpage_warning">Seite ist nur online abrufbar. Im Webbrowser öffnen?</string>
|
||||
<string name="delete_search_history">Suchverlauf löschen</string>
|
||||
<string name="purchase_dialog_travel_description">Für die Offline-Reiseführerfunktionalität kaufen Sie einen der folgenden Artikel:</string>
|
||||
|
@ -3043,7 +3042,7 @@ Lon %2$s</string>
|
|||
<string name="help_us_make_osmand_better">Helfen Sie uns, OsmAnd besser zu machen</string>
|
||||
<string name="make_osmand_better_descr">Gestatten Sie OsmAnd, anonyme App-Nutzungsdaten zu sammeln und zu verarbeiten. Wir sammeln keine Daten zu Ihrem Standort oder zu irgendwelchen Orten, die Sie sich auf der Karte ansehen.
|
||||
\n
|
||||
\nÄndern Sie diese Konfiguration jederzeit unter \'Einstellungen\' → \'Datenschutz und Sicherheit\'.</string>
|
||||
\nÄndern Sie diese Konfiguration jederzeit unter \'Einstellungen → Datenschutz und Sicherheit\'.</string>
|
||||
<string name="choose_data_to_share">Wählen Sie, welche Art Daten Sie freigeben möchten:</string>
|
||||
<string name="downloaded_maps">Heruntergeladene Karten</string>
|
||||
<string name="visited_screens">Besuchte Bildschirme</string>
|
||||
|
@ -3449,6 +3448,24 @@ Lon %2$s</string>
|
|||
<string name="permission_is_required">Für die Verwendung dieser Option ist eine Berechtigung erforderlich.</string>
|
||||
<string name="file_does_not_contain_routing_rules">Die Datei \'%1$s\' enthält keine Routing-Regeln. Bitte eine andere Datei wählen.</string>
|
||||
<string name="monitoring_min_speed_descr">Dies ist ein Filter, welcher Punkte unter einer gewissen Geschwindigkeit nicht aufzeichnet. Dadurch können aufgezeichnete Tracks auf der Karte gleichmäßiger aussehen.</string>
|
||||
<string name="monitoring_min_speed_descr_side_effect">Nebeneffekt: Auf Ihrer Strecke fehlen alle Abschnitte, in denen das Mindestgeschwindigkeitskriterium nicht erfüllt wurde (z.B. wenn Sie Ihr Fahrrad einen steilen Hügel hinaufschieben). Außerdem wird es keine Informationen über Ruhezeiten wie Pausen geben. Dies hat Auswirkungen auf jede Analyse oder Nachbearbeitung, z. B. wenn Sie versuchen, die Gesamtlänge Ihrer Reise, die Zeit in Bewegung oder Ihre Durchschnittsgeschwindigkeit zu bestimmen.</string>
|
||||
<string name="monitoring_min_speed_descr_side_effect">Nebeneffekt: Auf Ihrer Strecke fehlen alle Abschnitte, in denen das Mindestgeschwindigkeitskriterium nicht erfüllt wurde (z. B., wenn Sie Ihr Fahrrad einen steilen Hügel hinaufschieben). Außerdem wird es keine Informationen über Ruhezeiten wie Pausen geben. Dies hat Auswirkungen auf jede Analyse oder Nachbearbeitung, z. B., wenn Sie versuchen, die Gesamtlänge Ihrer Reise, die Zeit in Bewegung oder Ihre Durchschnittsgeschwindigkeit zu bestimmen.</string>
|
||||
<string name="plugin_global_prefs_info">Diese Einstellungen gelten für alle Profile.</string>
|
||||
<string name="live_monitoring_time_buffer">Zeitpuffer</string>
|
||||
<string name="live_monitoring_tracking_interval">Aufzeichnungsintervall</string>
|
||||
<string name="live_monitoring_adress">Webadresse</string>
|
||||
<string name="live_monitoring_adress_descr">Webadresse angeben mit der Parametersyntax: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
|
||||
<string name="monitoring_notification">Benachrichtigung</string>
|
||||
<string name="monitoring_min_speed">Mindesttempo</string>
|
||||
<string name="monitoring_min_accuracy">Minimale Genauigkeit</string>
|
||||
<string name="monitoring_min_distance">Minimale Verschiebung</string>
|
||||
<string name="tracks_view_path">\'Menü → Meine Orte → Tracks\'</string>
|
||||
<string name="multimedia_notes_view_path">\'Menü → Meine Orte → Notizen\'</string>
|
||||
<string name="osm_edits_view_path">\'Menü → Meine Orte → OSM-Änderungen\'</string>
|
||||
<string name="reset_plugin_to_default">Plugin-Einstellungen auf Voreinstellung zurücksetzen</string>
|
||||
<string name="osm_authorization_success">Autorisierung ist erfolgreich</string>
|
||||
<string name="shared_string_available">Verfügbar</string>
|
||||
<string name="add_custom_category">Benutzerdefinierte Kategorie hinzufügen</string>
|
||||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Sonnenuntergang um %1$s</string>
|
||||
<string name="sunrise_at">Sonnenaufgang um %1$s</string>
|
||||
</resources>
|
|
@ -226,7 +226,7 @@
|
|||
<string name="poi_musical_instrument">Μουσικά όργανα</string>
|
||||
<string name="poi_newsagent">Εφημερίδες</string>
|
||||
<string name="poi_optician">Οπτικός</string>
|
||||
<string name="poi_organic">Βιολογικά τρόφιμα</string>
|
||||
<string name="poi_organic">Βιολογικά προϊόντα</string>
|
||||
<string name="poi_outdoor">Υπαίθριο κατάστημα</string>
|
||||
<string name="poi_paint">Χρωματοπωλείο</string>
|
||||
<string name="poi_pet">Κατάστημα κατοικιδίων</string>
|
||||
|
@ -2001,7 +2001,7 @@
|
|||
<string name="poi_service_bicycle_cleaning_no">Καθαρισμός ποδηλάτου: όχι</string>
|
||||
<string name="poi_service_bicycle_second_hand_yes">Λιανική πώληση μεταχειρισμένων ποδηλάτων</string>
|
||||
<string name="poi_service_bicycle_second_hand_no">Λιανική πώληση μεταχειρισμένων ποδηλάτων: όχι</string>
|
||||
<string name="poi_bicycle_repair_station">Σταθμός ιδιοεπισκευής ποδηλάτου</string>
|
||||
<string name="poi_bicycle_repair_station">Σταθμός επισκευής ποδαλάτων·Σταθμός ιδιοεπισκευής ποδηλάτων</string>
|
||||
<string name="poi_wildlife_hide">Θέση παρακολούθησης άγριας ζωής</string>
|
||||
<string name="poi_training_language">Εκπαίδευση: γλώσσα</string>
|
||||
<string name="poi_training_music">Εκπαίδευση: μουσική</string>
|
||||
|
@ -3556,4 +3556,13 @@
|
|||
<string name="poi_denotation_landmark">Διακριτό σημείο</string>
|
||||
<string name="poi_park_ride_yes">Ναι</string>
|
||||
<string name="poi_park_ride_train">Τρένο</string>
|
||||
<string name="poi_park_ride_bus">Λεωφορείο</string>
|
||||
<string name="poi_park_ride_metro">Μετρό</string>
|
||||
<string name="poi_park_ride_tram">Τραμ</string>
|
||||
<string name="poi_park_ride_ferry">Πλοίο</string>
|
||||
<string name="poi_atm_yes">ATM: Ναι</string>
|
||||
<string name="poi_cash_withdrawal_bank_card">Ανάληψη μετρητών</string>
|
||||
<string name="poi_bath_type">Πληκτρολογήστε</string>
|
||||
<string name="poi_volcano_type">Πληκτρολογήστε</string>
|
||||
<string name="poi_volcano_status">Κατάσταση</string>
|
||||
</resources>
|
|
@ -23,41 +23,27 @@
|
|||
<string name="snap_to_road_descr">Προσανατολισμός στους δρόμους κατά τη διάρκεια της πλοήγησης.</string>
|
||||
<string name="snap_to_road">Προσανατολισμός στο δρόμο</string>
|
||||
<string name="osmand_short_description_80_chars">Προβολή φορητού παγκόσμιου χάρτη & πλοήγηση για χάρτες OSM χωρίς και με διαδίκτυο</string>
|
||||
<string name="osmand_long_description_1000_chars">"OsmAnd (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης
|
||||
\n
|
||||
\n Το OsmAnd είναι μια εφαρμογή πλοήγησης ανοικτού κώδικα με πρόσβαση σε μεγάλη ποικιλία από παγκόσμια δεδομένα του OSM. Όλα τα δεδομένα χάρτη (διανυσματικά ή πλακίδια χάρτη) μπορούν να αποθηκευτούν στην κάρτα μνήμης του τηλεφώνου για χρήση χωρίς σύνδεση. Προσφέρεται επίσης λειτουργία δρομολόγησης με και χωρίς διαδικτυακή σύνδεση συμπεριλαμβανομένων φωνητικών οδηγιών βήμα προς βήμα.
|
||||
\n
|
||||
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης)
|
||||
\n
|
||||
\n Το OsmAnd είναι μια εφαρμογή πλοήγησης ανοικτού κώδικα με πρόσβαση σε μεγάλη ποικιλία από παγκόσμια δεδομένα του OSM. Όλα τα δεδομένα χάρτη (διανυσματικά ή πλακίδια χάρτη) μπορούν να αποθηκευτούν στην κάρτα μνήμης του τηλεφώνου για χρήση χωρίς σύνδεση. Προσφέρεται επίσης λειτουργία δρομολόγησης με και χωρίς διαδικτυακή σύνδεση συμπεριλαμβανομένων φωνητικών οδηγιών βήμα προς βήμα.
|
||||
\n
|
||||
\n Μερικά από τα βασικά χαρακτηριστικά:
|
||||
\n
|
||||
\n - Πλήρης λειτουργικότητα εκτός σύνδεσης (αποθήκευση των λαμβανόμενων διανυσμάτων ή πλακιδίων χάρτη στον αποθηκευτικό χώρο της συσκευής)
|
||||
\n
|
||||
\n - Συμπαγείς διανυσματικοί χάρτες χωρίς σύνδεση για όλον τον κόσμο
|
||||
\n
|
||||
\n - Λήψη χαρτών χωρών ή περιοχών κατευθείαν από την εφαρμογή
|
||||
\n
|
||||
\n - Δυνατότητα επίστρωσης από αρκετές στρώσεις χάρτη, όπως GPX ή ίχνη πλοήγησης, Σημεία Ενδιαφέροντος, αγαπημένα, ισοϋψείς γραμμές, στάσεις Μ.Μ. Μεταφοράς, πρόσθετους χάρτες με προσαρμόσιμη διαφάνεια
|
||||
\n
|
||||
\n - Εκτός σύνδεσης αναζήτηση για διευθύνσεις και μέρη (ΣΕ)
|
||||
\n
|
||||
\n - Εκτός σύνδεσης δρομολόγηση για μέσες αποστάσεις
|
||||
\n
|
||||
\n - Κατάσταση αυτοκινήτου, ποδηλάτου και πεζού με:
|
||||
\n
|
||||
\n - προαιρετική αυτόματη εναλλαγή όψης ημέρας/νύχτας - προαιρετική εστίαση χάρτη βάσει ταχύτητας
|
||||
\n
|
||||
\n - προαιρετικός προσανατολισμός χάρτη βάσει της πυξίδας ή της κατεύθυνσης κίνησης
|
||||
\n
|
||||
\n - προαιρετική καθοδήγηση με λωρίδες, εμφάνιση ορίου ταχύτητας, καταγεγραμμένες και φωνές κειμένου σε λόγο.
|
||||
\n
|
||||
\n Περιορισμοί αυτής της ελεύθερης έκδοσης του OsmAnd:
|
||||
\n
|
||||
\n - Περιορισμένος αριθμός λήψης χαρτών
|
||||
\n
|
||||
\n - Όχι πρόσβαση στα εκτός σύνδεσης ΣΕ της βικιπαίδειας.
|
||||
\n
|
||||
\n Το OsmAnd είναι ενεργά στο στάδιο της ανάπτυξης και το εγχείρημά μας και η περαιτέρω ανάπτυξή του επαφίεται στις οικονομικές προσφορές για την χρηματοδότηση της ανάπτυξης και τις δοκιμές νέων λειτουργιών. Παρακαλούμε σκεφτείτε την αγορά του OsmAnd+, ή χρηματοδοτήστε συγκεκριμένες νέες λειτουργίες ή κάντε μια γενική δωρεά στο https://osmand.net."</string>
|
||||
\n Το OsmAnd είναι ενεργά στο στάδιο της ανάπτυξης και το εγχείρημά μας και η περαιτέρω ανάπτυξή του επαφίεται στις οικονομικές προσφορές για την χρηματοδότηση της ανάπτυξης και τις δοκιμές νέων λειτουργιών. Παρακαλούμε σκεφτείτε την αγορά του OsmAnd+, ή χρηματοδοτήστε συγκεκριμένες νέες λειτουργίες ή κάντε μια γενική δωρεά στο https://osmand.net.</string>
|
||||
<string name="osmand_plus_short_description_80_chars">Προβολή παγκόσμιου χάρτη & πλοήγηση για χάρτες OSM χωρίς και με σύνδεση</string>
|
||||
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης)
|
||||
\n
|
||||
|
@ -199,11 +185,11 @@
|
|||
<string name="map_online_data_descr">Χρήση χαρτών με διαδίκτυο (λήψη και αποθήκευση πλακιδίων σε κάρτα μνήμης).</string>
|
||||
<string name="shared_string_online_maps">Χάρτες με σύνδεση</string>
|
||||
<string name="online_map_settings_descr">Επιλέξτε τους παρόχους των χαρτών με διαδίκτυο ή με αποθηκευμένα πλακίδια.</string>
|
||||
<string name="osmand_rastermaps_plugin_description">"Προσπελάσετε πολλούς τύπους χαρτών με σύνδεση (τους αποκαλούμενους χάρτες πλακιδίων ή εικονογραφιών), από προκαθορισμένα πλακίδια του OSM (όπως το Mapnik) μέχρι δορυφορικές εικόνες και στρώσεις ειδικού σκοπού όπως μετεωρολογικούς χάρτες, κλιματολογικούς χάρτες, γεωλογικούς χάρτες, στρώσεις σκίασης ανάγλυφου κλπ.
|
||||
<string name="osmand_rastermaps_plugin_description">Προσπελάσετε πολλούς τύπους χαρτών με σύνδεση (τους αποκαλούμενους χάρτες πλακιδίων ή εικονογραφιών), από προκαθορισμένα πλακίδια του OSM (όπως το Mapnik) μέχρι και δορυφορικές εικόνες και στρώσεις ειδικού σκοπού όπως μετεωρολογικούς χάρτες, κλιματολογικούς χάρτες, γεωλογικούς χάρτες, στρώσεις σκίασης ανάγλυφου κλπ.
|
||||
\n
|
||||
\nΟποιοσδήποτε από αυτούς τους χάρτες μπορεί να χρησιμοποιηθεί είτε ως ο κύριος (βασικός) χάρτης που θα εμφανίζεται στον χάρτη του OsmAnd, είτε ως επίστρωμα ή υπόστρωμα σε έναν άλλο βασικό χάρτη (όπως στους τυπικούς χωρίς σύνδεση χάρτες του OsmAnd). Για να γίνει οποιοσδήποτε χάρτης υποστρώματος πιο ορατός, συγκεκριμένα στοιχεία των διανυσματικών χαρτών του OsmAnd μπορούν να κρυφτούν μέσω του μενού \'Διαμόρφωση χάρτη\'.
|
||||
\nΟποιοσδήποτε από αυτούς τους χάρτες μπορεί να χρησιμοποιηθεί είτε ως ο κύριος (βασικός) χάρτης που θα εμφανίζεται, είτε ως επίστρωμα ή υπόστρωμα σε έναν άλλο βασικό χάρτη (όπως στους τυπικούς χωρίς σύνδεση χάρτες του OsmAnd). Για να γίνει οποιοσδήποτε χάρτης υποστρώματος πιο ορατός, συγκεκριμένα στοιχεία των διανυσματικών χαρτών του OsmAnd μπορούν να αποκρυφθούν μέσω του μενού \'Διαμόρφωση χάρτη\'.
|
||||
\n
|
||||
\nΟι χάρτες πλακιδίων μπορούν να ληφθούν μέσω διαδικτυακών πηγών, ή να προετοιμαστούν για χρήση χωρίς σύνδεση (και να αντιγραφούν χειροκίνητα στον φάκελο δεδομένων του OsmAnd) ως βάση δεδομένων του SQLite που μπορεί να παραχθεί από διάφορα εργαλεία προετοιμασίας χαρτών τρίτων."</string>
|
||||
\nΟι χάρτες πλακιδίων μπορούν να ληφθούν μέσω διαδικτυακών πηγών, ή να προετοιμαστούν για χρήση χωρίς σύνδεση (μέσω χειροκίνητης αντιγραφής στον φάκελο δεδομένων του OsmAnd) ως μία βάση δεδομένων SQLite που μπορεί να παραχθεί από διάφορα εργαλεία προετοιμασίας χαρτών τρίτων.</string>
|
||||
<string name="osmand_background_plugin_description">Εμφάνιση των ρυθμίσεων για ενεργοποίηση ιχνογράφησης και πλοήγησης παρασκηνίου μέσω περιοδικής αφύπνισης της συσκευής GPS (με την οθόνη σβηστή).</string>
|
||||
<string name="osmand_accessibility_description">Κάνει τα χαρακτηριστικά προσβασιμότητας της συσκευής διαθέσιμα απευθείας στο OsmAnd. Διευκολύνει π.χ. τη ρύθμιση του ρυθμού ομιλίας για φωνές κειμένου σε λόγο, διαμορφώνοντας πλοήγηση οθόνης του κατευθυντήρα, χρήση ιχνόσφαιρας για έλεγχο εστίασης, ή ανατροφοδότηση κειμένου σε ομιλία, π.χ. για αυτόματη ανακοίνωση της θέσης σας.</string>
|
||||
<string name="osmand_development_plugin_description">Ρυθμίσεις για τα χαρακτηριστικά ανάπτυξης και αποσφαλμάτωσης όπως απόδοση απεικόνισης, ή η φωνητική καθοδήγηση. Αυτές οι ρυθμίσεις προορίζονται για τους προγραμματιστές και δεν χρειάζονται στην κανονική χρήση της εφαρμογής.</string>
|
||||
|
@ -527,7 +513,7 @@
|
|||
<string name="select_build_to_install">Επιλέξτε το OsmAnd build προς εγκατάσταση</string>
|
||||
<string name="contribution_activity">Εγκατάσταση έκδοσης</string>
|
||||
<string name="gps_status_app_not_found">Η εφαρμογή κατάστασης GPS δεν είναι εγκατεστημένη. Αναζήτηση στην αγορά ;</string>
|
||||
<string name="voice_is_not_available_msg">"Δεν υπάρχει διαθέσιμη φωνητική καθοδήγηση, παρακαλούμε μεταβείτε στο \'Ρυθμίσεις\' → \'Ρυθμίσεις πλοήγησης\' → \'Φωνητική καθοδήγηση\' και επιλέξτε ή κατεβάστε ένα πακέτο φωνητικών οδηγιών."</string>
|
||||
<string name="voice_is_not_available_msg">Δεν υπάρχει διαθέσιμη φωνητική καθοδήγηση, παρακαλούμε μεταβείτε στο \'Ρυθμίσεις\' → \'Ρυθμίσεις πλοήγησης\' → \'Φωνητική καθοδήγηση\' και επιλέξτε ή κατεβάστε ένα πακέτο φωνητικών οδηγιών.</string>
|
||||
<string name="voice_is_not_available_title">Επιλέξτε ένα πακέτο φωνητικής καθοδήγησης</string>
|
||||
<string name="daynight_mode_day">Ημέρα</string>
|
||||
<string name="daynight_mode_night">Νύχτα</string>
|
||||
|
@ -547,12 +533,12 @@
|
|||
<string name="maps_could_not_be_downloaded">Αυτός ο χάρτης δεν μπορεί να ληφθεί</string>
|
||||
<string name="continuous_rendering">Συνεχής απεικόνιση</string>
|
||||
<string name="continuous_rendering_descr">Εμφάνιση συνεχούς απεικόνισης αντί για εικόνα με τη μία.</string>
|
||||
<string name="rendering_exception">Αδυναμία σχεδίασης της επιλεγμένης περιοχής</string>
|
||||
<string name="rendering_exception">Αδυναμία σχεδίασης της επιλεγμένης περιοχής.</string>
|
||||
<string name="show_point_options">Χρήση τοποθεσίας …</string>
|
||||
<string name="renderer_load_sucess">Ο απεικονιστής φορτώθηκε</string>
|
||||
<string name="renderer_load_exception">Αδυναμία φόρτωσης απεικονιστή</string>
|
||||
<string name="renderer_load_exception">Αδυναμία φόρτωσης απεικονιστή.</string>
|
||||
<string name="renderers">Απεικονιστής διανυσμάτων</string>
|
||||
<string name="renderers_descr">Επιλέξτε εμφάνιση απεικόνισης.</string>
|
||||
<string name="renderers_descr">Επιλέξτε εμφάνιση απεικόνισης</string>
|
||||
<string name="poi_context_menu_website">Εμφάνιση ιστοσελίδας ΣΕ</string>
|
||||
<string name="poi_context_menu_call">Εμφάνιση τηλεφώνου ΣΕ</string>
|
||||
<string name="website">Ιστότοπος</string>
|
||||
|
@ -568,7 +554,7 @@
|
|||
<string name="no_vector_map_loaded">Οι διανυσματικοί χάρτες δεν φορτώθηκαν</string>
|
||||
<string name="gpx_files_not_found">Δεν βρέθηκαν αρχεία GPX στον κατάλογο ιχνών</string>
|
||||
<string name="layer_gpx_layer">Αρχεία GPX…</string>
|
||||
<string name="error_reading_gpx">Αδυναμία ανάγνωσης δεδομένων GPX</string>
|
||||
<string name="error_reading_gpx">Αδυναμία ανάγνωσης δεδομένων GPX.</string>
|
||||
<string name="vector_data">Διανυσματικοί χάρτες χωρίς σύνδεση</string>
|
||||
<string name="transport_context_menu">Αναζήτηση ΜΜΜ στη στάση</string>
|
||||
<string name="poi_context_menu_modify">Τροποποίηση ΣΕ</string>
|
||||
|
@ -583,7 +569,7 @@
|
|||
<string name="fav_file_to_load_not_found">Δεν βρέθηκε αρχείο GPX που να περιέχει αγαπημένα στο {0}</string>
|
||||
<string name="fav_saved_sucessfully">Τα αγαπημένα αποθηκεύτηκαν στο {0}</string>
|
||||
<string name="no_fav_to_save">Δεν υπάρχουν αγαπημένα σημεία προς αποθήκευση</string>
|
||||
<string name="error_occurred_loading_gpx">Αδυναμία φόρτωσης του GPX</string>
|
||||
<string name="error_occurred_loading_gpx">Αδυναμία φόρτωσης του GPX.</string>
|
||||
<string name="send_report">Αποστολή αναφοράς</string>
|
||||
<string name="none_region_found">Αδυναμία εύρεσης κατεβασμένων χαρτών στην κάρτα μνήμης.</string>
|
||||
<string name="poi_namefinder_query_empty">Πληκτρολογήστε για να βρείτε ΣΕ</string>
|
||||
|
@ -1405,7 +1391,7 @@
|
|||
<string name="days_behind">ημέρες πίσω</string>
|
||||
<string name="back_to_map">Πίσω στο χάρτη</string>
|
||||
<string name="share_note">Κοινή χρήση σημείωσης</string>
|
||||
<string name="notes">Σημειώσεις OSM</string>
|
||||
<string name="notes">Σημειώσεις A/V</string>
|
||||
<string name="roads_only">Μόνο δρόμοι</string>
|
||||
<string name="free">"Ελεύθερο %1$s "</string>
|
||||
<string name="device_memory">Μνήμη συσκευής</string>
|
||||
|
@ -2115,8 +2101,8 @@
|
|||
<string name="download_files_error_not_enough_space">Δεν υπάρχει αρκετός χώρος!
|
||||
\n {3} MB απαιτούνται προσωρινά, {1} MB μόνιμα.
|
||||
\n (Μόνο {2} MB είναι διαθέσιμα.)</string>
|
||||
<string name="download_files_question_space_with_temp">"Λήψη {0} αρχείου(ων);
|
||||
\n {3} MB χρησιμοποιούνται προσωρινά, {1} MB μόνιμα. (Από τα {2} MB.)"</string>
|
||||
<string name="download_files_question_space_with_temp">Λήψη {0} αρχείου(ων);
|
||||
\n{3} MB χρησιμοποιούνται προσωρινά, {1} MB μόνιμα. (Από τα {2} MB.)</string>
|
||||
<string name="upload_osm_note">Ανέβασμα σημείωσης OSM</string>
|
||||
<string name="map_marker_1st">Πρώτος δείκτης χάρτη</string>
|
||||
<string name="map_marker_2nd">Δεύτερος δείκτης χάρτη</string>
|
||||
|
@ -2133,7 +2119,7 @@
|
|||
<string name="map_markers">Δείκτες χάρτη</string>
|
||||
<string name="map_marker">Δείκτης χάρτη</string>
|
||||
<string name="consider_turning_polygons_off">Συνιστάται η απενεργοποίηση απόδοσης πολυγώνου.</string>
|
||||
<string name="rendering_attr_showMtbRoutes_name">Να εμφανίζονται οι διαδρομές ορεινής ποδηλασίας;</string>
|
||||
<string name="rendering_attr_showMtbRoutes_name">Εμφάνιση μονοπατιών ποδηλασίας βουνού</string>
|
||||
<string name="show_polygons">Να εμφανίζονται τα πολύγωνα</string>
|
||||
<string name="find_parking">Εύρεση χώρου στάθμευσης</string>
|
||||
<string name="shared_string_status">Κατάσταση</string>
|
||||
|
@ -2531,7 +2517,7 @@
|
|||
<string name="av_camera_focus_hiperfocal">Υπερεστιακή εστίαση</string>
|
||||
<string name="av_camera_focus_macro">Κατάσταση μακροεστίασης (κοντινής)</string>
|
||||
<string name="av_camera_pic_size">Μέγεθος εικόνας κάμερας</string>
|
||||
<string name="av_camera_pic_size_descr">Ορίστε μέγεθος εικόνας κάμερας.</string>
|
||||
<string name="av_camera_pic_size_descr">Ορίστε μέγεθος εικόνας κάμερας</string>
|
||||
<string name="plugin_install_needs_network">Χρειάζεται να συνδεθείτε με το διαδίκτυο για να εγκαταστήσετε αυτό το πρόσθετο.</string>
|
||||
<string name="get_plugin">Λήψη</string>
|
||||
<string name="use_fast_recalculation">Επανυπολογισμός έξυπνης διαδρομής</string>
|
||||
|
@ -2711,7 +2697,7 @@
|
|||
<string name="quick_action_btn_tutorial_title">Αλλαγή θέσης πλήκτρου</string>
|
||||
<string name="quick_action_btn_tutorial_descr">Πιέζοντας και μετακινώντας το πλήκτρο, αλλάζετε τη θέση του στην οθόνη.</string>
|
||||
<string name="shared_string_action_name">Όνομα ενέργειας</string>
|
||||
<string name="mappilary_no_internet_desc">Οι φωτογραφίες του Mapillary είναι διαθέσιμος μόνο όταν είσαστε σε σύνδεση</string>
|
||||
<string name="mappilary_no_internet_desc">Οι φωτογραφίες του Mapillary είναι διαθέσιμες μόνο όταν είσαστε σε σύνδεση.</string>
|
||||
<string name="retry">Ξαναπροσπαθήστε</string>
|
||||
<string name="add_route_points">Προσθήκη σημείων διαδρομής</string>
|
||||
<string name="add_waypoint">Προσθήκη σημείου διαδρομής</string>
|
||||
|
@ -3244,7 +3230,7 @@
|
|||
<string name="routing_attr_difficulty_preference_name">Προτιμώμενη δυσκολία</string>
|
||||
<string name="routing_attr_difficulty_preference_description">Προτιμήστε διαδρομές αυτής της δυσκολίας, αν και η διαδρομή σε πιο δύσκολες ή εύκολες πίστες είναι ακόμα εφικτές, εάν είναι πιο σύντομες.</string>
|
||||
<string name="routing_attr_freeride_policy_name">Εκτός πίστας</string>
|
||||
<string name="routing_attr_freeride_policy_description">"\'Ελεύθερες\' καθώς και \'εκτός πίστας\' είναι ανεπίσημες διαδρομές και περάσματα. Συνήθως ακαθάριστες, ασυντήρητες και μη ελεγμένες το πρωί. Μπαίνετε με δικό σας κίνδυνο."</string>
|
||||
<string name="routing_attr_freeride_policy_description">\'Ελεύθερες\' καθώς και \'εκτός πίστας\' είναι ανεπίσημες διαδρομές και περάσματα. Συνήθως ακαθάριστες, ασυντήρητες και μη ελεγμένες το πρωί. Μπαίνετε με δικό σας κίνδυνο.</string>
|
||||
<string name="configure_profile_info">Ρυθμίσεις για την κατατομή (προφίλ):</string>
|
||||
<string name="utm_format_descr">Το OsmAnd χρησιμοποιεί το πρότυπο UTM, το οποίο είναι παρόμοιο αλλά όχι ίδιο με τη μορφή UTM NATO.</string>
|
||||
<string name="shared_string_example">Παράδειγμα</string>
|
||||
|
@ -3399,7 +3385,7 @@
|
|||
<string name="track_saved">Αποθηκεύτηκε το ίχνος</string>
|
||||
<string name="empty_filename">Το όνομα του αρχείου είναι κενό</string>
|
||||
<string name="shared_string_revert">Επαναφορά</string>
|
||||
<string name="quick_action_directions_from_desc">"Πλήκτρο που ορίζει το κέντρο της οθόνης ως σημείο εκκίνησης. Θα σας ζητηθεί να ορίσετε προορισμό ή να ξεκινήσετε υπολογισμό διαδρομής."</string>
|
||||
<string name="quick_action_directions_from_desc">Πλήκτρο που ορίζει το κέντρο της οθόνης ως σημείο εκκίνησης. Θα σας ζητηθεί να ορίσετε προορισμό ή να ξεκινήσετε υπολογισμό διαδρομής.</string>
|
||||
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Εμφάνιση δικτύου κόμβων διαδρομών ποδηλάτων</string>
|
||||
<string name="clear_confirmation_msg">Καθαρισμός του %1$s;</string>
|
||||
<string name="download_map_dialog">Ερώτημα λήψης χάρτη</string>
|
||||
|
@ -3495,4 +3481,17 @@
|
|||
<string name="live_monitoring_time_buffer">Ενδιάμεσος χρόνος</string>
|
||||
<string name="live_monitoring_tracking_interval">Διάστημα παρακολούθησης</string>
|
||||
<string name="search_offline_geo_error">Αδυναμία ανάλυσης γεωγραφικού στόχου \'%s\'.</string>
|
||||
<string name="rearrange_categories">Αναδιάταξη κατηγοριών</string>
|
||||
<string name="create_custom_categories_list_promo">Μπορείτε να προσθέσετε προσαρμοσμένες κατηγορίες να απόκρυψεται κατηγορίες που δεν βρίσκεται απαραίτητες και να αλλάξετε τη σειρά ταξινόμησης του καταλόγου. Ο κατάλογος μπορεί να εισαχθεί και να εξαχθεί με προφίλ.</string>
|
||||
<string name="add_new_custom_category_button_promo">Μπορείτε να προσθέσετε μια νέα προσαρμοσμένη κατηγορία επιλέγοντας μία ή μερικές απαιτούμενες κατηγορίες.</string>
|
||||
<string name="reset_to_default_category_button_promo">Επαναφορά στην προεπιλογή θα διαγράψει όλες τις προσαρμοσμένες κατηγορίες και θα επαναφέρει τη σειρά ταξινόμησης στην προεπιλεγμένη κατάσταση μετά την εγκατάσταση.</string>
|
||||
<string name="shared_string_available">Διαθέσιμα</string>
|
||||
<string name="add_custom_category">Προσθήκη προσαρμοσμένης κατηγορίας</string>
|
||||
<string name="rendering_attr_streetLightingNight_name">Εμφάνιση μόνο τη νύχτα</string>
|
||||
<string name="plugin_prefs_reset_successful">Όλες οι ρυθμίσεις πρόσθετων επαναφέρθηκαν στην προεπιλεγμένη κατάσταση.</string>
|
||||
<string name="profile_prefs_reset_successful">Όλες οι ρυθμίσεις προφίλ επαναφέρθηκαν στην προεπιλεγμένη κατάσταση.</string>
|
||||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Ηλιοβασίλεμα στις %1$s</string>
|
||||
<string name="sunrise_at">Ανατολή του ηλίου στις %1$s</string>
|
||||
<string name="accessibility_mode_disabled">Η λειτουργία προσβασιμότητας απενεργοποιήθηκε στο σύστημά σας.</string>
|
||||
</resources>
|
|
@ -477,7 +477,7 @@ Lon: %2$s</string>
|
|||
<string name="share_note">Kunhavigi noton</string>
|
||||
<string name="location_on_map">Loko:\nLat %1$s\nLon %2$s</string>
|
||||
<string name="watch">Montri</string>
|
||||
<string name="notes">Notoj</string>
|
||||
<string name="notes">Sonaj/videaj notoj</string>
|
||||
<string name="online_map">Enreta mapo</string>
|
||||
<string name="roads_only">Nur vojoj</string>
|
||||
<string name="rendering_attr_pisteRoutes_name">Descendejoj</string>
|
||||
|
@ -495,8 +495,8 @@ Lon: %2$s</string>
|
|||
<string name="edit_group">Redakti grupon</string>
|
||||
<string name="parking_place">Parkumejo</string>
|
||||
<string name="rendering_attr_pisteGrooming_name">Skivoja prepar-speco</string>
|
||||
<string name="world_ski_missing">Por montri skiadajn mapojn, speciala eksterreta mapo devas esti elŝutita</string>
|
||||
<string name="nautical_maps_missing">Por montri ŝipveturadajn mapojn, speciala eksterreta mapo devas esti elŝutita</string>
|
||||
<string name="world_ski_missing">Elŝutu la specialan eksterretan mapon por vidigi skiadajn objektojn.</string>
|
||||
<string name="nautical_maps_missing">Elŝutu la specialan eksterretan mapon por vidigi ŝipveturadajn objektojn.</string>
|
||||
<string name="remove_the_tag">FORIGI LA ETIKEDON</string>
|
||||
<string name="version_settings">Kompilaĵoj</string>
|
||||
<string name="version_settings_descr">Elŝuti antaŭ-alfajn versiojn.</string>
|
||||
|
@ -819,7 +819,7 @@ Lon: %2$s</string>
|
|||
<string name="routing_attr_height_description">Agordi maksimuman permesan alton de veturilo.</string>
|
||||
<string name="android_19_location_disabled">Ekde la versio 4.4 (KitKat) de Android, la antaŭa dosierujo (%s) estas evitinda. Ĉu kopii ĉiujn dosierojn de OsmAnd al la nova dosierujo\?
|
||||
\n Rimarko 1: viaj malnovaj dosieroj ne estos ŝanĝitaj (tamen vi povos forigi ilin permane).
|
||||
\n Rimarko 2: dosieroj en la nova loko ne povos esti uzitaj ambaŭ per OsmAnd kaj OsmAnd+.</string>
|
||||
\n Rimarko 2: dosieroj en la nova loko ne povos esti uzataj ambaŭ fare de OsmAnd kaj OsmAnd+.</string>
|
||||
<string name="copying_osmand_one_file_descr">Kopiado de dosiero (%s) al la nova loko…</string>
|
||||
<string name="copying_osmand_files_descr">Kopiado de datum-dosieroj de OsmAnd al la nova dosierujo (%s)…</string>
|
||||
<string name="copying_osmand_files">Kopiado de datum-dosieroj de OsmAnd…</string>
|
||||
|
@ -869,7 +869,7 @@ Lon: %2$s</string>
|
|||
<string name="driving_region">Trafika regiono</string>
|
||||
<string name="driving_region_descr">Elekti trafikan regionon: Usono, Eŭropo, Britujo, Azio kaj aliaj.</string>
|
||||
<string name="speak_title">Anoncado…</string>
|
||||
<string name="speak_descr">Agordi anoncojn pri strataj nomoj, trafikaj avertoj (devigaj haltejoj, strat-ĝiboj), rapid-kontroliloj, rapidlimoj.</string>
|
||||
<string name="speak_descr">Agordi anoncojn pri strataj nomoj, trafikaj avertoj (devigaj haltejoj, strat‑ĝiboj), rapid‑kontroliloj kaj rapidlimoj.</string>
|
||||
<string name="speak_street_names">Nomoj de stratoj (parolsintezitaj)</string>
|
||||
<string name="speak_speed_limit">Rapidlimoj</string>
|
||||
<string name="speak_cameras">Rapid-kontroliloj</string>
|
||||
|
@ -935,7 +935,7 @@ Lon: %2$s</string>
|
|||
<string name="osmand_background_plugin_description">Montras agordojn pri aktivigi spuradon kaj navigadon fone per periode aktivigi GPS (ĉe malŝaltita ekrano).</string>
|
||||
<string name="contribution_activity">Instaleblaj versioj</string>
|
||||
<string name="accessibility_options">Alireblecaj agordoj</string>
|
||||
<string name="osmand_accessibility_description">Tiu ĉi kromprogramo ebligas uzi alireblecajn ilojn senpere en OsmAnd. Ĝi plifaciligas ekz. agordi rapidon de parolsintezitaj dialogaj helpoj, uzi montril-butonojn por navigado sur ekrano, uzi stirglobon por skalado, aŭ uzi tekst-al-voĉajn sciigojn ekz. por aŭtomate anonci vian pozicion.</string>
|
||||
<string name="osmand_accessibility_description">Ebligas uzi alireblecajn eblaĵojn senpere en OsmAnd. Ĝi plifaciligas ekz. agordi rapidon de parolsintezitaj dialogaj helpoj, uzi montril‑butonojn por navigado sur ekrano, uzi stirglobon por skalado, aŭ uzi voĉajn sciigojn ekz. por aŭtomate anonci vian pozicion.</string>
|
||||
<string name="select_address_activity">Enigu adreson</string>
|
||||
<string name="favourites_list_activity">Elekti ŝatatan</string>
|
||||
<string name="local_openstreetmap_act_title">Modifoj de OSM</string>
|
||||
|
@ -960,7 +960,7 @@ Lon: %2$s</string>
|
|||
<string name="recording_photo_description">Foto %1$s %2$s</string>
|
||||
<string name="av_def_action_picture">Fari foton</string>
|
||||
<string name="recording_context_menu_precord">Fari foton</string>
|
||||
<string name="dropbox_plugin_description">La kromprogramo Dropbox ebligas al vi samtempigi kursojn kaj sonajn/videajn notojn kun via konto ĉe Dropbox.</string>
|
||||
<string name="dropbox_plugin_description">Samtempigi kursojn kaj sonajn/videajn notojn kun via konto ĉe Dropbox.</string>
|
||||
<string name="dropbox_plugin_name">Dropbox kromprogramo</string>
|
||||
<string name="intermediate_points_change_order">Ŝanĝi ordon</string>
|
||||
<string name="srtm_paid_version_msg">Bonvolu konsideri aĉeti la kromprogramon “nivelkurboj” en la vendejo por subteni ĝian pluan evoluigon.</string>
|
||||
|
@ -1517,13 +1517,14 @@ Proporcia memoro %4$s MB (limito de Android %5$s MB, Dalvik %6$s MB).</string>
|
|||
\n
|
||||
\nAktivigo de tiu ĉi map-vido ŝanĝas map-aspekton al ‘vintro kaj skiado’, montranta ĉiun terenon kovritan de neĝo. La vidon oni povas malaktivigi, per malaktivigi la kromprogramon tie ĉi, aŭ per ŝanĝi de ‘map-aspekto’ en la menuo ‘agordi mapon.</string>
|
||||
<string name="osmand_parking_plugin_name">Parkumeja pozicio</string>
|
||||
<string name="osmand_parking_plugin_description">Tiu ĉi kromprogramo plifaciligas al vi registri kie via aŭto estas parkumata kaj kiom da parkumeja tempo restas (se ĝi estas limigita). Ambaŭ loko kaj tempo estas montrataj en la stirpanelo de OsmAnd kaj sur la fenestraĵo sur la map‑ekrano. Memorigo povas esti aldonita al la Androida kalendaro.</string>
|
||||
<string name="osmand_parking_plugin_description">Ebligas al vi registri kie via aŭto estas parkumata kaj kiom da parkumeja tempo restas.
|
||||
\n Ambaŭ loko kaj tempo estas montrataj en la stirpanelo de kaj sur la fenestraĵo sur la map‑ekrano. Memorigo povas esti aldonita al la Androida kalendaro.</string>
|
||||
<string name="osmand_distance_planning_plugin_name">Kalkulilo de distanco kaj planilo</string>
|
||||
<string name="osmand_distance_planning_plugin_description">Tiu ĉi kromprogramo liveras fenestraĵon por krei kursojn – per tuŝi sur la mapo aŭ per uzi aŭ modifi ekzistajn GPX-dosierojn – kaj por por plani vojaĝon kaj mezuri distancon inter punktoj. Rezultoj povas esti konservitaj kiel GPX-dosierojn, kiujn oni povas estonte uzi por gvidado.</string>
|
||||
<string name="osmand_distance_planning_plugin_description">Ebligas difini kursojn per frapeti la mapon kaj modifi ekzistajn GPX‑dosierojn – por plani vojaĝon kaj mezuri distancon inter punktoj. Rezultoj povas esti konservitaj kiel GPX‑dosierojn, kiujn oni povas estonte uzi por gvidado.</string>
|
||||
<string name="osm_settings">OpenStreetMap-redaktilo</string>
|
||||
<string name="osm_editing_plugin_description">Per tiu ĉi kromprogramo OsmAnd povas esti uzata por kontribui al OSM per krei aŭ redakti OSM-interesejojn, per raporti aŭ komenti OSM-rimarkojn, per aldoni registritajn GPX-dosierojn. OSM estas komunuma, tutmonda, publika map-projekto. Por detaloj, legu: https://openstreetmap.org. Aktiva kontribuado estas laŭdinda, kaj vi povas kontribui senpere per OsmAnd, se vi entajpos viajn OSM-ajn ensalutilojn en la aplikaĵo.</string>
|
||||
<string name="osm_editing_plugin_description">Kontribuu al OSM per krei aŭ modifi punktojn (ekz. vendejojn, vidindaĵojn, hidrantojn), malfermi aŭ komenti rimarkojn kaj alŝuti registritajn GPX‑spurojn per OsmAnd. OpenStreetMap (OSM) estas komunuma, tutmonda kaj publika map‑projekto. Necesas krei konton ĉe OpenStreetMap.org por kontribui.</string>
|
||||
<string name="debugging_and_development">OsmAnd-programistilo</string>
|
||||
<string name="osmand_development_plugin_description">Montras agordojn por programado kaj senerarigado kiel testado aŭ simulado de kurso, efikeco de ekran‑bildigado, aŭ voĉaj anoncoj. Tiuj ĉi agordoj taŭgas por programistoj kaj ne estas bezonataj por norma uzanto.</string>
|
||||
<string name="osmand_development_plugin_description">Agordoj pri evoluigo kaj senerarigado de OsmAnd: simuladi kurson, efikeco de ekran‑bildigado, voĉaj anoncoj. Destinitaj por programistoj, ne bezonataj por kutimaj uzantoj.</string>
|
||||
<string name="lang_en_gb">Angla (Brita)</string>
|
||||
<string name="level_to_switch_vector_raster_descr">Uzi kahelajn mapojn de tiu ĉi pligrandigo.</string>
|
||||
<string name="level_to_switch_vector_raster">Minimuma vektora skal-nivelo</string>
|
||||
|
@ -3467,4 +3468,7 @@ Indikas lokon: %1$s x %2$s"</string>
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Sunsubiro je %1$s</string>
|
||||
<string name="sunrise_at">Sunleviĝo je %1$s</string>
|
||||
<string name="monitoring_min_distance_descr_recommendation">Konsilo: provu agordi ĝin al 5 metroj se vi ne bezonas registri pli detalajn movojn kaj ne volas registri datumojn dum restado.</string>
|
||||
<string name="live_monitoring_time_buffer">Temp‑bufro</string>
|
||||
<string name="live_monitoring_tracking_interval">Registrada intertempo</string>
|
||||
</resources>
|
|
@ -3454,11 +3454,15 @@ représentant la zone : %1$s x %2$s</string>
|
|||
<string name="monitoring_min_speed_descr_remark">Remarque : vérification de vitesse > 0. La plupart des puces GPS fournissent une vitesse uniquement lorsque vous êtes en mouvement. Par conséquent, l\'indication du paramètre > 0 pour ce filtre utilise la détection de mouvement par la puce GPS. Mais même s\'il n\'est pas filtré ici au moment de l\'enregistrement, nous utilisons toujours cette fonctionnalité dans notre analyse des traces GPX pour déterminer la distance corrigée, c\'est-à-dire que la valeur affichée dans ce champ est la distance enregistrée en déplacement.</string>
|
||||
<string name="monitoring_min_distance_descr_side_effect">Effet secondaire : les périodes de repos ne seront pas enregistrées ou seulement par un point. De petits mouvements, comme des pas sur le côté, pourront être ignorés. Votre fichier contiendra moins d\'informations exploitables en post-traitement et aura des statistiques moins exactes (éliminant les points redondants mais conservant les erreurs de position dues à une mauvaise réception ou aux artefacts de la puce GPS).</string>
|
||||
<string name="shared_string_available">Disponible</string>
|
||||
<string name="add_custom_category">Ajouter une catégorie personnalisée</string>
|
||||
<string name="add_custom_category">Ajouter une catégorie personnelle</string>
|
||||
<string name="rendering_attr_streetLightingNight_name">Afficher seulement de nuit</string>
|
||||
<string name="plugin_prefs_reset_successful">Tous les paramètres du greffon ont été restaurés à leurs valeurs par défaut.</string>
|
||||
<string name="profile_prefs_reset_successful">Tous les paramètres du profile ont été restaurés à leurs valeurs par défaut.</string>
|
||||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Coucher de soleil à %1$s</string>
|
||||
<string name="sunrise_at">Lever de soleil à %1$s</string>
|
||||
<string name="rearrange_categories">Réorganiser les catégories</string>
|
||||
<string name="create_custom_categories_list_promo">Vous pouvez ajouter des catégories personnelles, masquer les catégories que vous ne souhaitez pas utiliser et les trier. La liste des catégories peut être importée et exportée grâce aux profils.</string>
|
||||
<string name="reset_to_default_category_button_promo">Réinitialiser supprimera toutes les catégories personnelles et réinitialisera le tri.</string>
|
||||
<string name="accessibility_mode_disabled">Le mode d\'accessibilité est désactivé dans votre système.</string>
|
||||
</resources>
|
|
@ -3383,7 +3383,7 @@
|
|||
<string name="shared_string_turn_off">כיבוי</string>
|
||||
<string name="new_plugin_added">נוסף תוסף חדש</string>
|
||||
<string name="join_segments">חיבור מקטעים</string>
|
||||
<string name="add_new_profile_q">להוסיף פרופיל חדש ‚%1&s’\?</string>
|
||||
<string name="add_new_profile_q">להוסיף פרופיל חדש ‚%1$s’\?</string>
|
||||
<string name="save_heading">כולל הכותרת</string>
|
||||
<string name="save_heading_descr">לשמור את הכותרת של כל נקודת דרך בזמן ההקלטה.</string>
|
||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||
|
@ -3437,4 +3437,17 @@
|
|||
<string name="button_rate">דירוג</string>
|
||||
<string name="logcat_buffer_descr">כאן ניתן לצפות ולשתף את תיעוד יומני היישומון</string>
|
||||
<string name="permission_is_required">נדרשת הרשאה כדי להשתמש באפשרות הזו.</string>
|
||||
<string name="rearrange_categories">סידור הקטגוריות מחדש</string>
|
||||
<string name="create_custom_categories_list_promo">ניתן להוסיף קטגוריות מותאמות אישית, להסתיר קטגוריות שאינן נחוצות לך ולשנות את סדר הרשימה. ניתן לייבא את הרשימה ולייצא אותה עם פרופילים.</string>
|
||||
<string name="add_new_custom_category_button_promo">ניתן להוסיף קטגוריה חדשה מותאמת אישית על ידי בחירה בקטגוריה נחוצה אחת או יותר.</string>
|
||||
<string name="reset_to_default_category_button_promo">איפוס לבררת מחדל ימחק קטגוריות מותאמות אישית ויאפס את הסדר למצב בררת המחדל כמו לאחר ההתקנה.</string>
|
||||
<string name="shared_string_available">זמין</string>
|
||||
<string name="add_custom_category">הוספת קטגוריה מותאמת אישית</string>
|
||||
<string name="rendering_attr_streetLightingNight_name">הצגה רק בלילה</string>
|
||||
<string name="plugin_prefs_reset_successful">כל הגדרות התוסף שוחזרו למצב בררת המחדל.</string>
|
||||
<string name="profile_prefs_reset_successful">כל הגדרות הפרופיל אופסו למצב בררת המחדל.</string>
|
||||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">שקיעה ב־%1$s</string>
|
||||
<string name="sunrise_at">זריחה ב־%1$s</string>
|
||||
<string name="accessibility_mode_disabled">מצב נגישות מושבת במערכת שלך.</string>
|
||||
</resources>
|
|
@ -247,7 +247,7 @@
|
|||
<string name="poi_music">Tónlistarverslun</string>
|
||||
<string name="poi_musical_instrument">Hljóðfæri</string>
|
||||
<string name="poi_newsagent">Blaðasali</string>
|
||||
<string name="poi_organic">Lífrænt fæði</string>
|
||||
<string name="poi_organic">Lífrænar vörur</string>
|
||||
<string name="poi_outdoor">Útivistarverslun</string>
|
||||
<string name="poi_photo">Ljósmyndavöruverslun</string>
|
||||
<string name="poi_ticket">Miðasala</string>
|
||||
|
@ -3770,4 +3770,5 @@
|
|||
<string name="poi_bowling_alley">Keiluhöll</string>
|
||||
<string name="poi_piste_ref">Viðmiðunarnúmer leiðar</string>
|
||||
<string name="poi_resort_hunting">Grunnbúðir veiðimanna</string>
|
||||
<string name="poi_shop_security">Öryggisvöruverslun</string>
|
||||
</resources>
|
|
@ -3503,4 +3503,6 @@ Stendur fyrir svæði: %1$s x %2$s</string>
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Sólsetur kl. %1$s</string>
|
||||
<string name="sunrise_at">Sólarupprás kl. %1$s</string>
|
||||
<string name="reset_to_default_category_button_promo">Endurstilling á sjálfgefið mun eyða öllum sérsniðnum flokkum og setja röðun í upprunalega stöðu eftir uppsetningu.</string>
|
||||
<string name="accessibility_mode_disabled">Altækur aðgangur er óvirkur á kerfinu þínu.</string>
|
||||
</resources>
|
|
@ -952,9 +952,8 @@ POIの更新は利用できません</string>
|
|||
<string name="global_settings">グローバル設定</string>
|
||||
<string name="global_app_settings">アプリケーション全般の設定</string>
|
||||
<string name="download_files_not_enough_space">ダウンロードするのに十分な空き領域がありません。%1$sMB(空き容量:%2$s)</string>
|
||||
<string name="download_files_question_space">{0}個のファイルをダウンロード
|
||||
必要なストレージ容量{1}MB
|
||||
現在の空き容量{2}MB</string>
|
||||
<string name="download_files_question_space">{0}個のファイルをダウンロードしますか?
|
||||
\n必要なストレージ容量{1}MB 現在の空き容量{2}MB</string>
|
||||
<string name="use_transparent_map_theme">透明なテーマ</string>
|
||||
<string name="native_library_not_supported">ネイティブライブラリは、このデバイスでサポートされていません。</string>
|
||||
<string name="init_native_library">ネイティブライブラリを初期化しています…</string>
|
||||
|
@ -1832,11 +1831,11 @@ POIの更新は利用できません</string>
|
|||
<string name="shared_string_move_down">下に移動</string>
|
||||
<string name="finish_navigation">ナビゲーションの終了</string>
|
||||
<string name="avoid_road">使用しない道路として指定</string>
|
||||
<string name="storage_directory_readonly_desc">現在選択されているデータ保存フォルダーは読み取り専用です。保存フォルダーは一時的に内部メモリに設定されました。書き込み可能なストレージのフォルダを選択してください。</string>
|
||||
<string name="storage_directory_readonly_desc">選択したデータ保存フォルダーが書き込み保護されているため、内部メモリに切り替えました。書き込み可能な保存用ディレクトリを選択してください。</string>
|
||||
<string name="storage_directory_shared">共有記憶域</string>
|
||||
<string name="full_report">より詳細なレポートは以下サイトにて</string>
|
||||
<string name="recalculate_route">ルートの再計算</string>
|
||||
<string name="open_street_map_login_and_pass">OpenStreetMapのログイン名とパスワード</string>
|
||||
<string name="open_street_map_login_and_pass">OSMのログイン名とパスワード</string>
|
||||
<string name="donations">寄付額</string>
|
||||
<string name="osm_user_stat">編集数 %1$s, ランク %2$s, 総編集数 %3$s</string>
|
||||
<string name="osm_editors_ranking">OSM編集者ランキング</string>
|
||||
|
@ -1856,8 +1855,11 @@ POIの更新は利用できません</string>
|
|||
<string name="map_markers_other">その他マーカー</string>
|
||||
<string name="upload_anonymously">匿名でアップロード</string>
|
||||
<string name="show_transparency_seekbar">透過タイプシークバーを表示</string>
|
||||
<string name="download_files_error_not_enough_space">空き容量が足りません! 一時ファイルの置き場に {3}MB、保存のため {1}MBが必要です。(利用可能領域 {2}MB)</string>
|
||||
<string name="download_files_question_space_with_temp">{0}個のファイルをダウンロードしますか? 一時的に {3}MBの空き容量が必要で、最終的には {1}MB使用します。 (利用可能領域 {2}MB)</string>
|
||||
<string name="download_files_error_not_enough_space">空き容量が足りません!
|
||||
\n一時ファイルの置き場に {3}MB、保存のため {1}MBが必要です。
|
||||
\n(利用可能領域 {2}MB)</string>
|
||||
<string name="download_files_question_space_with_temp">{0}個のファイルをダウンロードしますか?
|
||||
\n一時的に {3}MBの空き容量が必要で、最終的には {1}MB使用します。 (利用可能領域 {2}MB)</string>
|
||||
<string name="upload_osm_note_description">OSMメモのアップロードには、匿名またはあなたのOpenStreetMap.orgプロファイルを使用することが可能です。</string>
|
||||
<string name="upload_osm_note">OSMメモをアップロード</string>
|
||||
<string name="map_marker_1st">1番目のマップマーカー</string>
|
||||
|
@ -1935,7 +1937,9 @@ POIの更新は利用できません</string>
|
|||
<string name="osm_live_subscribe_btn">サブスクリプション契約をする</string>
|
||||
<string name="osm_live_subscription_settings">サブスクリプションの設定</string>
|
||||
<string name="osm_live_ask_for_purchase">最初にOsmAnd Liveのサブスクリプション登録(定期有料契約)をしてください</string>
|
||||
<string name="osm_live_header">このサブスクリプション(定期有料契約)により世界中のマップを時間毎更新することが可能です。 サブスクリプション収入の一部はOSMコミュニティに還元され、OSMに貢献した各ユーザーにも支払われます。 あなたがOsmAndとOSMを愛用し、サポートを受けたり支援を行いたいと思うのであれば、サブスクリプションはそのための最適解です。</string>
|
||||
<string name="osm_live_header">このサブスクリプション(定期有料契約)により世界中のマップを時間毎更新することが可能です。
|
||||
\n サブスクリプション収入の一部はOSMコミュニティに還元され、OSMに貢献した各ユーザーにも支払われます。
|
||||
\nあなたがOsmAndとOSMを愛用し、サポートを受けたり支援を行いたいと思うのであれば、サブスクリプションはそのための最適解です。</string>
|
||||
<string name="no_address_found">住所が未定義</string>
|
||||
<string name="number_of_contributors">貢献者数</string>
|
||||
<string name="number_of_edits">編集数</string>
|
||||
|
@ -2042,8 +2046,8 @@ POIの更新は利用できません</string>
|
|||
<string name="new_filter">新しいフィルター</string>
|
||||
<string name="new_filter_desc">新しいフィルターの名前を入力してください、作成したフィルターは[カテゴリー]タブに追加されます。</string>
|
||||
<string name="osm_live_payment_desc">サブスクリプションには月額料金がかかります。キャンセルはGoogle Playにていつでも可能です。</string>
|
||||
<string name="donation_to_osm">OpenStreetMapコミュニティへの寄付</string>
|
||||
<string name="donation_to_osm_desc">寄付金の一部は、OSMユーザー(OpenStreetMapの更新に貢献した人達)に送られます。サブスクリプション(定期有料契約)の値段は変わりません。</string>
|
||||
<string name="donation_to_osm">OSMコミュニティへの寄付</string>
|
||||
<string name="donation_to_osm_desc">寄付金の一部はOSMへの貢献者に送られます。サブスクリプション(定期有料契約)の値段は変わりません。</string>
|
||||
<string name="osm_live_subscription_desc">サブスクリプションにより、毎時、毎日、毎週更新されたマップの利用と、世界中のマップを無制限にダウンロードすることが可能になります。</string>
|
||||
<string name="get_it">入手する</string>
|
||||
<string name="si_mi_meters">マイル/メートル</string>
|
||||
|
@ -2217,15 +2221,15 @@ POIの更新は利用できません</string>
|
|||
<string name="select_city">市町村名を選択</string>
|
||||
<string name="select_postcode">郵便番号検索</string>
|
||||
<string name="quick_action_auto_zoom">マップの自動ズームをON/OFF</string>
|
||||
<string name="quick_action_auto_zoom_desc">移動速度に応じたマップの自動ズーム機能のON/OFFを切り替えます。</string>
|
||||
<string name="quick_action_auto_zoom_on">マップの自動ズーム有効化</string>
|
||||
<string name="quick_action_auto_zoom_off">マップの自動ズーム無効化</string>
|
||||
<string name="quick_action_auto_zoom_desc">移動速度に応じたマップの自動ズーム機能のON/OFFを切り替えるボタンです。</string>
|
||||
<string name="quick_action_auto_zoom_on">マップの自動ズームをONにする</string>
|
||||
<string name="quick_action_auto_zoom_off">マップの自動ズームをOFFにする</string>
|
||||
<string name="quick_action_add_destination">目的地を設定</string>
|
||||
<string name="quick_action_replace_destination">目的地を置き換え</string>
|
||||
<string name="quick_action_add_first_intermediate">最初の中間地点を追加</string>
|
||||
<string name="quick_action_add_destination_desc">画面の中心を目的地として設定します。以前の目的地は最後に寄る経由地点として置き換わります。</string>
|
||||
<string name="quick_action_add_destination_desc">画面の中心を目的地として設定するボタンです。以前の目的地は最後に寄る経由地点として置き換わります。</string>
|
||||
<string name="quick_action_replace_destination_desc">アクションボタンをタップすると、画面中央アイコンの地点を新しい目的地として置き換えます。</string>
|
||||
<string name="quick_action_add_first_intermediate_desc">画面中央アイコンの地点を最初の経由地点として追加します。</string>
|
||||
<string name="quick_action_add_first_intermediate_desc">画面中央アイコンの地点を最初の経由地点として追加するボタンです。</string>
|
||||
<string name="no_overlay">オーバーレイ無し</string>
|
||||
<string name="no_underlay">アンダーレイ無し</string>
|
||||
<string name="subscribe_email_error">エラー</string>
|
||||
|
@ -2373,7 +2377,7 @@ POIの更新は利用できません</string>
|
|||
<string name="quick_action_showhide_osmbugs_title">OSMメモの表示/非表示</string>
|
||||
<string name="quick_action_osmbugs_show">OSMメモを表示</string>
|
||||
<string name="quick_action_osmbugs_hide">OSMメモを非表示</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">マップ画面でのOSMメモの表示と非表示を切り替えます。</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">マップ画面でのOSMメモの表示/非表示を切り替えるボタンです。</string>
|
||||
<string name="sorted_by_distance">距離順で並べ替え</string>
|
||||
<string name="search_favorites">お気に入りで検索</string>
|
||||
<string name="hillshade_menu_download_descr">標高の高低をグラデーション表示するには、陰影起伏図(Hillshade Overlay)マップのダウンロードが必要です。</string>
|
||||
|
@ -2392,7 +2396,7 @@ POIの更新は利用できません</string>
|
|||
<string name="translit_name_if_miss">%1$sの名前が欠落している場合、(他の文字で)翻字します</string>
|
||||
<string name="translit_names">名称を翻字</string>
|
||||
<string name="private_access_routing_req">目的地が専有エリア(私有地)内にあります。専有道路あるいは私道を通ることを許可しますか?</string>
|
||||
<string name="quick_action_page_list_descr">作成したリスト順にマップスタイルを変更します。</string>
|
||||
<string name="quick_action_page_list_descr">作成したリスト順にマップスタイルを変更するボタンです。</string>
|
||||
<string name="nothing_found">見つかりませんでした</string>
|
||||
<string name="nothing_found_descr">検索単語を変更したり、検索の距離を広げてみてください。</string>
|
||||
<string name="increase_search_radius">検索範囲を拡大</string>
|
||||
|
@ -2496,7 +2500,7 @@ POIの更新は利用できません</string>
|
|||
<string name="order_by">並び順:</string>
|
||||
<string name="marker_show_distance_descr">マップ画面でマーカーへの方向と距離を示す方法を選択します:</string>
|
||||
<string name="do_not_use_animations">描画処理の省略</string>
|
||||
<string name="do_not_use_animations_descr">アプリ内画面のアニメーション描写(各モーション)を無効化します。</string>
|
||||
<string name="do_not_use_animations_descr">マップアニメーションをオフにします。</string>
|
||||
<string name="map_orientation_change_in_accordance_with_speed">マップ向きのしきい値</string>
|
||||
<string name="map_orientation_change_in_accordance_with_speed_descr">マップの向きが「移動方向」から「方位」に切り替わる速度を選択します。</string>
|
||||
<string name="all_markers_moved_to_history">すべてのマップマーカーを履歴に移動</string>
|
||||
|
@ -2537,10 +2541,10 @@ POIの更新は利用できません</string>
|
|||
<string name="measurement_tool_action_bar">閲覧マップから計測したい各地点を選択</string>
|
||||
<string name="measurement_tool">距離測定</string>
|
||||
<string name="quick_action_resume_pause_navigation">ナビゲーションの再開/一時停止</string>
|
||||
<string name="quick_action_resume_pause_navigation_descr">このボタンをタップすることでナビゲーションを一時停止または再開できます。</string>
|
||||
<string name="quick_action_resume_pause_navigation_descr">ナビゲーションを一時停止または再開するボタンです。</string>
|
||||
<string name="quick_action_show_navigation_finish_dialog">ナビゲーション終了の確認ダイアログを表示</string>
|
||||
<string name="quick_action_start_stop_navigation">ナビゲーションの開始/停止</string>
|
||||
<string name="quick_action_start_stop_navigation_descr">このボタンをタップするとナビゲーションを開始または終了します。</string>
|
||||
<string name="quick_action_start_stop_navigation_descr">ナビゲーションを開始または終了するボタンです。</string>
|
||||
<string name="access_map_linked_to_location">マップの場所にリンクされています</string>
|
||||
<string name="rendering_value_darkyellow_name">ダークイエロー</string>
|
||||
<string name="rendering_value_translucent_pink_name">半透明ピンク</string>
|
||||
|
@ -2603,7 +2607,7 @@ POIの更新は利用できません</string>
|
|||
<string name="shared_string_deleted">削除しました</string>
|
||||
<string name="shared_string_edited">編集されました</string>
|
||||
<string name="shared_string_added">追加しました</string>
|
||||
<string name="notes_by_date">日付別の注釈</string>
|
||||
<string name="notes_by_date">日付別OSMメモ</string>
|
||||
<string name="add_group">グループの追加</string>
|
||||
<string name="empty_state_osm_edits_descr">OSMで用いられるPOIの作成や変更、OSMメモを開いたり注釈を加えたり、記録したGPXファイルの提供などがおこなえます。</string>
|
||||
<string name="mark_passed">通過済みにする</string>
|
||||
|
@ -2765,11 +2769,11 @@ POIの更新は利用できません</string>
|
|||
<string name="show_closed_notes">閉じたメモの表示</string>
|
||||
<string name="switch_osm_notes_visibility_desc">マップ上にあるOSMメモの表示/非表示を切り替えます。</string>
|
||||
<string name="gpx_file_desc">GPX - JOSMまたは他のOSMエディタへ適したエクスポート形式です。</string>
|
||||
<string name="osc_file_desc">OSC - OpenStreetMapの利用に適したエクスポート形式です。</string>
|
||||
<string name="osc_file_desc">OSC - OSMの利用に適したエクスポート形式です。</string>
|
||||
<string name="shared_string_gpx_file">GPXファイル</string>
|
||||
<string name="osc_file">OSCファイル</string>
|
||||
<string name="choose_file_type">ファイルタイプを選択</string>
|
||||
<string name="osm_edits_export_desc">エクスポートタイプを選択します:OSMメモ、POI、またはその両方。</string>
|
||||
<string name="osm_edits_export_desc">OSMメモ、POI、またはその両方用にエクスポートします。</string>
|
||||
<string name="all_data">全てのデータ</string>
|
||||
<string name="osm_notes">OSMメモ</string>
|
||||
<string name="will_open_tomorrow_at">明日開く</string>
|
||||
|
@ -2875,7 +2879,7 @@ POIの更新は利用できません</string>
|
|||
<string name="show_more">詳細を見る</string>
|
||||
<string name="tracks_on_map">マップ上の経路</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks">GPX経路の表示/非表示</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks_descr">マップ上GPX経路の表示と非表示を切り替えます</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks_descr">マップ上にある選択したGPX経路の表示/非表示を切り替えるボタンです。</string>
|
||||
<string name="quick_action_gpx_tracks_hide">GPX経路の非表示</string>
|
||||
<string name="quick_action_gpx_tracks_show">GPX経路の表示</string>
|
||||
<string name="add_destination_query">最初に目的地を設定して下さい</string>
|
||||
|
@ -2916,7 +2920,7 @@ POIの更新は利用できません</string>
|
|||
<string name="osm_live_payment_renews_annually">毎年更新</string>
|
||||
<string name="default_price_currency_format">%1$.2f %2$s</string>
|
||||
<string name="osm_live_payment_header">支払い方法の選択:</string>
|
||||
<string name="osm_live_payment_contribute_descr">寄付金はOpenStreetMapの地図製作に役立てられます。</string>
|
||||
<string name="osm_live_payment_contribute_descr">寄付金はOSMの地図製作に役立てられます。</string>
|
||||
<string name="mapillary_menu_title_pano">360°イメージのみ表示</string>
|
||||
<string name="osm_recipient_stat">編集 %1$s, 合計 %2$s mBTC</string>
|
||||
<string name="shared_string_launch">起動</string>
|
||||
|
@ -3128,7 +3132,7 @@ POIの更新は利用できません</string>
|
|||
<string name="base_profile_descr_car">乗用車,トラック,オートバイ</string>
|
||||
<string name="base_profile_descr_bicycle">マウンテンバイク、モペッド(ペダル付き原動機付自転車)、馬</string>
|
||||
<string name="base_profile_descr_pedestrian">徒歩,ハイキング,ランニング</string>
|
||||
<string name="base_profile_descr_public_transport">すべての公共交通機関</string>
|
||||
<string name="base_profile_descr_public_transport">公共交通機関の種類</string>
|
||||
<string name="base_profile_descr_boat">エンジン付き船舶,漕ぎボート,帆船</string>
|
||||
<string name="base_profile_descr_aircraft">航空機,グライダー</string>
|
||||
<string name="routing_profile_geocoding">ジオコーディング</string>
|
||||
|
@ -3204,7 +3208,7 @@ POIの更新は利用できません</string>
|
|||
<string name="routing_attr_freeride_policy_description">\'フリーライド\'や\'ゲレンデ外\'は非公式のルートです。通常は手入れされていないうえ、職員によってメンテナンスされておらずクローズ時間にもチェックされません。マップデータは自己責任で利用し、禁止されている場所には決して入らないでください。</string>
|
||||
<string name="routeInfo_roadClass_name">道路種別</string>
|
||||
<string name="configure_profile_info">設定プロファイル:</string>
|
||||
<string name="utm_format_descr">OsmAndは座標形式の一つとしてUTM標準形式を使用します。これはUTM NATO形式と似ていますが異なるものなのでご注意ください。</string>
|
||||
<string name="utm_format_descr">OsmAndは座標形式の一つとしてUTM標準形式を使用します。これはUTM NATO(※訳注 おそらくMGRS)形式と似ていますが異なるものなのでご注意ください。</string>
|
||||
<string name="shared_string_example">例</string>
|
||||
<string name="navigate_point_format_utm">UTM標準</string>
|
||||
<string name="navigate_point_format_olc">オープンロケーションコード(OLC)</string>
|
||||
|
@ -3221,7 +3225,7 @@ POIの更新は利用できません</string>
|
|||
<string name="wake_time">画面を表示する時間</string>
|
||||
<string name="units_and_formats">単位と形式</string>
|
||||
<string name="appearance">外観</string>
|
||||
<string name="map_look_descr">マップの見た目に関する設定です</string>
|
||||
<string name="map_look_descr">マップの見た目に関する設定</string>
|
||||
<string name="map_look">マップ外観</string>
|
||||
<string name="list_of_installed_plugins">インストール済みプラグインリスト</string>
|
||||
<string name="configure_navigation">ナビゲーション設定</string>
|
||||
|
@ -3242,8 +3246,8 @@ POIの更新は利用できません</string>
|
|||
<string name="paste_Osmand_data_folder_path">OsmAndデータのあるフォルダーへのパスを貼りつけ</string>
|
||||
<string name="change_osmand_data_folder_question">OsmAndデータフォルダーを変更しますか?</string>
|
||||
<string name="move_maps_to_new_destination">新しい保存場所に移動する</string>
|
||||
<string name="internal_app_storage_description">OsmAndのみがアクセス可能な、ユーザーおよびその他のアプリからは見えない内部ストレージ</string>
|
||||
<string name="change_data_storage_folder">データ保存フォルダーを変更</string>
|
||||
<string name="internal_app_storage_description">OsmAnd用内部ストレージ(ユーザーや他アプリから隔離された場所)</string>
|
||||
<string name="change_data_storage_folder">保存フォルダーを変更</string>
|
||||
<string name="rendering_attr_piste_type_snow_park_name">雪遊び広場</string>
|
||||
<string name="rendering_attr_piste_type_sleigh_name">牽引式そり乗り場</string>
|
||||
<string name="rendering_attr_piste_type_sled_name">そり専用ゲレンデ</string>
|
||||
|
@ -3267,7 +3271,7 @@ POIの更新は利用できません</string>
|
|||
<string name="rendering_attr_piste_difficulty_aerialway_name">索道(リフトやロープウェイなど)</string>
|
||||
<string name="rendering_attr_piste_difficulty_connection_name">リフト間接続</string>
|
||||
<string name="shared_string_calculate">計算</string>
|
||||
<string name="shared_string_osmand_usage">OsmAndの使い方</string>
|
||||
<string name="shared_string_osmand_usage">OsmAndの合計使用容量</string>
|
||||
<string name="shared_sting_tiles">タイル</string>
|
||||
<string name="shared_string_maps">マップ</string>
|
||||
<string name="shared_string_memory_tb_desc">%1$s TB</string>
|
||||
|
@ -3292,7 +3296,7 @@ POIの更新は利用できません</string>
|
|||
\n
|
||||
\n• ブラウジング中にダウンロードすべきマップを提案する新しいマップダウンロードダイアログの採用
|
||||
\n
|
||||
\n• 夜間テーマの修正
|
||||
\n• 暗色テーマの修正
|
||||
\n
|
||||
\n• 各国においていくつかのルーティングに関する問題の修正
|
||||
\n
|
||||
|
@ -3318,7 +3322,7 @@ POIの更新は利用できません</string>
|
|||
<string name="years_2_4">年</string>
|
||||
<string name="months_3">3ヶ月</string>
|
||||
<string name="price_free">無料</string>
|
||||
<string name="screen_alerts_descr">アラート(警告、注意)は、ナビゲーション中に画面左下に表示されます。</string>
|
||||
<string name="screen_alerts_descr">ナビゲーション中に左下に表示されるアラート(警告アイコン)を指します。</string>
|
||||
<string name="language_and_output">言語と出力</string>
|
||||
<string name="reset_to_default">標準設定に戻す</string>
|
||||
<string name="manage_profiles_descr">プロファイルの作成、インポート、編集</string>
|
||||
|
@ -3343,10 +3347,10 @@ POIの更新は利用できません</string>
|
|||
<string name="app_mode_pickup_truck">ピックアップトラック</string>
|
||||
<string name="years_5">年</string>
|
||||
<string name="cancel_subscription">サブスクリプションの解除</string>
|
||||
<string name="apply_preference_to_all_profiles">ここでの変更はすべてのプロファイルに適用することも、現在選択されているプロファイルにのみ適用することもできます。</string>
|
||||
<string name="apply_preference_to_all_profiles">ここでの変更は選択したものはもちろん、すべてのプロファイルにも適用できます。</string>
|
||||
<string name="shared_preference">現在の設定</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_name">未舗装道路を優先</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_description">未舗装道路を優先してルートを検索します。</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_description">ルート検索時に、舗装道路よりも未舗装道路を優先します。</string>
|
||||
<string name="osm_recipients_label">OSM受信者</string>
|
||||
<string name="new_route_calculated_dist_dbg">ルート: 距離 %s、検索時間 %s
|
||||
\n検索時間: %.1f秒、道 %d、タイル %d</string>
|
||||
|
@ -3357,11 +3361,11 @@ POIの更新は利用できません</string>
|
|||
<string name="sit_on_the_stop">停留所標識</string>
|
||||
<string name="lang_oc">オック語</string>
|
||||
<string name="layer_osm_edits">OSMの編集</string>
|
||||
<string name="quick_action_contour_lines_descr">マップ上の等高線の表示/非表示を切り替えられます。</string>
|
||||
<string name="quick_action_contour_lines_descr">マップ上の等高線の表示/非表示を切り替えられるボタンです。</string>
|
||||
<string name="quick_action_contour_lines_show">等高線を表示</string>
|
||||
<string name="quick_action_contour_lines_hide">等高線を非表示</string>
|
||||
<string name="quick_action_show_hide_contour_lines">等高線を表示/非表示</string>
|
||||
<string name="quick_action_hillshade_descr">マップ上の陰影起伏図の表示/非表示を切り替えられます。</string>
|
||||
<string name="quick_action_hillshade_descr">マップ上の陰影起伏図の表示/非表示を切り替えられるボタンです。</string>
|
||||
<string name="quick_action_hillshade_show">陰影起伏図を表示</string>
|
||||
<string name="quick_action_hillshade_hide">陰影起伏図を非表示</string>
|
||||
<string name="quick_action_show_hide_hillshade">陰影起伏図の表示/非表示</string>
|
||||
|
@ -3395,7 +3399,7 @@ POIの更新は利用できません</string>
|
|||
<string name="shared_string_turn_off">OFFに</string>
|
||||
<string name="new_plugin_added">新しいプラグインが追加されました</string>
|
||||
<string name="join_segments">セグメント同士の接続</string>
|
||||
<string name="quick_action_directions_from_desc">画面の中心を出発点にし目的地までのルートを計算、または目的地マーカーがマップ上にない場合に目的地を選択するダイアログを開くボタンです。</string>
|
||||
<string name="quick_action_directions_from_desc">画面の中心を出発点にするボタンです。その後目的地を設定しルート検索を別途おこなう必要があります。</string>
|
||||
<string name="add_new_profile_q">新しいプロファイルとして\'%1$s\'を追加しますか?</string>
|
||||
<string name="save_heading">見出しを含める</string>
|
||||
<string name="save_heading_descr">記録中の各トラックポイントに見出しも保存します。</string>
|
||||
|
@ -3486,4 +3490,5 @@ POIの更新は利用できません</string>
|
|||
<string name="profile_prefs_reset_successful">すべてのプロファイル設定が初期状態に戻りました。</string>
|
||||
<string name="sunset_at">日出時刻</string>
|
||||
<string name="sunrise_at">日没時刻</string>
|
||||
<string name="accessibility_mode_disabled">端末本体のアクセシビリティモードが無効になっています。</string>
|
||||
</resources>
|
|
@ -2086,7 +2086,7 @@ Pôr do Sol: %2$s</string>
|
|||
<string name="srtm_color_scheme">Esquema de cores</string>
|
||||
<string name="make_round_trip">Fazer viagem de ida e volta</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_name">Sem estradas de gelo ou vaus</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_description">Evita estradas de gelo e vaus.</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_description">Evitar estradas de gelo e vaus.</string>
|
||||
<string name="map_orientation_change_in_accordance_with_speed">Limite para orientação do mapa</string>
|
||||
<string name="quick_action_show_navigation_finish_dialog">Exibir \'Navegação finalizada\'</string>
|
||||
<string name="mapillary_menu_title_tile_cache">Cache de quadrícula</string>
|
||||
|
@ -2983,7 +2983,7 @@ Pôr do Sol: %2$s</string>
|
|||
<string name="avoid_pt_types">Evite os tipos de transporte…</string>
|
||||
<string name="quick_action_day_night_mode">Modo %s</string>
|
||||
<string name="routing_attr_avoid_sett_name">Sem pedras irregulares ou paralelepípedo</string>
|
||||
<string name="routing_attr_avoid_sett_description">Evita pavimento de pedras irregulares e paralelepípedo</string>
|
||||
<string name="routing_attr_avoid_sett_description">Evitar pavimento de pedras irregulares e paralelepípedo</string>
|
||||
<string name="shared_string_degrees">Graus</string>
|
||||
<string name="shared_string_milliradians">Milirradianos</string>
|
||||
<string name="angular_measeurement">Unidade angular</string>
|
||||
|
@ -3090,7 +3090,7 @@ Pôr do Sol: %2$s</string>
|
|||
<string name="application_profiles">Perfis de aplicação</string>
|
||||
<string name="zoom_by_wunderlinq_descr">Altere o zoom do mapa rolando a roda para cima e para baixo. Escape retorna para o aplicativo WunderLINQ.</string>
|
||||
<string name="zoom_by_wunderlinq">Use o WunderLINQ para controle</string>
|
||||
<string name="quick_action_need_to_add_item_to_list">Adicione ao menos um item à lista nas configurações de \'Ação rápida\'</string>
|
||||
<string name="quick_action_need_to_add_item_to_list">Adicionar ao menos um item à lista nas configurações de \'Ação rápida\'</string>
|
||||
<string name="routing_attr_piste_type_downhill_name">Esqui alpino/de declínio</string>
|
||||
<string name="routing_attr_piste_type_downhill_description">Pistas de esqui alpino ou de declínio e acesso a teleféricos.</string>
|
||||
<string name="routing_attr_piste_type_nordic_name">Cross country/esqui nórdico</string>
|
||||
|
@ -3481,4 +3481,5 @@ Pôr do Sol: %2$s</string>
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Pôr do sol em %1$s</string>
|
||||
<string name="sunrise_at">Nascer do sol em %1$s</string>
|
||||
<string name="accessibility_mode_disabled">Modo de acessibilidade desativado em seu sistema.</string>
|
||||
</resources>
|
|
@ -2349,9 +2349,9 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="analyze_on_map">Analyzovať na mape</string>
|
||||
<string name="shared_string_visible">Viditeľné</string>
|
||||
<string name="quick_action_auto_zoom">Automatické priblíženie mapy zap/vyp</string>
|
||||
<string name="quick_action_auto_zoom_desc">Prepínač pre zapnutie/vypnutie automatického priblíženia mapy podľa vašej rýchlosti.</string>
|
||||
<string name="quick_action_auto_zoom_on">Zapnúť automatické priblíženie mapy</string>
|
||||
<string name="quick_action_auto_zoom_off">Vypnúť automatické priblíženie mapy</string>
|
||||
<string name="quick_action_auto_zoom_desc">Tlačidlo pre zapnutie alebo vypnutie automatického priblíženia mapy podľa vašej rýchlosti.</string>
|
||||
<string name="quick_action_auto_zoom_on">Zapnúť automatické približovanie</string>
|
||||
<string name="quick_action_auto_zoom_off">Vypnúť automatické približovanie</string>
|
||||
<string name="quick_action_add_destination">Zadať cieľ</string>
|
||||
<string name="quick_action_replace_destination">Nahradiť cieľ</string>
|
||||
<string name="quick_action_add_first_intermediate">Pridať prvý prechodný bod</string>
|
||||
|
@ -2392,10 +2392,10 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="srtm_menu_download_descr">Stiahnite mapu \"Vrstevnice\" pre tento región.</string>
|
||||
<string name="sorted_by_distance">Zoradené podľa vzdialenosti</string>
|
||||
<string name="search_favorites">Hľadať v Obľúbených bodoch</string>
|
||||
<string name="quick_action_showhide_osmbugs_title">Prepnúť OSM poznámky</string>
|
||||
<string name="quick_action_showhide_osmbugs_title">Zobraziť alebo skryť OSM poznámky</string>
|
||||
<string name="quick_action_osmbugs_show">Zobraziť OSM poznámky</string>
|
||||
<string name="quick_action_osmbugs_hide">Skryť OSM poznámky</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">Prepínač zobrazenia alebo skrytia OSM Poznámok na mape.</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">Tlačidlo pre zobrazenie alebo skrytie OSM poznámok na mape.</string>
|
||||
<string name="private_access_routing_req">Váš cieľ je v oblasti so súkromným prístupom. Povoliť vstup na súkromné cesty pre tento výlet\?</string>
|
||||
<string name="restart_search">Znovu začať hľadanie</string>
|
||||
<string name="increase_search_radius">Zväčšiť okruh hľadania</string>
|
||||
|
@ -2440,10 +2440,10 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="moving_time">Trvanie presunu</string>
|
||||
<string name="max_min">Max/Min</string>
|
||||
<string name="quick_action_resume_pause_navigation">Pozastaviť/pokračovať navigáciu</string>
|
||||
<string name="quick_action_resume_pause_navigation_descr">Použite toto tlačidlo pre pozastavenie alebo obnovenie navigácie.</string>
|
||||
<string name="quick_action_resume_pause_navigation_descr">Tlačidlo pre pozastavenie alebo pokračovanie navigácie.</string>
|
||||
<string name="quick_action_show_navigation_finish_dialog">Zobraziť správu \"Navigácia ukončená\"</string>
|
||||
<string name="quick_action_start_stop_navigation">Spustiť/Ukončiť navigáciu</string>
|
||||
<string name="quick_action_start_stop_navigation_descr">Použite toto tlačidlo pre spustenie alebo ukončenie navigácie.</string>
|
||||
<string name="quick_action_start_stop_navigation_descr">Tlačidlo pre spustenie alebo ukončenie navigácie.</string>
|
||||
<string name="rendering_value_translucent_pink_name">Priehľadná ružová</string>
|
||||
<string name="min_max">Min/Max</string>
|
||||
<string name="live_monitoring_max_interval_to_send">Časový zásobník pre online sledovanie</string>
|
||||
|
@ -2482,7 +2482,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="move_point">Presunúť bod</string>
|
||||
<string name="add_segment_to_the_track">Pridať do súboru GPX</string>
|
||||
<string name="do_not_use_animations">Žiadne animácie</string>
|
||||
<string name="do_not_use_animations_descr">Vypnúť animácie v aplikácii.</string>
|
||||
<string name="do_not_use_animations_descr">Vypne animácie mapy.</string>
|
||||
<string name="keep_showing_on_map">Zobrazovať ďalej na mape</string>
|
||||
<string name="exit_without_saving">Ukončiť bez uloženia?</string>
|
||||
<string name="move_all_to_history">Presunúť všetko do histórie</string>
|
||||
|
@ -2589,7 +2589,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="one_tap_active_descr">Potlačte značku na mape na jej presunutie na prvé miesto v aktívnych značkách bez otvárania kontextového menu.</string>
|
||||
<string name="empty_state_av_notes">Urobte poznámky!</string>
|
||||
<string name="empty_state_av_notes_desc">Pridajte zvukové, video alebo fotografické poznámky ku každému bodu na mape, pomocou nástroja alebo kontextového menu.</string>
|
||||
<string name="notes_by_date">Poznámky podľa dátumu</string>
|
||||
<string name="notes_by_date">OSM poznámky podľa dátumu</string>
|
||||
<string name="by_date">Podľa dátumu</string>
|
||||
<string name="by_type">Podľa typu</string>
|
||||
<string name="one_tap_active">\"Jedno stlačenie\" aktívne</string>
|
||||
|
@ -2637,11 +2637,11 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="show_closed_notes">Zobraziť uzavreté poznámky</string>
|
||||
<string name="switch_osm_notes_visibility_desc">Zobraziť/skryť OSM poznámky na mape.</string>
|
||||
<string name="gpx_file_desc">GPX - vhodné na export do JOSM a iných editorov OSM.</string>
|
||||
<string name="osc_file_desc">OSC - vhodné na export do OpenStreetMap.</string>
|
||||
<string name="osc_file_desc">OSC - vhodné na export do OSM.</string>
|
||||
<string name="shared_string_gpx_file">Súbor GPX</string>
|
||||
<string name="osc_file">Súbor OSC</string>
|
||||
<string name="choose_file_type">Zvoľte typ súboru</string>
|
||||
<string name="osm_edits_export_desc">Vyberte typ exportu: OSM poznámky, body záujmu alebo obe.</string>
|
||||
<string name="osm_edits_export_desc">Exportovať ako OSM poznámky, body záujmu alebo obe.</string>
|
||||
<string name="all_data">Všetky údaje</string>
|
||||
<string name="osm_notes">OSM poznámky</string>
|
||||
<string name="tunnel_warning">Blíži sa tunel</string>
|
||||
|
@ -2841,7 +2841,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="osm_live_payment_renews_annually">Obnovuje sa ročne</string>
|
||||
<string name="default_price_currency_format">%1$.2f %2$s</string>
|
||||
<string name="osm_live_payment_header">Interval platieb:</string>
|
||||
<string name="osm_live_payment_contribute_descr">Príspevky pomáhajú financovať tvorbu máp OpenStreetMap.</string>
|
||||
<string name="osm_live_payment_contribute_descr">Príspevky pomáhajú financovať tvorbu máp OSM.</string>
|
||||
<string name="osm_live_subscriptions">Predplatné</string>
|
||||
<string name="mapillary_menu_title_pano">Zobraziť iba 360° obrázky</string>
|
||||
<string name="powered_by_osmand">Od OsmAnd</string>
|
||||
|
@ -2913,7 +2913,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="exit_at">Vystúpte na</string>
|
||||
<string name="sit_on_the_stop">Nastúpte na zastávke</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks">Zobraziť/skryť GPX stopy</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks_descr">Prepínač na zobrazenie alebo skrytie zvolených stôp GPX na mape.</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks_descr">Tlačidlo pre zobrazenie alebo skrytie zvolených stôp GPX na mape.</string>
|
||||
<string name="quick_action_gpx_tracks_hide">Skryť GPX stopy</string>
|
||||
<string name="quick_action_gpx_tracks_show">Zobraziť GPX stopy</string>
|
||||
<string name="transfers_size">%1$d prestup(y)</string>
|
||||
|
@ -3234,7 +3234,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="configure_navigation">Nastaviť navigáciu</string>
|
||||
<string name="general_settings_profile_descr">Vzhľad aplikácie, jednotky, oblasť</string>
|
||||
<string name="configure_profile">Nastaviť profil</string>
|
||||
<string name="screen_alerts_descr">Varovania sú zobrazené počas navigácie v ľavom dolnom rohu obrazovky.</string>
|
||||
<string name="screen_alerts_descr">Varovania zobrazené počas navigácie v ľavom dolnom rohu obrazovky.</string>
|
||||
<string name="switch_profile">Prepnúť profil</string>
|
||||
<string name="language_and_output">Jazyk a výstup</string>
|
||||
<string name="reset_to_default">Obnoviť do základného nastavenia</string>
|
||||
|
@ -3267,7 +3267,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="paste_Osmand_data_folder_path">Vložte cestu k priečinku s dátami OsmAnd</string>
|
||||
<string name="change_osmand_data_folder_question">Zmeniť dátový priečinok OsmAnd\?</string>
|
||||
<string name="move_maps_to_new_destination">Presunúť do nového umiestnenia</string>
|
||||
<string name="internal_app_storage_description">Interné úložisko, skryté pred používateľom a inými aplikáciami, prístupné len OsmAndu</string>
|
||||
<string name="internal_app_storage_description">Interné úložisko pre OsmAnd (skryté pred používateľom a inými aplikáciami).</string>
|
||||
<string name="change_data_storage_folder">Zmeniť priečinok na ukladanie dát</string>
|
||||
<string name="rendering_attr_piste_type_snow_park_name">Snežný terénny areál</string>
|
||||
<string name="rendering_attr_piste_type_sleigh_name">Sane v záprahu</string>
|
||||
|
@ -3321,7 +3321,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
\n
|
||||
\n • Nový dialóg sťahovania máp, ktorý navrhuje mapy na stiahnutie počas prehliadania
|
||||
\n
|
||||
\n • Opravy nočného vzhľadu
|
||||
\n • Opravy tmavého vzhľadu
|
||||
\n
|
||||
\n • Opravené niektoré chyby navigácie
|
||||
\n
|
||||
|
@ -3334,13 +3334,13 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
\n • Opravy iných chýb
|
||||
\n
|
||||
\n</string>
|
||||
<string name="apply_preference_to_all_profiles">Túto zmenu môžete aplikovať na na všetky profily alebo na práve zvolený.</string>
|
||||
<string name="apply_preference_to_all_profiles">Túto zmenu môžete aplikovať na všetky alebo len práve zvolený profil.</string>
|
||||
<string name="shared_preference">Zdieľané</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_name">Preferovať nespevnené cesty</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_description">Preferovať cesty s nespevneným povrchom.</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_description">Preferovať pri navigácii cesty s nespevneným povrchom nad spevnenými.</string>
|
||||
<string name="export_profile">Exportovať profil</string>
|
||||
<string name="exported_osmand_profile">OsmAnd profil: %1$s</string>
|
||||
<string name="overwrite_profile_q">Profil \'%1$s\' už existuje. Prepísať\?</string>
|
||||
<string name="overwrite_profile_q">\'%1$s\' už existuje. Prepísať\?</string>
|
||||
<string name="export_profile_failed">Nepodarilo sa exportovať profil.</string>
|
||||
<string name="rendering_value_white_name">Biela</string>
|
||||
<string name="swap_two_places">Zameniť %1$s a %2$s</string>
|
||||
|
@ -3352,30 +3352,30 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="clear_confirmation_msg">Vymazať %1$s\?</string>
|
||||
<string name="swap_start_and_destination">Zameniť štart a cieľ</string>
|
||||
<string name="layer_osm_edits">Úpravy OSM</string>
|
||||
<string name="quick_action_contour_lines_descr">Prepínač zobrazovania vrstevníc na mape.</string>
|
||||
<string name="quick_action_contour_lines_descr">Tlačidlo pre zobrazenie alebo skrytie vrstevníc na mape.</string>
|
||||
<string name="quick_action_contour_lines_show">Zobraziť vrstevnice</string>
|
||||
<string name="quick_action_contour_lines_hide">Skryť vrstevnice</string>
|
||||
<string name="quick_action_show_hide_contour_lines">Zobraziť/skryť vrstevnice</string>
|
||||
<string name="quick_action_hillshade_descr">Prepínač zobrazovania tieňovaných svahov.</string>
|
||||
<string name="quick_action_hillshade_descr">Tlačidlo pre zobrazenie alebo skrytie tieňovaných svahov na mape.</string>
|
||||
<string name="quick_action_hillshade_show">Zobraziť tieňované svahy</string>
|
||||
<string name="quick_action_hillshade_hide">Skryť tieňované svahy</string>
|
||||
<string name="quick_action_show_hide_hillshade">Zobraziť/skryť tieňované svahy</string>
|
||||
<string name="tts_initialization_error">Nepodarilo sa spustiť modul prevodu textu na reč</string>
|
||||
<string name="tts_initialization_error">Nepodarilo sa spustiť modul prevodu textu na reč.</string>
|
||||
<string name="simulate_your_location_gpx_descr">Simulovať polohu pomocou zaznamenanej stopy GPX.</string>
|
||||
<string name="profile_import">Import profilu</string>
|
||||
<string name="profile_import_descr">Pre importovanie profilu zvoľte jeho súbor v zariadení a otvorte ho v OsmAnd.</string>
|
||||
<string name="profile_import">Importovať profil</string>
|
||||
<string name="profile_import_descr">Pridajte profil otvorením jeho súboru v OsmAnd.</string>
|
||||
<string name="file_import_error">Chyba pri importovaní %1$s: %2$s</string>
|
||||
<string name="file_imported_successfully">%1$s úspešne importované.</string>
|
||||
<string name="file_imported_successfully">%1$s importovaný.</string>
|
||||
<string name="quick_action_directions_from_desc">Tlačidlo pre nastavenie východzieho bodu do stredu obrazovky a výpočet trasy do cieľa alebo otvorenie dialógu na výber cieľa, ak značka pre cieľ nie je ešte na mape.</string>
|
||||
<string name="download_map_dialog">Okno sťahovania máp</string>
|
||||
<string name="dialogs_and_notifications_title">Okná a upozornenia</string>
|
||||
<string name="dialogs_and_notifications_descr">Ovládať okná a upozornenia, ktoré OsmAnd zobrazuje počas behu.</string>
|
||||
<string name="default_speed_dialog_msg">Používa sa pre odhad času na cestách neznámeho typu a obmedzenie rýchlosti na všetkých cestách (môže ovplyvniť trasu)</string>
|
||||
<string name="dialogs_and_notifications_descr">Ovládať okná a upozornenia.</string>
|
||||
<string name="default_speed_dialog_msg">Odhaduje čas na cestách neznámeho typu a obmedzuje rýchlosť na všetkých cestách (môže ovplyvniť trasu)</string>
|
||||
<string name="rendering_value_walkingRoutesOSMCNodes_name">Siete bodov</string>
|
||||
<string name="suggested_maps">Navrhované mapy</string>
|
||||
<string name="suggested_maps_descr">Tieto mapy sa musia používať so zásuvným modulom</string>
|
||||
<string name="suggested_maps_descr">Tieto mapy sú potrebné pre zásuvný modul.</string>
|
||||
<string name="added_profiles">Pridané profily</string>
|
||||
<string name="added_profiles_descr">Modul pridá do OsmAnd nový profil</string>
|
||||
<string name="added_profiles_descr">Profily pridané modulom</string>
|
||||
<string name="shared_string_turn_off">Vypnúť</string>
|
||||
<string name="new_plugin_added">Nový modul pridaný</string>
|
||||
<string name="join_segments">Spojiť úseky</string>
|
||||
|
@ -3387,22 +3387,22 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="personal_category_name">Osobné</string>
|
||||
<string name="shared_string_downloading_formatted">Sťahujem %s</string>
|
||||
<string name="rendering_value_thick_name">Hrubé</string>
|
||||
<string name="desert_render_descr">Pre púšte a iné riedko osídlené oblasti. Zobrazuje viac detailov pri väčšej mierke.</string>
|
||||
<string name="select_navigation_icon">Zvoľte ikonu navigácie</string>
|
||||
<string name="select_map_icon">Zvoľte ikonu mapy</string>
|
||||
<string name="delete_profiles_descr">Keď zvolíte Použiť, vymazané profily budú natrvalo odstránené.</string>
|
||||
<string name="desert_render_descr">Pre púšte a iné riedko osídlené oblasti. Viac detailov.</string>
|
||||
<string name="select_navigation_icon">Ikona polohy pri pohybe</string>
|
||||
<string name="select_map_icon">Ikona polohy v pokoji</string>
|
||||
<string name="delete_profiles_descr">Stlačením \'Použiť\' odstránite vymazané profily natrvalo.</string>
|
||||
<string name="master_profile">Hlavný profil</string>
|
||||
<string name="select_color">Zvoľte farbu</string>
|
||||
<string name="edit_profiles_descr">Nemôžete vymazať predvolené profily OsmAndu, ale môžete ich vypnúť na prechádzajúcej obrazovke, alebo ich presunúť na koniec zoznamu.</string>
|
||||
<string name="edit_profiles_descr">Predvolené profily OsmAndu sa nedajú vymazať, ale dajú sa vypnúť (na prechádzajúcej obrazovke) alebo presunúť na koniec zoznamu.</string>
|
||||
<string name="edit_profiles">Upraviť profily</string>
|
||||
<string name="select_nav_profile_dialog_message">Typ navigácie ovplyvňuje pravidlá pre výpočet trasy.</string>
|
||||
<string name="select_nav_profile_dialog_message">\'Typ navigácie\' ovplyvňuje pravidlá pre výpočet trasy.</string>
|
||||
<string name="profile_appearance">Vzhľad profilu</string>
|
||||
<string name="choose_icon_color_name">Zvoľte ikonu, farbu a názov</string>
|
||||
<string name="choose_icon_color_name">Ikona, farba a názov</string>
|
||||
<string name="reorder_profiles">Upraviť zoznam profilov</string>
|
||||
<string name="selected_profile">Zvolený profil</string>
|
||||
<string name="reset_confirmation_descr">Stlačením %1$s stratíte všetky zmeny.</string>
|
||||
<string name="reset_all_profile_settings_descr">Všetky nastavenia profilu budú vrátené do východzieho stavu.</string>
|
||||
<string name="reset_all_profile_settings">Resetovať nastavenia profilu na predvolené hodnoty\?</string>
|
||||
<string name="reset_confirmation_descr">Stlačením %1$s zahodíte všetky vaše zmeny.</string>
|
||||
<string name="reset_all_profile_settings_descr">Resetovať všetky nastavenia profilu do východzieho stavu.</string>
|
||||
<string name="reset_all_profile_settings">Resetovať všetky nastavenia profilu\?</string>
|
||||
<string name="ltr_or_rtl_combine_via_colon">%1$s: %2$s</string>
|
||||
<string name="ltr_or_rtl_combine_via_space">%1$s %2$s</string>
|
||||
<string name="button_rate">Ohodnotiť</string>
|
||||
|
@ -3419,7 +3419,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="live_monitoring">Sledovanie online</string>
|
||||
<string name="save_track_logging_accuracy">Presnosť záznamu</string>
|
||||
<string name="tracks_view_descr">Všetky vaše zaznamenané stopy sú v %1$s, alebo v priečinku OsmAnd.</string>
|
||||
<string name="multimedia_notes_view_descr">Všetky vaše OSM poznámky sú v \'Menu\' → \'Moje miesta\' → \'Zmeny v OSM\'.</string>
|
||||
<string name="multimedia_notes_view_descr">Vaše OSM poznámky sú v %1$s.</string>
|
||||
<string name="video_notes">Video-poznámky</string>
|
||||
<string name="photo_notes">Foto-poznámky</string>
|
||||
<string name="route_recalculation">Prepočítanie trasy</string>
|
||||
|
@ -3427,13 +3427,43 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
|||
<string name="login_and_pass">Prihlasovacie meno a heslo</string>
|
||||
<string name="plugin_global_prefs_info">Tieto nastavenia platia pre všetky profily.</string>
|
||||
<string name="osm_editing">OSM upravovanie</string>
|
||||
<string name="osm_edits_view_descr">Zobrazte všetky vaše neodoslané zmeny alebo chyby v OSM cez \'Menu\' → \'Moje miesta\' — \'Zmeny v OSM\'. Odoslané body sa už v OsmAnd nezobrazujú.</string>
|
||||
<string name="osm_edits_view_descr">Zobrazte vaše neodoslané zmeny alebo chyby v OSM cez %1$s. Odoslané body sa už nezobrazujú.</string>
|
||||
<string name="app_mode_osm">OSM</string>
|
||||
<string name="select_nav_icon_descr">Ikony sa zobrazujú len pri navigácii alebo pohybe.</string>
|
||||
<string name="select_map_icon_descr">Mapová ikona zobrazená len na mape.</string>
|
||||
<string name="select_nav_icon_descr">Ikona zobrazená pri navigácii alebo pohybe.</string>
|
||||
<string name="select_map_icon_descr">Ikona zobrazená v pokoji.</string>
|
||||
<string name="logcat_buffer_descr">Skontrolovať a zdieľať podrobné záznamy aplikácie</string>
|
||||
<string name="search_offline_geo_error">Nepodarilo sa prečítať geo správu \'%s\'.</string>
|
||||
<string name="permission_is_required">Pre použitie tejto možnosti je potrebné oprávnenie.</string>
|
||||
<string name="monitoring_min_speed_descr">Tento filter spôsobí nezaznamenávanie bodov pri pohybe pomalšie ako daná rýchlosť. Toto môže zabezpečiť plynulejšie zaznamenané stopy pri zobrazení na mape.</string>
|
||||
<string name="monitoring_min_speed_descr_side_effect">Vedľajší efekt: Vaša stopa nebude obsahovať úseky kde nebola dosiahnutá minimálna rýchlosť (napr. kde ste tlačili bicykel do kopca). Taktiež nebudú obsahovať informáciu o obdobiach bez pohybu, napr. prestávkach. Toto má vplyv na následnú analýzu alebo spracovanie, napr. pri zisťovaní celkovej dĺžky výletu, času v pohybe alebo priemernej rýchlosti.</string>
|
||||
<string name="monitoring_min_speed_descr_recommendation">Odporúčanie: Skúste najprv použiť detekciu pohybu filtrom minimálneho posunu (B), čo môže vytvoriť lepší výsledok a stratíte menej dát. Ak vaše stopy budú roztrasené aj pri nízkej rýchlosti, skúste tu nenulovú hodnotu. Nezabudnite, že niektoré merania nemusia hlásiť žiadnu rýchlosť (niektoré metódy založené na sieti) a vtedy by sa nič nezaznamenalo.</string>
|
||||
<string name="live_monitoring_time_buffer">Časový zásobník</string>
|
||||
<string name="live_monitoring_tracking_interval">Interval stopovania</string>
|
||||
<string name="live_monitoring_adress">Webová adresa</string>
|
||||
<string name="live_monitoring_adress_descr">Zadajte webovú adresu so syntaxom parametrov: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
|
||||
<string name="monitoring_notification">Oznámenie</string>
|
||||
<string name="monitoring_min_speed">Minimálna rýchlosť</string>
|
||||
<string name="monitoring_min_accuracy">Minimálna presnosť</string>
|
||||
<string name="monitoring_min_distance">Minimálny posun</string>
|
||||
<string name="tracks_view_path">Menu — Moje miesta — Stopy</string>
|
||||
<string name="multimedia_notes_view_path">Menu — Moje miesta — Poznámky</string>
|
||||
<string name="osm_edits_view_path">Menu — Moje miesta — Zmeny v OSM</string>
|
||||
<string name="reset_plugin_to_default">Resetovať modul do východzieho stavu</string>
|
||||
<string name="multimedia_rec_split_title">Rozdelenie nahrávania</string>
|
||||
<string name="multimedia_use_system_camera">Použiť systémovú aplikáciu</string>
|
||||
<string name="multimedia_photo_play_sound">Zvuk spúšte fotoaparátu</string>
|
||||
<string name="osm_authorization_success">Prihlásenie je úspešné</string>
|
||||
<string name="rearrange_categories">Usporiadať kategórie</string>
|
||||
<string name="create_custom_categories_list_promo">Môžete pridať vlastné kategórie a skryť kategórie, ktoré nepotrebujete a zmeniť poradie triedenia v zozname. Zozname môže byť importovaný a exportovaný s profilmi.</string>
|
||||
<string name="add_new_custom_category_button_promo">Môžete pridať novú kategóriu zvolením jednej alebo viacerých existujúcich.</string>
|
||||
<string name="reset_to_default_category_button_promo">Obnovenie do východzieho nastavenia vymaže vaše vlastné kategórie a poradie triedenia ako po novej inštalácii.</string>
|
||||
<string name="shared_string_available">Dostupné</string>
|
||||
<string name="add_custom_category">Pridať vlastnú kategóriu</string>
|
||||
<string name="rendering_attr_streetLightingNight_name">Zobraziť iba v noci</string>
|
||||
<string name="plugin_prefs_reset_successful">Všetky nastavenia modulov obnovené do východzieho stavu.</string>
|
||||
<string name="profile_prefs_reset_successful">Všetky nastavenia profilov obnovené do východzieho stavu.</string>
|
||||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Západ slnka o %1$s</string>
|
||||
<string name="sunrise_at">Východ slnka o %1$s</string>
|
||||
<string name="accessibility_mode_disabled">Režim uľahčenia prístupu je na tomto systéme vypnutý.</string>
|
||||
</resources>
|
|
@ -123,7 +123,7 @@
|
|||
<string name="poi_musical_instrument">Müzik aletleri</string>
|
||||
<string name="poi_newsagent">Gazete bayii</string>
|
||||
<string name="poi_optician">Göz doktoru</string>
|
||||
<string name="poi_organic">Organik gıda</string>
|
||||
<string name="poi_organic">Organik ürünler</string>
|
||||
<string name="poi_outdoor">Açık hava mağazası</string>
|
||||
<string name="poi_paint">Boya dükkanı</string>
|
||||
<string name="poi_pet">Evcil hayvan dükkanı</string>
|
||||
|
|
|
@ -3449,4 +3449,5 @@
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">%1$s\'de gün batımı</string>
|
||||
<string name="sunrise_at">%1$s\'de gün doğumu</string>
|
||||
<string name="accessibility_mode_disabled">Sisteminizde erişilebilirlik modu devre dışı.</string>
|
||||
</resources>
|
|
@ -64,7 +64,7 @@
|
|||
<string name="poi_musical_instrument">Музичні інструменти</string>
|
||||
<string name="poi_newsagent">Газети та журнали</string>
|
||||
<string name="poi_optician">Окуліст</string>
|
||||
<string name="poi_organic">Органічні продукти харчування</string>
|
||||
<string name="poi_organic">Органічні вироби</string>
|
||||
<string name="poi_outdoor">Товари для активного відпочинку</string>
|
||||
<string name="poi_paint">Фарби</string>
|
||||
<string name="poi_pet">Зоомагазин, товари для тварин</string>
|
||||
|
|
|
@ -796,8 +796,8 @@
|
|||
<string name="precise_routing_mode">Точний маршрут (alpha)</string>
|
||||
<string name="av_video_format_descr">Формат відео:</string>
|
||||
<string name="av_video_format">Формат відео</string>
|
||||
<string name="av_use_external_recorder_descr">Використовувати системну програму для запису відео.</string>
|
||||
<string name="av_use_external_recorder">Використовувати системну програму</string>
|
||||
<string name="av_use_external_recorder_descr">Використовувати системний записувач відео.</string>
|
||||
<string name="av_use_external_recorder">Використовувати системний записувач</string>
|
||||
<string name="av_use_external_camera_descr">Використовувати системний застосунок для світлин.</string>
|
||||
<string name="recording_unavailable">недоступно</string>
|
||||
<string name="shared_string_control_stop">Стоп</string>
|
||||
|
@ -2544,7 +2544,7 @@
|
|||
<string name="hide_passed">Приховати проходження</string>
|
||||
<string name="shared_string_markers">Маркери</string>
|
||||
<string name="coordinates_format">Формат координат</string>
|
||||
<string name="use_system_keyboard">Використовувати системну клавіатуру</string>
|
||||
<string name="use_system_keyboard">Використовувати системну набірницю</string>
|
||||
<string name="fast_coordinates_input_descr">Виберіть формат введення координат. Ви завжди можете змінити його, натиснувши „Параметри“.</string>
|
||||
<string name="fast_coordinates_input">Швидке введення координат</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_name">Уникати льодових доріг і бродів</string>
|
||||
|
@ -3484,4 +3484,5 @@
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Захід сонця о %1$s</string>
|
||||
<string name="sunrise_at">Схід сонця о %1$s</string>
|
||||
<string name="accessibility_mode_disabled">У вашій системі вимкнено режим доступності.</string>
|
||||
</resources>
|
|
@ -107,7 +107,7 @@
|
|||
<string name="poi_musical_instrument">樂器行</string>
|
||||
<string name="poi_newsagent">書報攤</string>
|
||||
<string name="poi_optician">驗光師</string>
|
||||
<string name="poi_organic">有機食品</string>
|
||||
<string name="poi_organic">有機產品</string>
|
||||
<string name="poi_outdoor">戶外用品店</string>
|
||||
<string name="poi_paint">油漆店</string>
|
||||
<string name="poi_pet">寵物店</string>
|
||||
|
|
|
@ -3484,4 +3484,5 @@
|
|||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">日落於 %1$s</string>
|
||||
<string name="sunrise_at">日出於 %1$s</string>
|
||||
<string name="accessibility_mode_disabled">您的系統停用了無障礙模式。</string>
|
||||
</resources>
|
|
@ -11,6 +11,22 @@
|
|||
Thx - Hardy
|
||||
|
||||
-->
|
||||
<string name="routing_profile_straight_to">Straight to point routing</string>
|
||||
<string name="release_3_6">
|
||||
• Profiles: now you can change order, set icon for map, change all setting for base profiles and restore them back to defaults\n\n
|
||||
• Added exit number in the navigation\n\n
|
||||
• Reworked plugin settings\n\n
|
||||
• Reworked Settings screen for quick access to all profiles\n\n
|
||||
• Added option to copy settings from another profile\n\n
|
||||
• Added ability to change an order or hide POI categories in Search\n\n
|
||||
• Correctly aligned POI icons on the map\n\n
|
||||
• Added Sunset / Sunrise data to Configure Map\n\n
|
||||
• Added Home/Work icons on the map\n\n
|
||||
• Added support for multiline description in Settings\n\n
|
||||
• Added correct transliteration into the map of Japan\n\n
|
||||
• Added Antarctica map\n\n
|
||||
</string>
|
||||
<string name="copy_coordinates">Copy coordinates</string>
|
||||
<string name="reset_to_default_category_button_promo">Reset to default will reset sort order to the default state after installation.</string>
|
||||
<string name="use_system_screen_timeout">Use system screen timeout</string>
|
||||
<string name="use_system_screen_timeout_promo">Disabled by default, if OsmAnd running on foreground, the screen doesn’t time out.\n\nIf enabled OsmAnd will use system timeout settings.</string>
|
||||
|
@ -3380,7 +3396,6 @@
|
|||
<string name="use_drawer_btn">Use menu</string>
|
||||
<string name="dashboard_or_drawer_title">Dashboard or menu control</string>
|
||||
<string name="dashboard_or_drawer_description">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.</string>
|
||||
<string name="update">Update</string>
|
||||
<string name="only_download_over_wifi">Only download on Wi-Fi</string>
|
||||
<string name="live_update">Live update</string>
|
||||
<string name="update_now">Update now</string>
|
||||
|
|
|
@ -56,7 +56,6 @@ import android.widget.TextView;
|
|||
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.download.DownloadActivity;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -264,6 +263,17 @@ public class AndroidUtils {
|
|||
lightNormal, lightChecked, darkNormal, darkChecked);
|
||||
}
|
||||
|
||||
public static ColorStateList createEnabledColorStateList(Context ctx, @ColorRes int normal, @ColorRes int pressed) {
|
||||
return createEnabledColorStateList(ctx, false, normal, pressed, 0, 0);
|
||||
}
|
||||
|
||||
public static ColorStateList createEnabledColorStateList(Context ctx, boolean night,
|
||||
@ColorRes int lightNormal, @ColorRes int lightPressed,
|
||||
@ColorRes int darkNormal, @ColorRes int darkPressed) {
|
||||
return createColorStateList(ctx, night, android.R.attr.state_enabled,
|
||||
lightNormal, lightPressed, darkNormal, darkPressed);
|
||||
}
|
||||
|
||||
public static ColorStateList createPressedColorStateList(Context ctx, @ColorRes int normal, @ColorRes int pressed) {
|
||||
return createPressedColorStateList(ctx, false, normal, pressed, 0, 0);
|
||||
}
|
||||
|
|
|
@ -184,6 +184,13 @@ public class ConnectedApp implements Comparable<ConnectedApp> {
|
|||
|
||||
TextInfoWidget createWidgetControl(final MapActivity mapActivity, final String widgetId) {
|
||||
TextInfoWidget control = new TextInfoWidget(mapActivity) {
|
||||
|
||||
private boolean init = true;
|
||||
private String cachedTxt;
|
||||
private String cachedSubtext;
|
||||
private Boolean cachedNight;
|
||||
private Integer cachedIcon;
|
||||
|
||||
@Override
|
||||
public boolean updateInfo(OsmandMapLayer.DrawSettings drawSettings) {
|
||||
AidlMapWidgetWrapper widget = widgets.get(widgetId);
|
||||
|
@ -192,15 +199,28 @@ public class ConnectedApp implements Comparable<ConnectedApp> {
|
|||
String subtext = widget.getDescription();
|
||||
boolean night = drawSettings != null && drawSettings.isNightMode();
|
||||
int icon = AndroidUtils.getDrawableId(mapActivity.getMyApplication(), night ? widget.getDarkIconName() : widget.getLightIconName());
|
||||
setText(txt, subtext);
|
||||
if (icon != 0) {
|
||||
setImageDrawable(icon);
|
||||
} else {
|
||||
setImageDrawable(null);
|
||||
if (init || !Algorithms.objectEquals(txt, cachedTxt) || !Algorithms.objectEquals(subtext, cachedSubtext)
|
||||
|| !Algorithms.objectEquals(night, cachedNight) || !Algorithms.objectEquals(icon, cachedIcon)) {
|
||||
init = false;
|
||||
cachedTxt = txt;
|
||||
cachedSubtext = subtext;
|
||||
cachedNight = night;
|
||||
cachedIcon = icon;
|
||||
|
||||
setText(txt, subtext);
|
||||
if (icon != 0) {
|
||||
setImageDrawable(icon);
|
||||
} else {
|
||||
setImageDrawable(null);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
setText(null, null);
|
||||
setImageDrawable(null);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
control.updateInfo(null);
|
||||
|
|
|
@ -107,7 +107,7 @@ public class AppInitializer implements IProgress {
|
|||
private static final String VERSION_INSTALLED = "VERSION_INSTALLED"; //$NON-NLS-1$
|
||||
private static final String EXCEPTION_FILE_SIZE = "EXCEPTION_FS"; //$NON-NLS-1$
|
||||
|
||||
public static final String LATEST_CHANGES_URL = "https://osmand.net/blog/osmand-3-5-released";
|
||||
public static final String LATEST_CHANGES_URL = "https://osmand.net/blog/osmand-3-6-released";
|
||||
// public static final String LATEST_CHANGES_URL = null; // not enough to read
|
||||
public static final int APP_EXIT_CODE = 4;
|
||||
public static final String APP_EXIT_KEY = "APP_EXIT_KEY";
|
||||
|
@ -567,7 +567,7 @@ public class AppInitializer implements IProgress {
|
|||
return null;
|
||||
}
|
||||
});
|
||||
app.regions.setLocale(app.getLanguage());
|
||||
app.regions.setLocale(app.getLanguage(), app.getCountry());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,16 +1,32 @@
|
|||
package net.osmand.plus;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.location.GnssNavigationMessage;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.GeomagneticField;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorEvent;
|
||||
import android.hardware.SensorEventListener;
|
||||
import android.hardware.SensorManager;
|
||||
import android.location.GnssStatus;
|
||||
import android.location.GpsSatellite;
|
||||
import android.location.GpsStatus;
|
||||
import android.location.GpsStatus.Listener;
|
||||
import android.location.Location;
|
||||
import android.location.LocationListener;
|
||||
import android.location.LocationManager;
|
||||
import android.os.Build;
|
||||
import android.os.Build.VERSION;
|
||||
import android.os.Build.VERSION_CODES;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
|
||||
import net.osmand.GeoidAltitudeCorrection;
|
||||
import net.osmand.PlatformUtil;
|
||||
|
@ -22,31 +38,16 @@ import net.osmand.data.LatLon;
|
|||
import net.osmand.data.QuadPoint;
|
||||
import net.osmand.plus.TargetPointsHelper.TargetPoint;
|
||||
import net.osmand.plus.routing.RoutingHelper;
|
||||
import net.osmand.plus.routing.RoutingHelper.RouteSegmentSearchResult;
|
||||
import net.osmand.router.RouteSegmentResult;
|
||||
import net.osmand.util.MapUtils;
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.GeomagneticField;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorEvent;
|
||||
import android.hardware.SensorEventListener;
|
||||
import android.hardware.SensorManager;
|
||||
import android.location.GpsSatellite;
|
||||
import android.location.GpsStatus;
|
||||
import android.location.GpsStatus.Listener;
|
||||
import android.location.Location;
|
||||
import android.location.LocationListener;
|
||||
import android.location.LocationManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class OsmAndLocationProvider implements SensorEventListener {
|
||||
|
||||
|
@ -146,30 +147,17 @@ public class OsmAndLocationProvider implements SensorEventListener {
|
|||
this.roads = roads;
|
||||
startLocation = new net.osmand.Location(currentLocation);
|
||||
long ms = System.currentTimeMillis();
|
||||
if (ms - startLocation.getTime() > 5000 ||
|
||||
ms < startLocation.getTime()) {
|
||||
if (ms - startLocation.getTime() > 5000 || ms < startLocation.getTime()) {
|
||||
startLocation.setTime(ms);
|
||||
}
|
||||
currentRoad = -1;
|
||||
int px = MapUtils.get31TileNumberX(currentLocation.getLongitude());
|
||||
int py = MapUtils.get31TileNumberY(currentLocation.getLatitude());
|
||||
double dist = 1000;
|
||||
for (int i = 0; i < roads.size(); i++) {
|
||||
RouteSegmentResult road = roads.get(i);
|
||||
boolean plus = road.getStartPointIndex() < road.getEndPointIndex();
|
||||
for (int j = road.getStartPointIndex() + 1; j <= road.getEndPointIndex(); ) {
|
||||
RouteDataObject obj = road.getObject();
|
||||
QuadPoint proj = MapUtils.getProjectionPoint31(px, py, obj.getPoint31XTile(j - 1), obj.getPoint31YTile(j - 1),
|
||||
obj.getPoint31XTile(j), obj.getPoint31YTile(j));
|
||||
double dd = MapUtils.squareRootDist31((int) proj.x, (int) proj.y, px, py);
|
||||
if (dd < dist) {
|
||||
dist = dd;
|
||||
currentRoad = i;
|
||||
currentSegment = j;
|
||||
currentPoint = proj;
|
||||
}
|
||||
j += plus ? 1 : -1;
|
||||
}
|
||||
RouteSegmentSearchResult searchResult =
|
||||
RoutingHelper.searchRouteSegment(currentLocation.getLatitude(), currentLocation.getLongitude(), -1, roads);
|
||||
if (searchResult != null) {
|
||||
currentRoad = searchResult.getRoadIndex();
|
||||
currentSegment = searchResult.getSegmentIndex();
|
||||
currentPoint = searchResult.getPoint();
|
||||
} else {
|
||||
currentRoad = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -776,6 +776,16 @@ public class OsmandApplication extends MultiDexApplication {
|
|||
}
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
String country;
|
||||
if (preferredLocale != null) {
|
||||
country = preferredLocale.getCountry();
|
||||
} else {
|
||||
country = Locale.getDefault().getCountry();
|
||||
}
|
||||
return country;
|
||||
}
|
||||
|
||||
public String getLanguage() {
|
||||
String lang;
|
||||
if (preferredLocale != null) {
|
||||
|
|
|
@ -1261,7 +1261,7 @@ public class OsmandSettings {
|
|||
public final CommonPreference<WikiArticleShowImages> WIKI_ARTICLE_SHOW_IMAGES = new EnumIntPreference<>("wikivoyage_show_imgs", WikiArticleShowImages.OFF, WikiArticleShowImages.values()).makeGlobal();
|
||||
|
||||
public final CommonPreference<Boolean> SELECT_MARKER_ON_SINGLE_TAP = new BooleanPreference("select_marker_on_single_tap", false).makeProfile();
|
||||
public final CommonPreference<Boolean> KEEP_PASSED_MARKERS_ON_MAP = new BooleanPreference("keep_passed_markers_on_map", false).makeProfile();
|
||||
public final CommonPreference<Boolean> KEEP_PASSED_MARKERS_ON_MAP = new BooleanPreference("keep_passed_markers_on_map", true).makeProfile();
|
||||
|
||||
public final CommonPreference<Boolean> COORDS_INPUT_USE_RIGHT_SIDE = new BooleanPreference("coords_input_use_right_side", true).makeGlobal();
|
||||
public final OsmandPreference<Format> COORDS_INPUT_FORMAT = new EnumIntPreference<>("coords_input_format", Format.DD_MM_MMM, Format.values()).makeGlobal();
|
||||
|
|
|
@ -906,6 +906,7 @@ public class SettingsHelper {
|
|||
|
||||
private File file;
|
||||
private String latestChanges;
|
||||
private boolean askBeforeImport;
|
||||
private int version;
|
||||
|
||||
private SettingsImportListener listener;
|
||||
|
@ -915,11 +916,13 @@ public class SettingsHelper {
|
|||
private SettingsItem currentItem;
|
||||
private AlertDialog dialog;
|
||||
|
||||
ImportAsyncTask(@NonNull File settingsFile, String latestChanges, int version, @Nullable SettingsImportListener listener) {
|
||||
ImportAsyncTask(@NonNull File settingsFile, String latestChanges, int version, boolean askBeforeImport,
|
||||
@Nullable SettingsImportListener listener) {
|
||||
this.file = settingsFile;
|
||||
this.listener = listener;
|
||||
this.latestChanges = latestChanges;
|
||||
this.version = version;
|
||||
this.askBeforeImport = askBeforeImport;
|
||||
importer = new SettingsImporter(app);
|
||||
}
|
||||
|
||||
|
@ -992,7 +995,7 @@ public class SettingsHelper {
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
if (item.getType() == SettingsItemType.PROFILE) {
|
||||
if (item.getType() == SettingsItemType.PROFILE && askBeforeImport) {
|
||||
String title = activity.getString(R.string.add_new_profile_q, item.getPublicName(app));
|
||||
dialog = showConfirmDialog(item, title, latestChanges);
|
||||
} else {
|
||||
|
@ -1128,8 +1131,9 @@ public class SettingsHelper {
|
|||
}
|
||||
}
|
||||
|
||||
public void importSettings(@NonNull File settingsFile, String latestChanges, int version, @Nullable SettingsImportListener listener) {
|
||||
new ImportAsyncTask(settingsFile, latestChanges, version, listener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
public void importSettings(@NonNull File settingsFile, String latestChanges, int version,
|
||||
boolean askBeforeImport, @Nullable SettingsImportListener listener) {
|
||||
new ImportAsyncTask(settingsFile, latestChanges, version, askBeforeImport, listener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
|
||||
public void exportSettings(@NonNull File fileDir, @NonNull String fileName,
|
||||
|
|
|
@ -26,6 +26,7 @@ import android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback;
|
|||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentManager.BackStackEntry;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
|
@ -136,6 +137,7 @@ import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchTab;
|
|||
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchType;
|
||||
import net.osmand.plus.settings.BaseSettingsFragment;
|
||||
import net.osmand.plus.settings.BaseSettingsFragment.SettingsScreenType;
|
||||
import net.osmand.plus.settings.ConfigureProfileFragment;
|
||||
import net.osmand.plus.settings.DataStorageFragment;
|
||||
import net.osmand.plus.settings.ProfileAppearanceFragment;
|
||||
import net.osmand.plus.views.AddGpxPointBottomSheetHelper.NewGpxPoint;
|
||||
|
@ -2509,6 +2511,17 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
return getFragment(QuickActionListFragment.TAG);
|
||||
}
|
||||
|
||||
public void backToConfigureProfileFragment() {
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
int backStackEntryCount = fragmentManager.getBackStackEntryCount();
|
||||
if (backStackEntryCount > 0) {
|
||||
BackStackEntry entry = fragmentManager.getBackStackEntryAt(backStackEntryCount - 1);
|
||||
if (ConfigureProfileFragment.TAG.equals(entry.getName())) {
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<T> T getFragment(String fragmentTag){
|
||||
Fragment fragment = getSupportFragmentManager().findFragmentByTag(fragmentTag);
|
||||
return fragment != null && !fragment.isDetached() && !fragment.isRemoving() ? (T) fragment : null;
|
||||
|
|
|
@ -216,7 +216,7 @@ public class ShareDialog {
|
|||
public static void sendToClipboard(Activity activity, String text) {
|
||||
ClipboardManager clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
|
||||
clipboard.setText(text);
|
||||
Toast.makeText(activity, R.string.copied_to_clipboard, Toast.LENGTH_LONG)
|
||||
Toast.makeText(activity, activity.getString(R.string.copied_to_clipboard) + "\n" + text, Toast.LENGTH_LONG)
|
||||
.show();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1041,22 +1041,22 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
|
|||
|
||||
public boolean onBackPressed() {
|
||||
if (isVisible()) {
|
||||
return backPressed();
|
||||
backPressed();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean backPressed() {
|
||||
private void backPressed() {
|
||||
if (previousVisibleType != visibleType && previousVisibleType != null) {
|
||||
if (visibleType == DashboardType.MAPILLARY) {
|
||||
hideKeyboard();
|
||||
}
|
||||
visibleType = null;
|
||||
setDashboardVisibility(true, previousVisibleType);
|
||||
return true;
|
||||
} else {
|
||||
hideDashboard();
|
||||
return false;
|
||||
mapActivity.backToConfigureProfileFragment();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -169,10 +169,12 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
|
|||
addButton(ll, "\u25BA (3.4) After 3100m turn right onto 'SR 80' toward 'Rome'", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_RIGHT, 3100, street(p, "SR 80", "", "Rome")));
|
||||
addButton(ll, "\u25BA (3.5) In 370m turn slightly right onto 'Route 23' 'Main Street', then bear left", builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SL, 370, street(p, "Route 23", "Main Street", "")).then().bearLeft(street(p, "")));
|
||||
addButton(ll, "\u25BA (3.6) Turn sharply right onto 'Dr.-Quinn-Stra"+"\u00df"+"e'", builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SH, street(p, "", "Dr.-Quinn-Straße", "")));
|
||||
addButton(ll, "\u25BA (3.7) Turn slightly right to exit 6 onto 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
|
||||
addButton(ll, "\u25BA (3.8) In 350m turn slightly right to exit 6 onto 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
|
||||
addButton(ll, "\u25BA (3.9) Turn slightly right to exit 260B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "260 B", 260, street(p, "", "", "")));
|
||||
addButton(ll, "\u25BA (3.10) Turn slightly left to exit 15B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_LEFT_SL, "15 B", 15, street(p, "", "", "")));
|
||||
addButton(ll, "\u25BA (3.7) Turn slightly right onto exit 6 onto 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
|
||||
addButton(ll, "\u25BA (3.8) In 350m turn slightly right onto exit 6, 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
|
||||
addButton(ll, "\u25BA (3.9) In 350m turn slightly right onto exit 6, 'Amsterdam-Osdorp' towards Osdorp", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "Amsterdam-Osdorp", "Osdorp")));
|
||||
addButton(ll, "\u25BA (3.10) In 350m turn slightly right to exit 6 towards 'Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "", "Osdorp")));
|
||||
addButton(ll, "\u25BA (3.11) Turn slightly right to exit 260B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "260 B", 260, street(p, "", "", "")));
|
||||
addButton(ll, "\u25BA (3.12) Turn slightly left to exit 15B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_LEFT_SL, "15 B", 15, street(p, "", "", "")));
|
||||
|
||||
addButton(ll, "Keep left/right: prepareTurn, makeTurnIn, turn:", builder(p));
|
||||
addButton(ll, "\u25BA (4.1) After 1810m keep left ' '", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_LEFT_KEEP, 1810, street(p, "")));
|
||||
|
|
|
@ -28,7 +28,7 @@ public class WhatsNewDialogFragment extends DialogFragment {
|
|||
final OsmandApplication osmandApplication = (OsmandApplication) getActivity().getApplication();
|
||||
final String appVersion = Version.getAppVersion(osmandApplication);
|
||||
builder.setTitle(getString(R.string.whats_new) + " " + appVersion)
|
||||
.setMessage(getString(R.string.release_3_5))
|
||||
.setMessage(getString(R.string.release_3_6))
|
||||
.setNegativeButton(R.string.shared_string_close, null);
|
||||
if (AppInitializer.LATEST_CHANGES_URL != null) {
|
||||
builder.setPositiveButton(R.string.read_more, new DialogInterface.OnClickListener() {
|
||||
|
|
|
@ -161,7 +161,7 @@ public class UpdatesIndexFragment extends OsmAndListFragment implements Download
|
|||
dialog.setTitle(R.string.update_all_maps);
|
||||
dialog.setMessage(getString(R.string.update_all_maps_q, indexItems.size()));
|
||||
dialog.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
dialog.setPositiveButton(R.string.update, new DialogInterface.OnClickListener() {
|
||||
dialog.setPositiveButton(R.string.shared_string_update, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
getMyActivity().startDownload(indexItems.toArray(new IndexItem[indexItems.size()]));
|
||||
|
|
|
@ -23,6 +23,8 @@ import net.osmand.ResultMatcher;
|
|||
import net.osmand.binary.RouteDataObject;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.data.QuadPoint;
|
||||
import net.osmand.data.RotatedTileBox;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.plus.OsmAndFormatter;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
|
@ -31,15 +33,20 @@ import net.osmand.plus.UiUtilities;
|
|||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||
import net.osmand.plus.routing.RoutingHelper;
|
||||
import net.osmand.plus.routing.RoutingHelper.RouteSegmentSearchResult;
|
||||
import net.osmand.plus.views.ContextMenuLayer;
|
||||
import net.osmand.router.RouteSegmentResult;
|
||||
import net.osmand.util.MapUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class AvoidSpecificRoads {
|
||||
|
||||
private static final float MAX_AVOID_ROUTE_SEARCH_RADIUS_DP = 32f;
|
||||
|
||||
private OsmandApplication app;
|
||||
|
||||
private Map<LatLon, RouteDataObject> impassableRoads = new LinkedHashMap<>();
|
||||
|
@ -206,7 +213,7 @@ public class AvoidSpecificRoads {
|
|||
});
|
||||
}
|
||||
|
||||
public void addImpassableRoad(@Nullable final MapActivity activity,
|
||||
public void addImpassableRoad(@Nullable final MapActivity mapActivity,
|
||||
@NonNull final LatLon loc,
|
||||
final boolean showDialog,
|
||||
final boolean skipWritingSettings) {
|
||||
|
@ -215,16 +222,34 @@ public class AvoidSpecificRoads {
|
|||
ll.setLongitude(loc.getLongitude());
|
||||
ApplicationMode appMode = app.getRoutingHelper().getAppMode();
|
||||
|
||||
List<RouteSegmentResult> roads = app.getRoutingHelper().getRoute().getOriginalRoute();
|
||||
if (mapActivity != null && roads != null) {
|
||||
RotatedTileBox tb = mapActivity.getMapView().getCurrentRotatedTileBox().copy();
|
||||
float maxDistPx = MAX_AVOID_ROUTE_SEARCH_RADIUS_DP * tb.getDensity();
|
||||
RouteSegmentSearchResult searchResult =
|
||||
RoutingHelper.searchRouteSegment(loc.getLatitude(), loc.getLongitude(), maxDistPx / tb.getPixDensity(), roads);
|
||||
if (searchResult != null) {
|
||||
QuadPoint point = searchResult.getPoint();
|
||||
LatLon newLoc = new LatLon(MapUtils.get31LatitudeY((int) point.y), MapUtils.get31LongitudeX((int) point.x));
|
||||
ll.setLatitude(newLoc.getLatitude());
|
||||
ll.setLongitude(newLoc.getLongitude());
|
||||
addImpassableRoadInternal(roads.get(searchResult.getRoadIndex()).getObject(), ll, showDialog, mapActivity, newLoc);
|
||||
if (!skipWritingSettings) {
|
||||
app.getSettings().addImpassableRoad(newLoc.getLatitude(), newLoc.getLongitude());
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
app.getLocationProvider().getRouteSegment(ll, appMode, false, new ResultMatcher<RouteDataObject>() {
|
||||
|
||||
@Override
|
||||
public boolean publish(RouteDataObject object) {
|
||||
if (object == null) {
|
||||
if (activity != null) {
|
||||
Toast.makeText(activity, R.string.error_avoid_specific_road, Toast.LENGTH_LONG).show();
|
||||
if (mapActivity != null) {
|
||||
Toast.makeText(mapActivity, R.string.error_avoid_specific_road, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
} else {
|
||||
addImpassableRoadInternal(object, ll, showDialog, activity, loc);
|
||||
addImpassableRoadInternal(object, ll, showDialog, mapActivity, loc);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -299,7 +324,7 @@ public class AvoidSpecificRoads {
|
|||
showDialog(activity);
|
||||
}
|
||||
MapContextMenu menu = activity.getContextMenu();
|
||||
if (menu.isActive() && menu.getLatLon().equals(loc)) {
|
||||
if (menu.isActive()) {
|
||||
menu.close();
|
||||
}
|
||||
activity.refreshMap();
|
||||
|
|
|
@ -182,7 +182,7 @@ public class ImportHelper {
|
|||
} else if (fileName != null && fileName.endsWith(IndexConstants.SQLITE_EXT)) {
|
||||
handleSqliteTileImport(intentUri, fileName);
|
||||
} else if (fileName != null && fileName.endsWith(OSMAND_SETTINGS_FILE_EXT)) {
|
||||
handleOsmAndSettingsImport(intentUri, fileName, extras, null);
|
||||
handleOsmAndSettingsImport(intentUri, fileName, extras, true, null);
|
||||
} else if (fileName != null && fileName.endsWith(ROUTING_FILE_EXT)) {
|
||||
handleRoutingFileImport(intentUri, fileName, null);
|
||||
} else {
|
||||
|
@ -606,7 +606,7 @@ public class ImportHelper {
|
|||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
|
||||
public void chooseFileToImport(final ImportType importType, final CallbackWithObject callback) {
|
||||
public void chooseFileToImport(final ImportType importType, final boolean askBeforeImport, final CallbackWithObject callback) {
|
||||
final MapActivity mapActivity = getMapActivity();
|
||||
if (mapActivity == null) {
|
||||
return;
|
||||
|
@ -644,7 +644,7 @@ public class ImportHelper {
|
|||
|
||||
if (fileName.endsWith(importType.getExtension())) {
|
||||
if (importType.equals(ImportType.SETTINGS)) {
|
||||
handleOsmAndSettingsImport(data, fileName, resultData.getExtras(), callback);
|
||||
handleOsmAndSettingsImport(data, fileName, resultData.getExtras(), askBeforeImport, callback);
|
||||
} else if (importType.equals(ImportType.ROUTING)){
|
||||
handleRoutingFileImport(data, fileName, callback);
|
||||
}
|
||||
|
@ -733,20 +733,19 @@ public class ImportHelper {
|
|||
}
|
||||
}
|
||||
|
||||
private void handleOsmAndSettingsImport(Uri intentUri, String fileName, Bundle extras,
|
||||
CallbackWithObject<List<SettingsHelper.SettingsItem>> callback) {
|
||||
private void handleOsmAndSettingsImport(Uri intentUri, String fileName, Bundle extras, boolean askBeforeImport, CallbackWithObject<List<SettingsHelper.SettingsItem>> callback) {
|
||||
if (extras != null && extras.containsKey(SettingsHelper.SETTINGS_VERSION_KEY) && extras.containsKey(SettingsHelper.SETTINGS_LATEST_CHANGES_KEY)) {
|
||||
int version = extras.getInt(SettingsHelper.SETTINGS_VERSION_KEY, -1);
|
||||
String latestChanges = extras.getString(SettingsHelper.SETTINGS_LATEST_CHANGES_KEY);
|
||||
handleOsmAndSettingsImport(intentUri, fileName, latestChanges, version, callback);
|
||||
handleOsmAndSettingsImport(intentUri, fileName, latestChanges, version, askBeforeImport, callback);
|
||||
} else {
|
||||
handleOsmAndSettingsImport(intentUri, fileName, null, -1, callback);
|
||||
handleOsmAndSettingsImport(intentUri, fileName, null, -1, askBeforeImport, callback);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
private void handleOsmAndSettingsImport(final Uri uri, final String name, final String latestChanges, final int version,
|
||||
final CallbackWithObject<List<SettingsHelper.SettingsItem>> callback) {
|
||||
final boolean askBeforeImport, final CallbackWithObject<List<SettingsHelper.SettingsItem>> callback) {
|
||||
final AsyncTask<Void, Void, String> settingsImportTask = new AsyncTask<Void, Void, String>() {
|
||||
|
||||
ProgressDialog progress;
|
||||
|
@ -771,7 +770,7 @@ public class ImportHelper {
|
|||
File tempDir = app.getAppPath(IndexConstants.TEMP_DIR);
|
||||
File file = new File(tempDir, name);
|
||||
if (error == null && file.exists()) {
|
||||
app.getSettingsHelper().importSettings(file, latestChanges, version, new SettingsImportListener() {
|
||||
app.getSettingsHelper().importSettings(file, latestChanges, version, askBeforeImport, new SettingsImportListener() {
|
||||
@Override
|
||||
public void onSettingsImportFinished(boolean succeed, boolean empty, @NonNull List<SettingsHelper.SettingsItem> items) {
|
||||
if (isActivityNotDestroyed(activity)) {
|
||||
|
|
|
@ -9,6 +9,9 @@ import android.support.v4.view.ViewCompat;
|
|||
import android.widget.Toast;
|
||||
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.plus.OsmAndFormatter;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.actions.ShareDialog;
|
||||
|
@ -33,6 +36,7 @@ public class ShareMenu extends BaseMenuController {
|
|||
MESSAGE(R.drawable.ic_action_message, R.string.shared_string_send),
|
||||
CLIPBOARD(R.drawable.ic_action_copy, R.string.shared_string_copy),
|
||||
NAME(R.drawable.ic_action_copy, R.string.copy_location_name),
|
||||
COORDINATES(R.drawable.ic_action_copy, R.string.copy_coordinates),
|
||||
GEO(R.drawable.ic_world_globe_dark, R.string.share_geo),
|
||||
QR_CODE(R.drawable.ic_action_qrcode, R.string.shared_string_qr_code);
|
||||
|
||||
|
@ -62,6 +66,7 @@ public class ShareMenu extends BaseMenuController {
|
|||
list.add(ShareItem.MESSAGE);
|
||||
list.add(ShareItem.CLIPBOARD);
|
||||
list.add(ShareItem.NAME);
|
||||
list.add(ShareItem.COORDINATES);
|
||||
list.add(ShareItem.GEO);
|
||||
list.add(ShareItem.QR_CODE);
|
||||
return list;
|
||||
|
@ -124,6 +129,12 @@ public class ShareMenu extends BaseMenuController {
|
|||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
break;
|
||||
case COORDINATES:
|
||||
OsmandSettings st = ((OsmandApplication) mapActivity.getApplicationContext()).getSettings();
|
||||
int f = st.COORDINATES_FORMAT.get();
|
||||
ShareDialog.sendToClipboard(mapActivity,
|
||||
OsmAndFormatter.getFormattedCoordinates(latLon.getLatitude(), latLon.getLongitude(), f));
|
||||
break;
|
||||
case GEO:
|
||||
Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUrl));
|
||||
mapActivity.startActivity(mapIntent);
|
||||
|
|
|
@ -9,7 +9,6 @@ import android.support.v7.preference.Preference;
|
|||
import android.text.SpannableString;
|
||||
import android.text.SpannableStringBuilder;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.plus.OsmAndAppCustomization;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
|
@ -222,7 +221,7 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment
|
|||
private void setupLiveMonitoringPref() {
|
||||
Drawable disabled = getContentIcon(R.drawable.ic_action_offline);
|
||||
Drawable enabled = getActiveIcon(R.drawable.ic_world_globe_dark);
|
||||
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
Drawable icon = getPersistentPrefIcon(enabled, disabled);
|
||||
|
||||
SwitchPreferenceEx liveMonitoring = (SwitchPreferenceEx) findPreference(settings.LIVE_MONITORING.getId());
|
||||
liveMonitoring.setDescription(getString(R.string.live_monitoring_m_descr));
|
||||
|
|
|
@ -12,7 +12,6 @@ import android.view.LayoutInflater;
|
|||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.plus.OsmAndAppCustomization;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
|
@ -71,7 +70,7 @@ public class OsmEditingFragment extends BaseSettingsFragment implements OnPrefer
|
|||
private void setupOfflineEditingPref() {
|
||||
Drawable disabled = getContentIcon(R.drawable.ic_action_offline);
|
||||
Drawable enabled = getActiveIcon(R.drawable.ic_world_globe_dark);
|
||||
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
Drawable icon = getPersistentPrefIcon(enabled, disabled);
|
||||
|
||||
SwitchPreferenceEx offlineEditingPref = (SwitchPreferenceEx) findPreference(settings.OFFLINE_EDITION.getId());
|
||||
offlineEditingPref.setDescription(getString(R.string.offline_edition_descr));
|
||||
|
|
|
@ -443,7 +443,7 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
|||
net.osmand.Location.distanceBetween(view.getLatitude(), view.getLongitude(), parkingPoint.getLatitude(), parkingPoint.getLongitude(), calculations);
|
||||
d = (int) calculations[0];
|
||||
}
|
||||
if (distChanged(cachedMeters, d)) {
|
||||
if (isUpdateNeeded() || distChanged(cachedMeters, d)) {
|
||||
cachedMeters = d;
|
||||
if (cachedMeters <= 20) {
|
||||
cachedMeters = 0;
|
||||
|
@ -467,6 +467,11 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMetricSystemDepended() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method.
|
||||
* @param oldDist
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package net.osmand.plus.profiles;
|
||||
|
||||
import android.support.annotation.ColorRes;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
public class ProfileDataObject {
|
||||
public class ProfileDataObject implements Comparable<ProfileDataObject> {
|
||||
|
||||
private String name;
|
||||
private String description;
|
||||
|
@ -47,4 +48,9 @@ public class ProfileDataObject {
|
|||
@ColorRes public int getIconColor(boolean isNightMode) {
|
||||
return iconColor.getColor(isNightMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(@NonNull ProfileDataObject another) {
|
||||
return this.name.compareToIgnoreCase(another.name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package net.osmand.plus.profiles;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
|
@ -11,18 +10,20 @@ import android.support.v4.app.FragmentManager;
|
|||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.CallbackWithObject;
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.SettingsHelper.*;
|
||||
import net.osmand.plus.UiUtilities;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.base.MenuBottomSheetDialogFragment;
|
||||
import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem;
|
||||
import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton;
|
||||
import net.osmand.plus.base.bottomsheetmenu.SimpleBottomSheetItem;
|
||||
import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerItem;
|
||||
import net.osmand.plus.base.bottomsheetmenu.simpleitems.LongDescriptionItem;
|
||||
import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem;
|
||||
|
@ -36,7 +37,6 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import static net.osmand.plus.helpers.ImportHelper.ImportType.ROUTING;
|
||||
import static net.osmand.plus.helpers.ImportHelper.ImportType.SETTINGS;
|
||||
|
||||
public class SelectProfileBottomSheetDialogFragment extends MenuBottomSheetDialogFragment {
|
||||
|
||||
|
@ -68,14 +68,7 @@ public class SelectProfileBottomSheetDialogFragment extends MenuBottomSheetDialo
|
|||
if (args != null && args.get(DIALOG_TYPE) != null) {
|
||||
type = args.getString(DIALOG_TYPE);
|
||||
selectedItemKey = args.getString(SELECTED_KEY, null);
|
||||
if (type.equals(TYPE_NAV_PROFILE)) {
|
||||
profiles.addAll(NavigationFragment.getRoutingProfiles(app).values());
|
||||
} else if (type.equals(TYPE_BASE_APP_PROFILE)) {
|
||||
profiles.addAll(NavigationFragment.getBaseProfiles(app));
|
||||
} else {
|
||||
LOG.error("Check intent data!");
|
||||
dismiss();
|
||||
}
|
||||
refreshProfiles(app);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,22 +82,11 @@ public class SelectProfileBottomSheetDialogFragment extends MenuBottomSheetDialo
|
|||
dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
if (type.equals(TYPE_NAV_PROFILE) || type.equals(TYPE_BASE_APP_PROFILE)) {
|
||||
for (BaseBottomSheetItem item : items) {
|
||||
View bottomDivider = item.getView().findViewById(R.id.divider_bottom);
|
||||
if (bottomDivider != null) {
|
||||
bottomDivider.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createMenuItems(Bundle savedInstanceState) {
|
||||
int activeColorRes = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light;
|
||||
int iconDefaultColorResId = nightMode ? R.color.icon_color_default_dark : R.color.icon_color_default_light;
|
||||
OsmandApplication app = getMyApplication();
|
||||
OsmandApplication app = requiredMyApplication();
|
||||
|
||||
View bottomSpaceView = new View(app);
|
||||
int space = (int) getResources().getDimension(R.dimen.empty_state_text_button_padding_top);
|
||||
|
@ -114,155 +96,174 @@ public class SelectProfileBottomSheetDialogFragment extends MenuBottomSheetDialo
|
|||
items.add(new TitleItem(getString(R.string.select_base_profile_dialog_title)));
|
||||
items.add(new LongDescriptionItem(getString(R.string.select_base_profile_dialog_message)));
|
||||
for (int i = 0; i < profiles.size(); i++) {
|
||||
final int pos = i;
|
||||
final ProfileDataObject profile = profiles.get(i);
|
||||
final boolean isSelected = profile.getStringKey().equals(selectedItemKey);
|
||||
final Drawable drawableIcon;
|
||||
if (isSelected) {
|
||||
drawableIcon = getMyApplication().getUIUtilities()
|
||||
.getIcon(profile.getIconRes(), activeColorRes);
|
||||
} else {
|
||||
drawableIcon = getMyApplication().getUIUtilities()
|
||||
.getIcon(profile.getIconRes(), R.color.icon_color_default_light);
|
||||
}
|
||||
|
||||
items.add(new BottomSheetItemWithCompoundButton.Builder()
|
||||
.setCompoundButtonColorId(activeColorRes)
|
||||
.setChecked(isSelected)
|
||||
.setButtonTintList(isSelected
|
||||
? ColorStateList.valueOf(getResolvedColor(getActiveColorId()))
|
||||
: null)
|
||||
.setDescription(profile.getDescription())
|
||||
.setTitle(profile.getName())
|
||||
.setIcon(drawableIcon)
|
||||
.setLayoutId(R.layout.bottom_sheet_item_with_descr_and_radio_btn)
|
||||
.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (listener == null) {
|
||||
getListener();
|
||||
}
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PROFILE_KEY_ARG, profile.getStringKey());
|
||||
listener.onSelectedType(args);
|
||||
dismiss();
|
||||
}
|
||||
})
|
||||
.create());
|
||||
ProfileDataObject profile = profiles.get(i);
|
||||
addProfileItem(profile, false);
|
||||
}
|
||||
items.add(new DividerItem(app));
|
||||
items.add(new SimpleBottomSheetItem.Builder()
|
||||
.setTitle(app.getString(R.string.import_from_file))
|
||||
.setIcon(app.getUIUtilities().getIcon(R.drawable.ic_action_folder, iconDefaultColorResId))
|
||||
.setLayoutId(R.layout.bottom_sheet_item_simple)
|
||||
.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapActivity mapActivity = getMapActivity();
|
||||
if (mapActivity == null) {
|
||||
return;
|
||||
}
|
||||
mapActivity.getImportHelper().chooseFileToImport(SETTINGS, new CallbackWithObject<List<SettingsItem>>() {
|
||||
@Override
|
||||
public boolean processResult(List<SettingsItem> result) {
|
||||
for (SettingsItem item : result) {
|
||||
if (SettingsItemType.PROFILE.equals(item.getType())) {
|
||||
if (listener == null) {
|
||||
getListener();
|
||||
}
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PROFILE_KEY_ARG, item.getName());
|
||||
args.putBoolean(IS_PROFILE_IMPORTED_ARG, true);
|
||||
listener.onSelectedType(args);
|
||||
dismiss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
/*items.add(new DividerItem(app));
|
||||
addButtonItem(R.string.import_from_file, R.drawable.ic_action_folder, new OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapActivity mapActivity = getMapActivity();
|
||||
if (mapActivity == null) {
|
||||
return;
|
||||
}
|
||||
})
|
||||
.create());
|
||||
mapActivity.getImportHelper().chooseFileToImport(SETTINGS, false,
|
||||
new CallbackWithObject<List<SettingsItem>>() {
|
||||
@Override
|
||||
public boolean processResult(List<SettingsItem> result) {
|
||||
for (SettingsItem item : result) {
|
||||
if (SettingsItemType.PROFILE.equals(item.getType())) {
|
||||
if (listener == null) {
|
||||
getListener();
|
||||
}
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PROFILE_KEY_ARG, item.getName());
|
||||
args.putBoolean(IS_PROFILE_IMPORTED_ARG, true);
|
||||
listener.onSelectedType(args);
|
||||
dismiss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
items.add(new BaseBottomSheetItem.Builder()
|
||||
.setCustomView(bottomSpaceView)
|
||||
.create());
|
||||
.create());*/
|
||||
|
||||
} else if (type.equals(TYPE_NAV_PROFILE)){
|
||||
} else if (type.equals(TYPE_NAV_PROFILE)) {
|
||||
items.add(new TitleItem(getString(R.string.select_nav_profile_dialog_title)));
|
||||
items.add(new LongDescriptionItem(getString(R.string.select_nav_profile_dialog_message)));
|
||||
for (int i = 0; i < profiles.size(); i++) {
|
||||
final ProfileDataObject profile = profiles.get(i);
|
||||
final boolean isSelected = profile.getStringKey().equals(selectedItemKey);
|
||||
final Drawable drawableIcon;
|
||||
if (isSelected) {
|
||||
drawableIcon = getMyApplication().getUIUtilities()
|
||||
.getIcon(profile.getIconRes(), activeColorRes);
|
||||
} else {
|
||||
drawableIcon = getMyApplication().getUIUtilities()
|
||||
.getIcon(profile.getIconRes(), R.color.icon_color_default_light);
|
||||
final RoutingProfileDataObject profile = (RoutingProfileDataObject) profiles.get(i);
|
||||
boolean showBottomDivider = false;
|
||||
if (i < profiles.size() - 1) {
|
||||
RoutingProfileDataObject nextProfile = (RoutingProfileDataObject) profiles.get(i + 1);
|
||||
if (profile.getFileName() == null) {
|
||||
showBottomDivider = nextProfile.getFileName() != null;
|
||||
} else {
|
||||
showBottomDivider = !profile.getFileName().equals(nextProfile.getFileName());
|
||||
}
|
||||
}
|
||||
|
||||
items.add(new BottomSheetItemWithCompoundButton.Builder()
|
||||
.setCompoundButtonColorId(activeColorRes)
|
||||
.setChecked(isSelected)
|
||||
.setButtonTintList(isSelected
|
||||
? ColorStateList.valueOf(getResolvedColor(getActiveColorId()))
|
||||
: null)
|
||||
.setDescription(profile.getDescription())
|
||||
.setTitle(profile.getName())
|
||||
.setIcon(drawableIcon)
|
||||
.setLayoutId(R.layout.bottom_sheet_item_with_descr_and_radio_btn)
|
||||
.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (listener == null) {
|
||||
getListener();
|
||||
}
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PROFILE_KEY_ARG, profile.getStringKey());
|
||||
listener.onSelectedType(args);
|
||||
dismiss();
|
||||
}
|
||||
})
|
||||
.create());
|
||||
addProfileItem(profile, showBottomDivider);
|
||||
}
|
||||
items.add(new DividerItem(app));
|
||||
items.add(new LongDescriptionItem(app.getString(R.string.osmand_routing_promo)));
|
||||
items.add(new SimpleBottomSheetItem.Builder()
|
||||
.setTitle(app.getString(R.string.import_routing_file))
|
||||
.setIcon(app.getUIUtilities().getIcon(R.drawable.ic_action_folder, iconDefaultColorResId))
|
||||
.setLayoutId(R.layout.bottom_sheet_item_simple)
|
||||
.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapActivity mapActivity = getMapActivity();
|
||||
if (mapActivity == null) {
|
||||
return;
|
||||
}
|
||||
mapActivity.getImportHelper().chooseFileToImport(ROUTING, new CallbackWithObject<String>() {
|
||||
addButtonItem(R.string.import_routing_file, R.drawable.ic_action_folder, new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapActivity mapActivity = getMapActivity();
|
||||
if (mapActivity == null) {
|
||||
return;
|
||||
}
|
||||
mapActivity.getImportHelper().chooseFileToImport(ROUTING, false,
|
||||
new CallbackWithObject<String>() {
|
||||
@Override
|
||||
public boolean processResult(String profileKey) {
|
||||
if (listener == null) {
|
||||
getListener();
|
||||
}
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PROFILE_KEY_ARG, profileKey);
|
||||
args.putBoolean(IS_PROFILE_IMPORTED_ARG, true);
|
||||
listener.onSelectedType(args);
|
||||
dismiss();
|
||||
refreshView();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
.create());
|
||||
}
|
||||
});
|
||||
items.add(new BaseBottomSheetItem.Builder()
|
||||
.setCustomView(bottomSpaceView)
|
||||
.create());
|
||||
}
|
||||
}
|
||||
|
||||
private void addProfileItem(final ProfileDataObject profile, boolean showBottomDivider) {
|
||||
OsmandApplication app = requiredMyApplication();
|
||||
|
||||
int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light;
|
||||
int iconDefaultColorResId = nightMode ? R.color.icon_color_default_dark : R.color.icon_color_default_light;
|
||||
|
||||
View itemView = View.inflate(getContext(), R.layout.bottom_sheet_item_with_descr_and_radio_btn, null);
|
||||
TextView tvTitle = itemView.findViewById(R.id.title);
|
||||
TextView tvDescription = itemView.findViewById(R.id.description);
|
||||
ImageView ivIcon = itemView.findViewById(R.id.icon);
|
||||
CompoundButton compoundButton = itemView.findViewById(R.id.compound_button);
|
||||
View bottomDivider = itemView.findViewById(R.id.divider_bottom);
|
||||
|
||||
tvTitle.setText(profile.getName());
|
||||
tvDescription.setText(profile.getDescription());
|
||||
|
||||
final boolean isSelected = profile.getStringKey().equals(selectedItemKey);
|
||||
final Drawable drawableIcon = app.getUIUtilities().getIcon(profile.getIconRes(),
|
||||
isSelected ? activeColorResId : iconDefaultColorResId);
|
||||
ivIcon.setImageDrawable(drawableIcon);
|
||||
compoundButton.setChecked(isSelected);
|
||||
UiUtilities.setupCompoundButton(compoundButton, nightMode, UiUtilities.CompoundButtonType.GLOBAL);
|
||||
bottomDivider.setVisibility(showBottomDivider ? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
items.add(new BaseBottomSheetItem.Builder()
|
||||
.setCustomView(itemView)
|
||||
.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (listener == null) {
|
||||
getListener();
|
||||
}
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PROFILE_KEY_ARG, profile.getStringKey());
|
||||
listener.onSelectedType(args);
|
||||
dismiss();
|
||||
}
|
||||
})
|
||||
.create());
|
||||
}
|
||||
|
||||
private void addButtonItem(int titleId, int iconId, OnClickListener listener) {
|
||||
OsmandApplication app = requiredMyApplication();
|
||||
|
||||
int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light;
|
||||
|
||||
View buttonView = View.inflate(app, R.layout.bottom_sheet_item_preference_btn, null);
|
||||
TextView tvTitle = buttonView.findViewById(R.id.title);
|
||||
tvTitle.setText(app.getString(titleId));
|
||||
|
||||
ImageView ivIcon = buttonView.findViewById(R.id.icon);
|
||||
ivIcon.setImageDrawable(app.getUIUtilities().getIcon(iconId, activeColorResId));
|
||||
|
||||
items.add(new BaseBottomSheetItem.Builder()
|
||||
.setCustomView(buttonView)
|
||||
.setOnClickListener(listener)
|
||||
.create());
|
||||
}
|
||||
|
||||
private void refreshProfiles(OsmandApplication app) {
|
||||
if (type.equals(TYPE_NAV_PROFILE)) {
|
||||
profiles.addAll(NavigationFragment.getSortedRoutingProfiles(app));
|
||||
} else if (type.equals(TYPE_BASE_APP_PROFILE)) {
|
||||
profiles.addAll(NavigationFragment.getBaseProfiles(app));
|
||||
} else {
|
||||
LOG.error("Check data type!");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshView() {
|
||||
Activity activity = getActivity();
|
||||
View mainView = getView();
|
||||
refreshProfiles(getMyApplication());
|
||||
if (activity != null && mainView != null) {
|
||||
LinearLayout itemsContainer = (LinearLayout) mainView.findViewById(useScrollableItemsContainer()
|
||||
? R.id.scrollable_items_container : R.id.non_scrollable_items_container);
|
||||
if (itemsContainer != null) {
|
||||
itemsContainer.removeAllViews();
|
||||
}
|
||||
items.clear();
|
||||
createMenuItems(null);
|
||||
for (BaseBottomSheetItem item : items) {
|
||||
item.inflate(activity, itemsContainer, nightMode);
|
||||
}
|
||||
setupHeightAndBackground(mainView);
|
||||
}
|
||||
}
|
||||
|
||||
private void getListener() {
|
||||
FragmentActivity activity = getActivity();
|
||||
if (activity != null) {
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
package net.osmand.plus.routing;
|
||||
|
||||
|
||||
import net.osmand.GPXUtilities.GPXFile;
|
||||
import net.osmand.Location;
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.ValueHolder;
|
||||
import net.osmand.binary.RouteDataObject;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.QuadPoint;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.GPXUtilities.GPXFile;
|
||||
import net.osmand.plus.NavigationService;
|
||||
import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener;
|
||||
import net.osmand.plus.OsmAndFormatter;
|
||||
|
@ -1257,5 +1259,54 @@ public class RoutingHelper {
|
|||
}
|
||||
}
|
||||
|
||||
public static class RouteSegmentSearchResult {
|
||||
private int roadIndex;
|
||||
private int segmentIndex;
|
||||
private QuadPoint point;
|
||||
|
||||
private RouteSegmentSearchResult(int roadIndex, int segmentIndex, QuadPoint point) {
|
||||
this.roadIndex = roadIndex;
|
||||
this.segmentIndex = segmentIndex;
|
||||
this.point = point;
|
||||
}
|
||||
|
||||
public int getRoadIndex() {
|
||||
return roadIndex;
|
||||
}
|
||||
|
||||
public int getSegmentIndex() {
|
||||
return segmentIndex;
|
||||
}
|
||||
|
||||
public QuadPoint getPoint() {
|
||||
return point;
|
||||
}
|
||||
}
|
||||
|
||||
public static RouteSegmentSearchResult searchRouteSegment(double latitude, double longitude, double maxDist, List<RouteSegmentResult> roads) {
|
||||
int roadIndex = -1;
|
||||
int segmentIndex = -1;
|
||||
QuadPoint point = null;
|
||||
int px = MapUtils.get31TileNumberX(longitude);
|
||||
int py = MapUtils.get31TileNumberY(latitude);
|
||||
double dist = maxDist < 0 ? 1000 : maxDist;
|
||||
for (int i = 0; i < roads.size(); i++) {
|
||||
RouteSegmentResult road = roads.get(i);
|
||||
int startPointIndex = road.getStartPointIndex() < road.getEndPointIndex() ? road.getStartPointIndex() : road.getEndPointIndex();
|
||||
int endPointIndex = road.getEndPointIndex() > road.getStartPointIndex() ? road.getEndPointIndex() : road.getStartPointIndex();
|
||||
RouteDataObject obj = road.getObject();
|
||||
for (int j = startPointIndex + 1; j <= endPointIndex; j++) {
|
||||
QuadPoint proj = MapUtils.getProjectionPoint31(px, py, obj.getPoint31XTile(j - 1), obj.getPoint31YTile(j - 1),
|
||||
obj.getPoint31XTile(j), obj.getPoint31YTile(j));
|
||||
double dd = MapUtils.squareRootDist31((int) proj.x, (int) proj.y, px, py);
|
||||
if (dd < dist) {
|
||||
dist = dd;
|
||||
roadIndex = i;
|
||||
segmentIndex = j;
|
||||
point = proj;
|
||||
}
|
||||
}
|
||||
}
|
||||
return roadIndex != -1 ? new RouteSegmentSearchResult(roadIndex, segmentIndex, point) : null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package net.osmand.plus.settings;
|
|||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.LayerDrawable;
|
||||
import android.os.Build;
|
||||
|
@ -18,6 +19,7 @@ import android.support.v4.app.Fragment;
|
|||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.graphics.drawable.DrawableCompat;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
import android.support.v7.preference.EditTextPreference;
|
||||
import android.support.v7.preference.ListPreference;
|
||||
|
@ -730,7 +732,19 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
|
|||
protected Drawable getPersistentPrefIcon(@DrawableRes int iconId) {
|
||||
Drawable disabled = UiUtilities.createTintedDrawable(app, iconId, ContextCompat.getColor(app, R.color.icon_color_default_light));
|
||||
Drawable enabled = UiUtilities.createTintedDrawable(app, iconId, getActiveProfileColor());
|
||||
return AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
return getPersistentPrefIcon(enabled, disabled);
|
||||
}
|
||||
|
||||
protected Drawable getPersistentPrefIcon(Drawable enabled, Drawable disabled) {
|
||||
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
|
||||
if (Build.VERSION.SDK_INT < 21) {
|
||||
ColorStateList colorStateList = AndroidUtils.createEnabledColorStateList(app, R.color.icon_color_default_light, getActiveProfileColorRes());
|
||||
icon = DrawableCompat.wrap(icon);
|
||||
DrawableCompat.setTintList(icon, colorStateList);
|
||||
return icon;
|
||||
}
|
||||
return icon;
|
||||
}
|
||||
|
||||
public SwitchPreferenceCompat createSwitchPreference(OsmandSettings.OsmandPreference<Boolean> b, int title, int summary, int layoutId) {
|
||||
|
|
|
@ -21,7 +21,6 @@ import android.widget.ArrayAdapter;
|
|||
import android.widget.CompoundButton;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
|
@ -127,7 +126,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
|
|||
private void setupCenterPositionOnMapPref() {
|
||||
Drawable disabled = getContentIcon(R.drawable.ic_action_display_position_bottom);
|
||||
Drawable enabled = getActiveIcon(R.drawable.ic_action_display_position_center);
|
||||
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
Drawable icon = getPersistentPrefIcon(enabled, disabled);
|
||||
|
||||
SwitchPreferenceCompat centerPositionOnMap = (SwitchPreferenceCompat) findPreference(settings.CENTER_POSITION_ON_MAP.getId());
|
||||
centerPositionOnMap.setIcon(icon);
|
||||
|
|
|
@ -125,7 +125,7 @@ public class MainSettingsFragment extends BaseSettingsFragment {
|
|||
} else if (IMPORT_PROFILE.equals(prefId)) {
|
||||
final MapActivity mapActivity = getMapActivity();
|
||||
if (mapActivity != null) {
|
||||
mapActivity.getImportHelper().chooseFileToImport(SETTINGS, new CallbackWithObject<List<SettingsItem>>() {
|
||||
mapActivity.getImportHelper().chooseFileToImport(SETTINGS, false, new CallbackWithObject<List<SettingsItem>>() {
|
||||
|
||||
@Override
|
||||
public boolean processResult(List<SettingsItem> result) {
|
||||
|
|
|
@ -8,7 +8,6 @@ import android.support.v7.preference.SwitchPreferenceCompat;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
|
@ -23,6 +22,8 @@ import net.osmand.router.GeneralRouter;
|
|||
import net.osmand.util.Algorithms;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -37,6 +38,7 @@ public class NavigationFragment extends BaseSettingsFragment {
|
|||
|
||||
public static final String TAG = NavigationFragment.class.getSimpleName();
|
||||
public static final String NAVIGATION_TYPE = "navigation_type";
|
||||
public static final String OSMAND_NAVIGATION = "osmand_navigation";
|
||||
|
||||
private SelectProfileBottomSheetDialogFragment.SelectProfileListener navTypeListener;
|
||||
private Map<String, RoutingProfileDataObject> routingProfileDataObjects;
|
||||
|
@ -88,7 +90,7 @@ public class NavigationFragment extends BaseSettingsFragment {
|
|||
private void setupSpeakRoutingAlarmsPref() {
|
||||
Drawable disabled = getContentIcon(R.drawable.ic_action_volume_mute);
|
||||
Drawable enabled = getActiveIcon(R.drawable.ic_action_volume_up);
|
||||
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
Drawable icon = getPersistentPrefIcon(enabled, disabled);
|
||||
|
||||
SwitchPreferenceCompat speakRoutingAlarms = (SwitchPreferenceCompat) findPreference(settings.VOICE_MUTE.getId());
|
||||
speakRoutingAlarms.setIcon(icon);
|
||||
|
@ -155,6 +157,8 @@ public class NavigationFragment extends BaseSettingsFragment {
|
|||
RouteProvider.RouteService routeService;
|
||||
if (profileKey.equals(RoutingProfilesResources.STRAIGHT_LINE_MODE.name())) {
|
||||
routeService = RouteProvider.RouteService.STRAIGHT;
|
||||
} else if (profileKey.equals(RoutingProfilesResources.STRAIGHT_TO_LINE_MODE.name())){
|
||||
routeService = RouteProvider.RouteService.STRAIGHT_TO;
|
||||
} else if (profileKey.equals(RoutingProfilesResources.BROUTER_MODE.name())) {
|
||||
routeService = RouteProvider.RouteService.BROUTER;
|
||||
} else {
|
||||
|
@ -164,6 +168,41 @@ public class NavigationFragment extends BaseSettingsFragment {
|
|||
appMode.setRoutingProfile(profileKey);
|
||||
}
|
||||
|
||||
public static List<RoutingProfileDataObject> getSortedRoutingProfiles(OsmandApplication app) {
|
||||
List<RoutingProfileDataObject> result = new ArrayList<>();
|
||||
Map<String, List<RoutingProfileDataObject>> routingProfilesByFileNames = getRoutingProfilesByFileNames(app);
|
||||
List<String> fileNames = new ArrayList<>(routingProfilesByFileNames.keySet());
|
||||
Collections.sort(fileNames, new Comparator<String>() {
|
||||
@Override
|
||||
public int compare(String s, String t1) {
|
||||
return s.equals(OSMAND_NAVIGATION) ? -1 : t1.equals(OSMAND_NAVIGATION) ? 1 : s.compareToIgnoreCase(t1);
|
||||
}
|
||||
});
|
||||
for (String fileName : fileNames) {
|
||||
List<RoutingProfileDataObject> routingProfilesFromFile = routingProfilesByFileNames.get(fileName);
|
||||
if (routingProfilesFromFile != null) {
|
||||
Collections.sort(routingProfilesFromFile);
|
||||
result.addAll(routingProfilesFromFile);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Map<String, List<RoutingProfileDataObject>> getRoutingProfilesByFileNames(OsmandApplication app) {
|
||||
Map<String, List<RoutingProfileDataObject>> result = new HashMap<>();
|
||||
for (final RoutingProfileDataObject profile : getRoutingProfiles(app).values()) {
|
||||
String fileName = profile.getFileName() != null ? profile.getFileName() : OSMAND_NAVIGATION;
|
||||
if (result.containsKey(fileName)) {
|
||||
result.get(fileName).add(profile);
|
||||
} else {
|
||||
result.put(fileName, new ArrayList<RoutingProfileDataObject>() {
|
||||
{ add(profile); }
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Map<String, RoutingProfileDataObject> getRoutingProfiles(OsmandApplication context) {
|
||||
Map<String, RoutingProfileDataObject> profilesObjects = new HashMap<>();
|
||||
profilesObjects.put(RoutingProfilesResources.STRAIGHT_LINE_MODE.name(), new RoutingProfileDataObject(
|
||||
|
@ -172,6 +211,12 @@ public class NavigationFragment extends BaseSettingsFragment {
|
|||
context.getString(R.string.special_routing_type),
|
||||
RoutingProfilesResources.STRAIGHT_LINE_MODE.getIconRes(),
|
||||
false, null));
|
||||
profilesObjects.put(RoutingProfilesResources.STRAIGHT_TO_LINE_MODE.name(), new RoutingProfileDataObject(
|
||||
RoutingProfilesResources.STRAIGHT_TO_LINE_MODE.name(),
|
||||
context.getString(RoutingProfilesResources.STRAIGHT_TO_LINE_MODE.getStringRes()),
|
||||
context.getString(R.string.special_routing_type),
|
||||
RoutingProfilesResources.STRAIGHT_TO_LINE_MODE.getIconRes(),
|
||||
false, null));
|
||||
if (context.getBRouterService() != null) {
|
||||
profilesObjects.put(RoutingProfilesResources.BROUTER_MODE.name(), new RoutingProfileDataObject(
|
||||
RoutingProfilesResources.BROUTER_MODE.name(),
|
||||
|
|
|
@ -9,7 +9,6 @@ import android.support.v7.preference.PreferenceScreen;
|
|||
import android.support.v7.preference.PreferenceViewHolder;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.StateChangedListener;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
|
@ -391,7 +390,7 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
|
|||
case GeneralRouter.ALLOW_MOTORWAYS:
|
||||
Drawable disabled = getContentIcon(R.drawable.ic_action_avoid_motorways);
|
||||
Drawable enabled = getActiveIcon(R.drawable.ic_action_motorways);
|
||||
return AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
return getPersistentPrefIcon(enabled, disabled);
|
||||
case GeneralRouter.USE_HEIGHT_OBSTACLES:
|
||||
case RELIEF_SMOOTHNESS_FACTOR:
|
||||
return getPersistentPrefIcon(R.drawable.ic_action_elevation);
|
||||
|
|
|
@ -175,7 +175,7 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment {
|
|||
|
||||
Drawable disabled = getContentIcon(R.drawable.ic_action_volume_mute);
|
||||
Drawable enabled = getActiveIcon(R.drawable.ic_action_volume_up);
|
||||
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
|
||||
Drawable icon = getPersistentPrefIcon(enabled, disabled);
|
||||
|
||||
ListPreferenceEx voiceProvider = (ListPreferenceEx) findPreference(settings.VOICE_PROVIDER.getId());
|
||||
voiceProvider.setEntries(entries);
|
||||
|
@ -240,11 +240,14 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment {
|
|||
protected void onBindPreferenceViewHolder(Preference preference, PreferenceViewHolder holder) {
|
||||
super.onBindPreferenceViewHolder(preference, holder);
|
||||
if (settings.VOICE_PROVIDER.getId().equals(preference.getKey()) && preference instanceof ListPreferenceEx) {
|
||||
TextView titleView = (TextView) holder.findViewById(android.R.id.title);
|
||||
if (titleView != null) {
|
||||
titleView.setTextColor(preference.isEnabled() ? getActiveTextColor() : getDisabledTextColor());
|
||||
}
|
||||
ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon);
|
||||
if (imageView != null) {
|
||||
Object currentValue = ((ListPreferenceEx) preference).getValue();
|
||||
boolean enabled = preference.isEnabled() && !OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(currentValue);
|
||||
imageView.setEnabled(enabled);
|
||||
imageView.setEnabled(preference.isEnabled() && !OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(currentValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -947,9 +947,9 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
|
||||
if (selectOnMap != null) {
|
||||
LatLon latlon = tileBox.getLatLonFromPixel(point.x, point.y);
|
||||
menu.init(latlon, null, null);
|
||||
CallbackWithObject<LatLon> cb = selectOnMap;
|
||||
cb.processResult(latlon);
|
||||
menu.init(latlon, null, null);
|
||||
selectOnMap = null;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ public class MapInfoWidgetsFactory {
|
|||
Location loc = map.getMyApplication().getLocationProvider().getLastKnownLocation();
|
||||
if (loc != null && loc.hasAltitude()) {
|
||||
double compAlt = loc.getAltitude();
|
||||
if (cachedAlt != (int) compAlt) {
|
||||
if (isUpdateNeeded() || cachedAlt != (int) compAlt) {
|
||||
cachedAlt = (int) compAlt;
|
||||
String ds = OsmAndFormatter.getFormattedAlt(cachedAlt, map.getMyApplication());
|
||||
int ls = ds.lastIndexOf(' ');
|
||||
|
@ -120,6 +120,11 @@ public class MapInfoWidgetsFactory {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMetricSystemDepended() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
altitudeControl.setText(null, null);
|
||||
altitudeControl.setIcons(R.drawable.widget_altitude_day, R.drawable.widget_altitude_night);
|
||||
|
@ -136,7 +141,7 @@ public class MapInfoWidgetsFactory {
|
|||
@Override
|
||||
public boolean updateInfo(DrawSettings d) {
|
||||
GPSInfo gpsInfo = loc.getGPSInfo();
|
||||
if (gpsInfo.usedSatellites != u || gpsInfo.foundSatellites != f) {
|
||||
if (isUpdateNeeded() || gpsInfo.usedSatellites != u || gpsInfo.foundSatellites != f) {
|
||||
u = gpsInfo.usedSatellites;
|
||||
f = gpsInfo.foundSatellites;
|
||||
setText(gpsInfo.usedSatellites + "/" + gpsInfo.foundSatellites, "");
|
||||
|
|
|
@ -337,7 +337,7 @@ public class MapMarkersWidgetsFactory {
|
|||
}
|
||||
boolean res = false;
|
||||
int d = getDistance();
|
||||
if (cachedMeters != d) {
|
||||
if (isUpdateNeeded() || cachedMeters != d) {
|
||||
cachedMeters = d;
|
||||
String ds = OsmAndFormatter.getFormattedDistance(cachedMeters, view.getApplication());
|
||||
int ls = ds.lastIndexOf(' ');
|
||||
|
@ -364,6 +364,11 @@ public class MapMarkersWidgetsFactory {
|
|||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMetricSystemDepended() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public LatLon getPointToNavigate() {
|
||||
MapMarker marker = getMarker();
|
||||
if (marker != null) {
|
||||
|
|
|
@ -342,7 +342,7 @@ public class RouteInfoWidgetsFactory {
|
|||
@Override
|
||||
public boolean updateInfo(DrawSettings drawSettings) {
|
||||
long time = System.currentTimeMillis();
|
||||
if(time - cachedLeftTime > 5000) {
|
||||
if (isUpdateNeeded() || time - cachedLeftTime > 5000) {
|
||||
cachedLeftTime = time;
|
||||
if (DateFormat.is24HourFormat(ctx)) {
|
||||
setText(DateFormat.format("k:mm", time).toString(), null); //$NON-NLS-1$
|
||||
|
@ -372,7 +372,7 @@ public class RouteInfoWidgetsFactory {
|
|||
@Override
|
||||
public boolean updateInfo(DrawSettings drawSettings) {
|
||||
long time = System.currentTimeMillis();
|
||||
if (time - cachedLeftTime > 1000) {
|
||||
if (isUpdateNeeded() || time - cachedLeftTime > 1000) {
|
||||
cachedLeftTime = time;
|
||||
Intent batteryIntent = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
|
||||
|
@ -418,7 +418,7 @@ public class RouteInfoWidgetsFactory {
|
|||
} else {
|
||||
mx = 0f;
|
||||
}
|
||||
if (cachedSpeed != mx) {
|
||||
if (isUpdateNeeded() || cachedSpeed != mx) {
|
||||
cachedSpeed = mx;
|
||||
if (cachedSpeed == 0) {
|
||||
setText(null, null);
|
||||
|
@ -437,6 +437,11 @@ public class RouteInfoWidgetsFactory {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMetricSystemDepended() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
speedControl.setIcons(R.drawable.widget_max_speed_day, R.drawable.widget_max_speed_night);
|
||||
speedControl.setText(null, null);
|
||||
|
@ -463,7 +468,7 @@ public class RouteInfoWidgetsFactory {
|
|||
if (cachedSpeed < 6) {
|
||||
minDelta = .015f;
|
||||
}
|
||||
if (Math.abs(loc.getSpeed() - cachedSpeed) > minDelta) {
|
||||
if (isUpdateNeeded() || Math.abs(loc.getSpeed() - cachedSpeed) > minDelta) {
|
||||
cachedSpeed = loc.getSpeed();
|
||||
String ds = OsmAndFormatter.getFormattedSpeed(cachedSpeed, app);
|
||||
int ls = ds.lastIndexOf(' ');
|
||||
|
@ -481,6 +486,11 @@ public class RouteInfoWidgetsFactory {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMetricSystemDepended() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
speedControl.setIcons(R.drawable.widget_speed_day, R.drawable.widget_speed_night);
|
||||
speedControl.setText(null, null);
|
||||
|
@ -521,7 +531,7 @@ public class RouteInfoWidgetsFactory {
|
|||
@Override
|
||||
public boolean updateInfo(DrawSettings drawSettings) {
|
||||
int d = getDistance();
|
||||
if (distChanged(cachedMeters, d)) {
|
||||
if (isUpdateNeeded() || distChanged(cachedMeters, d)) {
|
||||
cachedMeters = d;
|
||||
if (cachedMeters <= 20) {
|
||||
cachedMeters = 0;
|
||||
|
@ -540,6 +550,11 @@ public class RouteInfoWidgetsFactory {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMetricSystemDepended() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public abstract LatLon getPointToNavigate();
|
||||
|
||||
public int getDistance() {
|
||||
|
@ -664,17 +679,6 @@ public class RouteInfoWidgetsFactory {
|
|||
final TextInfoWidget bearingControl = new TextInfoWidget(map) {
|
||||
private int cachedDegrees;
|
||||
private float MIN_SPEED_FOR_HEADING = 1f;
|
||||
private boolean angularUnitTypeChanged = false;
|
||||
private StateChangedListener<OsmandSettings.AngularConstants> listener = new StateChangedListener<OsmandSettings.AngularConstants>() {
|
||||
@Override
|
||||
public void stateChanged(OsmandSettings.AngularConstants change) {
|
||||
angularUnitTypeChanged = true;
|
||||
}
|
||||
};
|
||||
|
||||
{
|
||||
getOsmandApplication().getSettings().ANGULAR_UNITS.addListener(listener);
|
||||
}
|
||||
|
||||
private LatLon getNextTargetPoint() {
|
||||
List<TargetPoint> points = getOsmandApplication().getTargetPointsHelper().getIntermediatePointsWithTarget();
|
||||
|
@ -687,8 +691,7 @@ public class RouteInfoWidgetsFactory {
|
|||
boolean modeChanged = setIcons(relative ? relativeBearingResId : bearingResId, relative ? relativeBearingNightResId : bearingNightResId);
|
||||
setContentTitle(relative ? R.string.map_widget_bearing : R.string.map_widget_magnetic_bearing);
|
||||
int b = getBearing(relative);
|
||||
if (angularUnitTypeChanged || degreesChanged(cachedDegrees, b) || modeChanged) {
|
||||
angularUnitTypeChanged = false;
|
||||
if (isUpdateNeeded() || degreesChanged(cachedDegrees, b) || modeChanged) {
|
||||
cachedDegrees = b;
|
||||
if (b != -1000) {
|
||||
setText(OsmAndFormatter.getFormattedAzimuth(b, getOsmandApplication()) + (relative ? "" : " M"), null);
|
||||
|
@ -700,6 +703,11 @@ public class RouteInfoWidgetsFactory {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAngularUnitsDepended() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getBearing(boolean relative) {
|
||||
int d = -1000;
|
||||
Location myLocation = getOsmandApplication().getLocationProvider().getLastKnownLocation();
|
||||
|
|
|
@ -38,6 +38,8 @@ public class TextInfoWidget {
|
|||
private boolean isNight;
|
||||
private ViewGroup bottomLayout;
|
||||
|
||||
private Integer cachedMetricSystem = null;
|
||||
private Integer cachedAngularUnits = null;
|
||||
|
||||
public TextInfoWidget(Activity activity) {
|
||||
app = (OsmandApplication) activity.getApplication();
|
||||
|
@ -191,6 +193,29 @@ public class TextInfoWidget {
|
|||
return false;
|
||||
}
|
||||
|
||||
public boolean isUpdateNeeded() {
|
||||
boolean res = false;
|
||||
if (isMetricSystemDepended()) {
|
||||
int metricSystem = app.getSettings().METRIC_SYSTEM.get().ordinal();
|
||||
res |= cachedMetricSystem == null || cachedMetricSystem != metricSystem;
|
||||
cachedMetricSystem = metricSystem;
|
||||
}
|
||||
if (isAngularUnitsDepended()) {
|
||||
int angularUnits = app.getSettings().ANGULAR_UNITS.get().ordinal();
|
||||
res |= cachedAngularUnits == null || cachedAngularUnits != angularUnits;
|
||||
cachedAngularUnits = angularUnits;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public boolean isMetricSystemDepended() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isAngularUnitsDepended() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setOnClickListener(OnClickListener onClickListener) {
|
||||
view.setOnClickListener(onClickListener);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue