commit
4da6bfc855
12 changed files with 195 additions and 112 deletions
|
@ -1,6 +1,7 @@
|
|||
package net.osmand;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
|
@ -20,60 +21,62 @@ public class Reshaper {
|
|||
}
|
||||
}
|
||||
public static String reshape(String s) {
|
||||
// if(true) {
|
||||
// return s;
|
||||
// }
|
||||
try {
|
||||
ArabicShaping as = new ArabicShaping(ArabicShaping.LETTERS_SHAPE | ArabicShaping.LENGTH_GROW_SHRINK);
|
||||
ArabicShaping as = new ArabicShaping(ArabicShaping.LETTERS_SHAPE |ArabicShaping.LENGTH_GROW_SHRINK);
|
||||
try {
|
||||
s = as.shape(s);
|
||||
} catch (ArabicShapingException e) {
|
||||
LOG.error(e.getMessage(), e);
|
||||
}
|
||||
Bidi line = new Bidi(s.length(), s.length());
|
||||
line.setPara(s, Bidi.LEVEL_DEFAULT_LTR, null);
|
||||
line.setPara(s, Bidi.LEVEL_DEFAULT_LTR, null);
|
||||
// line.setPara(s, Bidi.LEVEL_DEFAULT_LTR, null);
|
||||
// s = line.writeReordered(Bidi.DO_MIRRORING);
|
||||
// s = reordered;
|
||||
byte direction = line.getDirection();
|
||||
if (direction != Bidi.MIXED) {
|
||||
// unidirectional
|
||||
if(line.isLeftToRight()) {
|
||||
return s;
|
||||
} else {
|
||||
if (line.isLeftToRight()) {
|
||||
return s;
|
||||
} else {
|
||||
char[] chs = new char[s.length()];
|
||||
for(int i = 0; i< chs.length ; i++) {
|
||||
chs[i] = s.charAt(chs.length - i - 1);
|
||||
// chs[i] = s.charAt(chs.length - i - 1);
|
||||
chs[i] = mirror(s.charAt(chs.length - i - 1));
|
||||
}
|
||||
return new String(chs);
|
||||
}
|
||||
} else {
|
||||
// // mixed-directional
|
||||
// mixed-directional
|
||||
// System.out.println(s);
|
||||
// printSplit("Split", s);
|
||||
int count = line.countRuns();
|
||||
// if (styleRunCount <= 1) {
|
||||
// int style = styleRuns[0].style;
|
||||
// // iterate over directional runs
|
||||
// for (i = 0; i < count; ++i) {
|
||||
// run = line.getVisualRun(i);
|
||||
// renderRun(text, run.getStart(), run.getLimit(),
|
||||
// run.getDirection(), style);
|
||||
// }
|
||||
// }
|
||||
StringBuilder res = new StringBuilder();
|
||||
// iterate over both directional and style runs
|
||||
for (int i = 0; i < count; ++i) {
|
||||
StringBuilder runs = new StringBuilder();
|
||||
BidiRun run = line.getVisualRun(i);
|
||||
|
||||
int st = run.getStart();
|
||||
int e = run.getLimit();
|
||||
int j = run.getDirection() == Bidi.LTR ? st : e - 1;
|
||||
int l = run.getDirection() == Bidi.LTR ? e : st - 1;
|
||||
boolean plus = run.getDirection() == Bidi.LTR;
|
||||
while (j != l) {
|
||||
res.append(s.charAt(j));
|
||||
if (plus) {
|
||||
j++;
|
||||
} else {
|
||||
j--;
|
||||
boolean ltr = run.getDirection() == Bidi.LTR;
|
||||
int start = run.getStart();
|
||||
int limit = run.getLimit();
|
||||
int begin = ltr ? start : limit - 1;
|
||||
int end = ltr ? limit : start - 1;
|
||||
int ind = begin;
|
||||
while (ind != end) {
|
||||
char ch = s.charAt(ind);
|
||||
if (!ltr) {
|
||||
ch = mirror(ch);
|
||||
}
|
||||
res.append(ch);
|
||||
runs.append(ch);
|
||||
if (ltr) {
|
||||
ind++;
|
||||
} else {
|
||||
ind--;
|
||||
}
|
||||
|
||||
}
|
||||
printSplit(run.getDirection() + " " + run.getEmbeddingLevel(), runs.toString());
|
||||
}
|
||||
return res.toString();
|
||||
}
|
||||
|
@ -83,24 +86,74 @@ public class Reshaper {
|
|||
}
|
||||
|
||||
}
|
||||
private static char mirror(char ch) {
|
||||
switch (ch) {
|
||||
case '(': ch = ')'; break;
|
||||
case ')': ch = '('; break;
|
||||
case '[': ch = ']'; break;
|
||||
case ']': ch = '['; break;
|
||||
}
|
||||
return ch;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
// char[] c = new char[] {'א', 'ד','ם', ' ', '1', '2'} ;
|
||||
// String reshape = "אדם";
|
||||
char[] c = new char[] {'א', 'ד','ם'} ;
|
||||
String reshape = reshape(new String(c));
|
||||
for(int i=0; i < reshape.length(); i++) {
|
||||
System.out.println(reshape.charAt(i));
|
||||
}
|
||||
// char[] c = new char[] {'א', 'ד','ם'} ;
|
||||
// String reshape = reshape(new String(c));
|
||||
// for (int i = 0; i < reshape.length(); i++) {
|
||||
// System.out.println(reshape.charAt(i));
|
||||
// }
|
||||
test2();
|
||||
test3();
|
||||
test4();
|
||||
test5();
|
||||
}
|
||||
|
||||
private static void test3() {
|
||||
String s = "מרכז מסחרי/השלום (40050)";
|
||||
String reshape = reshape(s);
|
||||
String expected = "(40050) םולשה/ירחסמ זכרמ";
|
||||
check(s, reshape, expected);
|
||||
}
|
||||
|
||||
private static void test5() {
|
||||
String s = "מרכז מסחרי/השלום (מרז)";
|
||||
String reshape = reshape(s);
|
||||
String expected = "(זרמ) םולשה/ירחסמ זכרמ";
|
||||
check(s, reshape, expected);
|
||||
}
|
||||
private static void check(String source, String reshape, String expected) {
|
||||
printSplit("Source ", source);
|
||||
printSplit("Expected", expected);
|
||||
printSplit("Reshaped", reshape);
|
||||
System.out.println(reshape);
|
||||
if (!reshape.equals(expected)) {
|
||||
throw new IllegalArgumentException(String.format("Bug: expected '%s', reshaped '%s'", expected, reshape));
|
||||
}
|
||||
}
|
||||
private static void printSplit(String p, String source) {
|
||||
System.out.print(p);
|
||||
System.out.print(": \u2066");
|
||||
for(int i = 0; i < source.length(); i++) {
|
||||
System.out.print(source.charAt(i));
|
||||
System.out.print(" \u200e");
|
||||
}
|
||||
// System.out.println(Arrays.toString(source.toCharArray()));
|
||||
System.out.println();
|
||||
System.out.flush();
|
||||
}
|
||||
|
||||
private static void test2() {
|
||||
String s = "گچ پژ نمکی باللغة العربي";
|
||||
String reshape = reshape(s);
|
||||
String expected1 = "ﻲﺑﺮﻌﻟﺍ ﺔﻐﻠﻟﺎﺑ ﯽﮑﻤﻧ ﮋﭘ ﭻﮔ";
|
||||
String expected2 = "ﻲﺑﺮﻌﻟﺍ ﺔﻐﻠﻟﺎﺑ یکﻤﻧ ژپ چگ";
|
||||
check(s, reshape, expected1);
|
||||
}
|
||||
|
||||
if (!reshape.equals("ﻲﺑﺮﻌﻟﺍ ﺔﻐﻠﻟﺎﺑ ﯽﮑﻤﻧ ﮋﭘ ﭻﮔ")) {
|
||||
throw new IllegalArgumentException("BUG!!!");
|
||||
}
|
||||
private static void test4() {
|
||||
String s = "Abc (123)";
|
||||
check(s, reshape(s), s);
|
||||
}
|
||||
|
||||
}
|
|
@ -3147,7 +3147,7 @@
|
|||
<string name="start_up_message_pref">رسالة البدء</string>
|
||||
<string name="analytics_pref_title">تحليل</string>
|
||||
<string name="turn_screen_on_info">إظهار الخريطة على شاشة القفل أثناء التنقل.</string>
|
||||
<string name="wake_time">مهلة شاشة مخصصة</string>
|
||||
<string name="wake_time">المهلة بعد الاستيقاظ</string>
|
||||
<string name="units_and_formats">الوحدات والأشكال</string>
|
||||
<string name="appearance">المظهر</string>
|
||||
<string name="map_look_descr">مظهر الخريطة</string>
|
||||
|
@ -3179,7 +3179,7 @@
|
|||
<string name="route_parameters">معلمات الطريق</string>
|
||||
<string name="application_profile_changed">تم تغيير وضع التطبيق إلى \"%s\"</string>
|
||||
<string name="logcat_buffer">سجل الاستخدام</string>
|
||||
<string name="plugins_settings">إعدادات البرنامج المساعد</string>
|
||||
<string name="plugins_settings">ضبط الملحقات</string>
|
||||
<string name="shared_string_by_default">بشكل افتراضي</string>
|
||||
<string name="download_detailed_map">قم بتنزيل خريطة مفصلة%s لعرض هذه المنطقة.</string>
|
||||
<string name="internal_app_storage_description">تخزين داخلي ، مخفي عن المستخدم والتطبيقات الأخرى ، يمكن الوصول إليه حصريا من أوسماند.</string>
|
||||
|
@ -3459,7 +3459,7 @@
|
|||
<string name="monitoring_min_speed">الحد الأدنى للسرعة</string>
|
||||
<string name="monitoring_min_accuracy">دقة الحد الأدنى</string>
|
||||
<string name="monitoring_min_distance">الحد الأدنى للإزاحة</string>
|
||||
<string name="reset_plugin_to_default">إعادة تعيين إعدادات البرنامج المساعد الافتراضي</string>
|
||||
<string name="reset_plugin_to_default">إعادة ضبط الملحقات للافتراضي</string>
|
||||
<string name="multimedia_rec_split_title">تقسيم المسجل</string>
|
||||
<string name="multimedia_use_system_camera">استخدام تطبيق النظام</string>
|
||||
<string name="multimedia_photo_play_sound">صوت الكاميرا</string>
|
||||
|
@ -3470,7 +3470,7 @@
|
|||
<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="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>
|
||||
|
@ -3486,19 +3486,19 @@
|
|||
\n
|
||||
\n• إضافة رقم الخروج في الملاحة
|
||||
\n
|
||||
\n• إعادة صياغة إعدادات البرنامج المساعد
|
||||
\n• إعادة صياغة ضبط الملحقات
|
||||
\n
|
||||
\n• إعادة صياغة شاشة الإعدادات للوصول السريع إلى جميع الأوضاع
|
||||
\n
|
||||
\n• إضافة خيار لنسخ الإعدادات من ملف شخصي آخر
|
||||
\n• إضافة خيار لنسخ الإعدادات من وضع آخر
|
||||
\n
|
||||
\n• إضافة القدرة على تغيير أمر أو إخفاء فئات POI في البحث
|
||||
\n
|
||||
\n• رموز POI محاذاة بشكل صحيح على الخريطة
|
||||
\n
|
||||
\n• إضافة بيانات غروب الشمس / شروق الشمس لتكوين الخريطة
|
||||
\n• إضافة بيانات غروب/شروق الشمس لتكوين الخريطة
|
||||
\n
|
||||
\n• إضافة رموز المنزل / العمل على الخريطة
|
||||
\n• إضافة رموز المنزل/العمل على الخريطة
|
||||
\n
|
||||
\n• إضافة دعم للوصف متعدد الأسطر في الإعدادات
|
||||
\n
|
||||
|
@ -3730,7 +3730,7 @@
|
|||
<string name="turn_screen_on_wake_time_descr">حدد مهلة الشاشة بعد الاستيقاظ. (\"%1$s\" لا ينطبق أي مهلة.)</string>
|
||||
<string name="keep_screen_on">إبقاء الشاشة قيد التشغيل</string>
|
||||
<string name="keep_screen_off">إبقاء الشاشة مطفأة</string>
|
||||
<string name="screen_timeout_descr">محدد ب \"٪1$s\" ، إذا تم تمكينه.</string>
|
||||
<string name="screen_timeout_descr">إذا تم تفعيل الخيار \"%1$s\" ، فسوف يعتمد وقت النشاط عليه.</string>
|
||||
<string name="pseudo_mercator_projection">إسقاط ميركاتور الوهمي</string>
|
||||
<string name="one_image_per_tile">ملف صورة واحد لكل إطار متجانب</string>
|
||||
<string name="sqlite_db_file">ملف SQLiteDB</string>
|
||||
|
@ -3752,7 +3752,7 @@
|
|||
\nأسبوع واحد هو 10080 دقيقة.
|
||||
\nشهر واحد هو 43 829 دقيقة.</string>
|
||||
<string name="tiles_storage_descr">اختر كيفية تخزين الطبقات التي تم تنزيلها.</string>
|
||||
<string name="default_screen_timeout">مهلة شاشة النظام</string>
|
||||
<string name="default_screen_timeout">مهلة الشاشة الافتراضية</string>
|
||||
<string name="export_import_quick_actions_with_profiles_promo">يمكنك تصدير أو استيراد إجراءات سريعة باستخدام ملفات تعريف بروفايل التطبيق.</string>
|
||||
<string name="shared_string_delete_all_q">حذف الكل؟</string>
|
||||
<string name="delete_all_actions_message_q">هل أنت متأكد من رغبتك في حذف الإجراءات السريعة %d نهائيًا؟</string>
|
||||
|
@ -3762,7 +3762,7 @@
|
|||
<string name="height_limit_description">أدل بارتفاع مركبتك ،قد يتم تطبيق بعض القيود على المركبات المرتفعة.</string>
|
||||
<string name="weight_limit_description">أدل بوزن مركبتك ،قد يتم تطبيق بعض القيود على المركبات الثقيلة.</string>
|
||||
<string name="shared_string_meters">أمتار</string>
|
||||
<string name="details_dialog_decr">اظهار التحكم في رؤية التفاصيل الإضافية على الخريطة</string>
|
||||
<string name="details_dialog_decr">التحكم في رؤية التفاصيل الإضافية الظاهرة على الخريطة</string>
|
||||
<string name="shared_string_night_map">خريطة ليلية</string>
|
||||
<string name="shared_string_all_time">كل الوقت</string>
|
||||
</resources>
|
|
@ -3249,7 +3249,7 @@
|
|||
<string name="analytics_pref_title">Análisis</string>
|
||||
<string name="turn_screen_on_info">Mostrar el mapa en la pantalla de bloqueo durante la navegación.</string>
|
||||
<string name="route_parameters_info">Ajustes para la navegación del perfil elegido «%1$s».</string>
|
||||
<string name="wake_time">Duración del encendido</string>
|
||||
<string name="wake_time">Tiempo de espera después del encendido</string>
|
||||
<string name="units_and_formats">Unidades y formatos</string>
|
||||
<string name="appearance">Aspecto</string>
|
||||
<string name="map_look_descr">Apariencia del mapa</string>
|
||||
|
@ -3746,7 +3746,7 @@
|
|||
<string name="turn_screen_on_wake_time_descr">Elige el tiempo de espera de la pantalla luego del encendido. («%1$s» no aplica ningún tiempo de espera.)</string>
|
||||
<string name="keep_screen_on">Mantener la pantalla encendida</string>
|
||||
<string name="keep_screen_off">Mantener la pantalla apagada</string>
|
||||
<string name="screen_timeout_descr">Limitado por «%1$s», si está activado.</string>
|
||||
<string name="screen_timeout_descr">Si la opción «%1$s» está activada, el tiempo de actividad dependerá de ello.</string>
|
||||
<string name="pseudo_mercator_projection">Proyección de pseudo-Mercator</string>
|
||||
<string name="one_image_per_tile">Un archivo de imagen por tesela</string>
|
||||
<string name="sqlite_db_file">Archivo SQLiteDB</string>
|
||||
|
@ -3768,8 +3768,17 @@
|
|||
\nUna semana son 10 080 minutos.
|
||||
\nUn mes son 43 829 minutos.</string>
|
||||
<string name="tiles_storage_descr">Elige cómo se almacenarán las teselas descargadas.</string>
|
||||
<string name="default_screen_timeout">Tiempo de espera de la pantalla del sistema</string>
|
||||
<string name="default_screen_timeout">Tiempo predefinido de la espera de la pantalla</string>
|
||||
<string name="export_import_quick_actions_with_profiles_promo">Puedes exportar o importar acciones rápidas con perfiles de aplicación.</string>
|
||||
<string name="shared_string_delete_all_q">¿Borrar todo\?</string>
|
||||
<string name="delete_all_actions_message_q">¿Borrar irrevocablemente %d acciones rápidas\?</string>
|
||||
<string name="width_limit_description">Proporciona el ancho del vehículo. Se pueden aplicar algunas restricciones de ruta para vehículos anchos.</string>
|
||||
<string name="height_limit_description">Proporciona la altura del vehículo, se pueden aplicar algunas restricciones de ruta para vehículos altos.</string>
|
||||
<string name="weight_limit_description">Proporciona el peso del vehículo, se pueden aplicar algunas restricciones de ruta para vehículos pesados.</string>
|
||||
<string name="screen_timeout">Tiempo de espera de la pantalla</string>
|
||||
<string name="shared_string_tones">tonos</string>
|
||||
<string name="shared_string_meters">metros</string>
|
||||
<string name="details_dialog_decr">Controla la visibilidad de los detalles adicionales que se muestran en el mapa</string>
|
||||
<string name="shared_string_night_map">Mapa nocturno</string>
|
||||
<string name="shared_string_all_time">Todo el tiempo</string>
|
||||
</resources>
|
|
@ -3802,4 +3802,7 @@
|
|||
<string name="weight_limit_description">وزن وسیلهٔ نقلیهٔ خود را مشخص کنید. ممکن است محدودیتهای مسیر برای وسایل نقلیهٔ سنگین اِعمال شود.</string>
|
||||
<string name="shared_string_tones">تُن</string>
|
||||
<string name="shared_string_meters">متر</string>
|
||||
<string name="details_dialog_decr">نمایانی جزئیات اضافهتر روی نقشه را کنترل کنید</string>
|
||||
<string name="shared_string_night_map">نقشهٔ شب</string>
|
||||
<string name="shared_string_all_time">همیشه</string>
|
||||
</resources>
|
|
@ -2938,7 +2938,7 @@
|
|||
<string name="poi_surface_metal_grid">Grille métallique</string>
|
||||
<string name="poi_location_underground">Emplacement : souterrain</string>
|
||||
<string name="poi_location_underwater">Emplacement : sous l\'eau</string>
|
||||
<string name="poi_location_overground">Emplacement : au dessus du sol</string>
|
||||
<string name="poi_location_overground">Emplacement : en surface</string>
|
||||
<string name="poi_location_overhead">Emplacement : aérien</string>
|
||||
<string name="poi_location_roof">Emplacement : toit</string>
|
||||
<string name="poi_location_rooftop">Emplacement : dessus du toit</string>
|
||||
|
|
|
@ -109,13 +109,13 @@
|
|||
<string name="local_index_gpx_info_show">"
|
||||
\n
|
||||
\nMantén premido para opcións"</string>
|
||||
<string name="gpx_info_subtracks">"Subpistas: %1$s "</string>
|
||||
<string name="gpx_info_waypoints">"Puntos de pasaxe: %1$s "</string>
|
||||
<string name="gpx_info_distance">"Distancia: %1$s (%2$s puntos) "</string>
|
||||
<string name="gpx_info_start_time">"Hora do comezo: %1$tF, %1$tT "</string>
|
||||
<string name="gpx_info_end_time">"Hora do remate: %1$tF, %1$tT "</string>
|
||||
<string name="gpx_info_average_speed">"Velocidade media: %1$s "</string>
|
||||
<string name="gpx_info_maximum_speed">"Velocidade máxima: %1$s "</string>
|
||||
<string name="gpx_info_subtracks">Subpistas: %1$s</string>
|
||||
<string name="gpx_info_waypoints">Puntos de pasaxe: %1$s</string>
|
||||
<string name="gpx_info_distance">Distancia: %1$s (%2$s puntos)</string>
|
||||
<string name="gpx_info_start_time">Hora do comezo: %1$tF, %1$tT</string>
|
||||
<string name="gpx_info_end_time">Hora do remate: %1$tF, %1$tT</string>
|
||||
<string name="gpx_info_average_speed">Velocidade media: %1$s</string>
|
||||
<string name="gpx_info_maximum_speed">Velocidade máxima: %1$s</string>
|
||||
<string name="gpx_info_avg_altitude">Altitude media: %1$s</string>
|
||||
<string name="gpx_info_diff_altitude">Intre de altitudes: %1$s</string>
|
||||
<string name="gpx_info_asc_altitude">Descenso/ascenso: %1$s</string>
|
||||
|
@ -250,7 +250,7 @@
|
|||
<string name="local_osm_changes_delete_all_confirm">Eliminar %1$d modificación(s) no OSM\?</string>
|
||||
<string name="shared_string_delete_all">Eliminar todo</string>
|
||||
<string name="animate_routing_route_not_calculated">Calcular a ruta primeiro</string>
|
||||
<string name="animate_routing_route">"Simular empregando a rota calculada "</string>
|
||||
<string name="animate_routing_route">Simular empregando a rota calculada</string>
|
||||
<string name="animate_routing_gpx">Simular empregando pista GPX</string>
|
||||
<string name="shared_string_remember_my_choice">Lembrar escolla</string>
|
||||
<string name="shared_string_and">e</string>
|
||||
|
@ -284,7 +284,7 @@
|
|||
<string name="driving_region_japan">Xapón</string>
|
||||
<string name="driving_region_us">Estados Unidos</string>
|
||||
<string name="driving_region_canada">Canadá</string>
|
||||
<string name="driving_region_europe_asia">"Europa, Asia, Lationoamérica e semellantes"</string>
|
||||
<string name="driving_region_europe_asia">Europa, Asia, Lationoamérica e semellantes</string>
|
||||
<string name="driving_region_uk">Reino Unido, India e semellantes</string>
|
||||
<string name="speak_title">Anunciar…</string>
|
||||
<string name="speak_descr">Configura os avisos para nomes de rúas, avisos de tráfico (detencións forzosas, bandas sonoras), avisos de radar e límites de velocidade.</string>
|
||||
|
@ -400,7 +400,7 @@
|
|||
<string name="av_use_external_camera_descr">Empregar a aplicación do sistema para as imaxes.</string>
|
||||
<string name="av_use_external_camera">Empregar a aplicación da cámara</string>
|
||||
<string name="av_settings_descr">Configurar os axustes de son e vídeo.</string>
|
||||
<string name="av_settings">"Axustes do son/vídeo "</string>
|
||||
<string name="av_settings">Axustes do son/vídeo</string>
|
||||
<string name="recording_error">Fallou a gravación</string>
|
||||
<string name="recording_camera_not_available">A cámara non está dispoñíbel</string>
|
||||
<string name="recording_is_recorded">Estase a gravar son/vídeo. Para detelo preme o trebello S/V.</string>
|
||||
|
@ -422,7 +422,6 @@
|
|||
<string name="osmand_srtm_short_description_80_chars">Plugin do OsmAnd para curvas de nivel sen conexión</string>
|
||||
<string name="osmand_srtm_long_description_1000_chars">Este plugin fornece unha capa de sobreposición de curvas do nivel e unha capa de sombras da altitude (relevo) que poden ser amosadas nos mapas sen conexión do OsmAnd. Esta funcionalidade pode ser moi apreciada por atletas, camiñantes, sendeiristas e calquera que teña interese pola estrutura do relevo da paisaxe.
|
||||
\n
|
||||
\n
|
||||
\nOs datos globais (entre os 70 graos norte e os 70 graos sul) están baseados nas medicións do SRTM (Misión Topográfica con Radar da Lanzadeira Espacial) e ASTER (Radiómetro Espacial Avanzado de Emisión Térmica e Reflexión) e instrumentos de imaxes a bordo do Terra, o satélite máis importante do Sistema de Observación Terrestre da NASA. ASTER é un esforzo cooperativo entre a NASA, o Ministerio de Economía do Xapón, Comercio e Industria (METI) e Sistemas Espaciais Xaponeses (J-spaceystems).</string>
|
||||
<string name="map_widget_distancemeasurement">Medición de distancias</string>
|
||||
<string name="audionotes_location_not_defined">Preme \'Empregar localización…\' para engadir unha nota á localización.</string>
|
||||
|
@ -507,28 +506,28 @@
|
|||
<string name="interrupt_music">Deter a música</string>
|
||||
<string name="osmand_play_title_30_chars">Mapas e navegación OsmAnd</string>
|
||||
<string name="osmand_short_description_80_chars">Visualización e navegación móbil de mapas globais do OSM con e sen conexión</string>
|
||||
<string name="osmand_long_description_1000_chars">"OsmAnd (Indicacións de navegación automatizadas do OSM)
|
||||
<string name="osmand_long_description_1000_chars">OsmAnd (Indicacións de navegación automatizadas do OSM)
|
||||
\n
|
||||
\n O OsmAnd é unha aplicación de navegación de código aberto con acceso a unha ampla variedade de datos globais do OSM. Tódolos mapas dos datos (mapas vectoriais ou teselas) poden seren almacenados no cartón de memoria do teléfono móbil para empregalos sen conexión. O OsmAnd tamen fornece a funcionalidade de cálculo de rotas sen conexión, incluíndo a guía por voz paso a paso.
|
||||
\n O OsmAnd é unha aplicación de navegación de código aberto con acceso a unha ampla variedade de datos globais do OSM. Tódolos datos do mapa (mapas vectoriais ou teselas) poden ser almacenados no cartón de memoria do teléfono móbil para empregalos sen conexión. O OsmAnd tamen fornece a funcionalidade de cálculo de rotas sen conexión, incluíndo a guía por voz paso a paso.
|
||||
\n
|
||||
\n Algunhas das funcións principais:
|
||||
\n - Funcionalidade completa sen conexión (os mapas vectoriais ou de teselas baixados almacénanse no cartafol que se escolla)
|
||||
\n - Mapas vectoriais compactos sen conexión para todo o mundo
|
||||
\n - Pódense baixar mapas de países ou rexións de xeito directo dende a aplicación
|
||||
\n - É posíbel sobrepor varias capas de mapas, coma pistas de GPX ou de navegación, puntos de interese (PDI), favoritos, curvas do nivel, paraxes de transporte público ou mapas adicionais con transparencia regulábel
|
||||
\n - Procura sen conexión dos enderezos e lugares (PDI)
|
||||
\n - Cálculo de rotas sen conexión para distancias curtas (experimental)
|
||||
\n - Modos para automóbil, bicicleta e peóns, con:
|
||||
\n - Vistas de día e noite automatizadas opcionais
|
||||
\n - Achegamento opcional do mapa dependendo da velocidade
|
||||
\n - Aliñamento opcional do mapa dependendo do compás ou da dirección do movemento
|
||||
\n - Guía opcional de faixas ou carrís da estrada, límites de velocidade, voces gravadas e TTS
|
||||
\n - Funcionalidade completa sen conexión (os mapas vectoriais ou de teselas baixados almacénanse no cartafol que se escolla)
|
||||
\n - Mapas vectoriais compactos sen conexión para todo o mundo
|
||||
\n - Pódense baixar mapas de países ou rexións de xeito directo dende a aplicación
|
||||
\n - É posíbel sobrepor varias capas de mapas, coma pistas de GPX ou de navegación, puntos de interese (PDI), favoritos, curvas do nivel, paraxes de transporte público ou mapas adicionais con transparencia regulábel
|
||||
\n - Procura sen conexión dos enderezos e lugares (PDI)
|
||||
\n - Cálculo de rotas sen conexión para distancias medias
|
||||
\n - Modos para automóbil, bicicleta e peóns, opcionalmente con:
|
||||
\n - Cambio de vista diurna e nocturna automática
|
||||
\n - Achegamento do mapa dependendo da velocidade
|
||||
\n - Aliñamento do mapa dependendo do compás ou da dirección do movemento
|
||||
\n - Guía de faixas ou carrís da estrada, límites de velocidade, voces gravadas e TTS
|
||||
\n
|
||||
\n Limitacións desta versión de balde do OsmAnd:
|
||||
\n - O número de mapas a baixar está limitado
|
||||
\n - Non hai acceso ós puntos de interese (PDI) da Wikipedia sen conexión
|
||||
\n - O número de mapas a baixar está limitado
|
||||
\n - Non hai acceso ós puntos de interese (PDI) da Wikipedia sen conexión
|
||||
\n
|
||||
\n O OsmAnd está a ser desenvolvido activamente e o noso proxecto e o seu progreso futuro depende da contribución financeira para financia-lo desenvolvemento e as probas das funcionalidades novas. Coida a posibilidade de mercar o OsmAnd+ ou de financiar funcións novas específicas ou de facer unha doazón xeral no osmand.net."</string>
|
||||
\n O OsmAnd está a ser desenvolvido activamente e o noso proxecto e o seu progreso futuro depende da contribución financeira para financia-lo desenvolvemento e as probas das funcionalidades novas. Coida a posibilidade de mercar o OsmAnd+ ou de financiar funcións novas específicas ou de facer unha doazón xeral no osmand.net.</string>
|
||||
<string name="osmand_plus_play_title_30_chars">Mapas e navegación de OsmAnd+</string>
|
||||
<string name="osmand_plus_short_description_80_chars">Visualización e navegación móbil de mapas globais para mapas de OSM con e sen conexión</string>
|
||||
<string name="osmand_plus_long_description_1000_chars">O OsmAnd+ (Indicacións da navegación automatizadas do OSM) é un aplicativo de navegación de código aberto con acceso a unha ampla variedade de datos globais do OSM. Tódolos mapas dos datos (mapas vectoriais ou teselas) poden seren almacenados no cartón de memoria do teléfono para empregalos sen conexión. O OsmAnd tamén fornece funcionalidade de cálculo de rotas sen conexión, incluíndo a guía por voz paso a paso.
|
||||
|
@ -1036,7 +1035,7 @@
|
|||
<string name="continuous_rendering_descr">Amosar renderizado continuo no canto dunha imaxe de cada vez.</string>
|
||||
<string name="rendering_exception">Non foi posíbel debuxar a área escollida.</string>
|
||||
<string name="show_point_options">Empregar a localización…</string>
|
||||
<string name="renderer_load_sucess">"Carregouse a visualización "</string>
|
||||
<string name="renderer_load_sucess">Carregouse a visualización</string>
|
||||
<string name="renderer_load_exception">Non foi posíbel cargar o visualizador (renderizador).</string>
|
||||
<string name="renderers">Renderizador vectorial</string>
|
||||
<string name="renderers_descr">Escolle a aparencia da visualización (renderizado) dos mapas</string>
|
||||
|
@ -1446,7 +1445,7 @@
|
|||
<string name="lang_os">Osetiano</string>
|
||||
<string name="lang_eo">Esperanto</string>
|
||||
<string name="lang_es_ar">Español da Arxentina</string>
|
||||
<string name="lang_nb">"Noruegués Bokmål "</string>
|
||||
<string name="lang_nb">Noruegués Bokmål</string>
|
||||
<string name="lang_vo">Volapük</string>
|
||||
<string name="lang_th">Tailandés</string>
|
||||
<string name="lang_te">Telugu</string>
|
||||
|
@ -1795,7 +1794,7 @@ Lon %2$s</string>
|
|||
<string name="looking_up_address">Estase a procurar o enderezo</string>
|
||||
<string name="rendering_attr_currentTrackColor_description">Cor de GPX</string>
|
||||
<string name="rendering_attr_currentTrackWidth_description">Largo do GPX</string>
|
||||
<string name="free">"Libre %1$s "</string>
|
||||
<string name="free">Libre %1$s</string>
|
||||
<string name="rendering_attr_roadStyle_description">Estilo das estradas</string>
|
||||
<string name="routing_attr_avoid_stairs_name">Sen escadas</string>
|
||||
<string name="routing_attr_avoid_stairs_description">Evitar escadas</string>
|
||||
|
@ -1969,7 +1968,7 @@ Lon %2$s</string>
|
|||
<string name="city_type_district">Distrito</string>
|
||||
<string name="city_type_neighbourhood">Barrio</string>
|
||||
<string name="map_widget_search">Procurar</string>
|
||||
<string name="shared_string_is_open_24_7">Aberto 24/7</string>
|
||||
<string name="shared_string_is_open_24_7">Aberto 24h</string>
|
||||
<string name="storage_directory_card">Cartón de memoria</string>
|
||||
<string name="coords_format">Formato das coordenadas</string>
|
||||
<string name="coords_format_descr">Formato das coordenadas xeográficas.</string>
|
||||
|
@ -2437,7 +2436,7 @@ Lon %2$s</string>
|
|||
<string name="rendering_value_walkingRoutesScopeOSMC_name">Cor por afiliación da rede</string>
|
||||
<string name="average">Media</string>
|
||||
<string name="of">%1$d de %2$d</string>
|
||||
<string name="ascent_descent">"Subida/Descenso "</string>
|
||||
<string name="ascent_descent">Subida/Descenso</string>
|
||||
<string name="max_min">Máx/Mín</string>
|
||||
<string name="markers_remove_dialog_msg">Eliminar marcaxe do mapa \"%s\"\?</string>
|
||||
<string name="edit_map_marker">Editar marcaxe do mapa</string>
|
||||
|
@ -2450,7 +2449,8 @@ Lon %2$s</string>
|
|||
<string name="ask_for_location_permission">Para proseguer, permite acceder á localización ó OsmAnd.</string>
|
||||
<string name="thank_you_for_feedback">Grazas polos teus comentarios</string>
|
||||
<string name="poi_cannot_be_found">Non foi posíbel atopar o nó ou a vía.</string>
|
||||
<string name="search_no_results_feedback">Sen resultados de procura\? Mándanos a túa opinión</string>
|
||||
<string name="search_no_results_feedback">Sen resultados de procura\?
|
||||
\nMándanos a túa opinión</string>
|
||||
<string name="commiting_way">Estase a envíar camiño…</string>
|
||||
<string name="increase_search_radius_to">Aumentar o raio de procura para %1$s</string>
|
||||
<string name="shared_string_world">Mundo</string>
|
||||
|
@ -3167,6 +3167,8 @@ Lon %2$s</string>
|
|||
\n
|
||||
\n • Engade a opción de amosar o compás no mapa cunha regra de raio
|
||||
\n
|
||||
\n • Arreglado o rexistro de pistas en segundo plano
|
||||
\n
|
||||
\n • Melloradas as descargas de mapas en segundo plano
|
||||
\n
|
||||
\n• Volta a opción de \'Activar pantalla\'
|
||||
|
@ -3480,10 +3482,10 @@ Lon %2$s</string>
|
|||
<string name="monitoring_min_speed_descr_side_effect">Efecto secundario: No teu traxecto fallarán todos os treitos nos que non se cumprira o criterio de velocidade mínima (por exemplo, cando empurres a túa bicicleta por unha costa empinada). Ademais, non haberá información sobre os períodos de asueto, como as pausas. Isto ten efectos en calquera análise ou posprocesamento, como cando se trata de determinar a dura total da túa viaxe, o tempo en movemento ou a túa velocidade media.</string>
|
||||
<string name="monitoring_min_speed_descr_recommendation">Recomendación: Proba primeiro a empregar a detección de movemento mediante o filtro de desprazamento mínimo de rexistro (B), pode producir mellores resultados e perderás menos datos. Se as pistas seguen a ser ruidosas a baixas velocidades, proba aquí con valores distintos de cero. Ten en conta que algunhas medicións poden non informar ningún valor de velocidade (algúns métodos baseados na rede), nese caso no se rexistraría ren.</string>
|
||||
<string name="monitoring_min_speed_descr_remark">Observación: comprobacións de velocidade > 0: A meirande parte dos chipsets de GPS informan un valor de velocidade só se o algoritmo determina que está en movemento. Polo tanto, o uso do axuste > 0 neste filtro, en certo senso emprega a detección de movemento do conxunto de chips do GPS. Pero aínda se non se filtra aquí no intre da gravación, seguimos a empregar esta función no noso análise GPX para determinar a distancia corrixida, é dicir, o valor que se amosa nese campo é a distancia gravada en movemento.</string>
|
||||
<string name="monitoring_min_accuracy_descr">Isto registrará só os puntos medidos cunha indicación de precisión mínima (en metros/pés, segundo o informado polo Android para o teu conxunto de chips). A precisión é a proximidade das medicións á posición real, e non está directamente relacionada coa precisión, que é a dispersión de medicións repetidas.</string>
|
||||
<string name="monitoring_min_accuracy_descr">Isto rexistrará só os puntos medidos cunha indicación de precisión mínima (en metros/pés, segundo o informado polo Android para o teu conxunto de chips). A precisión é a proximidade das medicións á posición real, e non está directamente relacionada coa dispersión de medicións repetidas.</string>
|
||||
<string name="monitoring_min_accuracy_descr_side_effect">Efecto secundario: Como resultado da filtraxe por precisión, poden fallar puntos por exemplo embaixo de pontes, baixo árbores, entre edificios altos ou con certas condicións climáticas.</string>
|
||||
<string name="monitoring_min_accuracy_descr_recommendation">Recomendación: É difícil predicir o que se gravará e o que non, pode ser mellor apagar este filtro.</string>
|
||||
<string name="monitoring_min_accuracy_descr_remark">Observación: Se o GPS houbese apagado de xeito inmediato antes dunha gravación, o primeiro punto medido podería ter unha precisión disminuída, polo que no noso código pode que queiramos agardar un segundo máis ou menos antes de gravar un punto (ou gravar o mellor de 3 puntos consecutivos, etc.), pero isto aínda non se implementou.</string>
|
||||
<string name="monitoring_min_accuracy_descr_recommendation">Recomendación: É difícil predicir o que se gravará e o que non, polo que pode ser mellor desactivar este filtro.</string>
|
||||
<string name="monitoring_min_accuracy_descr_remark">Observación: Se o GPS estiver apagado xusto antes dunha gravación, o primeiro punto medido podería ter unha precisión diminuída, polo que no noso código pode que queiramos agardar un segundo máis ou menos antes de gravar un punto (ou gravar o mellor de 3 puntos consecutivos, etc.), pero isto aínda non se implementou.</string>
|
||||
<string name="monitoring_min_distance_descr">Este filtro evita que se graven puntos duplicados nos que pode haber moi pouco movemento real, e dá unha aparencia espacial máis agradábel ás pistas que non se procesan de xeito posterior.</string>
|
||||
<string name="monitoring_min_distance_descr_side_effect">Efectos secundarios: Os períodos de asueto non se rexistran en absoluto ou só nun punto cada un. Os pequenos movementos (do mundo real) (por exemplo, cara os lados, para marcar un posíbel desviamento na túa viaxe) poden ser filtrados. O teu ficheiro contén menos información para o posprocesamento, e ten piores estatísticas ó filtrar os puntos obviamente redundantes no tempo de gravación, mentres que de xeito potencial mantén os aparellos causados pola má recepción ou os efectos do chipset do GPS.</string>
|
||||
<string name="monitoring_min_distance_descr_recommendation">Recomendación: Un axuste de 5 metros pode funcionar ben se non precisas capturar detalles máis finos que iso, e non desexas capturar de xeito explícito os datos mentres estás en asueto.</string>
|
||||
|
@ -3694,9 +3696,9 @@ Lon %2$s</string>
|
|||
<string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string>
|
||||
<string name="osm_live_payment_subscription_management">"O pagamento será cobrado na túa conta da Google Play na confirmación da compra.
|
||||
\n
|
||||
\n A subscrición é renovada de xeito automático, a menos que sexa desbotada antes da data de renovación. A túa conta será cobrada polo período de renovación (més/trimestre/ano) soamente na data de renovación.
|
||||
\n A subscrición é renovada de xeito automático, a menos que sexa desbotada antes da data de renovación. A túa conta será cobrada polo período de renovación (més/trimestre/ano) soamente na data de renovación.
|
||||
\n
|
||||
\n Podes xestionar e desbotar as túas subscricións entrando nos axustes da Google Play."</string>
|
||||
\n Podes xestionar e desbotar as túas subscricións entrando nos axustes da Google Play."</string>
|
||||
<string name="search_poi_types">Procurar tipos de PDI</string>
|
||||
<string name="search_poi_types_descr">Combina tipos de PDI de diferentes categorías. Preme en \"trocar\" para marcar todo, preme o lado esquerdo para escoller unha categoría.</string>
|
||||
<string name="download_unsupported_action">Acción %1$s non admitida</string>
|
||||
|
|
|
@ -3759,7 +3759,7 @@ Pôr do Sol: %2$s</string>
|
|||
<string name="weight_limit_description">Forneça o peso do veículo, algumas restrições de rotas podem ser aplicadas a veículos pesados.</string>
|
||||
<string name="shared_string_tones">tons</string>
|
||||
<string name="shared_string_meters">metros</string>
|
||||
<string name="details_dialog_decr">Controlar a visibilidade de detalhes adicionais mostrados no mapa</string>
|
||||
<string name="details_dialog_decr">Controlar a visibilidade dos detalhes adicionais mostrados no mapa</string>
|
||||
<string name="shared_string_night_map">Mapa noturno</string>
|
||||
<string name="shared_string_all_time">Tempo todo</string>
|
||||
</resources>
|
|
@ -3717,7 +3717,7 @@
|
|||
<string name="turn_screen_on_wake_time_descr">Selecione o tempo limite do ecrã após acordar. (\"%1$s\" não aplica tempo limite).</string>
|
||||
<string name="keep_screen_on">Manter o ecrã ligado</string>
|
||||
<string name="keep_screen_off">Manter o ecrã desligado</string>
|
||||
<string name="screen_timeout_descr">Limitado por \"%1$s\", se ativado.</string>
|
||||
<string name="screen_timeout_descr">Se a opção \"%1$s\" estiver ativada, o tempo de atividade dependerá disso.</string>
|
||||
<string name="pseudo_mercator_projection">Projeção pseudo-Mercator</string>
|
||||
<string name="one_image_per_tile">Um ficheiro de imagem por quadrícula</string>
|
||||
<string name="sqlite_db_file">Ficheiro SQLiteDB</string>
|
||||
|
@ -3739,5 +3739,17 @@
|
|||
\nUma semana são 10 080 minutos.
|
||||
\nUm mês são 43 829 minutos.</string>
|
||||
<string name="tiles_storage_descr">Escolha como as quadrículas descarregadas serão armazenadas.</string>
|
||||
<string name="default_screen_timeout">Tempo limite do ecrã do sistema</string>
|
||||
<string name="default_screen_timeout">Padrão de tempo limite do ecrã</string>
|
||||
<string name="width_limit_description">Forneça a largura do seu veículo, algumas restrições de rotas podem ser aplicadas a veículos largos.</string>
|
||||
<string name="height_limit_description">Forneça a altura do seu veículo, algumas restrições de rotas podem ser aplicadas a veículos altos.</string>
|
||||
<string name="weight_limit_description">Forneça o peso do seu veículo, algumas restrições de rotas podem ser aplicadas a veículos pesados.</string>
|
||||
<string name="export_import_quick_actions_with_profiles_promo">Pode Exportar ou Importar ações rápidas com perfis de aplicações.</string>
|
||||
<string name="shared_string_delete_all_q">Apagar tudo\?</string>
|
||||
<string name="delete_all_actions_message_q">Tem certeza de que deseja apagar de forma irrevogável %d de ações rápidas\?</string>
|
||||
<string name="screen_timeout">Tempo limite do ecrã</string>
|
||||
<string name="shared_string_tones">tons</string>
|
||||
<string name="shared_string_meters">metros</string>
|
||||
<string name="details_dialog_decr">Controla a visibilidade de detalhes adicionais mostrados no mapa</string>
|
||||
<string name="shared_string_night_map">Mapa noturno</string>
|
||||
<string name="shared_string_all_time">O tempo todo</string>
|
||||
</resources>
|
|
@ -3729,4 +3729,5 @@
|
|||
<string name="details_dialog_decr">Haritada gösterilen ek ayrıntıların görünürlüğünü denetleyin</string>
|
||||
<string name="shared_string_night_map">Gece haritası</string>
|
||||
<string name="shared_string_all_time">Her zaman</string>
|
||||
<string name="shared_string_tones">ton</string>
|
||||
</resources>
|
|
@ -164,7 +164,7 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
|
|||
addButton(ll, "\u25BA (1.2) New route calculated, 1350m, 3680sec (01:01:20)", builder(p).newRouteCalculated(1350, 3680));
|
||||
addButton(ll, "\u25BA (1.3) New route calculated 3700m, 7320sec (02:02)", builder(p).newRouteCalculated(3700, 7320));
|
||||
addButton(ll, "\u25BA (1.4) New route calculated 9100m, 10980sec (03:03)", builder(p).newRouteCalculated(9100, 10980));
|
||||
addButton(ll, "\u25BA (1.5) New route calculated, 1500m, 4280sec (01:20:20)", builder(p).newRouteCalculated(1500, 4280));
|
||||
addButton(ll, "\u25BA (1.5) New route calculated, 1500m, 4280sec (01:20:20)", builder(p).newRouteCalculated(1500, 4820));
|
||||
addButton(ll, "\u25BA (2.1) Route recalculated 11500m, 18600sec (05:10)", builder(p).routeRecalculated(11500, 18600));
|
||||
addButton(ll, "\u25BA (2.2) Route recalculated 19633m, 26700sec (07:25)", builder(p).routeRecalculated(19633, 26700) );
|
||||
addButton(ll, "\u25BA (2.3) Route recalculated 89750m, 55800sec (15:30)", builder(p).routeRecalculated(89750, 55800) );
|
||||
|
|
|
@ -128,7 +128,8 @@ public class EditPoiData {
|
|||
if (oldValue == null || !oldValue.equals(value)) {
|
||||
changedTags.add(tag);
|
||||
}
|
||||
tagValues.put(tag, value);
|
||||
String tagVal = value != null ? value : "";
|
||||
tagValues.put(tag, tagVal);
|
||||
notifyDatasetChanged(tag);
|
||||
} finally {
|
||||
isInEdit = false;
|
||||
|
@ -207,7 +208,8 @@ public class EditPoiData {
|
|||
public void updateTypeTag(String string, boolean userChanges) {
|
||||
checkNotInEdit();
|
||||
try {
|
||||
tagValues.put(POI_TYPE_TAG, string);
|
||||
String val = string != null ? string : "";
|
||||
tagValues.put(POI_TYPE_TAG, val);
|
||||
if (userChanges) {
|
||||
changedTags.add(POI_TYPE_TAG);
|
||||
}
|
||||
|
@ -216,7 +218,8 @@ public class EditPoiData {
|
|||
if (pt != null) {
|
||||
removeTypeTagWithPrefix(!tagValues.containsKey(REMOVE_TAG_PREFIX + pt.getEditOsmTag()));
|
||||
currentPoiType = pt;
|
||||
tagValues.put(pt.getEditOsmTag(), pt.getEditOsmValue());
|
||||
String tagVal = pt.getEditOsmValue() != null ? pt.getEditOsmValue() : "";
|
||||
tagValues.put(pt.getEditOsmTag(), tagVal);
|
||||
if (userChanges) {
|
||||
changedTags.add(pt.getEditOsmTag());
|
||||
}
|
||||
|
|
|
@ -67,7 +67,6 @@ import net.osmand.osm.edit.OSMSettings;
|
|||
import net.osmand.osm.edit.Way;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.UiUtilities;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
|
@ -75,6 +74,7 @@ import net.osmand.plus.base.BaseOsmAndDialogFragment;
|
|||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||
import net.osmand.plus.osmedit.dialogs.PoiSubTypeDialogFragment;
|
||||
import net.osmand.plus.osmedit.dialogs.PoiTypeDialogFragment;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
@ -465,8 +465,8 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
}
|
||||
|
||||
private String isTextLengthInRange() {
|
||||
for (Entry<String, String> s: editPoiData.getTagValues().entrySet()) {
|
||||
if (s.getValue().length() > AMENITY_TEXT_LENGTH) {
|
||||
for (Entry<String, String> s : editPoiData.getTagValues().entrySet()) {
|
||||
if (!Algorithms.isEmpty(s.getValue()) && s.getValue().length() > AMENITY_TEXT_LENGTH) {
|
||||
return s.getKey();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue