From b2df5863471e781e241f5f67d58c96d3967fd8c7 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 11 Sep 2015 18:10:16 +0200 Subject: [PATCH 01/14] Translated using Weblate (Danish) Currently translated at 100.0% (1139 of 1139 strings) --- OsmAnd/res/values-da/phrases.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index a35766ff18..858294398b 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -1189,7 +1189,7 @@ Stativ Væg sløjfer - Bygning + Særlig bygning Skur Pullert Uformel @@ -1225,4 +1225,10 @@ Kælder Reol + Naturisme: tilladt + Naturisme: forbudt + Naturisme: obligatorisk + Naturisme: sædvanligt + Naturisme: eftergivende + From 0bfc9c1c2a3071adc66833a63be0f92a2d30a6bc Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Fri, 11 Sep 2015 19:13:40 +0300 Subject: [PATCH 02/14] Context menu layout fixes --- .../res/layout/map_context_menu_fragment.xml | 36 ++-- .../MapContextMenuFragment.java | 175 +++++++++--------- .../sections/AmenityInfoMenuController.java | 5 + .../sections/MenuController.java | 2 +- 4 files changed, 110 insertions(+), 108 deletions(-) diff --git a/OsmAnd/res/layout/map_context_menu_fragment.xml b/OsmAnd/res/layout/map_context_menu_fragment.xml index 2f83828f9f..a9e3374a32 100644 --- a/OsmAnd/res/layout/map_context_menu_fragment.xml +++ b/OsmAnd/res/layout/map_context_menu_fragment.xml @@ -1,5 +1,5 @@ - - + android:fillViewport="true"> - + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index f7638c98b6..505c5ccafc 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -1,12 +1,12 @@ package net.osmand.plus.mapcontextmenu; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; import android.annotation.TargetApi; import android.app.Activity; import android.content.res.Resources; import android.os.Build; import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; import android.support.v4.app.Fragment; import android.util.DisplayMetrics; import android.util.TypedValue; @@ -45,15 +45,17 @@ public class MapContextMenuFragment extends Fragment { private View mainView; private View bottomView; private View shadowView; - private View bottomBorder; MenuController menuController; private int menuTopHeight; private int menuTopShadowHeight; + private int menuTopShadowAllHeight; + private int menuTitleHeight; private int menuButtonsHeight; private int menuBottomViewHeight; private int menuFullHeight; + private int menuFullHeightMax; @Override public void onAttach(Activity activity) { @@ -113,10 +115,13 @@ public class MapContextMenuFragment extends Fragment { menuTopHeight = view.findViewById(R.id.context_menu_top_view).getHeight(); menuTopShadowHeight = view.findViewById(R.id.context_menu_top_shadow).getHeight(); + menuTopShadowAllHeight = view.findViewById(R.id.context_menu_top_shadow_all).getHeight(); menuButtonsHeight = view.findViewById(R.id.context_menu_buttons).getHeight(); - menuBottomViewHeight = view.findViewById(R.id.context_menu_bottom_view).getHeight(); menuFullHeight = view.findViewById(R.id.context_menu_main).getHeight(); + menuTitleHeight = menuTopShadowHeight + menuTopShadowAllHeight; + menuFullHeightMax = menuTitleHeight + menuBottomViewHeight + dpToPx(2f); + ViewTreeObserver obs = view.getViewTreeObserver(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { @@ -130,14 +135,6 @@ public class MapContextMenuFragment extends Fragment { }); - bottomBorder = view.findViewById(R.id.context_menu_bottom_border); - bottomBorder.setOnTouchListener(new View.OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - return true; - } - }); - shadowView = view.findViewById(R.id.context_menu_shadow_view); shadowView.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View view, MotionEvent event) { @@ -151,12 +148,13 @@ public class MapContextMenuFragment extends Fragment { final View.OnTouchListener slideTouchListener = new View.OnTouchListener() { private float dy; private float dyMain; - private int destinationState; private VelocityTracker velocity; private boolean slidingUp; private boolean slidingDown; + private float velocityX; private float velocityY; + private float maxVelocityY; private float startX; private float startY; @@ -166,7 +164,11 @@ public class MapContextMenuFragment extends Fragment { private boolean isClick(float endX, float endY) { float differenceX = Math.abs(startX - endX); float differenceY = Math.abs(startY - endY); - if (differenceX > 1 || differenceY > 1 || System.currentTimeMillis() - lastTouchDown > CLICK_ACTION_THRESHHOLD) { + if (differenceX > 1 || + differenceY > 1 || + Math.abs(velocityX) > 10 || + Math.abs(velocityY) > 10 || + System.currentTimeMillis() - lastTouchDown > CLICK_ACTION_THRESHHOLD) { return false; } return true; @@ -184,26 +186,29 @@ public class MapContextMenuFragment extends Fragment { dy = event.getY(); dyMain = mainView.getY(); velocity = VelocityTracker.obtain(); + velocityX = 0; velocityY = 0; + maxVelocityY = 0; velocity.addMovement(event); break; case MotionEvent.ACTION_MOVE: float y = event.getY(); float newY = mainView.getY() + (y - dy); - mainView.setY(newY); + mainView.setY((int)newY); - ViewGroup.LayoutParams lp = bottomBorder.getLayoutParams(); - lp.height = (int)(view.getHeight() - newY - menuFullHeight) + 10; - bottomBorder.setLayoutParams(lp); - bottomBorder.setY(newY + menuFullHeight); - bottomBorder.requestLayout(); + menuFullHeight = view.getHeight() - (int) newY + 10; + ViewGroup.LayoutParams lp = mainView.getLayoutParams(); + lp.height = Math.max(menuFullHeight, menuTitleHeight); + mainView.setLayoutParams(lp); + mainView.requestLayout(); velocity.addMovement(event); velocity.computeCurrentVelocity(1000); - float vel = Math.abs(velocity.getYVelocity()); - if (vel > velocityY) - velocityY = vel; + velocityX = Math.abs(velocity.getXVelocity()); + velocityY = Math.abs(velocity.getYVelocity()); + if (velocityY > maxVelocityY) + maxVelocityY = velocityY; break; @@ -212,8 +217,8 @@ public class MapContextMenuFragment extends Fragment { float endX = event.getX(); float endY = event.getY(); - slidingUp = Math.abs(velocityY) > 500 && (mainView.getY() - dyMain) < -50; - slidingDown = Math.abs(velocityY) > 500 && (mainView.getY() - dyMain) > 50; + slidingUp = Math.abs(maxVelocityY) > 500 && (mainView.getY() - dyMain) < -50; + slidingDown = Math.abs(maxVelocityY) > 500 && (mainView.getY() - dyMain) > 50; velocity.recycle(); @@ -223,37 +228,31 @@ public class MapContextMenuFragment extends Fragment { } else if (slidingDown) { menuController.slideDown(); } - destinationState = menuController.getCurrentMenuState(); - } else { - destinationState = MenuController.MenuState.HEADER_ONLY; } - float posY = 0; - switch (destinationState) { - case MenuController.MenuState.HEADER_ONLY: - posY = view.getHeight() - (menuFullHeight - menuBottomViewHeight - dpToPx(SHADOW_HEIGHT_BOTTOM_DP)); - break; - case MenuController.MenuState.HALF_SCREEN: - posY = view.getHeight() - menuFullHeight; - break; - case MenuController.MenuState.FULL_SCREEN: - posY = -menuTopShadowHeight - dpToPx(SHADOW_HEIGHT_TOP_DP); - break; - default: - break; - } - - float minY = Math.min(posY, mainView.getY()); - lp = bottomBorder.getLayoutParams(); - lp.height = (int)(view.getHeight() - minY - menuFullHeight) + 10; - if (lp.height < 0) - lp.height = 0; - bottomBorder.setLayoutParams(lp); - bottomBorder.requestLayout(); + final int posY = getPosY(); if (mainView.getY() != posY) { - mainView.animate().y(posY).setDuration(200).setInterpolator(new DecelerateInterpolator()).start(); - bottomBorder.animate().y(posY + menuFullHeight).setDuration(200).setInterpolator(new DecelerateInterpolator()).start(); + + if (posY < mainView.getY()) { + updateMainViewLayout(posY); + } + + mainView.animate().y(posY) + .setDuration(200) + .setInterpolator(new DecelerateInterpolator()) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationCancel(Animator animation) { + updateMainViewLayout(posY); + } + + @Override + public void onAnimationEnd(Animator animation) { + updateMainViewLayout(posY); + } + }) + .start(); } // OnClick event @@ -323,7 +322,7 @@ public class MapContextMenuFragment extends Fragment { // Action buttons final ImageButton buttonNavigate = (ImageButton) view.findViewById(R.id.context_menu_route_button); buttonNavigate.setImageDrawable(iconsCache.getIcon(R.drawable.map_directions, - light ? R.color.icon_color : R.color.dash_search_icon_dark)); + light ? R.color.icon_color : R.color.dashboard_subheader_text_dark)); buttonNavigate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -333,7 +332,7 @@ public class MapContextMenuFragment extends Fragment { final ImageButton buttonFavorite = (ImageButton) view.findViewById(R.id.context_menu_fav_button); buttonFavorite.setImageDrawable(iconsCache.getIcon(R.drawable.ic_action_fav_dark, - light ? R.color.icon_color : R.color.dash_search_icon_dark)); + light ? R.color.icon_color : R.color.dashboard_subheader_text_dark)); buttonFavorite.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -343,7 +342,7 @@ public class MapContextMenuFragment extends Fragment { final ImageButton buttonShare = (ImageButton) view.findViewById(R.id.context_menu_share_button); buttonShare.setImageDrawable(iconsCache.getIcon(R.drawable.abc_ic_menu_share_mtrl_alpha, - light ? R.color.icon_color : R.color.dash_search_icon_dark)); + light ? R.color.icon_color : R.color.dashboard_subheader_text_dark)); buttonShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -353,7 +352,7 @@ public class MapContextMenuFragment extends Fragment { final ImageButton buttonMore = (ImageButton) view.findViewById(R.id.context_menu_more_button); buttonMore.setImageDrawable(iconsCache.getIcon(R.drawable.ic_overflow_menu_white, - light ? R.color.icon_color : R.color.dash_search_icon_dark)); + light ? R.color.icon_color : R.color.dashboard_subheader_text_dark)); buttonMore.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -374,56 +373,54 @@ public class MapContextMenuFragment extends Fragment { menuController.build(bottomView); } + bottomView.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + menuBottomViewHeight = bottomView.getMeasuredHeight(); + return view; } - private void doLayoutMenu() { - int shadowViewHeight = 0; - int bottomBorderHeight = 0; + private int getPosY() { + int destinationState; + int minHalfY; + if (menuController != null) { + destinationState = menuController.getCurrentMenuState(); + minHalfY = view.getHeight() - (int)(view.getHeight() * menuController.getHalfScreenMaxHeightKoef()); + } else { + destinationState = MenuController.MenuState.HEADER_ONLY; + minHalfY = view.getHeight(); + } - int menuState; - if (menuController != null) - menuState = menuController.getCurrentMenuState(); - else - menuState = MenuController.MenuState.HEADER_ONLY; - - switch (menuState) { + int posY = 0; + switch (destinationState) { case MenuController.MenuState.HEADER_ONLY: - shadowViewHeight = view.getHeight() - (menuFullHeight - menuBottomViewHeight) + dpToPx(SHADOW_HEIGHT_BOTTOM_DP); - bottomBorderHeight = 0; + posY = view.getHeight() - (menuTitleHeight - dpToPx(SHADOW_HEIGHT_BOTTOM_DP)); break; case MenuController.MenuState.HALF_SCREEN: - int maxHeight = (int)(menuController.getHalfScreenMaxHeightKoef() * view.getHeight()); - if (maxHeight > menuFullHeight) { - shadowViewHeight = view.getHeight() - menuFullHeight; - bottomBorderHeight = 0; - } else { - shadowViewHeight = view.getHeight() - maxHeight; - bottomBorderHeight = 0; - mainView.setY(shadowViewHeight); - } + posY = view.getHeight() - menuFullHeightMax; + posY = Math.max(posY, minHalfY); break; case MenuController.MenuState.FULL_SCREEN: - shadowViewHeight = 0; - bottomBorderHeight = view.getHeight() - menuFullHeight + menuTopShadowHeight + dpToPx(SHADOW_HEIGHT_TOP_DP); + posY = -menuTopShadowHeight - dpToPx(SHADOW_HEIGHT_TOP_DP); break; default: break; } + return posY; + } - ViewGroup.LayoutParams lp = bottomBorder.getLayoutParams(); - lp.height = bottomBorderHeight + 10; - bottomBorder.setLayoutParams(lp); - bottomBorder.setY(view.getHeight() - bottomBorderHeight); - - lp = shadowView.getLayoutParams(); - lp.height = shadowViewHeight; - shadowView.setLayoutParams(lp); - + private void updateMainViewLayout(int posY) { + ViewGroup.LayoutParams lp; + menuFullHeight = view.getHeight() - posY; lp = mainView.getLayoutParams(); - lp.height = menuFullHeight; + lp.height = Math.max(menuFullHeight, menuTitleHeight); mainView.setLayoutParams(lp); + mainView.requestLayout(); + } + private void doLayoutMenu() { + final int posY = getPosY(); + mainView.setY(posY); + updateMainViewLayout(posY); } public void dismissMenu() { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java index ce795e7c87..b22bd2313e 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java @@ -9,6 +9,11 @@ public class AmenityInfoMenuController extends MenuController { super(new AmenityInfoMenuBuilder(app, amenity)); } + @Override + public int getInitialMenuState() { + return MenuState.HALF_SCREEN; + } + @Override public int getSupportedMenuStates() { return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN; diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/MenuController.java index 8e1d138d79..c2e01c5e3f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/MenuController.java @@ -63,7 +63,7 @@ public abstract class MenuController { } public float getHalfScreenMaxHeightKoef() { - return .6f; + return .7f; } public boolean shouldShowButtons() { From ffeaac7b685c17f4420a27913f2717f1ae2821cb Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Fri, 11 Sep 2015 19:19:16 +0300 Subject: [PATCH 03/14] Tiny fix --- .../plus/mapcontextmenu/sections/AmenityInfoMenuController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java index b22bd2313e..6c29cbc601 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/sections/AmenityInfoMenuController.java @@ -11,7 +11,7 @@ public class AmenityInfoMenuController extends MenuController { @Override public int getInitialMenuState() { - return MenuState.HALF_SCREEN; + return MenuState.HEADER_ONLY; } @Override From 9c6cda89ab87c7b563f9519ca2c8d1d1e9077b13 Mon Sep 17 00:00:00 2001 From: sonora Date: Fri, 11 Sep 2015 19:43:31 +0200 Subject: [PATCH 04/14] shorten voice propmts by increasing degree range for "regular" turns --- .../src/net/osmand/router/RouteResultPreparation.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java index a866b2ba21..01147408d2 100644 --- a/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java @@ -600,11 +600,11 @@ public class RouteResultPreparation { // mpi = MapUtils.degreesDiff(prev.getBearingEnd(), begin); } if (mpi >= TURN_DEGREE_MIN) { - if (mpi < 60) { + if (mpi < 45) { t = TurnType.valueOf(TurnType.TSLL, leftSide); } else if (mpi < 120) { t = TurnType.valueOf(TurnType.TL, leftSide); - } else if (mpi < 135 || leftSide) { + } else if (mpi < 150 || leftSide) { t = TurnType.valueOf(TurnType.TSHL, leftSide); } else { t = TurnType.valueOf(TurnType.TU, leftSide); @@ -612,11 +612,11 @@ public class RouteResultPreparation { int[] lanes = getTurnLanesInfo(prev, t.getValue()); t.setLanes(lanes); } else if (mpi < -TURN_DEGREE_MIN) { - if (mpi > -60) { + if (mpi > -45) { t = TurnType.valueOf(TurnType.TSLR, leftSide); } else if (mpi > -120) { t = TurnType.valueOf(TurnType.TR, leftSide); - } else if (mpi > -135 || !leftSide) { + } else if (mpi > -150 || !leftSide) { t = TurnType.valueOf(TurnType.TSHR, leftSide); } else { t = TurnType.valueOf(TurnType.TRU, leftSide); From 289256f5976b97e4122f711df9c7107161f85067 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 11 Sep 2015 19:21:07 +0200 Subject: [PATCH 05/14] Translated using Weblate (Danish) Currently translated at 100.0% (1771 of 1771 strings) --- OsmAnd/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index dd16205ae4..5c2ef9c46d 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2129,6 +2129,6 @@ Favoritter slet Gemt korrekt: %1$s -IP vil blive slettet, når ændringer overføres +Interessepunkt (IP) vil blive slettet, når ændringer overføres Vis GPX From 64b3e7f93fe2ec9702a298f11b9420ad97ee097d Mon Sep 17 00:00:00 2001 From: Evgenii Martynenko Date: Fri, 11 Sep 2015 19:21:25 +0200 Subject: [PATCH 06/14] Translated using Weblate (Russian) Currently translated at 99.3% (1760 of 1771 strings) --- OsmAnd/res/values-ru/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 9b19cbe93c..1435e280d6 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -2091,4 +2091,6 @@ Рабочие дни Избранное Успешно сохранён в: %1$s +POI будут удалены после того как вы загрузите ваши изменения + Показать GPX From 2c45e676b9186ed920a3884f2a8dd573f486724e Mon Sep 17 00:00:00 2001 From: Leif Larsson Date: Fri, 11 Sep 2015 18:29:53 +0200 Subject: [PATCH 07/14] Translated using Weblate (Swedish) Currently translated at 99.2% (1758 of 1771 strings) --- OsmAnd/res/values-sv/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 22a5686786..8052a24421 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -1995,4 +1995,6 @@ Nyliga platser ta bort Sparades utan problem kl. %1$s +POI tas bort så snart du laddat upp dina ändringar + Visa GPX From df98acfcda2f9b8afde5501943f5e4f94986fa92 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 11 Sep 2015 19:18:17 +0200 Subject: [PATCH 08/14] Translated using Weblate (Danish) Currently translated at 100.0% (1139 of 1139 strings) --- OsmAnd/res/values-da/phrases.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index 858294398b..8cf48a2ea1 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -1185,12 +1185,12 @@ Befolkning - Fleretages + Fleretagesparkering - Stativ + Cykelsstativ Væg sløjfer Særlig bygning - Skur + Cykelskur Pullert Uformel @@ -1223,12 +1223,12 @@ Kaffe Granatæble - Kælder + Párkeringskælder Reol Naturisme: tilladt Naturisme: forbudt Naturisme: obligatorisk - Naturisme: sædvanligt - Naturisme: eftergivende + Naturisme: sædvanlig + Naturisme: liberalt From 2284c301bdc098b154fed06c83f272081514a7bf Mon Sep 17 00:00:00 2001 From: Adriano Rosa Date: Fri, 11 Sep 2015 19:15:52 +0200 Subject: [PATCH 09/14] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.5% (1134 of 1139 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 0e67762091..d42a500a9c 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -1172,7 +1172,7 @@ Vários andares U-invertido - Edifício + Edifício especial Galpão Poste de amarração Informal @@ -1188,4 +1188,25 @@ Laranjeira Amendoeira Bananeira + Aveleira + Coqueiro + Caquizeiro + Cerejeira + Nogueira + Ameixeira + Pessegueiro + Kiwizeiro + Nectarineira + Mangueira + Seringueira + Cafeeiro + Romãzeira + + Nudismo: autorizado + Nudismo: proibido + Nudismo: obrigatório + Nudismo: habitual + Nudismo: permissido + + Tamareira From 7d97627f20af0f1fefb41d22557aca139eb57468 Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 11 Sep 2015 20:06:17 +0200 Subject: [PATCH 10/14] Translated using Weblate (Argentinean Spanish) Currently translated at 99.9% (1138 of 1139 strings) --- OsmAnd/res/values-es-rAR/phrases.xml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 470aedc014..c47418c41d 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -1186,4 +1186,29 @@ Banano Avellanos Cocotero + Nudismo permitido + Nudismo prohibido + Nudismo obligatorio + Nudismo habitual + Nudismo permisivo + + Bastidores + Edificio especial + Caseta + Bolardos + Caqui + Cerezo + Nogal + Ciruelo + Duraznero + + Coca + Kiwi + Huerto + Mango + Caucho + Fecha + Café + Granada + From a5af3b71279b5fa76815b937768db5645137c57a Mon Sep 17 00:00:00 2001 From: Adriano Rosa Date: Fri, 11 Sep 2015 19:59:36 +0200 Subject: [PATCH 11/14] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.8% (1137 of 1139 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index d42a500a9c..c777ccff4e 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -1209,4 +1209,7 @@ Nudismo: permissido Tamareira + Erveira + Coca + Prado com pomar From ad0eb9e3b32a18407c7da408671eabbeeb23c4e5 Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 11 Sep 2015 20:09:02 +0200 Subject: [PATCH 12/14] Translated using Weblate (Spanish) Currently translated at 99.4% (1133 of 1139 strings) --- OsmAnd/res/values-es/phrases.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index 3d8bb760fc..2c5bafd74f 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -1200,4 +1200,12 @@ Café Granada + Nudismo permitido + Nudismo prohibido + Nudismo obligatorio + Nudismo habitual + Nudismo permisivo + + Anclajes de pared + Bastidores From 4d2a57f794373b5778f21e65888d44d87ed0189c Mon Sep 17 00:00:00 2001 From: Ignacio Date: Fri, 11 Sep 2015 20:10:13 +0200 Subject: [PATCH 13/14] Translated using Weblate (Argentinean Spanish) Currently translated at 100.0% (1139 of 1139 strings) --- OsmAnd/res/values-es-rAR/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index c47418c41d..1ced852d84 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -1211,4 +1211,5 @@ Café Granada + Nectarina From 25a8b0c699115fae509a74fbbf6f13a05f8b5dfc Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 11 Sep 2015 20:10:26 +0200 Subject: [PATCH 14/14] Translated using Weblate (Spanish) Currently translated at 99.6% (1135 of 1139 strings) --- OsmAnd/res/values-es/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index 2c5bafd74f..ef65f8a7a1 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -1208,4 +1208,6 @@ Anclajes de pared Bastidores + Edificio especial + Caseta