Merge pull request #10650 from osmandapp/master

update test branch
This commit is contained in:
Hardy 2021-01-24 14:12:17 +01:00 committed by GitHub
commit 0c3fc9b731
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
58 changed files with 584 additions and 136 deletions

View file

@ -2,6 +2,7 @@ package net.osmand.aidlapi;
import net.osmand.aidlapi.map.ALatLon;
import net.osmand.aidlapi.map.SetMapLocationParams;
import net.osmand.aidlapi.map.SetLocationParams;
import net.osmand.aidlapi.favorite.group.AFavoriteGroup;
import net.osmand.aidlapi.favorite.group.AddFavoriteGroupParams;
@ -901,4 +902,6 @@ interface IOsmAndAidlInterface {
boolean addRoadBlock(in AddBlockedRoadParams params);
boolean removeRoadBlock(in RemoveBlockedRoadParams params);
boolean setLocation(in SetLocationParams params);
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidlapi.map;
parcelable ALocation;

View file

@ -0,0 +1,208 @@
package net.osmand.aidlapi.map;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import net.osmand.aidlapi.AidlParams;
public class ALocation extends AidlParams {
private double latitude = 0.0;
private double longitude = 0.0;
private long time = 0;
private boolean hasAltitude = false;
private double altitude = 0.0f;
private boolean hasSpeed = false;
private float speed = 0.0f;
private boolean hasBearing = false;
private float bearing = 0.0f;
private boolean hasAccuracy = false;
private float accuracy = 0.0f;
private boolean hasVerticalAccuracy = false;
private float verticalAccuracy = 0.0f;
private ALocation() {
}
public ALocation(Parcel in) {
readFromParcel(in);
}
public static final Parcelable.Creator<ALocation> CREATOR = new Parcelable.Creator<ALocation>() {
@Override
public ALocation createFromParcel(Parcel in) {
return new ALocation(in);
}
@Override
public ALocation[] newArray(int size) {
return new ALocation[size];
}
};
public double getLatitude() {
return latitude;
}
public double getLongitude() {
return longitude;
}
public long getTime() {
return time;
}
public boolean hasAltitude() {
return hasAltitude;
}
public double getAltitude() {
return altitude;
}
public boolean hasSpeed() {
return hasSpeed;
}
public float getSpeed() {
return speed;
}
public boolean hasBearing() {
return hasBearing;
}
public float getBearing() {
return bearing;
}
public boolean hasAccuracy() {
return hasAccuracy;
}
public float getAccuracy() {
return accuracy;
}
public boolean hasVerticalAccuracy() {
return hasVerticalAccuracy;
}
public float getVerticalAccuracy() {
return verticalAccuracy;
}
@Override
protected void writeToBundle(Bundle bundle) {
bundle.putDouble("latitude", latitude);
bundle.putDouble("longitude", longitude);
bundle.putLong("time", time);
bundle.putBoolean("hasAltitude", hasAltitude);
bundle.putDouble("altitude", altitude);
bundle.putBoolean("hasSpeed", hasSpeed);
bundle.putFloat("speed", speed);
bundle.putBoolean("hasBearing", hasBearing);
bundle.putFloat("bearing", bearing);
bundle.putBoolean("hasAccuracy", hasAccuracy);
bundle.putFloat("accuracy", accuracy);
bundle.putBoolean("hasVerticalAccuracy", hasVerticalAccuracy);
bundle.putFloat("verticalAccuracy", verticalAccuracy);
}
@Override
protected void readFromBundle(Bundle bundle) {
latitude = bundle.getDouble("latitude");
longitude = bundle.getDouble("longitude");
time = bundle.getLong("time");
hasAltitude = bundle.getBoolean("hasAltitude");
altitude = bundle.getDouble("altitude");
hasSpeed = bundle.getBoolean("hasSpeed");
speed = bundle.getFloat("speed");
hasBearing = bundle.getBoolean("hasBearing");
bearing = bundle.getFloat("bearing");
hasAccuracy = bundle.getBoolean("hasAccuracy");
accuracy = bundle.getFloat("accuracy");
hasVerticalAccuracy = bundle.getBoolean("hasVerticalAccuracy");
verticalAccuracy = bundle.getFloat("verticalAccuracy");
}
public static Builder builder() {
return new ALocation().new Builder();
}
public class Builder {
private Builder() {
}
public Builder setLatitude(double latitude) {
ALocation.this.latitude = latitude;
return this;
}
public Builder setLongitude(double longitude) {
ALocation.this.longitude = longitude;
return this;
}
public Builder setTime(long time) {
ALocation.this.time = time;
return this;
}
public Builder hasAltitude(boolean hasAltitude) {
ALocation.this.hasAltitude = hasAltitude;
return this;
}
public Builder setAltitude(float altitude) {
ALocation.this.altitude = altitude;
return this;
}
public Builder hasSpeed(boolean hasSpeed) {
ALocation.this.hasSpeed = hasSpeed;
return this;
}
public Builder setSpeed(float speed) {
ALocation.this.speed = speed;
return this;
}
public Builder hasBearing(boolean hasBearing) {
ALocation.this.hasBearing = hasBearing;
return this;
}
public Builder setBearing(float bearing) {
ALocation.this.bearing = bearing;
return this;
}
public Builder hasAccuracy(boolean hasAccuracy) {
ALocation.this.hasAccuracy = hasAccuracy;
return this;
}
public Builder setAccuracy(float accuracy) {
ALocation.this.accuracy = accuracy;
return this;
}
public Builder hasVerticalAccuracy(boolean hasVerticalAccuracy) {
ALocation.this.hasVerticalAccuracy = hasVerticalAccuracy;
return this;
}
public Builder setVerticalAccuracy(float verticalAccuracy) {
ALocation.this.verticalAccuracy = verticalAccuracy;
return this;
}
public ALocation build() {
return ALocation.this;
}
}
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidlapi.map;
parcelable SetLocationParams;

View file

@ -0,0 +1,54 @@
package net.osmand.aidlapi.map;
import android.os.Bundle;
import android.os.Parcel;
import net.osmand.aidlapi.AidlParams;
public class SetLocationParams extends AidlParams {
private ALocation location;
private long timeToNotUseOtherGPS;
public SetLocationParams(ALocation location, long timeToNotUseOtherGPS) {
this.location = location;
this.timeToNotUseOtherGPS = timeToNotUseOtherGPS;
}
public SetLocationParams(Parcel in) {
readFromParcel(in);
}
public static final Creator<SetLocationParams> CREATOR = new Creator<SetLocationParams>() {
@Override
public SetLocationParams createFromParcel(Parcel in) {
return new SetLocationParams(in);
}
@Override
public SetLocationParams[] newArray(int size) {
return new SetLocationParams[size];
}
};
public ALocation getLocation() {
return location;
}
public long getTimeToNotUseOtherGPS() {
return timeToNotUseOtherGPS;
}
@Override
public void writeToBundle(Bundle bundle) {
bundle.putParcelable("location", location);
bundle.putLong("timeToNotUseOtherGPS", timeToNotUseOtherGPS);
}
@Override
protected void readFromBundle(Bundle bundle) {
bundle.setClassLoader(ALocation.class.getClassLoader());
location = bundle.getParcelable("location");
timeToNotUseOtherGPS = bundle.getLong("timeToNotUseOtherGPS");
}
}

View file

@ -1216,7 +1216,13 @@ public class RouteResultPreparation {
TurnType t = TurnType.getExitTurn(exit, 0, leftSide);
// usually covers more than expected
float turnAngleBasedOnOutRoads = (float) MapUtils.degreesDiff(last.getBearingBegin(), prev.getBearingEnd());
float turnAngleBasedOnCircle = (float) -MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180);
// Angle based on circle method tries
// 1. to calculate antinormal to roundabout circle on roundabout entrance and
// 2. normal to roundabout circle on roundabout exit
// 3. calculate angle difference
// This method doesn't work if you go from S to N touching only 1 point of roundabout,
// but it is very important to identify very sharp or very large angle to understand did you pass whole roundabout or small entrance
float turnAngleBasedOnCircle = (float) MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180);
if (Math.abs(turnAngleBasedOnOutRoads) > 120) {
// correctly identify if angle is +- 180, so we approach from left or right side
t.setTurnAngle(turnAngleBasedOnCircle) ;

View file

@ -3675,4 +3675,7 @@
<string name="poi_liaison_filter">اتصال</string>
<string name="poi_consulate_filter">قنصلية</string>
<string name="poi_embassy_filter">سفارة</string>
<string name="poi_wildlife_crossing_bat_tunnel">نفق خفافيش</string>
<string name="poi_wildlife_crossing_bat_bridge">جسر خفافيش</string>
<string name="poi_wildlife_crossing">معبر الحيوانات البرية</string>
</resources>

View file

@ -2826,7 +2826,7 @@
<string name="touring_view_render_descr">أسلوب الملاحة مع التباين العالي والحد الأعلى من التفاصيل. يتضمن كل خيارات النمط الافتراضي أوسماند، مع عرض أكبر قدر ممكن من التفاصيل ، ولا سيما الطرق والمسارات وطرق السفر الأخرى. التمييز الواضح بين \"جولة الأطلس\" بين أنواع الطرق. مناسبة للاستخدام النهاري والليلي وفي الهواء الطلق.</string>
<string name="default_render_descr">أسلوب الغرض العام. تقديم نظافة مبسطة في المدن المكتظة بالسكان. الملامح الرئيسية: خطوط الكنتور ، والطرق ، وجودة السطح ، والقيود المفروضة على الوصول ، ودروع الطريق ، والمسارات التي تظهر وفقاً لمقياس SAC ، وميزات رياضة الماء الأبيض.</string>
<string name="travel_card_download_descr">قم بتنزيل أدلة السفر هذه من ويكي الرحلات لعرض مقالات حول الأماكن في العالم بدون إنترنت.</string>
<string name="welcome_to_open_beta_description">دليل السفر حاليا على أساس Wikivoyage. اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.بعد ذلك، وأدلة السفر ستكون متاحة للمشتركين في أوسماند غير المحدود و اصحاب +أوسماند.</string>
<string name="welcome_to_open_beta_description">دليل السفر حاليا على أساس Wikivoyage. اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.</string>
<string name="av_locations_selected_desc">ملف GPX مع الإحداثيات والبيانات من الملاحظات المحددة.</string>
<string name="av_locations_all_desc">ملف GPX مع الإحداثيات والبيانات من كافة الملاحظات.</string>
<!--string name="release_3_0">• جديد: دعم للسفر دون اتصال عالمية وأدلة. وترتبط المواقع المشار إليها على الخريطة. الحصول على البيانات الأولية من ويكيفوياجي.

View file

@ -1218,7 +1218,7 @@
<string name="popular_destinations">Destinos sonaos</string>
<string name="paid_app">Aplicación de pagu</string>
<string name="paid_plugin">Plugin de pagu</string>
<string name="welcome_to_open_beta_description">Anguaño les guíes de viaxes básense en Wikivoyage. Prueba de baldre toles carauterístiques na beta abierta. Dempués, eses guíes van tar disponibles pa los soscriptores d\'OsmAnd Unlimited y dueños dOsmAnd +.</string>
<string name="welcome_to_open_beta_description">Anguaño les guíes de viaxes básense en Wikivoyage. Prueba de baldre toles carauterístiques na beta abierta.</string>
<string name="start_editing_card_description">Puedes y tendríes d\'editar cualesquier artículu de Wikivoyage. Comparti la conocencia, esperiencia, talentu y atención</string>
<string name="get_unlimited_access">Consiguir l\'accesu ensin llende</string>
<string name="all_markers_moved_to_history">Tolos marcadores del mapa moviéronse al historial</string>

View file

@ -2702,7 +2702,7 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB).
<string name="update_is_available">Abnaŭliennie dastupnaje</string>
<string name="download_file">Spampavać fajl</string>
<string name="start_editing_card_image_text">Biasplatny susvietny turystyčny daviednik, jaki moža redahavać kožny.</string>
<string name="welcome_to_open_beta_description">Turystyčnyja daviedniki ŭ ciapierašni čas bazujucca na asnovie Wikivoyage. Testujcie usie funkcyi biasplatna padčas adkrytaha beta-testavannia. Potym daviedniki buduć dastupnyja padpiščykam OsmAnd Unlimited i ŭladaĺnikam OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Turystyčnyja daviedniki ŭ ciapierašni čas bazujucca na asnovie Wikivoyage. Testujcie usie funkcyi biasplatna padčas adkrytaha beta-testavannia.</string>
<string name="start_editing_card_description">Vam možna i varta redahavać liuby artykul na Wikivoyage. Dzialiciesia viedami, vopytam, talientam i vašaj ŭvahaj</string>
<string name="start_editing">Pačać redahavańnie</string>
<string name="get_unlimited_access">Atrymać nieabmiežavany dostup</string>

View file

@ -2734,7 +2734,7 @@
<string name="update_is_available">Даступна абнаўленне</string>
<string name="download_file">Спампаваць файл</string>
<string name="start_editing_card_image_text">Бясплатны сусветны турыстычны даведнік, які можа рэдагаваць кожны.</string>
<string name="welcome_to_open_beta_description">Турыстычныя даведнікі ў цяперашні час базуюцца на Wikivoyage. Тэстуйце усе функцыі бясплатна падчас адкрытага бэта-тэставання. Потым даведнікі будуць даступныя падпісантам OsmAnd Unlimited і карыстальнікам OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Турыстычныя даведнікі ў цяперашні час базуюцца на Wikivoyage. Тэстуйце усе функцыі бясплатна падчас адкрытага бэта-тэставання.</string>
<string name="start_editing_card_description">Вам можна і варта рэдагаваць любы артыкул на Wikivoyage. Дзяліцеся ведамі, досведам, талентамі, і тым, што заўважылі.</string>
<string name="start_editing">Пачаць рэдагаванне</string>
<string name="get_unlimited_access">Атрымаць неабмежаваны доступ</string>

View file

@ -2713,7 +2713,7 @@
<string name="osmand_team">Equip OsmAnd</string>
<string name="paid_app">Aplicació de pagament</string>
<string name="paid_plugin">Connector de pagament</string>
<string name="welcome_to_open_beta_description">Les guies de viatge es basen en Viquiviatges. Proveu totes les funcions durant la fase oberta de proves, de franc. Després, les guies de viatge estaran disponibles per als subscriptors de OsmAnd Il·limitat i els propietaris de OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Les guies de viatge es basen en Viquiviatges. Proveu totes les funcions durant la fase oberta de proves, de franc.</string>
<string name="wikivoyage_travel_guide_descr">Guies dels llocs més interessants del planeta, dins OsmAnd, sense cap connexió a Internet.</string>
<string name="in_app_purchase">Compres des de l\'aplicació</string>
<string name="in_app_purchase_desc">Pagament únic</string>

View file

@ -2769,7 +2769,7 @@
<string name="default_render_descr">Obecný styl. Čisté vykreslování hustě osídlených měst. Obsahuje vrstevnice, trasy, kvalita povrchu cest, omezení přístupu, čísla cest, značení dle SAC, objekty pro vodní sporty.</string>
<string name="travel_card_download_descr">Stáhněte si cestovní průvodce Wikivoyage a prohlížejte články o místech po celém světě bez připojení na internet.</string>
<string name="start_editing_card_image_text">Bezplatný cestovní průvodce, který může upravovat každý.</string>
<string name="welcome_to_open_beta_description">Cestovní průvodci jsou nyní založené na Wikivoyage. Všechny jejich funkce můžete otestovat zdarma během beta testování. Poté budou zpřístupněny předplatitelům služby OsmAnd Live a uživatelům OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Cestovní průvodci jsou nyní založené na Wikivoyage. Všechny jejich funkce můžete otestovat zdarma během beta testování.</string>
<string name="start_editing_card_description">Můžete (a měli byste) upravovat libovolný článek na Wikivoyage. Sdílejte znalosti, zkušenosti, talent a svoji pozornost.</string>
<string name="ask_for_location_permission">Pro pokračování prosím udělte OsmAndu oprávnění pro přístup k poloze.</string>
<string name="rendering_value_black_name">Černá</string>

View file

@ -2716,7 +2716,7 @@
<string name="update_is_available">Opdatering er tilgængelig</string>
<string name="download_file">Hent fil</string>
<string name="start_editing_card_image_text">Den gratis verdensomspændende rejseguide, som alle kan redigere.</string>
<string name="welcome_to_open_beta_description">Rejseguide er baseret på Wikivoyage. Test alle funktionerne gratis i den åbne beta. Bagefter vil rejseguider være tilgængelig for abonnenter af OsmAnd ubegrænset og ejere af OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Rejseguide er baseret på Wikivoyage. Test alle funktionerne gratis i den åbne beta.</string>
<string name="start_editing_card_description">Du kan og bør redigere en artikel på Wikivoyage. Del viden, erfaringer, talent og din opmærksomhed.</string>
<string name="start_editing">Begynd redigering</string>
<string name="get_unlimited_access">Få ubegrænset adgang</string>

View file

@ -2705,7 +2705,7 @@
<string name="update_is_available">Aktualisierung verfügbar</string>
<string name="download_file">Datei herunterladen</string>
<string name="start_editing_card_image_text">Der kostenlose weltweite Reiseführer, den jeder bearbeiten kann.</string>
<string name="welcome_to_open_beta_description">Die Reisefüher basieren derzeit auf Wikivoyage. Testen Sie alle Funktionen während des Open-Beta-Tests kostenlos. Danach steht die Reiseführerfunktionalität den Abonnenten von OsmAnd Unlimited und den Besitzern von OsmAnd+ zur Verfügung.</string>
<string name="welcome_to_open_beta_description">Die Reisefüher basieren derzeit auf Wikivoyage. Testen Sie alle Funktionen während des Open-Beta-Tests kostenlos.</string>
<string name="start_editing_card_description">Sie können und sollten Artikel auf Wikivoyage bearbeiten. Teilen Sie Wissen, Erfahrung, Talent und Ihre Aufmerksamkeit.</string>
<string name="start_editing">Bearbeitung starten</string>
<string name="get_unlimited_access">Erhalten Sie unbegrenzten Zugang</string>

View file

@ -2718,7 +2718,7 @@
<string name="update_is_available">Υπάρχει διαθέσιμη ενημέρωση</string>
<string name="download_file">Λήψη αρχείου</string>
<string name="start_editing_card_image_text">Ο ελεύθερος παγκόσμιος ταξιδιωτικός οδηγός που οποιοσδήποτε μπορεί να επεξεργαστεί.</string>
<string name="welcome_to_open_beta_description">Το OsmAnd Travel βασίζεται, προς το παρόν, στα βικιταξίδια. Ελέγξτε όλα τα χαρακτηριστικά δωρεάν κατά την ανοικτή βήμα δοκιμή. Κατόπιν, οι οδηγοί ταξιδιού θα είναι διαθέσιμοι στους συνδρομητές του απεριόριστου OsmAnd και στους κατόχους του OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Το OsmAnd Travel βασίζεται, προς το παρόν, στα βικιταξίδια. Ελέγξτε όλα τα χαρακτηριστικά δωρεάν κατά την ανοικτή βήμα δοκιμή.</string>
<string name="start_editing_card_description">Μπορείτε και πρέπει να επεξεργαστείτε οποιοδήποτε άρθρο στο βικιταξίδια, Μοιραστείτε τη γνώση, την εμπειρία, το ταλέντο και την προσοχή σας.</string>
<string name="start_editing">Έναρξη επεξεργασίας</string>
<string name="get_unlimited_access">Πάρτε απεριόριστη πρόσβαση</string>

View file

@ -2710,7 +2710,7 @@
<string name="update_is_available">Ĝisdatigo disponeblas</string>
<string name="download_file">Elŝuti dosieron</string>
<string name="start_editing_card_image_text">Senpaga/libera vojaĝ-gvidilo redaktebla de ĉiu.</string>
<string name="welcome_to_open_beta_description">Vojaĝaj gvidiloj baziĝas sur Vikivojaĝo. Provu ĉiujn eblojn dum beta-testado senpage. Poste vojaĝaj gvidiloj estos disponeblaj al abonantoj de OsmAnd Unlimited kaj aĉetintoj de OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Vojaĝaj gvidiloj baziĝas sur Vikivojaĝo. Provu ĉiujn eblojn dum beta-testado senpage.</string>
<string name="start_editing_card_description">Vi povas (kaj bonvole fari tion) redakti iujn ajn artikolojn de Vikivojaĝo. Kunhavigu vian scion, sperton, talenton kaj prizorgon.</string>
<string name="start_editing">Komenci redakti</string>
<string name="get_unlimited_access">Akiri senliman atingon</string>
@ -3989,4 +3989,15 @@
<string name="routing_engine_vehicle_type_cycling_road">Ŝosea biciklado</string>
<string name="routing_engine_vehicle_type_cycling_regular">Kutima biciklado</string>
<string name="routing_engine_vehicle_type_hgv">Peza kamiono</string>
<string name="shared_string_sec">s</string>
<string name="announcement_time_passing">Pasado</string>
<string name="announcement_time_approach">Alproksimiĝado</string>
<string name="announcement_time_prepare_long">Longa preparado</string>
<string name="announcement_time_prepare">Preparado</string>
<string name="announcement_time_off_route">Devojiĝo de kurso</string>
<string name="announcement_time_arrive">Atingo al celo</string>
<string name="shared_string_turn">Turno</string>
<string name="announcement_time_intervals">Interspacoj distancaj kaj tempaj</string>
<string name="announcement_time_descr">Tempo de anonco de diversaj voĉaj sciigoj dependas de ilia specoj, nuna naviga kaj implicita naviga rapido.</string>
<string name="announcement_time_title">Tempo de anonco</string>
</resources>

View file

@ -2711,7 +2711,7 @@
<string name="update_is_available">Actualización disponible</string>
<string name="download_file">Descargar archivo</string>
<string name="start_editing_card_image_text">La guía turística libre global que cualquiera puede editar.</string>
<string name="welcome_to_open_beta_description">Las guías turísticas, se basan actualmente en Wikiviajes. Prueba todas las características durante las pruebas beta abiertas, de forma gratuita. Posteriormente, las guías turísticas estarán disponible para los suscriptores de «OsmAnd ilimitado» y los propietarios de «OsmAnd+».</string>
<string name="welcome_to_open_beta_description">Las guías turísticas, se basan actualmente en Wikiviajes. Prueba todas las características durante las pruebas beta abiertas, de forma gratuita.</string>
<string name="start_editing_card_description">Puedes y debes editar cualquier artículo en Wikiviajes. Comparte tu conocimiento, experiencia, talento y atención.</string>
<string name="start_editing">Comenzar edición</string>
<string name="get_unlimited_access">Obtener acceso ilimitado</string>

View file

@ -2711,7 +2711,7 @@
<string name="update_is_available">Actualización disponible</string>
<string name="download_file">Descargar archivo</string>
<string name="start_editing_card_image_text">La guía turística libre global que cualquiera puede editar.</string>
<string name="welcome_to_open_beta_description">Las guías turísticas, se basan actualmente en Wikiviajes. Prueba todas las características durante las pruebas beta abiertas, de forma gratuita. Posteriormente, las guías turísticas estarán disponible para los suscriptores de «OsmAnd ilimitado» y los propietarios de «OsmAnd+».</string>
<string name="welcome_to_open_beta_description">Las guías turísticas, se basan actualmente en Wikiviajes. Prueba todas las características durante las pruebas beta abiertas, de forma gratuita.</string>
<string name="start_editing_card_description">Puedes y debes editar cualquier artículo en Wikiviajes. Comparte tu conocimiento, experiencia, talento y atención.</string>
<string name="start_editing">Comenzar edición</string>
<string name="get_unlimited_access">Obtener acceso ilimitado</string>

View file

@ -2709,7 +2709,7 @@
<string name="update_is_available">Actualización disponible</string>
<string name="download_file">Descargar archivo</string>
<string name="start_editing_card_image_text">La guía turística libre global que cualquiera puede editar.</string>
<string name="welcome_to_open_beta_description">Las guías turísticas, se basan actualmente en Wikiviajes. Prueba todas las características durante las pruebas beta abiertas, de forma gratuita. Posteriormente, las guías turísticas estarán disponible para los suscriptores de «OsmAnd ilimitado» y los propietarios de «OsmAnd+».</string>
<string name="welcome_to_open_beta_description">Las guías turísticas, se basan actualmente en Wikiviajes. Prueba todas las características durante las pruebas beta abiertas, de forma gratuita.</string>
<string name="start_editing_card_description">Puedes y debes editar cualquier artículo en Wikiviajes. Comparte tu conocimiento, experiencia, talento y atención.</string>
<string name="start_editing">Comenzar edición</string>
<string name="get_unlimited_access">Obtener acceso ilimitado</string>

View file

@ -2621,7 +2621,7 @@
<string name="gpx_file_desc">GPX - sobib ekspordiks JOSM või teistesse OSM redaktoritesse.</string>
<string name="osm_edits_export_desc">Ekspordi kas OSM märkmetena, huvipunktidena või mõlemana.</string>
<string name="purchase_dialog_travel_description">Võrguühenduseta reisijuhi funktsioonide saamiseks osta üks järgmistest:</string>
<string name="welcome_to_open_beta_description">Reisijuhid põhinevad praegu Wikivoyage\'il. Testige beetaversiooni ajal kõiki funktsioone tasuta. Pärast seda on reisijuhid kättesaadavad piiranguteta OsmAnd tellijatele ja OsmAnd+ omanikele.</string>
<string name="welcome_to_open_beta_description">Reisijuhid põhinevad praegu Wikivoyage\'il. Testige beetaversiooni ajal kõiki funktsioone tasuta.</string>
<string name="start_editing_card_description">Saate ja peaksite redigeerima kõiki artikleid Wikivoyage\'is. Jagage teadmisi, kogemusi, annet ja oma tähelepanu.</string>
<string name="open_in_browser_wiki">Ava artikkel veebis</string>
<string name="nautical_render_descr">Merel navigeerimiseks. Sisaldab poisid, tuletorne, jõeteid, mereteid ja tähiseid, sadamaid, meremärkide teenuseid ja sügavuskontuure.</string>

View file

@ -2722,7 +2722,7 @@ Area honi dagokio: %1$s x %2$s</string>
<string name="maps_you_need">Behar dituzun mapak</string>
<string name="travel_card_download_descr">Deskargatu Wikivoyage bidai gidak munduko tokien inguruko artikuluak ikusteko Internetera konexioa ez duzunean ere.</string>
<string name="start_editing_card_image_text">Edonork idatzi dezakeen mundu osoko doako gida.</string>
<string name="welcome_to_open_beta_description">Bidai-gidak Wikivoyage-n oinarrituta daude. Probatu doan ezaugarri guztiak besta probatze garai irekian. Gero, Bidaia-gidak OsmAnd Unlimited harpidedunentzat eta OsmAnd+ erosleentzat egongo da eskuragarri.</string>
<string name="welcome_to_open_beta_description">Bidai-gidak Wikivoyage-n oinarrituta daude. Probatu doan ezaugarri guztiak besta probatze garai irekian.</string>
<string name="start_editing_card_description">Wikivoyage-ko edozein artikulu aldatu dezakezu. Partekatu ezagutza, esperientzia, talentua eta zure atentzioa.</string>
<string name="welcome_to_open_beta">Ongi etorri beta irekira</string>
<string name="contour_lines_hillshade_maps">Sestra-kurbak eta erliebe-itzalak</string>

View file

@ -2734,7 +2734,7 @@
<string name="update_is_available">به‌روزرسانی وجود دارد</string>
<string name="download_file">دانلود فایل</string>
<string name="start_editing_card_image_text">راهنمای سفر رایگان با پوشش جهانی که همه می‌توانند آن را ویرایش کنند.</string>
<string name="welcome_to_open_beta_description">راهنمای «مسافرت» هم‌اکنون بر پایهٔ ویکی‌سفر ساخته شده است. در دورهٔ آزمایش همگانیِ نسخهٔ بتا می‌توانید همهٔ قابلیت‌های آن را به‌رایگان ارزیابی کنید. با پایان دورهٔ آزمایشی، «مسافرت» در اختیار مشترکان نسخهٔ نامحدود OsmAnd و دارندگان OsmAnd+ خواهد بود.</string>
<string name="welcome_to_open_beta_description">راهنمای «مسافرت» هم‌اکنون بر پایهٔ ویکی‌سفر ساخته شده است. در دورهٔ آزمایش همگانیِ نسخهٔ بتا می‌توانید همهٔ قابلیت‌های آن را به‌رایگان ارزیابی کنید.</string>
<string name="start_editing_card_description">شما می‌توانید هر یک از مقالات ویکی‌سفر را ویرایش کنید. امیدواریم با انجام این کار دیگران را در دانش، تجربه، استعداد و توجهتان سهیم کنید.</string>
<string name="start_editing">شروع ویرایش</string>
<string name="get_unlimited_access">گرفتن دسترسی نامحدود</string>

View file

@ -2714,7 +2714,7 @@
<string name="paid_app">Application payante</string>
<string name="paid_plugin">Greffon payant</string>
<string name="popular_destinations">Destinations populaires</string>
<string name="welcome_to_open_beta_description">Les guides de voyage sappuient sur Wikivoyage. Durant la phase bêta, évaluez toutes les fonctionnalités gratuitement. Par la suite, les guides de voyage seront accessibles aux abonnés de OsmAnd illimité ainsi qu\'aux propriétaires d\'OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Les guides de voyage sappuient sur Wikivoyage. Durant la phase bêta, évaluez toutes les fonctionnalités gratuitement.</string>
<string name="wiki_article_search_text">Recherche de l\'article Wiki correspondant</string>
<string name="osmand_team">Équipe OsmAnd</string>
<string name="maps_you_need_descr">D\'après les articles que vous avez marqué comme favori, nous vous conseillons de télécharger les cartes suivantes :</string>
@ -3961,7 +3961,7 @@
<string name="announcement_time_prepare">Préparation</string>
<string name="announcement_time_prepare_long">Longue préparation</string>
<string name="announcement_time_arrive">Arrivé à destination</string>
<string name="shared_string_turn">Tourner</string>
<string name="shared_string_turn">Bifurcation</string>
<string name="show_track_on_map">Afficher la trace sur la carte</string>
<string name="routing_engine_vehicle_type_scooter">Trottinette</string>
<string name="routing_engine_vehicle_type_small_truck">Camionnette</string>
@ -3979,5 +3979,15 @@
<string name="routing_engine_vehicle_type_mtb">VTT</string>
<string name="message_server_error">Erreur serveur : %1$s</string>
<string name="message_name_is_already_exists">Ce nom existe déjà</string>
<string name="routing_engine_vehicle_type_hgv">Poids lourds</string>
<string name="routing_engine_vehicle_type_hgv">Poids lourd</string>
<string name="announcement_time_passing">Durée</string>
<string name="analyze_by_intervals">Analyser par intervalles (fractionner)</string>
<string name="announcement_time_intervals">Intervalles de temps et de distance</string>
<string name="announcement_time_descr">Le délai d\'annonce des alertes vocales dépend du type d\'annonce, de la vitesse actuelle et du type de navigation.</string>
<string name="announcement_time_title">Délai de l\'annonce</string>
<string name="announcement_time_off_route">Hors de l\'itinéraire prévu</string>
<string name="routing_engine_vehicle_type_cycling_road">Vélo de route</string>
<string name="routing_engine_vehicle_type_cycling_mountain">Vélo tout terrain</string>
<string name="routing_engine_vehicle_type_cycling_electric">Vélo électrique</string>
<string name="routing_engine_vehicle_type_cycling_regular">Vélo</string>
</resources>

View file

@ -2436,7 +2436,7 @@ Lon %2$s</string>
<string name="read_wikipedia_offline_description">Obteña unha subscrición do OsmAnd ao Vivo para ler artigos da Wikipedia e Wikiviaxes, sen conexión.</string>
<string name="purchase_cancelled_dialog_title">Cancelaches a subscrición do OsmAnd ao Vivo</string>
<string name="osmand_team">Equipa do OsmAnd</string>
<string name="welcome_to_open_beta_description">Os guieiros de viaxe, baséanse actualmente na Wikiviaxes. Proba tódolos trazos durante as probas beta abertas, de balde. Despois, os guieiros turísticas estarán dispoñíbeis para os subscritores do \"OsmAnd Ilimitado\" e os propietarios do \"OsmAnd+\".</string>
<string name="welcome_to_open_beta_description">Os guieiros de viaxe, baséanse actualmente na Wikiviaxes. Proba tódolos trazos durante as probas beta abertas, de balde.</string>
<string name="wikivoyage_travel_guide_descr">Os guieiros dos lugares máis interesantes do planeta, no OsmAnd e sen conexión á Internet.</string>
<string name="unlock_all_features">Desbloqueares tódalas características do OsmAnd</string>
<string name="purchase_dialog_title">Escoller plan</string>

View file

@ -2591,7 +2591,7 @@
<string name="travel_card_update_descr">Új Wikivoyage adat érhető el, a használatához frissíts.</string>
<string name="travel_card_download_descr">Töltsd le a Wikivoyage útikalauzokat, hogy internetkapcsolat nélkül olvashass cikkeket a világ érdekes helyeiről.</string>
<string name="start_editing_card_image_text">Az ingyenes, világméretű útikönyv, amit bárki szerkeszthet.</string>
<string name="welcome_to_open_beta_description">Az útikalauz a Wikivoyage-on alapul. Teszteld a lehetőségeit a nyílt bétateszt során ingyenesen. Később az útikalauz az OsmAnd Korlátlan előfizetőknek és OsmAnd+ tulajdonosoknak lesz elérhető.</string>
<string name="welcome_to_open_beta_description">Az útikalauz a Wikivoyage-on alapul. Teszteld a lehetőségeit a nyílt bétateszt során ingyenesen.</string>
<string name="start_editing_card_description">Szerkesztheti, sőt szerkessze a Wikivoyage szócikkeit. Ossza meg tudását, tapasztalatait, tehetségét és figyelmességét.</string>
<string name="start_editing">Szerkesztés elkezdése</string>
<string name="get_unlimited_access">Szerezz korlátlan hozzáférést</string>

View file

@ -2688,7 +2688,7 @@
<string name="maps_you_need_descr">Հիմնվելով ձեր պահպանած հոդվածներից, խորհուրդ ենք տալիս ներբեռնել հետեւյալ քարտեզները՝</string>
<string name="travel_card_download_descr">Ներբեռնեք Wikivoyage-ի ուղևորության ուղեցույցները` աշխարհի նշանավոր տեղերի մասին հոդվածներ դիտելու համար առանց ինտերնետի:</string>
<string name="start_editing_card_image_text">Աշխարհի ուղեցույց, որը կարող է խմբագրել ցանկացած մեկը:</string>
<string name="welcome_to_open_beta_description">Ուղեւորության ուղեցույցները ներկայումս հիմնված են Wikivoyage-ի վրա: Փորձեք անվճար բոլոր հնարավորությունները բետա տեստավորման ժամանակ: Հետագայում ուղեցույցը հասանելի կլինի OsmAnd Unlimited-ի և OsmAnd+ սեփականատերերի համար։</string>
<string name="welcome_to_open_beta_description">Ուղեւորության ուղեցույցները ներկայումս հիմնված են Wikivoyage-ի վրա: Փորձեք անվճար բոլոր հնարավորությունները բետա տեստավորման ժամանակ:</string>
<string name="wikivoyage_travel_guide_descr">Տեսեք ուղեցույցները, OsmAnd-ում աշխարհի ամենահետաքրքիր վայրերը, առանց ինտերնետին միանալու:</string>
<string name="purchase_dialog_travel_description">Գնեք հետեւյալներից մեկը, որպեսզի ստանաք ճանապարհորդական հոդվածները անցանց՝</string>
<string name="purchase_dialog_subtitle">Ընտրեք համապատասխան կետը</string>

View file

@ -644,7 +644,7 @@
<string name="update_is_available">Tersedia pembaruan</string>
<string name="download_file">Unduh berkas</string>
<string name="start_editing_card_image_text">Penduan perjalanan gratis semua orang bisa berkontribusi.</string>
<string name="welcome_to_open_beta_description">Panduan perjalanan saat ini berdasar pada Wikivoyage. Coba semua fitur selama uji coba beta secara gratis. Setelah itu, panduan perjalanan hanya akan tersedia untuk pelanggan OsmAnd Unlimited dan pemilik OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Panduan perjalanan saat ini berdasar pada Wikivoyage. Coba semua fitur selama uji coba beta secara gratis.</string>
<string name="start_editing">Mulai menyunting</string>
<string name="get_unlimited_access">Dapatkan akses tak terbatas</string>
<string name="welcome_to_open_beta">Selamat datang di uji coba beta</string>

View file

@ -2717,7 +2717,7 @@
<string name="update_is_available">Uppfærsla er tiltæk</string>
<string name="download_file">Sækja skrá</string>
<string name="start_editing_card_image_text">Frjálsa ferðagreinasafnið sem allir geta lagað og breytt.</string>
<string name="welcome_to_open_beta_description">Ferðaupplýsingar eru byggðar á Wikivoyage. Á meðan opnum forprófunum stendur hefurðu tækifæri til að meta alla eiginleikans ókeypis og án kvaða. Eftir að forprófunum lýkur, munu ferðaupplýsingar standa áskrifendum OsmAnd Unlimited og eigendum OsmAnd+ til boða.</string>
<string name="welcome_to_open_beta_description">Ferðaupplýsingar eru byggðar á Wikivoyage. Á meðan opnum forprófunum stendur hefurðu tækifæri til að meta alla eiginleikans ókeypis og án kvaða.</string>
<string name="start_editing_card_description">Þú getur breytt hvaða grein sem er á Wikivoyage. Við þörfnumst þekkingar þinnar, reynslu, hæfileika og áhuga þíns.</string>
<string name="start_editing">Hefja breytingar</string>
<string name="get_unlimited_access">Fáðu ótakmarkaðan aðgang</string>

View file

@ -2634,7 +2634,7 @@
<string name="update_is_available">Aggiornamento disponibile</string>
<string name="download_file">Scarica file</string>
<string name="start_editing_card_image_text">La guida turistica libera in tutto il mondo che chiunque può modificare.</string>
<string name="welcome_to_open_beta_description">Le guide di viaggio sono basate su Wikivoyage. Prova tutte le caratteristiche durante la fase di beta test aperto, gratuitamente. Dopo, le Guide di Viaggio saranno disponibili per gli abbonati di OsmAnd Unlimited e per i proprietari di OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Le guide di viaggio sono basate su Wikivoyage. Prova tutte le caratteristiche durante la fase di beta test aperto, gratuitamente.</string>
<string name="start_editing_card_description">Puoi e dovresti editare qualche articolo su Wikivoyage. Condividi conoscenza, esperienza, talento e la tua attenzione.</string>
<string name="start_editing">Inizia a modificare</string>
<string name="get_unlimited_access">Ottieni l\'accesso illimitato</string>

View file

@ -2597,7 +2597,7 @@
<string name="update_is_available">קיים עדכון</string>
<string name="download_file">הורדת קובץ</string>
<string name="start_editing_card_image_text">מדריך התיירות המקוון שכל אחד יכול לערוך.</string>
<string name="welcome_to_open_beta_description">מדריכי התיירות מבוססים על ויקימסע. ניתן לבדוק את כל האפשרויות במהלך הבטא הפתוחה בחינם. לאחר סיום תקופת הבטא, מדריכי התיירות יהיו זמינים לנרשמי OsmAnd ללא הגבלה ולבעלי OsmAnd+.</string>
<string name="welcome_to_open_beta_description">מדריכי התיירות מבוססים על ויקימסע. ניתן לבדוק את כל האפשרויות במהלך הבטא הפתוחה בחינם.</string>
<string name="start_editing_card_description">ניתן וכדאי לערוך כל ערך בוויקימסע. השיתוף דורש את הידע, הניסיון, הכישרון ואת תשומת הלב שלך.</string>
<string name="start_editing">להתחיל בעריכה</string>
<string name="get_unlimited_access">קבלת גישה בלתי מוגבלת</string>

View file

@ -2617,7 +2617,7 @@ POIの更新は利用できません</string>
<string name="popular_destinations">人気の目的地</string>
<string name="travel_card_download_descr">Wikivoyageの旅行ガイドをダウンロードしておけば、オフライン環境でも世界各地の観光名所を知ることができます。</string>
<string name="start_editing_card_image_text">誰でも自由に編集できる世界規模の旅行ガイドです。</string>
<string name="welcome_to_open_beta_description">『旅行ガイド』はWikivoyageをベースとした機能です。オープンβ時に限り無料で全ての機能を利用できます。旅行ガイドは将来的にOsmAndのサブスクリプション登録者や、OsmAnd+の利用者に提供される予定です。</string>
<string name="welcome_to_open_beta_description">『旅行ガイド』はWikivoyageをベースとした機能です。オープンβ時に限り無料で全ての機能を利用できます。</string>
<string name="start_editing_card_description">あなたもWikivoyageの記事を編集できます。場所に関する知識、旅先での経験、魅力あるスポットはもちろん注意事項なども共有できます。</string>
<string name="start_editing">編集を開始</string>
<string name="get_unlimited_access">無制限のアクセスを取得</string>

View file

@ -3005,7 +3005,7 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="update_is_available">Pieejams atjauninājums</string>
<string name="download_file">Lejupielādēt failu</string>
<string name="start_editing_card_image_text">Brīvais pasaules ceļojumu gids, ko ikviens var papildināt.</string>
<string name="welcome_to_open_beta_description">Ceļojumu gidi dotajā brīdī ir bāzēti uz Vikiceļojumiem. Baudiet visas iespējas beta testēšanas periodā par brīvu. Vēlāk ceļojumu gidi būs pieejami OsmAnd Unlimited abonomentiem un OsmAnd+ lietotājiem.</string>
<string name="welcome_to_open_beta_description">Ceļojumu gidi dotajā brīdī ir bāzēti uz Vikiceļojumiem. Baudiet visas iespējas beta testēšanas periodā par brīvu.</string>
<string name="start_editing_card_description">Jūs varat papildināt jebkuru Vikiceļojuma rakstu. Mēs ļoti iesakām dalīties ar savu pieredzi, zināšanām un spējām rakstu veidošanā.</string>
<string name="start_editing">Sākt rakstīt</string>
<string name="get_unlimited_access">Saņemiet neierobežotu piekļuvi</string>

View file

@ -2593,7 +2593,7 @@
<string name="monthly_map_updates">മാപ്പ് അപ്ഡേറ്റുകൾ: എല്ലാ മാസവും every month</string>
<string name="daily_map_updates">മാപ്പ് അപ്ഡേറ്റുകൾ: ഓരോ മണിക്കൂറും every hour</string>
<string name="start_editing_card_image_text">ആർക്കും എഡിറ്റുചെയ്യാൻ കഴിയുന്ന സ്വതന്ത്ര ലോകവ്യാപക യാത്ര ഗൈഡ്.</string>
<string name="welcome_to_open_beta_description">"ട്രാവൽ ഗൈഡുകൾ നിലവിൽ വിക്കിവൊയേജ് അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ബീറ്റ ടെസ്റ്റിംഗ് സമയത്ത് എല്ലാ സവിശേഷതകളും സൗജന്യ മായ് പരിശോധിക്കുക. അതിനുശേഷം| ഓസ് ആൻഡ് അൺലിംനെറ്റിന്റെ ഉടമസ്ഥർക്കും ഓസ്മണ്ട്+ (എഫ്-ഡ്രോയ്ഡ് ഉള്‍പ്പടെ) ഉടമസ്ഥർക്കും യാത്രാ ഗൈഡുകൾ ലഭ്യമാകും."</string>
<string name="welcome_to_open_beta_description">"ട്രാവൽ ഗൈഡുകൾ നിലവിൽ വിക്കിവൊയേജ് അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ബീറ്റ ടെസ്റ്റിംഗ് സമയത്ത് എല്ലാ സവിശേഷതകളും സൗജന്യ മായ് പരിശോധിക്കുക."</string>
<string name="start_editing_card_description">വിക്കിവൊയേജിലെ ഏതൊരു ആർട്ടിക്കിളും നിങ്ങള്‍ക്ക് തിരുത്താം. അറിവ്| അനുഭവം| കഴിവുകൾ| നിങ്ങളുടെ ശ്രദ്ധ എന്നിവ പങ്കിടാം</string>
<string name="get_unlimited_access">പരിധിയില്ലാത്ത ആക്സസ്സ് നേടുക</string>
<string name="welcome_to_open_beta">ബീറ്റയിലേക്ക് വേര്‍ഷനിലേക്ക് സ്വാഗതം</string>

View file

@ -2654,7 +2654,7 @@
<string name="update_is_available">Oppdatering tilgjengelig</string>
<string name="download_file">Last ned fil</string>
<string name="start_editing_card_image_text">Den frie verdensomspennende reiseguiden alle kan redigere.</string>
<string name="welcome_to_open_beta_description">Reiseguider baserer seg nå på Wikivoyage. Test all funksjonalitet gratis under den åpne beta-perioden. Etterpå vil reiseguider være tilgjengelige for dem som abonnerer på ubegrenset OsmAnd og eiere av OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Reiseguider baserer seg nå på Wikivoyage. Test all funksjonalitet gratis under den åpne beta-perioden.</string>
<string name="start_editing_card_description">Du kan redigere enhver artikkel på Wikivoyage. Del kunnskap, erfaring, talent, og din oppmerksomhet.</string>
<string name="start_editing">Start redigering</string>
<string name="get_unlimited_access">Få ubegrenset tilgang</string>
@ -3881,4 +3881,42 @@
<string name="upload_to_openstreetmap">Last opp til OpenStreetMap</string>
<string name="rename_track">Gi spor nytt navn</string>
<string name="change_folder">Endre mappe</string>
<string name="select_data_to_export">Velg data å eksportere til filen.</string>
<string name="export_not_enough_space_descr">Din enhet har kun %1$s ledig. Frigjør litt plass eller velg bort noen elementer fra eksporten.</string>
<string name="select_groups_for_import">ffffffffff|</string>
<string name="reverse_all_points">Reverser alle punkter</string>
<string name="routing_engine_vehicle_type_small_truck">Liten lastebil</string>
<string name="routing_engine_vehicle_type_truck">Lastebil</string>
<string name="cannot_upload_image">Kan ikke laste opp bilde. Prøv igjen senere.</string>
<string name="approximate_file_size">Omtrentlig filstørrelse</string>
<string name="export_not_enough_space">Det er ikke nok plass</string>
<string name="select_items_for_import">Velg elementer å importere.</string>
<string name="add_online_routing_engine">Legg til nettbasert rutingsmotor</string>
<string name="edit_online_routing_engine">Rediger nettbasert rutingsmotor</string>
<string name="shared_string_subtype">Undertype</string>
<string name="shared_string_enter_param">Skriv inn parameter</string>
<string name="keep_it_empty_if_not">La den stå tom hvis ikke</string>
<string name="online_routing_example_hint">Nettadresse med alle parametre vil se slik ut:</string>
<string name="online_routing_engine">Nettbasert rutingsmotor</string>
<string name="online_routing_engines">Nettbaserte rutingsmotorer</string>
<string name="announcement_time_prepare_long">Lang forberedelse</string>
<string name="announcement_time_prepare">Forberedelse</string>
<string name="announcement_time_arrive">Ankom målet</string>
<string name="shared_string_turn">Sving</string>
<string name="announcement_time_intervals">Tid og avstansintervaller</string>
<string name="announcement_time_descr">kunngjøringstid for forskjellige stemmeforespørsler avhenger av forespørselstype, nåværende navigasjonshastighet og forvalgt navigasjonshastighet.</string>
<string name="routing_engine_vehicle_type_hiking">Turgåing</string>
<string name="routing_engine_vehicle_type_walking">Fotgjengeri</string>
<string name="shared_string_sec">sek</string>
<string name="announcement_time_title">Kunngjøringstid</string>
<string name="start_recording">Start opptak</string>
<string name="show_track_on_map">Vis spor på kart</string>
<string name="routing_engine_vehicle_type_wheelchair">Rullestol</string>
<string name="routing_engine_vehicle_type_cycling_electric">El-sykkel</string>
<string name="routing_engine_vehicle_type_cycling_mountain">Terrengsykkel</string>
<string name="routing_engine_vehicle_type_racingbike">Temposykkel</string>
<string name="routing_engine_vehicle_type_cycling_road">Landeveissykling</string>
<string name="routing_engine_vehicle_type_cycling_regular">Vanlig sykling</string>
<string name="message_server_error">Tjenerfeil: %1$s</string>
<string name="message_name_is_already_exists">Navnet finnes allerede</string>
</resources>

View file

@ -2588,7 +2588,7 @@
<string name="update_is_available">Update beschikbaar</string>
<string name="download_file">Bestand downloaden</string>
<string name="start_editing_card_image_text">De gratis wereldwijde reisgids die iedereen kan bewerken.</string>
<string name="welcome_to_open_beta_description">Reisgidsen zijn gebaseerd op Wikivoyage. Test gratis alle mogelijkheden tijdens de open beta-testfase. Hierna zijn de reisgidsen beschikbaar voor abonnees van OsmAnd Unlimited en OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Reisgidsen zijn gebaseerd op Wikivoyage. Test gratis alle mogelijkheden tijdens de open beta-testfase.</string>
<string name="start_editing_card_description">Je kunt artikelen bewerken op Wikivoyage. Deel jouw kennis, ervaringen, talent en interesses.</string>
<string name="start_editing">Begin met bewerken</string>
<string name="get_unlimited_access">Krijg onbeperkte toegang</string>

View file

@ -2619,7 +2619,7 @@
<string name="update_is_available">Dostępne uaktualnienie</string>
<string name="download_file">Pobierz plik</string>
<string name="start_editing_card_image_text">Bezpłatny przewodnik po świecie, który każdy może edytować.</string>
<string name="welcome_to_open_beta_description">Przewodniki turystyczne obecnie oparte są na Wikipodróżach. Przetestuj wszystkie funkcje podczas otwartych beta-testów za darmo. Po ich zakończeniu, przewodniki turystyczne będą dostępne dla subskrybentów OsmAnd Unlimited oraz posiadaczy OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Przewodniki turystyczne obecnie oparte są na Wikipodróżach. Przetestuj wszystkie funkcje podczas otwartych beta-testów za darmo.</string>
<string name="start_editing_card_description">Możesz i powinieneś edytować dowolny artykuł w Wikipodóżach. Podziel się wiedzą, doświadczeniem, talentem i uwagą.</string>
<string name="start_editing">Rozpocznij edycję</string>
<string name="get_unlimited_access">Uzyskaj nieograniczony dostęp</string>
@ -3974,9 +3974,9 @@
<string name="announcement_time_prepare_long">Długie przygotowanie</string>
<string name="announcement_time_prepare">Przygotuj</string>
<string name="announcement_time_off_route">Poza trasą</string>
<string name="announcement_time_arrive">Przyjedź do miejsca docelowego</string>
<string name="announcement_time_arrive">Dotarłeś do miejsca docelowego</string>
<string name="shared_string_turn">Zakręt</string>
<string name="announcement_time_intervals">Odstępy czasowe i odległościowe</string>
<string name="announcement_time_intervals">Przedziały czasu i dystansu</string>
<string name="announcement_time_descr">Czas ogłaszania różnych komunikatów głosowych zależy od rodzaju komunikatu, aktualnej prędkości nawigacji i domyślnej prędkości nawigacji.</string>
<string name="announcement_time_title">Czas ogłoszenia</string>
<string name="start_recording">Rozpocznij nagrywanie</string>
@ -3996,4 +3996,6 @@
<string name="routing_engine_vehicle_type_mtb">MTB</string>
<string name="message_server_error">Błąd serwera: %1$s</string>
<string name="message_name_is_already_exists">Taka nazwa już istnieje</string>
<string name="online_routing_engine">Silnik wyznaczania tras online</string>
<string name="online_routing_engines">Silniki wyznaczania tras online</string>
</resources>

View file

@ -2673,7 +2673,7 @@
<string name="maps_you_need_descr">Baseado nos artigos que você marcou, recomendamos você baixar os seguintes mapas:</string>
<string name="maps_you_need">Mapas que você precisa</string>
<string name="travel_card_download_descr">Baixe os guias de viagem Wikivoyage para ver artigos sobre lugares ao redor do mundo sem conexão à Internet.</string>
<string name="welcome_to_open_beta_description">Os guias de viagem atualmente baseiam-se no Wikivoyage. Teste todos os recursos durante o teste beta aberto, de graça. Depois, os guias estarão disponíveis para assinantes OsmAnd Unlimited e proprietários do OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Os guias de viagem atualmente baseiam-se no Wikivoyage. Teste todos os recursos durante o teste beta aberto, de graça.</string>
<string name="download_wikipedia_description">Baixe artigos da Wikipédia por %1$s para lê-los offline.</string>
<string name="wiki_article_search_text">Procurando o artigo wiki correspondente</string>
<string name="shared_string_bookmark">Marcar</string>

View file

@ -2186,7 +2186,7 @@
<string name="update_is_available">Atualização disponível</string>
<string name="download_file">Descarregar ficheiro</string>
<string name="start_editing_card_image_text">O mundo livre guia de viagem, que qualquer pessoa pode editar.</string>
<string name="welcome_to_open_beta_description">Os guias de viagem estão atualmente baseados no Wikivoyage. Teste todos os recursos gratuitamente durante o teste aberto beta. Posteriormente os guias de viagem estarão disponíveis para assinantes do OsmAnd Unlimited e proprietários da OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Os guias de viagem estão atualmente baseados no Wikivoyage. Teste todos os recursos gratuitamente durante o teste aberto beta.</string>
<string name="start_editing_card_description">Pode e deve editar qualquer artigo no Wikivoyage. Partilhe saber, experiência, talento e a sua atenção.</string>
<string name="start_editing">Começar a editar</string>
<string name="get_unlimited_access">Obter acesso ilimitado</string>

View file

@ -2741,7 +2741,7 @@
<string name="update_is_available">Доступно обновление</string>
<string name="download_file">Скачать файл</string>
<string name="start_editing_card_image_text">Бесплатный путеводитель по всему миру, который может редактировать каждый.</string>
<string name="welcome_to_open_beta_description">В настоящее время путеводители основаны на Викигиде. Проверьте бесплатно все функции во время открытого бета-тестирования. Впоследствии путеводители будут доступны подписчикам OsmAnd Unlimited и владельцам OsmAnd+.</string>
<string name="welcome_to_open_beta_description">В настоящее время путеводители основаны на Викигиде. Проверьте бесплатно все функции во время открытого бета-тестирования.</string>
<string name="start_editing_card_description">Вы можете изменять любую статью Викигида, более того, ваше участие в нашем проекте всячески приветствуется! Делитесь знаниями, опытом, талантами и своим вниманием.</string>
<string name="start_editing">Начать редактирование</string>
<string name="get_unlimited_access">Получить неограниченный доступ</string>

View file

@ -2708,7 +2708,7 @@
<string name="update_is_available">Agiornamentu disponìbile</string>
<string name="download_file">Iscàrriga documentu</string>
<string name="start_editing_card_image_text">Sa ghia turìstica lìbera pro totu su mundu chi totus podent megiorare.</string>
<string name="welcome_to_open_beta_description">Sas ghias de biàgiu sunt basadas in subra de Wikivoyage. Proa totu sas funtzionalidades suas de badas pro su tempus chi at a durare sa beta aberta. A pustis de sa fine de custu perìodu, imbetzes, at a èssere disponìbile petzi pro abbonados a OsmAnd Unlimited e a chie tenet OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Sas ghias de biàgiu sunt basadas in subra de Wikivoyage. Proa totu sas funtzionalidades suas de badas pro su tempus chi at a durare sa beta aberta.</string>
<string name="start_editing_card_description">Podes acontzare cale si siat artìculu in Wikivoyage. Cumpartzi connoschèntzias, esperièntzias, talentu e s\'atentzione tua.</string>
<string name="start_editing">Incumintza a modificare</string>
<string name="get_unlimited_access">Otene satzessu illimitadu</string>

View file

@ -2724,7 +2724,7 @@
<string name="update_is_available">Je dostupná aktualizácia</string>
<string name="download_file">Stiahnuť súbor</string>
<string name="start_editing_card_image_text">Voľný cestovný sprievodca po svete, ktorý môže upravovať každý.</string>
<string name="welcome_to_open_beta_description">Cestovní sprievodcovia sú založení na Wikivoyage. Vyskúšajte všetky funkcie počas otvoreného betatestovania zadarmo. Potom budú cestovní sprievodcovia dostupní predplatiteľom Neobmedzeného OsmAnd a používateľom OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Cestovní sprievodcovia sú založení na Wikivoyage. Vyskúšajte všetky funkcie počas otvoreného betatestovania zadarmo.</string>
<string name="start_editing_card_description">Môžete upravovať články na Wikivoyage. Zdieľajte znalosti, skúsenosti, talent a vašu pozornosť.</string>
<string name="start_editing">Začať upravovať</string>
<string name="welcome_to_open_beta">Vitajte v otvorenej beta verzii</string>

View file

@ -2779,7 +2779,7 @@
<string name="purchase_cancelled_dialog_descr">Obnovite naročilo za uporabo vseh zmožnosti programa:</string>
<string name="maps_you_need_descr">Na osnovi shranjenih zaznamkov je priporočljivo prejeti zemljevide:</string>
<string name="travel_card_download_descr">Prejmite popotniške vodnike Wikivoyage za pregled prispevkov različnih svetovnih krajev brez povezave na internet.</string>
<string name="welcome_to_open_beta_description">Popotniški vodniki so zasnovani po vsebinah Wikivoyage. Storitev je na voljo brezplačno med preizkušanjem delovanja različice beta. Po tem obdobju bodo vodniki na voljo le uporabnikom paketov OsmAnd Neomejeno in OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Popotniški vodniki so zasnovani po vsebinah Wikivoyage. Storitev je na voljo brezplačno med preizkušanjem delovanja različice beta.</string>
<string name="start_editing_card_description">Vsakdo lahko (in tudi zaželeno je) ureja prispevke na WikiVoyage. Skupno znanje, izkušnje in mnenja povečajo kakovost vsebine.</string>
<string name="welcome_to_open_beta">Dobrodošli v različici Open beta</string>
<string name="wikivoyage_travel_guide_descr">Krajevno shranjeni vodniki po najbolj zanimivih krajih sveta, prikazani v programu OsmAnd, tudi na mestih, kjer ni povezave z internetom.</string>

View file

@ -2375,7 +2375,7 @@
<string name="wiki_article_search_text">Претражујем одговарајући вики чланак</string>
<string name="wiki_article_not_found">Чланак није нађен</string>
<string name="how_to_open_wiki_title">Како да отворите чланке са Википедије?</string>
<string name="welcome_to_open_beta_description">Туристички водичи су тренутно базирани на Wikivoyage-у. Тестирајте све функционалности бесплатно. После тога, туристички водичи ће бити доступни само претплатницима на OsmAnd Unlimited и власницима OsmAnd+-а.</string>
<string name="welcome_to_open_beta_description">Туристички водичи су тренутно базирани на Wikivoyage-у. Тестирајте све функционалности бесплатно.</string>
<string name="start_editing_card_description">Можете и требали бисте да мењате било који чланак на Wikivoyage-у, а и надамо се да хоћете. Делите Ваше знање, искуство, таленат и пажњу.</string>
<string name="monthly_map_updates">Месечна ажурирања карата</string>
<string name="daily_map_updates">Сатна ажурирања карата</string>

View file

@ -2555,7 +2555,7 @@ Vänligen tillhandahåll fullständig kod</string>
<string name="update_is_available">Uppdatering tillgänglig</string>
<string name="download_file">Hämta fil</string>
<string name="start_editing_card_image_text">Den fria, världsomspännande reseguiden som alla kan redigera.</string>
<string name="welcome_to_open_beta_description">Reseguider är baserade på Wikivoyage. Testa alla funktioner under öppnen beta-testning gratis. Efteråt kommer resor att vara tillgängliga för prenumeranter av OsmAnd Unlimited och ägare av OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Reseguider är baserade på Wikivoyage. Testa alla funktioner under öppnen beta-testning gratis.</string>
<string name="start_editing_card_description">Du kan och bör redigera en artikel på Wikivoyage. Dela med dig av kunskap, erfarenhet, talang och din kännedom</string>
<string name="start_editing">Börja redigera</string>
<string name="get_unlimited_access">Få obegränsad tillgång</string>

View file

@ -2839,7 +2839,7 @@
<string name="update_is_available">Güncelleme mevcut</string>
<string name="download_file">Dosyayı indir</string>
<string name="start_editing_card_image_text">Herkesin düzenleyebileceği ücretsiz dünya çapında seyahat rehberi.</string>
<string name="welcome_to_open_beta_description">Seyahat rehberleri şu anda Wikivoyage\'ı temel almaktadır. Açık beta testi sırasında tüm özellikleri ücretsiz test edin. Daha sonra seyahat rehberleri OsmAnd Unlimited aboneleri ve OsmAnd+ sahipleri için mevcut olacaktır.</string>
<string name="welcome_to_open_beta_description">Seyahat rehberleri şu anda Wikivoyage\'ı temel almaktadır. Açık beta testi sırasında tüm özellikleri ücretsiz test edin.</string>
<string name="start_editing_card_description">Wikivoyage üzerindeki herhangi bir makaleyi düzenleyebilirsiniz. Bilgi, deneyim, yetenek ve dikkatinizi paylaşın.</string>
<string name="start_editing">Düzenlemeye başla</string>
<string name="welcome_to_open_beta">ık betaya hoş geldiniz</string>

View file

@ -2699,7 +2699,7 @@
<string name="update_is_available">Доступне оновлення</string>
<string name="download_file">Завантажити файл</string>
<string name="start_editing_card_image_text">Безплатний всесвітній путівник, який може правити кожен.</string>
<string name="welcome_to_open_beta_description">Туристичні путівники, в цей час, засновані на Вікімандрах. Перевірте усі функції безплатно під час відкритого бета-тестування. Потім, путівники будуть доступні передплатникам OsmAnd Unlimited і власникам OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Туристичні путівники, в цей час, засновані на Вікімандрах. Перевірте усі функції безплатно під час відкритого бета-тестування.</string>
<string name="start_editing_card_description">Вам можна і слід правити будь-яку статтю на Вікімандрах. Діліться знаннями, досвідом, талантом і Вашої увагою.</string>
<string name="start_editing">Розпочати правку</string>
<string name="get_unlimited_access">Отримати необмежений доступ</string>

View file

@ -2704,7 +2704,7 @@
<string name="update_is_available">有更新可用</string>
<string name="download_file">下載檔案</string>
<string name="start_editing_card_image_text">人人都可編輯的自由全球旅行指南。</string>
<string name="welcome_to_open_beta_description">目前旅遊指南是基於維基導遊。在公開測試期間,測試所有的功能為免費。在這之後,旅遊指南功能將只提供給 OsmAnd Unlimited 的訂戶與 OsmAnd+ 的擁有者。</string>
<string name="welcome_to_open_beta_description">目前旅遊指南是基於維基導遊。在公開測試期間,測試所有的功能為免費。</string>
<string name="start_editing_card_description">您可以也應該在維基導遊上編輯任何文章。分享知識、經驗、才能與您關心的東西。</string>
<string name="start_editing">開始編輯</string>
<string name="get_unlimited_access">取得無限制的存取</string>

View file

@ -1188,7 +1188,7 @@
<string name="update_is_available">Update available</string>
<string name="download_file">Download file</string>
<string name="start_editing_card_image_text">The free worldwide travel guide anyone can edit.</string>
<string name="welcome_to_open_beta_description">Travel guides are currently based on Wikivoyage. Test all features during open beta testing for free. Afterwards, travel guides will be available to subscribers of OsmAnd Unlimited and owners of OsmAnd+.</string>
<string name="welcome_to_open_beta_description">Travel guides are currently based on Wikivoyage. Test all features during open beta testing for free.</string>
<string name="start_editing_card_description">You can and should edit any article on Wikivoyage. Share knowledge, experience, talent, and your attention.</string>
<string name="start_editing">Start editing</string>
<string name="get_unlimited_access">Get unlimited access</string>

View file

@ -43,6 +43,7 @@ import net.osmand.aidl.tiles.ASqliteDbFile;
import net.osmand.aidlapi.customization.AProfile;
import net.osmand.aidlapi.info.AppInfoParams;
import net.osmand.aidlapi.map.ALatLon;
import net.osmand.aidlapi.map.ALocation;
import net.osmand.aidlapi.navigation.ABlockedRoad;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
@ -167,11 +168,14 @@ public class OsmandAidlApi {
private static final String AIDL_REFRESH_MAP = "aidl_refresh_map";
private static final String AIDL_SET_MAP_LOCATION = "aidl_set_map_location";
private static final String AIDL_SET_LOCATION = "aidl_set_location";
private static final String AIDL_LATITUDE = "aidl_latitude";
private static final String AIDL_LONGITUDE = "aidl_longitude";
private static final String AIDL_ZOOM = "aidl_zoom";
private static final String AIDL_ROTATION = "aidl_rotation";
private static final String AIDL_ANIMATED = "aidl_animated";
private static final String AIDL_LOCATION = "aidl_location";
private static final String AIDL_TIME_TO_NOT_USE_OTHER_GPS = "aidl_time_to_not_use_other_gps";
private static final String AIDL_START_NAME = "aidl_start_name";
private static final String AIDL_START_LAT = "aidl_start_lat";
@ -263,6 +267,7 @@ public class OsmandAidlApi {
registerHideSqliteDbFileReceiver(mapActivity);
registerExecuteQuickActionReceiver(mapActivity);
registerLockStateReceiver(mapActivity);
registerSetLocationReceiver(mapActivity);
initOsmandTelegram();
app.getAppCustomization().addListener(mapActivity);
this.mapActivity = mapActivity;
@ -903,6 +908,42 @@ public class OsmandAidlApi {
registerReceiver(lockStateReceiver, mapActivity, AIDL_LOCK_STATE);
}
private void registerSetLocationReceiver(MapActivity mapActivity) {
BroadcastReceiver setLocationReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String packName = intent.getStringExtra(AIDL_PACKAGE_NAME);
ALocation aLocation = intent.getParcelableExtra(AIDL_LOCATION);
long timeToNotUseOtherGPS = intent.getLongExtra(AIDL_TIME_TO_NOT_USE_OTHER_GPS, 0);
if (!Algorithms.isEmpty(packName) && aLocation != null
&& !Double.isNaN(aLocation.getLatitude()) && !Double.isNaN(aLocation.getLongitude())) {
Location location = new Location(packName);
location.setLatitude(aLocation.getLatitude());
location.setLongitude(aLocation.getLongitude());
location.setTime(aLocation.getTime());
if (aLocation.hasAltitude()) {
location.setAltitude(aLocation.getAltitude());
}
if (aLocation.hasSpeed()) {
location.setSpeed(aLocation.getSpeed());
}
if (aLocation.hasBearing()) {
location.setBearing(aLocation.getBearing());
}
if (aLocation.hasAccuracy()) {
location.setAccuracy(aLocation.getAccuracy());
}
if (aLocation.hasVerticalAccuracy()) {
location.setVerticalAccuracy(aLocation.getVerticalAccuracy());
}
app.getLocationProvider().setCustomLocation(location, timeToNotUseOtherGPS);
}
}
};
registerReceiver(setLocationReceiver, mapActivity, AIDL_SET_LOCATION);
}
public void registerMapLayers(@NonNull MapActivity mapActivity) {
for (ConnectedApp connectedApp : connectedApps.values()) {
connectedApp.registerMapLayers(mapActivity);
@ -2405,6 +2446,16 @@ public class OsmandAidlApi {
return true;
}
public boolean setLocation(String packName, ALocation location, long timeToNotUseOtherGPS) {
Intent intent = new Intent();
intent.setAction(AIDL_SET_LOCATION);
intent.putExtra(AIDL_LOCATION, location);
intent.putExtra(AIDL_PACKAGE_NAME, packName);
intent.putExtra(AIDL_TIME_TO_NOT_USE_OTHER_GPS, timeToNotUseOtherGPS);
app.sendBroadcast(intent);
return true;
}
private static class FileCopyInfo {
long startTime;
long lastAccessTime;

View file

@ -53,6 +53,7 @@ import net.osmand.aidlapi.gpx.StopGpxRecordingParams;
import net.osmand.aidlapi.info.AppInfoParams;
import net.osmand.aidlapi.lock.SetLockStateParams;
import net.osmand.aidlapi.map.ALatLon;
import net.osmand.aidlapi.map.SetLocationParams;
import net.osmand.aidlapi.map.SetMapLocationParams;
import net.osmand.aidlapi.maplayer.AddMapLayerParams;
import net.osmand.aidlapi.maplayer.RemoveMapLayerParams;
@ -1443,6 +1444,20 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener
}
return false;
}
@Override
public boolean setLocation(SetLocationParams params) {
try {
if (params != null) {
OsmandAidlApi api = getApi("setLocation");
String packName = getCallingAppPackName();
return api != null && api.setLocation(packName, params.getLocation(), params.getTimeToNotUseOtherGPS());
}
} catch (Exception e) {
handleException(e);
}
return false;
}
};
private void setCustomization(OsmandAidlApi api, CustomizationInfoParams params) {

View file

@ -45,6 +45,7 @@ import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.router.RouteSegmentResult;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;
import java.util.ArrayList;
@ -93,7 +94,9 @@ public class OsmAndLocationProvider implements SensorEventListener {
private SimulationProvider simulatePosition = null;
private long cachedLocationTimeFix = 0;
private long timeToNotUseOtherGPS = 0;
private net.osmand.Location cachedLocation;
private net.osmand.Location customLocation;
private boolean sensorRegistered = false;
private float[] mGravs = new float[3];
@ -726,8 +729,21 @@ public class OsmAndLocationProvider implements SensorEventListener {
}
}
public void setCustomLocation(net.osmand.Location location, long ignoreLocationsTime) {
timeToNotUseOtherGPS = System.currentTimeMillis() + ignoreLocationsTime;
customLocation = location;
setLocation(location);
}
private boolean shouldIgnoreLocation(net.osmand.Location location) {
if (customLocation != null && timeToNotUseOtherGPS >= System.currentTimeMillis()) {
return location == null || !Algorithms.stringsEqual(customLocation.getProvider(), location.getProvider());
}
return false;
}
public void setLocationFromService(net.osmand.Location location) {
if (locationSimulation.isRouteAnimating()) {
if (locationSimulation.isRouteAnimating() || shouldIgnoreLocation(location)) {
return;
}
if (location != null) {
@ -746,7 +762,11 @@ public class OsmAndLocationProvider implements SensorEventListener {
setLocation(location);
}
private void setLocation(net.osmand.Location location) { if (location == null) {
private void setLocation(net.osmand.Location location) {
if (shouldIgnoreLocation(location)) {
return;
}
if (location == null) {
updateGPSInfo(null);
}

View file

@ -1,6 +1,30 @@
package net.osmand.plus.chooseplan;
public class ChoosePlanWikivoyageDialogFragment extends ChoosePlanWikipediaDialogFragment {
public class ChoosePlanWikivoyageDialogFragment extends ChoosePlanOsmLiveBannerDialogFragment {
public static final String TAG = ChoosePlanWikivoyageDialogFragment.class.getSimpleName();
private final OsmAndFeature[] osmLiveFeatures = {
OsmAndFeature.WIKIVOYAGE_OFFLINE,
OsmAndFeature.WIKIPEDIA_OFFLINE,
OsmAndFeature.DAILY_MAP_UPDATES,
OsmAndFeature.UNLIMITED_DOWNLOADS,
OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS,
OsmAndFeature.SEA_DEPTH_MAPS,
OsmAndFeature.UNLOCK_ALL_FEATURES,
};
private final OsmAndFeature[] selectedOsmLiveFeatures = {
OsmAndFeature.WIKIVOYAGE_OFFLINE,
OsmAndFeature.WIKIPEDIA_OFFLINE,
};
@Override
public OsmAndFeature[] getOsmLiveFeatures() {
return osmLiveFeatures;
}
@Override
public OsmAndFeature[] getSelectedOsmLiveFeatures() {
return selectedOsmLiveFeatures;
}
}

View file

@ -130,7 +130,7 @@ public class TravelObfHelper implements TravelHelper {
@Nullable
private TravelArticle cacheTravelArticles(File file, Amenity amenity, String lang, boolean readPoints) {
TravelArticle article = null;
Map<String, TravelArticle> articles = readArticles(file, amenity, readPoints);
Map<String, TravelArticle> articles = readArticles(file, amenity, false);
if (!Algorithms.isEmpty(articles)) {
TravelArticleIdentifier newArticleId = articles.values().iterator().next().generateIdentifier();
cachedArticles.put(newArticleId, articles);
@ -404,6 +404,9 @@ public class TravelObfHelper implements TravelHelper {
Map<String, WikivoyageSearchResult> headerObjs = new HashMap<>();
if (parts != null && parts.length > 0) {
headers.addAll(Arrays.asList(parts));
if (!Algorithms.isEmpty(article.isParentOf)) {
headers.add(title);
}
}
for (String header : headers) {
@ -533,8 +536,7 @@ public class TravelObfHelper implements TravelHelper {
@Override
public boolean publish(Amenity amenity) {
if (Algorithms.stringsEqual(articleId.routeId, Algorithms.emptyIfNull(amenity.getTagContent(Amenity.ROUTE_ID, null)))
&& Algorithms.stringsEqual(articleId.routeSource, Algorithms.emptyIfNull(amenity.getTagContent(Amenity.ROUTE_SOURCE, null))) || isDbArticle) {
if (Algorithms.stringsEqual(articleId.routeId, Algorithms.emptyIfNull(amenity.getTagContent(Amenity.ROUTE_ID, null))) || isDbArticle) {
amenities.add(amenity);
done = true;
}
@ -549,7 +551,7 @@ public class TravelObfHelper implements TravelHelper {
if (!Double.isNaN(articleId.lat)) {
req.setBBoxRadius(articleId.lat, articleId.lon, ARTICLE_SEARCH_RADIUS);
if (!Algorithms.isEmpty(articleId.routeId)) {
if (!Algorithms.isEmpty(articleId.title)) {
reader.searchPoiByName(req);
} else {
reader.searchPoi(req);

View file

@ -11,6 +11,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -48,8 +49,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
private static boolean SHOW_TRAVEL_UPDATE_CARD = true;
private static boolean SHOW_TRAVEL_NEEDED_MAPS_CARD = true;
@Nullable
private ExploreRvAdapter adapter = new ExploreRvAdapter();
private final ExploreRvAdapter adapter = new ExploreRvAdapter();
private boolean nightMode;
@Nullable
@ -64,10 +64,9 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
@Nullable
private IndexItem mainIndexItem;
private List<IndexItem> neededIndexItems = new ArrayList<>();
private final List<IndexItem> neededIndexItems = new ArrayList<>();
private boolean waitForIndexes;
@SuppressWarnings("RedundantCast")
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -117,7 +116,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
@Override
public void downloadInProgress() {
OsmandApplication app = getMyApplication();
if (app != null && adapter != null) {
if (app != null) {
IndexItem current = app.getDownloadThread().getCurrentDownloadingItem();
if (current != null && current != currentDownloadingIndexItem) {
currentDownloadingIndexItem = current;
@ -147,7 +146,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
@Override
public void savedArticlesUpdated() {
if (adapter != null && isAdded()) {
if (isAdded()) {
adapter.notifyDataSetChanged();
}
}
@ -155,7 +154,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
@Nullable
private WikivoyageExploreActivity getExploreActivity() {
Activity activity = getActivity();
if (activity != null && activity instanceof WikivoyageExploreActivity) {
if (activity instanceof WikivoyageExploreActivity) {
return (WikivoyageExploreActivity) activity;
} else {
return null;
@ -163,33 +162,27 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
}
public void invalidateAdapter() {
if (adapter != null) {
adapter.notifyDataSetChanged();
}
adapter.notifyDataSetChanged();
}
public void populateData() {
final List<BaseTravelCard> items = new ArrayList<>();
final OsmandApplication app = getMyApplication();
final FragmentActivity activity = getActivity();
final OsmandApplication app = activity != null ? (OsmandApplication) activity.getApplication() : null;
if (app != null) {
if (adapter != null) {
FragmentManager fm = getFragmentManager();
if (fm != null) {
if (!Version.isPaidVersion(app)) {
items.add(new OpenBetaTravelCard(app, nightMode, fm));
}
if (app.getTravelHelper().isAnyTravelBookPresent()) {
items.add(new HeaderTravelCard(app, nightMode, getString(R.string.popular_destinations)));
List<TravelArticle> popularArticles = app.getTravelHelper().getPopularArticles();
for (TravelArticle article : popularArticles) {
items.add(new ArticleTravelCard(app, nightMode, article, fm));
}
}
}
items.add(new StartEditingTravelCard(app, getMyActivity(), nightMode));
adapter.setItems(items);
if (!Version.isPaidVersion(app) && !OpenBetaTravelCard.isClosed()) {
items.add(new OpenBetaTravelCard(activity, nightMode));
}
if (app.getTravelHelper().isAnyTravelBookPresent()) {
items.add(new HeaderTravelCard(app, nightMode, getString(R.string.popular_destinations)));
List<TravelArticle> popularArticles = app.getTravelHelper().getPopularArticles();
for (TravelArticle article : popularArticles) {
items.add(new ArticleTravelCard(app, nightMode, article, activity.getSupportFragmentManager()));
}
}
items.add(new StartEditingTravelCard(activity, nightMode));
adapter.setItems(items);
final DownloadIndexesThread downloadThread = app.getDownloadThread();
if (!downloadThread.getIndexes().isDownloadedFromInternet) {
waitForIndexes = true;
@ -230,7 +223,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
private void addDownloadUpdateCard() {
final OsmandApplication app = getMyApplication();
if (app != null && adapter != null) {
if (app != null) {
final DownloadIndexesThread downloadThread = app.getDownloadThread();
boolean outdated = mainIndexItem != null && mainIndexItem.isOutdated();
@ -248,7 +241,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
downloadUpdateCard.setListener(new TravelDownloadUpdateCard.ClickListener() {
@Override
public void onPrimaryButtonClick() {
if (mainIndexItem != null && downloadManager != null && adapter != null) {
if (mainIndexItem != null && downloadManager != null) {
downloadManager.startDownload(getMyActivity(), mainIndexItem);
adapter.updateDownloadUpdateCard(false);
}
@ -256,7 +249,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
@Override
public void onSecondaryButtonClick() {
if (downloadUpdateCard.isLoading() && adapter != null) {
if (downloadUpdateCard.isLoading()) {
downloadThread.cancelDownload(mainIndexItem);
adapter.updateDownloadUpdateCard(false);
} else if (!downloadUpdateCard.isDownload()) {
@ -266,7 +259,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
Activity activity = getActivity();
if (activity != null) {
Intent newIntent = new Intent(activity,
getMyApplication().getAppCustomization().getDownloadActivity());
((OsmandApplication) activity.getApplication()).getAppCustomization().getDownloadActivity());
newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
activity.startActivity(newIntent);
}
@ -281,12 +274,12 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
private void addNeededMapsCard() {
final OsmandApplication app = getMyApplication();
if (app != null && !neededIndexItems.isEmpty() && adapter != null && SHOW_TRAVEL_NEEDED_MAPS_CARD) {
if (app != null && !neededIndexItems.isEmpty() && SHOW_TRAVEL_NEEDED_MAPS_CARD) {
neededMapsCard = new TravelNeededMapsCard(app, nightMode, neededIndexItems);
neededMapsCard.setListener(new TravelNeededMapsCard.CardListener() {
@Override
public void onPrimaryButtonClick() {
if (adapter != null && downloadManager != null) {
if (downloadManager != null) {
downloadManager.startDownload(getMyActivity(), getAllItemsForDownload());
adapter.updateNeededMapsCard(false);
}
@ -295,10 +288,8 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
@Override
public void onSecondaryButtonClick() {
if (neededMapsCard.isDownloading()) {
if (adapter != null) {
app.getDownloadThread().cancelDownload(neededIndexItems);
adapter.updateNeededMapsCard(false);
}
app.getDownloadThread().cancelDownload(neededIndexItems);
adapter.updateNeededMapsCard(false);
} else {
SHOW_TRAVEL_NEEDED_MAPS_CARD = false;
removeNeededMapsCard();
@ -319,9 +310,7 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
} else if (!item.isDownloaded() && downloadManager != null) {
downloadManager.startDownload(getMyActivity(), item);
}
if (adapter != null) {
adapter.updateNeededMapsCard(false);
}
adapter.updateNeededMapsCard(false);
}
}
});
@ -341,63 +330,61 @@ public class ExploreTabFragment extends BaseOsmAndFragment implements DownloadEv
}
private void removeDownloadUpdateCard() {
if (adapter != null) {
adapter.removeDownloadUpdateCard();
}
adapter.removeDownloadUpdateCard();
downloadUpdateCard = null;
}
private void removeNeededMapsCard() {
if (adapter != null) {
adapter.removeNeededMapsCard();
}
adapter.removeNeededMapsCard();
neededMapsCard = null;
}
private static class ProcessIndexItemsTask extends AsyncTask<Void, Void, Pair<IndexItem, List<IndexItem>>> {
private static DownloadActivityType[] types = new DownloadActivityType[]{
private static final DownloadActivityType[] types = new DownloadActivityType[]{
DownloadActivityType.NORMAL_FILE,
DownloadActivityType.WIKIPEDIA_FILE
};
private OsmandApplication app;
private WeakReference<ExploreTabFragment> weakFragment;
private final OsmandApplication app;
private final WeakReference<ExploreTabFragment> weakFragment;
private String fileName;
private final String fileName;
ProcessIndexItemsTask(ExploreTabFragment fragment) {
app = fragment.getMyApplication();
weakFragment = new WeakReference<>(fragment);
fileName = app.getTravelHelper().getWikivoyageFileName();
fileName = app != null ? app.getTravelHelper().getWikivoyageFileName() : null;
}
@Override
protected Pair<IndexItem, List<IndexItem>> doInBackground(Void... voids) {
IndexItem mainItem = app.getDownloadThread().getIndexes().getWikivoyageItem(fileName);
if (fileName != null) {
IndexItem mainItem = app.getDownloadThread().getIndexes().getWikivoyageItem(fileName);
List<IndexItem> neededItems = new ArrayList<>();
for (TravelArticle article : app.getTravelHelper().getBookmarksHelper().getSavedArticles()) {
LatLon latLon = new LatLon(article.getLat(), article.getLon());
try {
for (DownloadActivityType type : types) {
IndexItem item = DownloadResources.findSmallestIndexItemAt(app, latLon, type);
if (item != null && !item.isDownloaded() && !neededItems.contains(item)) {
neededItems.add(item);
List<IndexItem> neededItems = new ArrayList<>();
for (TravelArticle article : app.getTravelHelper().getBookmarksHelper().getSavedArticles()) {
LatLon latLon = new LatLon(article.getLat(), article.getLon());
try {
for (DownloadActivityType type : types) {
IndexItem item = DownloadResources.findSmallestIndexItemAt(app, latLon, type);
if (item != null && !item.isDownloaded() && !neededItems.contains(item)) {
neededItems.add(item);
}
}
} catch (IOException e) {
// ignore
}
} catch (IOException e) {
e.printStackTrace();
}
return new Pair<>(mainItem, neededItems);
}
return new Pair<>(mainItem, neededItems);
return null;
}
@Override
protected void onPostExecute(Pair<IndexItem, List<IndexItem>> res) {
ExploreTabFragment fragment = weakFragment.get();
if (fragment != null && fragment.isResumed()) {
if (res != null && fragment != null && fragment.isResumed()) {
fragment.addIndexItemCards(res.first, res.second);
}
}

View file

@ -17,7 +17,7 @@ public abstract class BaseTravelCard {
protected OsmandApplication app;
protected boolean nightMode;
public BaseTravelCard(OsmandApplication app, boolean nightMode) {
public BaseTravelCard(@NonNull OsmandApplication app, boolean nightMode) {
this.app = app;
this.nightMode = nightMode;
}

View file

@ -5,22 +5,28 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.RecyclerView;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.chooseplan.ChoosePlanDialogFragment;
import net.osmand.plus.wikivoyage.explore.WikivoyageExploreActivity;
public class OpenBetaTravelCard extends BaseTravelCard {
public static final int TYPE = 0;
private FragmentManager fragmentManager;
private static boolean closed = false;
public OpenBetaTravelCard(OsmandApplication app, boolean nightMode, FragmentManager fragmentManager) {
super(app, nightMode);
this.fragmentManager = fragmentManager;
private final FragmentActivity activity;
public OpenBetaTravelCard(@NonNull FragmentActivity activity, boolean nightMode) {
super((OsmandApplication) activity.getApplication(), nightMode);
this.activity = activity;
}
public static boolean isClosed() {
return closed;
}
@Override
@ -30,11 +36,14 @@ public class OpenBetaTravelCard extends BaseTravelCard {
holder.title.setText(R.string.welcome_to_open_beta);
holder.description.setText(R.string.welcome_to_open_beta_description);
holder.backgroundImage.setImageResource(R.drawable.img_help_wikivoyage_articles);
holder.button.setText(R.string.get_unlimited_access);
//holder.button.setText(R.string.get_unlimited_access);
holder.button.setText(R.string.shared_string_close);
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChoosePlanDialogFragment.showWikivoyageInstance(fragmentManager);
closed = true;
((WikivoyageExploreActivity) activity).updateFragments();
//ChoosePlanDialogFragment.showWikivoyageInstance(activity.getSupportFragmentManager());
}
});
}

View file

@ -1,13 +1,12 @@
package net.osmand.plus.wikivoyage.explore.travelcards;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.RecyclerView;
import net.osmand.plus.OsmandApplication;
@ -18,11 +17,11 @@ public class StartEditingTravelCard extends BaseTravelCard {
public static final int TYPE = 1;
private Context context;
private final FragmentActivity activity;
public StartEditingTravelCard(OsmandApplication app, Activity context, boolean nightMode) {
super(app, nightMode);
this.context = context;
public StartEditingTravelCard(@NonNull FragmentActivity activity, boolean nightMode) {
super((OsmandApplication) activity.getApplication(), nightMode);
this.activity = activity;
}
@Override
@ -36,7 +35,7 @@ public class StartEditingTravelCard extends BaseTravelCard {
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WikipediaDialogFragment.showFullArticle(context,
WikipediaDialogFragment.showFullArticle(activity,
Uri.parse("https://" + app.getLanguage().toLowerCase() + ".m.wikivoyage.org"), nightMode);
}
});