From 623bd4931ba4b098923caaacc46dede185d7056f Mon Sep 17 00:00:00 2001 From: PaulStets Date: Tue, 19 Dec 2017 17:38:08 +0200 Subject: [PATCH 01/40] Added recipients table to OsmAnd Live reports --- OsmAnd/res/layout/fragment_reports.xml | 4 +- OsmAnd/res/values/strings.xml | 2 + .../net/osmand/plus/liveupdates/Protocol.java | 13 ++- .../plus/liveupdates/ReportsFragment.java | 18 +++- .../plus/liveupdates/UsersReportFragment.java | 102 ++++++++++++------ 5 files changed, 100 insertions(+), 39 deletions(-) diff --git a/OsmAnd/res/layout/fragment_reports.xml b/OsmAnd/res/layout/fragment_reports.xml index cc94f46c20..b900f162e6 100644 --- a/OsmAnd/res/layout/fragment_reports.xml +++ b/OsmAnd/res/layout/fragment_reports.xml @@ -275,6 +275,9 @@ android:background="?attr/dashboard_divider"/> Donations Number of recipients Edits %1$s, rank %2$s, total edits %3$s + Edits %1$s, sum %2$s mBTC OSM Editors ranking OsmAnd Live subscription Subscribe @@ -2819,4 +2820,5 @@ File %1$s does not contain waypoints, import it as a track? Move Point Add to a GPX track + OSM Recipients diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/Protocol.java b/OsmAnd/src/net/osmand/plus/liveupdates/Protocol.java index f7e41e3f62..5be7ad064d 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/Protocol.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/Protocol.java @@ -23,6 +23,9 @@ public final class Protocol { public int regionCount; public float regionPercentage; public float btc; + public float eur; + public float eurRate; + public Recipient[] rows; } public static class UserRankingByMonth { @@ -48,5 +51,13 @@ public final class Protocol { public int users; public int changes; } - + + public static class Recipient { + String osmid; + int changes; + String btcaddress; + int rank; + int weight; + float btc; + } } diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index 049fccb5c0..5207d72332 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -52,6 +52,8 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect private static final Log LOG = PlatformUtil.getLog(ReportsFragment.class); public static final String OSM_LIVE_URL = "https://osmand.net/osm_live"; + public static final String EDITS_FRAGMENT = "NumberOfEditsFragment"; + public static final String RECIPIENTS_FRAGMENT = "RecipientsFragment"; private TextView contributorsTextView; private TextView editsTextView; @@ -129,15 +131,23 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect String countryUrlString = selectedCountryItem.getDownloadName(); if (countryUrlString.length() > 0) { Bundle bl = new Bundle(); - bl.putString(UsersReportFragment.URL_REQUEST, - String.format(USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); - userReportFragment.setArguments(bl); - userReportFragment.show(getChildFragmentManager(), "NumberOfEditsFramgnet"); + if (v.getId() == R.id.numberOfRecipientsLayout) { + bl.putString(UsersReportFragment.URL_REQUEST, + String.format(RECIPIENTS_BY_MONTH, monthUrlString, countryUrlString)); + userReportFragment.setArguments(bl); + userReportFragment.show(getChildFragmentManager(), RECIPIENTS_FRAGMENT); + } else { + bl.putString(UsersReportFragment.URL_REQUEST, + String.format(USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); + userReportFragment.setArguments(bl); + userReportFragment.show(getChildFragmentManager(), EDITS_FRAGMENT); + } } } }; view.findViewById(R.id.numberOfContributorsLayout).setOnClickListener(listener); view.findViewById(R.id.numberOfEditsLayout).setOnClickListener(listener); + view.findViewById(R.id.numberOfRecipientsLayout).setOnClickListener(listener); countrySelectionFragment.initCountries(getMyApplication()); selectedCountryItem = countrySelectionFragment.getCountryItems().get(0); diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java index b9c19676f1..e78388b44a 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java @@ -1,7 +1,5 @@ package net.osmand.plus.liveupdates; -import java.util.Arrays; - import net.osmand.plus.R; import net.osmand.plus.base.BaseOsmAndDialogFragment; import net.osmand.plus.liveupdates.Protocol.RankingUserByMonthResponse; @@ -32,27 +30,45 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_simple_list, container, false); ListView listView = (ListView) view.findViewById(android.R.id.list); - final ArrayAdapter adapter = new ListAdapter(getListItemIcon()); + final ArrayAdapter adapter = new ListAdapter(getListItemIcon()); String url = getArguments().getString(URL_REQUEST); //String reg = getArguments().getString(REGION_NAME); view.findViewById(R.id.progress).setVisibility(View.VISIBLE); - ((TextView)view.findViewById(R.id.titleTextView)).setText(R.string.osm_editors_ranking); - GetJsonAsyncTask task = new GetJsonAsyncTask<>(RankingUserByMonthResponse.class); - task.setOnResponseListener(new OnResponseListener() { + if (getTag().equals(ReportsFragment.EDITS_FRAGMENT)) { + ((TextView)view.findViewById(R.id.titleTextView)).setText(R.string.osm_editors_ranking); + GetJsonAsyncTask task = new GetJsonAsyncTask<>(RankingUserByMonthResponse.class); + task.setOnResponseListener(new OnResponseListener() { - @Override - public void onResponse(RankingUserByMonthResponse response) { - if (response != null && response.rows != null) { - for (UserRankingByMonth rankingByMonth : response.rows) { - adapter.add(rankingByMonth); + @Override + public void onResponse(RankingUserByMonthResponse response) { + if (response != null && response.rows != null) { + for (UserRankingByMonth rankingByMonth : response.rows) { + adapter.add(rankingByMonth); + } } + view.findViewById(R.id.progress).setVisibility(View.GONE); } - view.findViewById(R.id.progress).setVisibility(View.GONE); - } - }); - task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url); - listView.setAdapter(adapter); - + }); + task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url); + listView.setAdapter(adapter); + } else if (getTag().equals(ReportsFragment.RECIPIENTS_FRAGMENT)) { + ((TextView)view.findViewById(R.id.titleTextView)).setText(R.string.osm_recipients_label); + GetJsonAsyncTask task = new GetJsonAsyncTask<>(Protocol.RecipientsByMonth.class); + task.setOnResponseListener(new OnResponseListener() { + + @Override + public void onResponse(Protocol.RecipientsByMonth response) { + if (response != null && response.rows != null) { + for (Protocol.Recipient recipient : response.rows) { + adapter.add(recipient); + } + } + view.findViewById(R.id.progress).setVisibility(View.GONE); + } + }); + task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url); + listView.setAdapter(adapter); + } ImageButton clearButton = (ImageButton) view.findViewById(R.id.closeButton); //setThemedDrawable(clearButton, R.drawable.ic_action_remove_dark); clearButton.setOnClickListener(new View.OnClickListener() { @@ -74,7 +90,7 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { super.onDetach(); } - private class ListAdapter extends ArrayAdapter { + private class ListAdapter extends ArrayAdapter { private final Drawable drawableLeft; @ColorInt private final int textColor; @@ -94,22 +110,42 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { @Override public View getView(int position, View convertView, ViewGroup parent) { - UserRankingByMonth item = getItem(position); - View v = convertView; - if (v == null) { - LayoutInflater inflater = getActivity().getLayoutInflater(); - v = inflater.inflate(android.R.layout.simple_list_item_2, parent, false); + if (getItem(position) instanceof UserRankingByMonth) { + UserRankingByMonth item = (UserRankingByMonth) getItem(position); + View v = convertView; + if (v == null) { + LayoutInflater inflater = getActivity().getLayoutInflater(); + v = inflater.inflate(android.R.layout.simple_list_item_2, parent, false); + } + TextView text1 = (TextView) v.findViewById(android.R.id.text1); + TextView text2 = (TextView) v.findViewById(android.R.id.text2); + text1.setText(item.user); + text2.setText(getString(R.string.osm_user_stat, + String.valueOf(item.changes), String.valueOf(item.rank), String.valueOf(item.globalchanges))); + text1.setTextColor(textColor); + text2.setTextColor(textSecondaryColor); + text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); + text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); + return v; + } else { + Protocol.Recipient item = (Protocol.Recipient) getItem(position); + View v = convertView; + if (v == null) { + LayoutInflater inflater = getActivity().getLayoutInflater(); + v = inflater.inflate(android.R.layout.simple_list_item_2, parent, false); + } + TextView text1 = (TextView) v.findViewById(android.R.id.text1); + TextView text2 = (TextView) v.findViewById(android.R.id.text2); + text1.setText(item.osmid); + text2.setText(getString(R.string.osm_recipient_stat, + String.valueOf(item.changes), String.format("%.4f", (item.btc*1000f)))); + text1.setTextColor(textColor); + text2.setTextColor(textSecondaryColor); + text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); + text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); + return v; } - TextView text1 = (TextView) v.findViewById(android.R.id.text1); - TextView text2 = (TextView) v.findViewById(android.R.id.text2); - text1.setText(item.user); - text2.setText(getString(R.string.osm_user_stat, - String.valueOf(item.changes), String.valueOf(item.rank), String.valueOf(item.globalchanges))); - text1.setTextColor(textColor); - text2.setTextColor(textSecondaryColor); - text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); - text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); - return v; + } } } From dd5e514dd65d1e4a753954deacf10ad78767444c Mon Sep 17 00:00:00 2001 From: PaulStets Date: Tue, 19 Dec 2017 19:00:53 +0200 Subject: [PATCH 02/40] Refactoring --- .../plus/liveupdates/ReportsFragment.java | 16 ++--- .../plus/liveupdates/UsersReportFragment.java | 71 ++++++++----------- 2 files changed, 35 insertions(+), 52 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index 5207d72332..20373f42b6 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -131,17 +131,11 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect String countryUrlString = selectedCountryItem.getDownloadName(); if (countryUrlString.length() > 0) { Bundle bl = new Bundle(); - if (v.getId() == R.id.numberOfRecipientsLayout) { - bl.putString(UsersReportFragment.URL_REQUEST, - String.format(RECIPIENTS_BY_MONTH, monthUrlString, countryUrlString)); - userReportFragment.setArguments(bl); - userReportFragment.show(getChildFragmentManager(), RECIPIENTS_FRAGMENT); - } else { - bl.putString(UsersReportFragment.URL_REQUEST, - String.format(USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); - userReportFragment.setArguments(bl); - userReportFragment.show(getChildFragmentManager(), EDITS_FRAGMENT); - } + boolean is = v.getId() == R.id.numberOfRecipientsLayout; + bl.putString(UsersReportFragment.URL_REQUEST, + String.format(is ? RECIPIENTS_BY_MONTH : USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); + userReportFragment.setArguments(bl); + userReportFragment.show(getChildFragmentManager(), is ? RECIPIENTS_FRAGMENT : EDITS_FRAGMENT); } } }; diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java index e78388b44a..9d03c3ccf8 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java @@ -35,7 +35,7 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { //String reg = getArguments().getString(REGION_NAME); view.findViewById(R.id.progress).setVisibility(View.VISIBLE); if (getTag().equals(ReportsFragment.EDITS_FRAGMENT)) { - ((TextView)view.findViewById(R.id.titleTextView)).setText(R.string.osm_editors_ranking); + ((TextView) view.findViewById(R.id.titleTextView)).setText(R.string.osm_editors_ranking); GetJsonAsyncTask task = new GetJsonAsyncTask<>(RankingUserByMonthResponse.class); task.setOnResponseListener(new OnResponseListener() { @@ -43,14 +43,15 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { public void onResponse(RankingUserByMonthResponse response) { if (response != null && response.rows != null) { for (UserRankingByMonth rankingByMonth : response.rows) { - adapter.add(rankingByMonth); + if (rankingByMonth != null) { + adapter.add(rankingByMonth); + } } } view.findViewById(R.id.progress).setVisibility(View.GONE); } }); task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url); - listView.setAdapter(adapter); } else if (getTag().equals(ReportsFragment.RECIPIENTS_FRAGMENT)) { ((TextView)view.findViewById(R.id.titleTextView)).setText(R.string.osm_recipients_label); GetJsonAsyncTask task = new GetJsonAsyncTask<>(Protocol.RecipientsByMonth.class); @@ -60,15 +61,17 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { public void onResponse(Protocol.RecipientsByMonth response) { if (response != null && response.rows != null) { for (Protocol.Recipient recipient : response.rows) { - adapter.add(recipient); + if (recipient != null) { + adapter.add(recipient); + } } } view.findViewById(R.id.progress).setVisibility(View.GONE); } }); task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url); - listView.setAdapter(adapter); } + listView.setAdapter(adapter); ImageButton clearButton = (ImageButton) view.findViewById(R.id.closeButton); //setThemedDrawable(clearButton, R.drawable.ic_action_remove_dark); clearButton.setOnClickListener(new View.OnClickListener() { @@ -109,43 +112,29 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { } @Override - public View getView(int position, View convertView, ViewGroup parent) { - if (getItem(position) instanceof UserRankingByMonth) { - UserRankingByMonth item = (UserRankingByMonth) getItem(position); - View v = convertView; - if (v == null) { - LayoutInflater inflater = getActivity().getLayoutInflater(); - v = inflater.inflate(android.R.layout.simple_list_item_2, parent, false); - } - TextView text1 = (TextView) v.findViewById(android.R.id.text1); - TextView text2 = (TextView) v.findViewById(android.R.id.text2); - text1.setText(item.user); - text2.setText(getString(R.string.osm_user_stat, - String.valueOf(item.changes), String.valueOf(item.rank), String.valueOf(item.globalchanges))); - text1.setTextColor(textColor); - text2.setTextColor(textSecondaryColor); - text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); - text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); - return v; - } else { - Protocol.Recipient item = (Protocol.Recipient) getItem(position); - View v = convertView; - if (v == null) { - LayoutInflater inflater = getActivity().getLayoutInflater(); - v = inflater.inflate(android.R.layout.simple_list_item_2, parent, false); - } - TextView text1 = (TextView) v.findViewById(android.R.id.text1); - TextView text2 = (TextView) v.findViewById(android.R.id.text2); - text1.setText(item.osmid); - text2.setText(getString(R.string.osm_recipient_stat, - String.valueOf(item.changes), String.format("%.4f", (item.btc*1000f)))); - text1.setTextColor(textColor); - text2.setTextColor(textSecondaryColor); - text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); - text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); - return v; + public View getView(int position, View v, ViewGroup parent) { + if (v == null) { + v = getActivity().getLayoutInflater().inflate(android.R.layout.simple_list_item_2, parent, false); } - + TextView text1 = (TextView) v.findViewById(android.R.id.text1); + TextView text2 = (TextView) v.findViewById(android.R.id.text2); + text1.setTextColor(textColor); + text2.setTextColor(textSecondaryColor); + text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); + text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); + Object item = getItem(position); + if (item instanceof UserRankingByMonth) { + UserRankingByMonth rankingByMonth = (UserRankingByMonth) item; + text1.setText(rankingByMonth.user); + text2.setText(getString(R.string.osm_user_stat, + String.valueOf(rankingByMonth.changes), String.valueOf(rankingByMonth.rank), String.valueOf(rankingByMonth.globalchanges))); + } else if (item instanceof Protocol.Recipient){ + Protocol.Recipient recipient = (Protocol.Recipient) item; + text1.setText(recipient.osmid); + text2.setText(getString(R.string.osm_recipient_stat, + String.valueOf(recipient.changes), String.format("%.4f", (recipient.btc*1000f)))); + } + return v; } } } From 5dbfde166d9cda6e7e0e11b53ab530ffc071ad54 Mon Sep 17 00:00:00 2001 From: samyakbvs Date: Wed, 20 Dec 2017 13:00:42 +0000 Subject: [PATCH 03/40] Translated using Weblate (Spanish) Currently translated at 99.8% (3316 of 3322 strings) --- OsmAnd/res/values-es/phrases.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index ee9d313496..d5578a2e3d 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -3690,4 +3690,5 @@ Depósito - +Buzón + From 88b97cb9fcb889a858d9051c77a9408e38cfb346 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Tue, 19 Dec 2017 15:28:15 +0000 Subject: [PATCH 04/40] Translated using Weblate (Hebrew) Currently translated at 85.0% (2141 of 2516 strings) --- OsmAnd/res/values-he/strings.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 0bfdcd2a93..21c0886fd7 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -2484,4 +2484,22 @@ הפעלת הנפשת גלישת מפה של המיקום שלי במהלך ניווט. ב־%1$s ניתן לגעת בסמן על המפה כדי להעביר אותו לראש הסמנים הפעילים מבלי לפתוח את תפריט ההקשר. + \\022 זיהוי של שלטי עצור מתחשב בכיוון הניווט +\n +\n • אלגוריתם חדש מספק ערכים בעלי משמעות לעלייה/ירידה למסלולי GPX +\n +\n • זמן הטיול (כלל נייסמית׳) מודע לתוואי הדרך (עלייה) +\n +\n + הפעלה בנגיעה אחת + נא לבחור להלן באיזו מהירות כיוון המפה יתחלף ממצב ‚לפי כיוון התנועה’ למצב ‚לפי מצפן’. + נקודות עומק ימיות בחצי הכדור הדרומי + נקודות עומק ימיות בחצי הכדור הצפוני + ב־OsmAnd נאסף מידע על אילו חלקים ביישומון משמשים אותך. המיקום שלך אף פעם לא נשלח, גם לא הקלט שלך ביישומון או פרטים על אזורים בהם צפית, חיפשת או הורדת. + הכרזה מחודשת של הנחיות הניווט במרווחי זמן קבועים. + חזרה על הנחיות הניווט + אחרים + לשמור את הנתונים כקובץ GPX ולייבא את נקודות הדרך למועדפים? + מועדפים משותפים דרך OsmAnd + ישנה בחירה חדשה לשלוט ביישומון באופן עיקרי באמצעות לוח המחוונים הגמיש או התפריט הסטטי. ניתן לשנות את בחירתך בהגדרות לוח המחוונים. From d2ab00d638b3bc171ec669d003a8c3ebd33511bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kompiuteri=C5=B3=20meistras=20+37060040?= Date: Wed, 20 Dec 2017 11:30:51 +0000 Subject: [PATCH 05/40] Translated using Weblate (Lithuanian) Currently translated at 95.7% (2410 of 2516 strings) --- OsmAnd/res/values-lt/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index e5c41dc44f..3c26f37065 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -2866,4 +2866,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Rodyti rodykles žemėlapyje Rodyti praeitą Slėpti praeitą + Užrašai pagal datą + Išvaizda žemėlapyje From 51d6b3e178d7f22e86f79dd4ea920eeb40862008 Mon Sep 17 00:00:00 2001 From: Igor Eliezer Date: Tue, 19 Dec 2017 19:19:50 +0000 Subject: [PATCH 06/40] Translated using Weblate (Portuguese (Brazil)) Currently translated at 80.5% (2026 of 2516 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 8dbb292cb6..acba9bc074 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -2265,7 +2265,7 @@ Pôr do Sol: %2$s Suprime a exibição de descontos do aplicativo e mensagens de eventos locais especiais. Registro Velocidade mínima para registro - Acuidade mínima para registro + Precisão mínima para registro Formato para as coordenadas geográficas. Voltar Ver @@ -2413,7 +2413,7 @@ Pôr do Sol: %2$s Sem dados Esquema de cores das curvas de nível Filtro: Definir velocidade mínima para um ponto ser registrado. - Deslocamento mínimo de registo + Deslocamento mínimo de registro Filtro: Definir a distância mínima da última posição para o ponto ser registrado. Filtro: Definir precisão mínima para um ponto ser registrado. POI de Natal From 47ffcd8b6ef555db5938ad3a45a6d1e9f5b6277a Mon Sep 17 00:00:00 2001 From: Matej U Date: Mon, 18 Dec 2017 20:10:52 +0000 Subject: [PATCH 07/40] Translated using Weblate (Slovenian) Currently translated at 100.0% (2516 of 2516 strings) --- OsmAnd/res/values-sl/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index 2cf7fda636..0cb8c66ce8 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -2967,10 +2967,10 @@ Koda predstavlja območje: %1$s x %2$s \n • OsmAnd Live: odprava hroščev, posodobitve, ki so samodejno vključene v navigacijo, se objavljajo vsakih 30 minut \n \n - \\022 Zaznava znakov STOP po novem vpliva na usmerjanje vožnje -\n -\n • Z novim algoritmom so vrednosti spustov in vzponov na sledeh GPX bolj smiselne -\n + \\022 Zaznava znakov STOP po novem vpliva na usmerjanje vožnje +\n +\n • Z novim algoritmom so vrednosti spustov in vzponov na sledeh GPX bolj smiselne +\n \n • Čas hoje upošteva tudi vrsto terena (vzpon) po Naismithovem pravilu \n \n From c80acceda50a49cc96533af7a079c10552367440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Babos=20G=C3=A1bor?= Date: Tue, 19 Dec 2017 11:31:14 +0000 Subject: [PATCH 08/40] Translated using Weblate (Hungarian) Currently translated at 100.0% (3322 of 3322 strings) --- OsmAnd/res/values-hu/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml index ec396ceb05..82afa6fee2 100644 --- a/OsmAnd/res/values-hu/phrases.xml +++ b/OsmAnd/res/values-hu/phrases.xml @@ -288,7 +288,7 @@ Horgászfelszerelés Képkeretbolt Bútorbolt - Vegyesbolt + Egyéb bolt Üveges Hallókészülékbolt Vadászfelszerelés From 03d3ecce4b16a028857de09c7b01241bf99eb123 Mon Sep 17 00:00:00 2001 From: Matej U Date: Mon, 18 Dec 2017 20:52:15 +0000 Subject: [PATCH 09/40] Translated using Weblate (Slovenian) Currently translated at 11.9% (396 of 3322 strings) --- OsmAnd/res/values-sl/phrases.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-sl/phrases.xml b/OsmAnd/res/values-sl/phrases.xml index 1b298d56c4..0c58823a3f 100644 --- a/OsmAnd/res/values-sl/phrases.xml +++ b/OsmAnd/res/values-sl/phrases.xml @@ -380,7 +380,7 @@ Internetni dostop: storitev Samostan - Turistične informacije + Informacije Ura Potovalna agencija Razgledna točka @@ -414,7 +414,7 @@ Glavni vhod Vhod Pohodniške poti - Vrsta + Vrsta goriva Vrsta Način plačila Vrsta dostopa do interneta From ea3fa0cc37374e1a55e0744ae9c2cc6c26018426 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Wed, 20 Dec 2017 16:36:59 +0200 Subject: [PATCH 10/40] Fix some issues with "Use values from the openstreetmap for all tags, except for changed" commit --- .../plus/osmedit/AdvancedEditPoiFragment.java | 8 +++-- .../net/osmand/plus/osmedit/EditPoiData.java | 17 +++++++---- .../plus/osmedit/EditPoiDialogFragment.java | 4 +-- .../plus/osmedit/OpenstreetmapRemoteUtil.java | 30 ++++++++++++------- 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java index 990da169d1..19c62eeecd 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java @@ -201,9 +201,11 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment if (!hasFocus) { if (!editPoiData.isInEdit()) { String s = tagEditText.getText().toString(); - editPoiData.removeTag(previousTag[0]); - editPoiData.putTag(s.toString(), valueEditText.getText().toString()); - previousTag[0] = s.toString(); + if (!previousTag[0].equals(s)) { + editPoiData.removeTag(previousTag[0]); + editPoiData.putTag(s, valueEditText.getText().toString()); + previousTag[0] = s; + } } } else { tagAdapter.getFilter().filter(tagEditText.getText()); diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java index 146ec426f2..df1b6971b1 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java @@ -37,7 +37,7 @@ public class EditPoiData { category = app.getPoiTypes().getOtherPoiCategory(); entity = node; initTags(node); - updateTypeTag(getPoiTypeString()); + updateTypeTag(getPoiTypeString(), false); } public Map getAllTranslatedSubTypes() { @@ -109,15 +109,18 @@ public class EditPoiData { public Map getTagValues() { return Collections.unmodifiableMap(tagValues); } - + public void putTag(String tag, String value) { checkNotInEdit(); - try { + try { isInEdit = true; tagValues.remove(REMOVE_TAG_PREFIX+tag); + String oldValue = tagValues.get(tag); + if (oldValue == null || !oldValue.equals(value)) { + changedTags.add(tag); + } tagValues.put(tag, value); - changedTags.add(tag); notifyDatasetChanged(tag); } finally { isInEdit = false; @@ -193,9 +196,11 @@ public class EditPoiData { return hasChangesBeenMade; } - public void updateTypeTag(String string) { + public void updateTypeTag(String string, boolean userChanges) { tagValues.put(POI_TYPE_TAG, string); - changedTags.add(POI_TYPE_TAG); + if (userChanges) { + changedTags.add(POI_TYPE_TAG); + } retrieveType(); PoiType pt = getPoiTypeDefined(); if(pt != null) { diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java index 01c5e57447..663faba576 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java @@ -258,6 +258,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment { poiNameEditText.setText(editPoiData.getTag(OSMSettings.OSMTagKey.NAME.getValue())); poiTypeTextInputLayout = (TextInputLayout) view.findViewById(R.id.poiTypeTextInputLayout); poiTypeEditText = (AutoCompleteTextView) view.findViewById(R.id.poiTypeEditText); + poiTypeEditText.setText(editPoiData.getPoiTypeString()); poiTypeEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -270,7 +271,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment { @Override public void afterTextChanged(Editable s) { if (!getEditPoiData().isInEdit()) { - getEditPoiData().updateTypeTag(s.toString()); + getEditPoiData().updateTypeTag(s.toString(), true); if (!getMyApplication().isApplicationInitializing()) { poiTypeTextInputLayout.setHint(editPoiData.getPoiCategory().getTranslation()); } @@ -279,7 +280,6 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment { }); poiNameEditText.setOnEditorActionListener(mOnEditorActionListener); poiTypeEditText.setOnEditorActionListener(mOnEditorActionListener); - poiTypeEditText.setText(editPoiData.getPoiTypeString()); poiTypeEditText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(final View v, MotionEvent event) { diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java index a03185e54f..fa8a086283 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java @@ -37,6 +37,7 @@ import java.io.StringWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.text.MessageFormat; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; @@ -330,11 +331,20 @@ public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil { EntityId id = new Entity.EntityId(EntityType.NODE, nodeId); Node entity = (Node) st.getRegisteredEntities().get(id); // merge non existing tags - for (String rtag : entity.getTagKeySet()) { - if (!deletedTag(n, rtag) && (!containsTag(n, rtag) || !tagChanged(n, rtag))) { - n.putTagNoLC(rtag, entity.getTag(rtag)); + Map updatedTags = new HashMap<>(); + for (String tagKey : entity.getTagKeySet()) { + if (tagKey != null && !deletedTag(n, tagKey)) { + addIfNotNull(tagKey, entity.getTag(tagKey), updatedTags); } } + if (n.getChangedTags() != null) { + for (String tagKey : n.getChangedTags()) { + if (tagKey != null) { + addIfNotNull(tagKey, n.getTag(tagKey), updatedTags); + } + } + } + n.replaceTags(updatedTags); if(MapUtils.getDistance(n.getLatLon(), entity.getLatLon()) < 10) { // avoid shifting due to round error n.setLatitude(entity.getLatitude()); @@ -353,18 +363,16 @@ public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil { return null; } + private void addIfNotNull(String key, String value, Map tags) { + if (value != null) { + tags.put(key, value); + } + } + private boolean deletedTag(Node node, String tag) { return node.getTagKeySet().contains(EditPoiData.REMOVE_TAG_PREFIX + tag); } - private boolean containsTag(Node node, String tag) { - return node.getTagKeySet().contains(tag); - } - - private boolean tagChanged(Node node, String tag) { - return node.getChangedTags() != null && node.getChangedTags().contains(tag); - } - @Override public Node loadNode(Amenity n) { if (n.getId() % 2 == 1) { From 37e68dc582010d172dc817fe451a1b17b37cd738 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Wed, 20 Dec 2017 19:16:09 +0200 Subject: [PATCH 11/40] Import all notes to the gpx if selected only locations item and import selected notes otherwise --- OsmAnd/res/layout/note_list_item.xml | 12 +++++++----- OsmAnd/res/values/strings.xml | 2 ++ .../net/osmand/plus/audionotes/NotesFragment.java | 9 ++++++++- .../plus/audionotes/adapters/NotesAdapter.java | 9 ++++++++- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/layout/note_list_item.xml b/OsmAnd/res/layout/note_list_item.xml index 91f89197c9..b0aa6c6c20 100644 --- a/OsmAnd/res/layout/note_list_item.xml +++ b/OsmAnd/res/layout/note_list_item.xml @@ -9,8 +9,9 @@ + android:layout_height="wrap_content" + android:background="?attr/selectableItemBackground" + android:minHeight="@dimen/bottom_sheet_selected_item_title_height"> diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index ddd4d52ea3..8284ca7348 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -9,6 +9,8 @@ 3. All your modified/created strings are in the top of the file (to make easier find what\'s translated). PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy --> + GPX file with coordinates and data of the selected notes. + GPX file with coordinates and data of all notes. \u2022 Detection of stop signs now considers driving direction\n\n \u2022 New algorithm providing meaningful ascent/descent values for GPX tracks\n\n diff --git a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java index c43e4fb721..f92ad0d035 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java @@ -470,6 +470,13 @@ public class NotesFragment extends OsmAndListFragment { startActivity(Intent.createChooser(intent, getString(R.string.share_note))); } + private Set getRecordingsForGpx(Set selected) { + if (selected.size() == 1 && selected.contains(SHARE_LOCATION_FILE)) { + return new HashSet<>(plugin.getAllRecordings()); + } + return selected; + } + @Nullable private File generateGPXForRecordings(Set selected) { File externalCacheDir = getActivity().getExternalCacheDir(); @@ -479,7 +486,7 @@ public class NotesFragment extends OsmAndListFragment { File tmpFile = new File(externalCacheDir, "share/noteLocations.gpx"); tmpFile.getParentFile().mkdirs(); GPXFile file = new GPXFile(); - for (Recording r : selected) { + for (Recording r : getRecordingsForGpx(selected)) { if (r != SHARE_LOCATION_FILE) { String desc = r.getDescriptionName(r.getFileName()); if (desc == null) { diff --git a/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java b/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java index fa7f286156..1fe1548665 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java @@ -205,7 +205,7 @@ public class NotesAdapter extends ArrayAdapter { setupBackground(holder.view); if (recording == NotesFragment.SHARE_LOCATION_FILE) { holder.title.setText(R.string.av_locations); - holder.description.setText(R.string.av_locations_descr); + holder.description.setText(getLocationsDescId()); } else { holder.title.setText(recording.getName(app, true)); holder.description.setText(recording.getExtendedDescription(app)); @@ -255,6 +255,13 @@ public class NotesAdapter extends ArrayAdapter { }); } + private int getLocationsDescId() { + if (selected.contains(NotesFragment.SHARE_LOCATION_FILE)) { + return selected.size() == 1 ? R.string.av_locations_all_desc : R.string.av_locations_selected_desc; + } + return R.string.av_locations_descr; + } + private void setupBackground(View view) { if (!portrait) { view.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.color_transparent)); From 91e7c9d7e69b4af8ddd1b4942d165a36baadb2c8 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Wed, 20 Dec 2017 20:58:25 +0100 Subject: [PATCH 12/40] Update strings.xml --- OsmAnd/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 0b504a603f..dc562754ce 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -432,7 +432,7 @@ Пользовательские Файл с избранными уже существует. Вы хотите его заменить? Настройка профиля - Профиль + Профиль по умолчанию Выберите профиль работы приложения (в каждом профиле настройки хранятся отдельно). Общие настройки Общие настройки приложения From 1ba84e719aee05c9d43dd6693719c0fdaf6eae42 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 20 Dec 2017 22:46:06 +0200 Subject: [PATCH 13/40] Add translations --- 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 dc562754ce..a6be4c71c7 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -1,5 +1,7 @@ + Файл GPX с координатами и данными выбранных заметок. + Файл GPX с координатами и данными всех заметок. Место Ваш пункт назначения находится на частной территории. Вы хотите разрешить доступ к частным дорогам для этой поездки? Искать снова From bd8b497d10d6aa4e4b83e8b4133028b9dabc3f7c Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 20 Dec 2017 23:25:24 +0200 Subject: [PATCH 14/40] Fix #4814 --- .../osmand/plus/audionotes/AudioVideoNotesPlugin.java | 9 +++++++++ OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java | 1 + 2 files changed, 10 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java index 379fb7339f..f811b6abc6 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java @@ -481,6 +481,15 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { return date + " • " + sz + " • " + getDuration(ctx, false); } + public String getTypeWithDuration(Context ctx) { + StringBuilder res = new StringBuilder(getType(ctx)); + if (isAudio() || isVideo()) { + updateInternalDescription(); + res.append(", ").append(getDuration(ctx, false)); + } + return res.toString(); + } + public String getPlainDuration(boolean accessibilityEnabled) { updateInternalDescription(); if (duration > 0) { diff --git a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java index f92ad0d035..a516fc0b20 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java @@ -499,6 +499,7 @@ public class NotesFragment extends OsmAndListFragment { wpt.link = r.getFileName(); wpt.time = r.getFile().lastModified(); wpt.category = r.getSearchHistoryType(); + wpt.desc = r.getTypeWithDuration(getContext()); getMyApplication().getSelectedGpxHelper().addPoint(wpt, file); } } From cc1df51e8895dfb4cb0052eae1b09eca7ba8acbc Mon Sep 17 00:00:00 2001 From: PaulStets Date: Thu, 21 Dec 2017 10:29:23 +0200 Subject: [PATCH 15/40] Renamed variable --- OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index 20373f42b6..904f2b3833 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -131,11 +131,11 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect String countryUrlString = selectedCountryItem.getDownloadName(); if (countryUrlString.length() > 0) { Bundle bl = new Bundle(); - boolean is = v.getId() == R.id.numberOfRecipientsLayout; + boolean isRecipientsReport = v.getId() == R.id.numberOfRecipientsLayout; bl.putString(UsersReportFragment.URL_REQUEST, - String.format(is ? RECIPIENTS_BY_MONTH : USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); + String.format(isRecipientsReport ? RECIPIENTS_BY_MONTH : USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); userReportFragment.setArguments(bl); - userReportFragment.show(getChildFragmentManager(), is ? RECIPIENTS_FRAGMENT : EDITS_FRAGMENT); + userReportFragment.show(getChildFragmentManager(), isRecipientsReport ? RECIPIENTS_FRAGMENT : EDITS_FRAGMENT); } } }; From b80c81eac8f5192fbc674ac65dadcdf6f62acb40 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Thu, 21 Dec 2017 16:20:05 +0200 Subject: [PATCH 16/40] Replace icon --- OsmAnd/res/layout/route_info_layout.xml | 2 +- .../net/osmand/plus/activities/ShowRouteInfoDialogFragment.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/layout/route_info_layout.xml b/OsmAnd/res/layout/route_info_layout.xml index 08685ae667..822b7c87fd 100644 --- a/OsmAnd/res/layout/route_info_layout.xml +++ b/OsmAnd/res/layout/route_info_layout.xml @@ -107,7 +107,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/ic_action_polygom_dark"/> + android:src="@drawable/ic_action_route_distance"/> Date: Thu, 21 Dec 2017 16:22:53 +0200 Subject: [PATCH 17/40] Added total sum to reports --- OsmAnd/res/layout/fragment_reports.xml | 55 +++++++++++++++++++ OsmAnd/res/values/strings.xml | 1 + .../plus/liveupdates/ReportsFragment.java | 30 +++++++++- 3 files changed, 84 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/layout/fragment_reports.xml b/OsmAnd/res/layout/fragment_reports.xml index b900f162e6..84e6564ccb 100644 --- a/OsmAnd/res/layout/fragment_reports.xml +++ b/OsmAnd/res/layout/fragment_reports.xml @@ -274,6 +274,61 @@ android:layout_marginLeft="56dp" android:background="?attr/dashboard_divider"/> + + + + + + + + + + + + + + + + + + + Move Point Add to a GPX track OSM Recipients + Total Donations diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index 904f2b3833..1e7ff0d3bd 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -18,6 +18,7 @@ import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.Spinner; import android.widget.TextView; @@ -72,11 +73,15 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect private ImageView numberOfEditsIcon; private ImageView donationsIcon; private ImageView numberOfRecipientsIcon; + private ImageView donationsTotalIcon; + private TextView donationsTotalTitle; + private TextView donationsTotalTextView; private TextView numberOfContributorsTitle; private TextView numberOfEditsTitle; private TextView numberOfRecipientsTitle; private TextView donationsTitle; private ProgressBar progressBar; + private LinearLayout donationsTotalLayout; private int inactiveColor; private int textColorPrimary; @@ -159,9 +164,11 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect numberOfEditsIcon = (ImageView) view.findViewById(R.id.numberOfEditsIcon); numberOfRecipientsIcon = (ImageView) view.findViewById(R.id.numberOfRecipientsIcon); donationsIcon = (ImageView) view.findViewById(R.id.donationsIcon); + donationsTotalIcon = (ImageView) view.findViewById(R.id.donationsTotalIcon); setThemedDrawable(numberOfContributorsIcon, R.drawable.ic_action_group2); setThemedDrawable(numberOfRecipientsIcon, R.drawable.ic_group); setThemedDrawable(donationsIcon, R.drawable.ic_action_bitcoin); + setThemedDrawable(donationsTotalIcon, R.drawable.ic_action_bitcoin); setThemedDrawable(numberOfEditsIcon, R.drawable.ic_map); @@ -169,6 +176,10 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect numberOfEditsTitle = (TextView) view.findViewById(R.id.numberOfEditsTitle); donationsTitle = (TextView) view.findViewById(R.id.donationsTitle); numberOfRecipientsTitle = (TextView) view.findViewById(R.id.numberOfRecipientsTitle); + donationsTotalLayout = (LinearLayout) view.findViewById(R.id.donationsTotal); + donationsTotalTitle = (TextView) view.findViewById(R.id.donationsTotalTitle); + donationsTotalTextView = (TextView) view.findViewById(R.id.donationsTotalTextView); + progressBar = (ProgressBar) view.findViewById(R.id.progress); @@ -207,7 +218,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect tryUpdateData(monthUrlString, countryUrlString); } - private void tryUpdateData(String monthUrlString, String regionUrlString) { + private void tryUpdateData(String monthUrlString, final String regionUrlString) { GetJsonAsyncTask.OnResponseListener onResponseListener = new GetJsonAsyncTask.OnResponseListener() { @Override @@ -255,7 +266,13 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect recipientsTextView.setText(String.valueOf(response.regionCount)); } if (donationsTextView != null) { - donationsTextView.setText(String.format("%.3f", response.regionBtc*1000.0) + " mBTC"); + donationsTextView.setText(String.format("%.3f", response.regionBtc*1000f) + " mBTC"); + } + if (donationsTotalLayout != null && + donationsTotalTextView != null) { + boolean world = regionUrlString.isEmpty(); + donationsTotalLayout.setVisibility(world ? View.VISIBLE : View.GONE); + donationsTotalTextView.setText(String.format("%.3f", response.btc*1000f) + " mBTC"); } } disableProgress(); @@ -269,6 +286,9 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect if (donationsTextView != null) { donationsTextView.setText("-"); } + if (donationsTotalTextView != null) { + donationsTotalTextView.setText("-"); + } String recfinalUrl = String.format(RECIPIENTS_BY_MONTH, monthUrlString, regionUrlString); recChangesByMontAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, recfinalUrl); } @@ -368,16 +388,19 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect numberOfEditsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_map, inactiveColor)); numberOfRecipientsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_group, inactiveColor)); donationsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_action_bitcoin, inactiveColor)); + donationsTotalIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_action_bitcoin, inactiveColor)); numberOfContributorsTitle.setTextColor(inactiveColor); numberOfEditsTitle.setTextColor(inactiveColor); numberOfRecipientsTitle.setTextColor(inactiveColor); donationsTitle.setTextColor(inactiveColor); + donationsTotalTitle.setTextColor(inactiveColor); progressBar.setVisibility(View.VISIBLE); contributorsTextView.setTextColor(inactiveColor); donationsTextView.setTextColor(inactiveColor); + donationsTotalTextView.setTextColor(inactiveColor); recipientsTextView.setTextColor(inactiveColor); editsTextView.setTextColor(inactiveColor); } @@ -387,17 +410,20 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect numberOfEditsIcon.setImageDrawable(getContentIcon(R.drawable.ic_map)); numberOfRecipientsIcon.setImageDrawable(getContentIcon(R.drawable.ic_group)); donationsIcon.setImageDrawable(getContentIcon(R.drawable.ic_action_bitcoin)); + donationsTotalIcon.setImageDrawable(getContentIcon(R.drawable.ic_action_bitcoin)); numberOfContributorsTitle.setTextColor(textColorSecondary); numberOfEditsTitle.setTextColor(textColorSecondary); numberOfRecipientsTitle.setTextColor(textColorSecondary); donationsTitle.setTextColor(textColorSecondary); + donationsTotalTitle.setTextColor(textColorSecondary); progressBar.setVisibility(View.INVISIBLE); contributorsTextView.setTextColor(textColorPrimary); editsTextView.setTextColor(textColorPrimary); donationsTextView.setTextColor(textColorPrimary); + donationsTotalTextView.setTextColor(textColorPrimary); recipientsTextView.setTextColor(textColorPrimary); } From fce7cb05e737deee5be38f30507629fc96c1adc3 Mon Sep 17 00:00:00 2001 From: PaulStets Date: Thu, 21 Dec 2017 16:32:43 +0200 Subject: [PATCH 18/40] Refactoring --- OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index 1e7ff0d3bd..e6838776ed 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -270,8 +270,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect } if (donationsTotalLayout != null && donationsTotalTextView != null) { - boolean world = regionUrlString.isEmpty(); - donationsTotalLayout.setVisibility(world ? View.VISIBLE : View.GONE); + donationsTotalLayout.setVisibility(regionUrlString.isEmpty() ? View.VISIBLE : View.GONE); donationsTotalTextView.setText(String.format("%.3f", response.btc*1000f) + " mBTC"); } } From 42f254adb83ed0bc78a301d04c9e4173f61b48f4 Mon Sep 17 00:00:00 2001 From: Dmitriy Prodchenko Date: Thu, 21 Dec 2017 16:54:44 +0200 Subject: [PATCH 19/40] Add 16dp icons for OSM Editing context menu --- .../res/drawable-hdpi/ic_action_type_add_16.png | Bin 0 -> 1278 bytes .../drawable-hdpi/ic_action_type_delete_16.png | Bin 0 -> 1275 bytes .../res/drawable-hdpi/ic_action_type_edit_16.png | Bin 0 -> 1365 bytes .../res/drawable-mdpi/ic_action_type_add_16.png | Bin 0 -> 1220 bytes .../drawable-mdpi/ic_action_type_delete_16.png | Bin 0 -> 1182 bytes .../res/drawable-mdpi/ic_action_type_edit_16.png | Bin 0 -> 1251 bytes .../res/drawable-xhdpi/ic_action_type_add_16.png | Bin 0 -> 1441 bytes .../drawable-xhdpi/ic_action_type_delete_16.png | Bin 0 -> 1412 bytes .../drawable-xhdpi/ic_action_type_edit_16.png | Bin 0 -> 1539 bytes .../drawable-xxhdpi/ic_action_type_add_16.png | Bin 0 -> 1683 bytes .../drawable-xxhdpi/ic_action_type_delete_16.png | Bin 0 -> 1615 bytes .../drawable-xxhdpi/ic_action_type_edit_16.png | Bin 0 -> 1793 bytes 12 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_type_add_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_type_delete_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_type_edit_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_type_add_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_type_delete_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_type_edit_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_type_add_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_type_delete_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_type_edit_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_type_add_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_type_delete_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_type_edit_16.png diff --git a/OsmAnd/res/drawable-hdpi/ic_action_type_add_16.png b/OsmAnd/res/drawable-hdpi/ic_action_type_add_16.png new file mode 100644 index 0000000000000000000000000000000000000000..ff4d2d7400e631ca6fc63bf5bdc98b54fa480102 GIT binary patch literal 1278 zcmbVMZD`zN98cFd%2?exE7pBkmO5?0TwX4@OJcM3cFEZry;^Sv-quab%X4jLlU$S3 zyLO^Oyh(8zqMdYZDw{BGGA2@AC{ybV5i7&06(>cevKQ%`4%Ffch(2lWsvpWe7|8QH z|0loS|NWnluFiXFS8rI2AV_VzT}r~e!GCL3!S&mm_&eNg_vEy<-OhM9#Q{h}w^e|~ zO{E7Ufuau$Oo0{zsdkN2+Dj)o1kE-BijN88%`9XiNK0!zt7v_|LsigYSR!`)%p`^y zx`;i%CdfoK3VMz9VFzpAZ*Uc?sk3h?Y-6BxPx z@%lt;(W!Kz3ys0P@^bi!!^8`r~G>t<9?haX=lE*E#v7$i&uI3n7&#*1j z*QluWpeJI`)5Q?XY$CCw*mBE>f+-{NN|vAkBw?C`m2 zg0YMPnwsIr3`601IH=(auK`>QF&v%&98WP}k|S9KEA#dLn>+$KMfjcapU$aV!FKeI zOLG8)rAY!793KbH$^6LFaRjN_6qh2Y{Omi=m2NJz)yuD}JrKAf{S|t0FmBjq3QnXo8L~}qMe{F-g(!7w|@HZoOhvb^!tfFkB`mK_=zc|;g9I5PtJ`@ zJii8u?rr$(@WHQNz9!Inp4eGE+wt)iDOMb-J-fe3%oHD;Imp+y7QJH^OS_o8=eyhX z8?PHx{oB4fd6oO@d`$cNgMs>$)9j%K)NS~{QU1bX&(`f)ak^CKa-wq`!}GtKYCN{@$(p+9Q$=~t zuT@U|*4-OEt$xw|t8LqdAI;3X_SB9|W_$PAD`$Ql{rg>TH8I((L|!=Z-rV@+X0~`w gs5n1{$ zsXN_7v#>sZ#)vc|Xd&r?AQIZt@`6+Y1ZilfQ81CHNmGo*#29M`8bTs?r`@eSG(0%T z+kc}XbF4vTlLExY==-2cpwls4N zLp3#uy% zWr#Bv#a5ikrFzl0VF5Hqgm8rpaA=q(=pfHA>@z4s(IJxJNt(qeTA+A=qS4xiL2H(p z7cyc`%@&lR*ns1h0!fxiC887{46C1{d7dXJhGZBVB5->|cO)0r?T)$z5!i~QnT}@Y zsHahqjbSH>K~Gn%P%u-eRmHkp3lt0)=}IO^6BJn}c=uXH+fD}j>&BXBJ3C?mG6QU5 z*iv9V@*QaWILk2- z&M^!H2TBeGRXH!qY+cV<`~Vy439~Uy6vG@%C&IiKOK^#BObjN%-dUZS)NM!76;QXW zLEANM_`X~rZUMSHl4XXL$wSa){;dJm7em4O1Kyl&~6K{lCE@p;M$+DgUXQ`W7rl zZ@JnBP+09Gpu_gDV4o!YPZtrSVPjH^W!>*Td*Q2x_foA#uWWj>yS(rG14~yY&Q0C@ zT))b1iu(WN+ymnDQgz4FjUye`tEIzZOP?6Oy?*-SN%={$((tt}T~W}xz3T&ukKaD{ zP;P_Izi!XgNojYavibcjEyvF{adO%9Da>g5d}aGzPi$B`w(*bIH@hmF9NYP7z_Z%e?X>qc9*WP~saGbhp literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_type_edit_16.png b/OsmAnd/res/drawable-hdpi/ic_action_type_edit_16.png new file mode 100644 index 0000000000000000000000000000000000000000..8f02b070016fe9fba0870bee84d649bae4ccc5e8 GIT binary patch literal 1365 zcmbVMeN5bB81L>FAPbq9`w(maU`ySUE*Os<$ z$LR=Ti(v-LvKcUbVWx|jQNrBRWlSVtG1*{_KXfchRGfmDCJZu{xcxI*;LtzF{;)~k z_kG^?`Td^feLmhpHPz1)78Dmi5L6hfV#CJ#u=(fb8sk*T^S3b->Hd1XR*vZ@P6d!x zkfQ(&Cb>os2At5=d;wHKkW~{S^?H41H^a+G8)xd+(n-ZYLr~?8w8HTTpuS66hS9PBuvzllCAByo|9n zw=o1>P|*_}WYMYmPz~&pRRB9}E|e!66zryLgp;Q1WCd);2^WUb7(t>q!QeE56Y$c9 z7}iuF#)R3xk}X5>AaPw+7z|6LQnr-CCaaAYLDMvb+cCQxH8fDIP13nEDru!z1{P?% zDk{1tOR&kvMdcRVgBYGJULmQ3Ld(RGwiGBMWLTP0Fv5mo$)tI&1#L|agMZyvQCo|& zDF6!tO>R+nBOkHSEZB(M{SBFlhBwS}s%RvIYhq=-B?%-w$a)at#3qOWL-D-B<#Ny{ zaMCzRQg#ld>~`E3@Tk)%L}Sq?ndMmt?;yPaH|Zr=)=d$F-%Yb#Kjn9OS*PD^o@KE? zNz*xr2U**qVcQg9wP}et5hb-ZR{~J8a za0)Xk4Ajkye{g(NuQzXeb^F_$ z+YivzPdjfksV`Lb#&vLfn@}av$_OGVDeCu^1Ks)0N{JS$zyeDrbdc-~C!y;sIgztetwe&;s#zDapklW^r=N&JR9)(2Uk XEqfEwRi)>DH6Oa5znUG``Eut!2u|Hs literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_type_add_16.png b/OsmAnd/res/drawable-mdpi/ic_action_type_add_16.png new file mode 100644 index 0000000000000000000000000000000000000000..db1826da8bac804217b897056783816e97f9cebd GIT binary patch literal 1220 zcmbVMTWl0n7@nqqO3C87sEC0$P8%Y@x$ex)gbXBU>Rwd`(mNr-eVXSzdoF3e2b zY10S81JV#feDO*u4?Y>wgkm7Ua1EH$#LJUh60pXkiZMz-ec(mUw7b=Zh6g8^bIyOx z_x=BW{>zyh9M~D_ezqGykXUh-T!wQz`X5^j$LAjWt-xtxkgo+5#|WB=2av4pr~oZm z$}lJcMISpf3(^SE>6_JBP%G_`G{+*82t$OH3)u*g?h9Q-8vy~Tf??CnV84HU5kpNq zgT2a?sFIrlb#vFa2P)$ORc(Ak6LqZbB{UsMP=N&k1r4o+?Mq<>ThuGTb+k=l=prN- z$zV%P)k=eC&hY@s5h+}wlLE?%1kH&8!@h_z6rCa|k)&Ciq9sa{C>m{j7_{c;hE$dd zEn85^VD%tyC6a75n?y57INmTxi=s$U49PG!MBx6I9Vj7g`#o(9GVnFebOY0|(MY4B zI-@}bgPty3!E#HbWyQAN3KR?(87eMG6BKD#(Y+SYeozMgy0IeKua3EZECb&e^)#3d zqo+-Vv3sW09m!jx94%d02A=sk&(fX1DBkJ{8}#{qdn6-WJ~3IWvd6aI z@?2^{Ku$+DW=pICom)57k?Wb zp?~7u@!C+WKo9%pd6^8DaHz`qN$O-CG0I%O7A<`_2{YYn9oV z(fQ5`+^NK0y;JY+J^KrOr1z;W4)#7E;@=)xb++%flc%5ghPjvc^Xl4#b)RiIxgpDb zGWqMLcfWr(oVvNY>nrNZ{a-(E?0zgZasEyrbz*LC=u+aw=9x3~u}hUVI*`i-x#7ak RZ%#z-N-;kmPxlWU{s*m0m=FK} literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_type_delete_16.png b/OsmAnd/res/drawable-mdpi/ic_action_type_delete_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd6c72dd26b56741bf4138f873fa34006e29d42 GIT binary patch literal 1182 zcmbVMTWAzl7#@ilwJ{YDMG+h)*j3xP&+g6)S#{mnt&47&Y*q}#igP)eon~jwICJ7o zB8YfF@}!{BB8?YXL`q2&OQ99ih%bRgR7xMDH`nY73!vZAIXWuDI_6)l~Wv±&n87FoojIOZh&;x1P$9Zwq556@8zl) zALt1BB?zmHF6gX41cM6n$V`S@U(ik4jpPkcjiy7^fN$>yR?deGIhAD9p2Y#vD9c<~ z;%O@>nzW>tfHo46OqYSI@KTbKxwuZ%`PPRfkHt>0QK$T`a~fB;9i!vS9AIH)l7NfH z$H#LrzHwqbp0UxqmM(=4e>%l~bemgp>=gMYv#%>Ty!-DrZ*N{W($VTZ`hhunaq`it z))DV$Y2EYD=EB&4+S(P{wND-_`(w1F^y25{kGO~ z>?UGcGPl&O--iCWuEly=FF(I}hAHO6rFYJpSbgj1p0n*=#oC^_H%e=s4FCS)>YaB_ z4}I5?9~o>7m(QIWdz@D$uYJ?><-+?9V=c!k literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_type_edit_16.png b/OsmAnd/res/drawable-mdpi/ic_action_type_edit_16.png new file mode 100644 index 0000000000000000000000000000000000000000..a33538c185f0bea940a55f4e4ab8d5a5bd324611 GIT binary patch literal 1251 zcmbVMZEVzJ9Pb2&jEw99q9S3n#AE~d-n(m?JC^g>jWgFVZpS!?;`Q3+wz{>wwVl@u zq6Q`6GG8XRD2W124B^8P3^6Ve$vHGZqeLN+2pZ!Q_+VnTeIbzqpKf>44+|e`(&u^p zPk+Dv`@gStw71pQt*b*2q&~S#O2fS&cps>RYvbHq6>g7sa@Om#3tmZe020^jJV2AC z+6~e`)d%}8f+&J4bB#>a%PJ{RvrR$`FobUwAsa!WEq+nedVz=LLAPPWu)jV#kD-Ph z!*+!fN+~8lkFjmY0i8qb8EvRn6LhR)D;o7hsK5lCiuz`s<%)g`o7XGCb8t;!=sd*h zjbRH;Wt9#zVLJc~5n)`TSsslD1RWB1hTDQN6dfihfuuQ{qD4v&DH^Rj7_{c-1u-qP zR%}5jhV^(}Q6$MysYH}m!gjhzS`Y-1Vn~L;Ap&;?El>4v%iUPjAOTl%jG|}Q78+<& z^Y(xj!=R@NA(%x)SyXJfl|;dmk-l0aX@Vk6Gl***?RshOuNzCE-OOMSkZIuB1C9pk zQP@}|!`$85PymG9h}#_l7DeroY;C{YTUX*nWDahaDRaVaE6ST5dLq|o&L>$k zmT*AJ7kH|`(YPLAHJlSPfak*;j~4(h&|HM#sgR0Q`1=1%9toWygHHKR=Txs?I|j$a zIe^0ABmoPKj|1mq)8*Ow5u~OzDaAAXPa}twx-Y1PgV(aBh|H1URsGYK>dzg1zx=3Q zGqZYca?O>4xtY=lnfiQm*UIld+IstV>gMC`Uc7L1&%Uu?^uC=9%-D(g*0xTOZGj+&HttIsIhrshwk!%YL6&^{f8J%U}2ZdF9;l@y5bv*ZQ}j zbF?-tt^G7xZoYNk!EaZzy)iL7ZG7h*yP>|mJ9>tj`AYtwdHo$B_1ol0<@%kbFHdfc z9ozTz^p@KlvuC>}K6z$*`H!hXeD1O7m8I8q&$f{@waAArM5p$jSJnl;ouu3@O+1l1 F@DCKmudx6C literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_type_add_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_type_add_16.png new file mode 100644 index 0000000000000000000000000000000000000000..9713bfff68b167777184bbc352798c869a53c571 GIT binary patch literal 1441 zcmbVMdu-Hn9PeJhE)MrVr^G>1rm(SI+k3Xn4tBfV;E)^SHr;_t?Dc;4a9ms49(Ox= zWjw-!n8?t~so@b+qHYosnZqD3HkYxn1vPVGLN+tELD!XGy2@Av!u z`uTj{-`1}$UzMR*sDU6T!?BuisXH8h=gm=9ITrg<-JVwLZlyx-DG^ozkku=A0PF~{ ze&7PExAwJePz*sSa;e8DZ$bX}`WylW zy%wa(=)|3(4FrO#V-l!{l~;1H8jkWJD_6k9QCd|H0tyR9LtA*6j#`jOy|j9cUt(7*thlY*iW z6nHqUk@W~+#e%4wPK6K>oz5A>ygZ#KHDy?o6){4KW1&zyu1U14xWK<|%!-yPYej&$ zfGmV1POXP;NrJ5A?$L(gK-C+1ofK4y!fs&%E*t{9;$SR@`bFyvdTEm5^d^&@LV=OO zQ3I)CQBtSF)dlw$jb4w><1r-k%*NMIl#VI0+Zo185`^7MF;+WiH(ME_-K;lQ%Mx4% zFDoq1frRa#YI~Z?Jd#V>B)}?yR4E8s5?!!9ASi+y5JcE!gO@p3F388_f_ROlLS}#z z+zPy9k`RI?lS~I^ae(vqNZe;2P_J3fp$3WrsK;a=Q6C^F!eGWp+{hx+eDD8F9;P~l z#XIFcos+my+cAEenFCdrnIyog<0Gka;@JP>_YjoS;b5$l(W|{xJ!>wOEchV*iTYns z3f!#&r5EpYg8ZYg&ap)0lmBY^2Z9 z&{lpZzf`}eeLj2Ol-0d7`k)BevuAO8?r=lq@A+Xv>aLTvK`x6ppqoWa?1!<842H)YGHH=L>6-OJa;W=htr!i~XL_OYd*L{c_q!oqVTp zNfk6uUHW`wE;=gSPCYujZMQe2eLsQUU3sK!GzJ06bbV`PYwg1|q*>|8XmY)Hlw-d< z?P(5A;Qljdix%s`b4km*K@&NA>EPj)G=V}_(vIE9+rAn)asK|PANSfD>UZ9FD!XMt zzduvlIJE0Z_DJc)9E{Czv^d?|_3rw5cTxxR%BawS1$m1xT<@OJ4tjUHJ8WUg z0_a}YCI)5kWebsgkmwdLLQD)%WH2H_2C}(09f53LoC^xs%r>0PD^Tz#R&N7DlHr4TI)c%MgMz|VsWNwm1)8Y=GUNr-0nVoVy?;Op z1z4N5%m-Ld#IdY9? zp(Ti1W794>RqiT+?7Rpdv)%$Tm=TApgdQ^!xWTjwGN70RK?wvi!6-(e1c_qM%A-}R ziL8(GP`N9%6v?Lb%d$WsNGKH2hm3k&tVS?`AQ04m7!0t2fTem)ro%8N>7p7aATeS< zkOMpiMKsc0zD~Aj6;GE#2nsIOs$x!BNtBW@Buonkrbm%rFcQ}iT9Q5BUpLl7OC|LJ zKs-R=>qJJWhffzJE4h2Tp$Jg%hAb2VN>S)qif8JAfRmk+O{;v-vjLXG8OCU_7zr4d z2^2Qr1{%f<22@#4ui4CceO|9As%I^}As00gCVMVLS#b<=SP3fIfjg|(l-Xf5nzD1F zTqh^VG{=Cb?SNu?h3j}Mm$Zw3mU*#+=WC-~P~_)jUh?w-WVb`lxo9T9MdTfk8ZC!R z0Wt78U~@%22rVU<46NY*1 z_Zz>$TTdo_7|zRteoKm@;vO9uZoHrWF#TYXZuE?;NxdmG=?I#xK8~~`q?`qf7u-j6 zUl;xmgZ%A2FgBLgp>AE&e8N5PaBoNN=WU?TG10RB(~5H~Z=-jR@mt?^Z5n>+>ggQa zW!0mO#6K@?Tb!I6O^AI}=oUKbFa7bsY(;Wq&!|RIG#8}V*ADGCUwmWVTSv!=+S>|m z93SBpYB!{el|3|E2YXck@Dlm^Iu?dx8hIoG2L!n12Z2b?b(|w^!=KWI!=|X ztE(8Q+N|C(|AJ|@x9OE5v85wfSDM1C=1o78KV8~VAWTec?991Wd3D=NDJtmvrOBg* zGqUcH`tUFD(+gnm!C>3WhMs)Qf%kimYwe;%Ux{zIf41LR*H!FTpsts1oXOH%ynT#- zpY(U08cD5*n;K-NW^d1L_|lJFYx%zR*~6F5o!ClehNKZG?dF5`IzN(?neSJ&Sm?AA-@@nO*!UI_z$<2cfk@fK| zp7m6ecJrA45TgnOMOu+_4#i2Lkqu*vK~dJ(0FXI7D6?D%uYqpfCj@NJo#Q7VQ1IBG z1r{gjlWxmm>HyW1tPDpU{G8UP^q8|8q`ba=kPTGfrAjO z#0EWfs>qoK+9ibtEyfI(!%PHdC5@PcByjUo5J#~L1SJv745Ju@k`#)8Ll2}|Q#@YE zMQ0D$(j^<@*EE?zkn-|!W4XyFDLw=vNfJSE1jk_=0jm`OjSa#9bwWe~&8wUu$eJJp zz_3QvEtP3DNcZ${2%_wCK2aP{hZ3cy3<fD1$A329=F%+Hb?Y4jgONgPG@K1G;Jj?jIok*7DF)BEZV|YP3ElZ2-gu% zH8#NU5!-@pdx(oYlS|nZp4B9!K$2EOx**RlX_D%fWYBI0Uw5*c5D3dt!ZmsvGR-T( zO5T&LNFq3xWJ-971DxASpk6Zud#ol7Hj^9=yEDuL?Bxj(Gh0ytwXo0--}8Tyhv-fr z;ZFHa=R~gbb_^e%%z-XEnIt}-kB_3y$;1oOO93Eyl7r4F2!4Nd`xmpjW{i2er+!g- z5wpH9)=*M<(-gFi8PD{#w{1N3YwVuSJ{_KXIDOfSZ$)d4wS&3sGwL~>uN!ivp(%-11%}ZGGo~w9UW!|Wo zl#a>qedz%HQoLjN!H1*E{xbY_Bz3c4#=hNs4N3O`^#n*0qeF^=%$(Gn$884q{xLIHS zd-@^373DhDGOG1d?U(Dgg@3mB(t)nmT!;IZR$+1fR^#pNo;u)#S5^`=mpW2+#8kgb zKX-#Vv^Dm2Onz|e@ZuB02HNdu595N@O#6DT{vg?|oH@30@y>6n_Ew}%&`Pnv-5n6iHUH?(Y_V?&w06tn%y|zB>o$znj!Q|2{GmF>#0}!}0XaE2J literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_type_add_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_type_add_16.png new file mode 100644 index 0000000000000000000000000000000000000000..aacd481d4ff59b30f4dd0e28ac0a7da5761624d9 GIT binary patch literal 1683 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 Date: Thu, 21 Dec 2017 18:18:25 +0200 Subject: [PATCH 20/40] Refactoring --- .../plus/liveupdates/ReportsFragment.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index e6838776ed..ffb7762a7b 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -278,20 +278,20 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect } }; recChangesByMontAsyncTask.setOnResponseListener(recResponseListener); + clearTextViewResult(recipientsTextView); + clearTextViewResult(donationsTextView); + clearTextViewResult(donationsTotalTextView); - if (recipientsTextView != null) { - recipientsTextView.setText("-"); - } - if (donationsTextView != null) { - donationsTextView.setText("-"); - } - if (donationsTotalTextView != null) { - donationsTotalTextView.setText("-"); - } String recfinalUrl = String.format(RECIPIENTS_BY_MONTH, monthUrlString, regionUrlString); recChangesByMontAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, recfinalUrl); } + private void clearTextViewResult(TextView textView) { + if (textView != null) { + textView.setText("-"); + } + } + @Override public void onSearchResult(CountryItem item) { selectedCountryItem = item; From 6c1bd8fe5eca0d731ab596ef1256c788f8397403 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Thu, 21 Dec 2017 18:28:00 +0200 Subject: [PATCH 21/40] Fix sharing of multiple notes --- OsmAnd/res/xml/paths.xml | 5 ++++- .../net/osmand/plus/audionotes/NotesFragment.java | 15 ++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/xml/paths.xml b/OsmAnd/res/xml/paths.xml index 78a4755a05..90217e4c1f 100644 --- a/OsmAnd/res/xml/paths.xml +++ b/OsmAnd/res/xml/paths.xml @@ -3,6 +3,9 @@ + path="share"/> + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java index a516fc0b20..b7091cba4f 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java @@ -10,6 +10,7 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; +import android.support.v4.content.FileProvider; import android.support.v7.app.AlertDialog; import android.support.v7.view.ActionMode; import android.view.LayoutInflater; @@ -453,16 +454,17 @@ public class NotesFragment extends OsmAndListFragment { } private void shareItems(Set selected) { - ArrayList files = new ArrayList<>(); + ArrayList uris = new ArrayList<>(); for (Recording rec : selected) { File file = rec == SHARE_LOCATION_FILE ? generateGPXForRecordings(selected) : rec.getFile(); if (file != null) { - files.add(Uri.parse(file.getAbsolutePath())); + uris.add(FileProvider.getUriForFile(getContext(), getActivity().getPackageName() + ".fileprovider", file)); } } + Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.setType("*/*"); - intent.putExtra(Intent.EXTRA_STREAM, files); + intent.putExtra(Intent.EXTRA_STREAM, uris); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); if (Build.VERSION.SDK_INT > 18) { intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); @@ -477,13 +479,8 @@ public class NotesFragment extends OsmAndListFragment { return selected; } - @Nullable private File generateGPXForRecordings(Set selected) { - File externalCacheDir = getActivity().getExternalCacheDir(); - if (externalCacheDir == null) { - return null; - } - File tmpFile = new File(externalCacheDir, "share/noteLocations.gpx"); + File tmpFile = new File(getActivity().getCacheDir(), "share/noteLocations.gpx"); tmpFile.getParentFile().mkdirs(); GPXFile file = new GPXFile(); for (Recording r : getRecordingsForGpx(selected)) { From 23c05cd52837dac47fb4dfe03e2e2b462a298994 Mon Sep 17 00:00:00 2001 From: syl Date: Wed, 20 Dec 2017 14:19:02 +0000 Subject: [PATCH 22/40] Translated using Weblate (French) Currently translated at 84.9% (2822 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 0d72195610..a517261396 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -106,7 +106,7 @@ Tour de télécommunication Station de gonflage des pneumatiques Confiserie - Voie ferrée en construction + Construction Épicerie Service de photocopies et d\'impression Magasin de cosmétiques @@ -3085,7 +3085,7 @@ Période historique: classique (époque IV, 374 ap. JC - 900 ap. JC) Période historique: impériale (époque V, 900 ap. JC - 1200 ap. JC) - Type: croix de conciliation + Type : croix de conciliation Terrassement Date de l\'explosion (UTC) Heure de l\'explosion (UTC) @@ -3116,4 +3116,10 @@ Médecin généraliste Médecine palliative + Type : blason + + Réservation : oui + Réservation : non + Réservation : membres uniquement + From 4fa932ecb136ccd0fb6cd6a65006a21dbb2fab00 Mon Sep 17 00:00:00 2001 From: Yunkers Date: Wed, 20 Dec 2017 23:53:53 +0000 Subject: [PATCH 23/40] Translated using Weblate (Polish) Currently translated at 92.2% (2320 of 2516 strings) --- OsmAnd/res/values-pl/strings.xml | 139 ++++++++++++++++--------------- 1 file changed, 70 insertions(+), 69 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 880ec1a05d..4e34e16cfa 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -9,7 +9,7 @@ Zasoby mapy Ustawienia mapy wektorowej Automatyczne środkowanie mapy - Ustala opóźnienie synchronizacji mapy z aktualnym położeniem + Ustala opóźnienie synchronizacji mapy z aktualnym położeniem. Automatyczne podążanie za położeniem Włącz podążanie za pozycją tylko w trybie nawigacji. @@ -99,7 +99,7 @@ Dane użytecznych miejsc Głos syntezowany Nowe wyszukiwanie - Wybierz rozmiar tekstu dla nazw na mapie + Wybierz rozmiar tekstu dla nazw na mapie. Rozmiar tekstu Informacje o diagnozowaniu błędów renderowania Wyświetla informacje o wydajności renderowania @@ -122,7 +122,7 @@ \tAby jej użyć, proszę wybrać „Menu” → „Skonfiguruj mapę” → „Zasób mapy…” → „Wektorowe mapy offline”. Wyjście dźwięku nawigacji głosowej - Określa głośnik do odtwarzania nawigacji głosowej + Określa głośnik do odtwarzania nawigacji głosowej. Kanał głosowy (także przerywa odtwarzanie muzyki z głośników) Kanał powiadomień Kanał media/music @@ -153,7 +153,7 @@ Nie można przetworzyć „%s” Wyszukaj adres korzystając z map offline Systemowy - Wybiera język interfejsu (po zmianie należy uruchomić program ponownie) + Wybiera język interfejsu (po zmianie należy uruchomić program ponownie). Język interfejsu @@ -238,7 +238,7 @@ Nocny Wschód/zachód Słońca Czujnik światła - Zdefiniuj kryterium przełączania trybu dzień/noc + Zdefiniuj kryterium przełączania trybu dzień/noc. Tryb dzienny/nocny Pobrać {0} plik(ów) ({1} MB)? zaznaczono {0} element(ów) @@ -253,7 +253,7 @@ Tryb działania w tle Działanie aplikacji, gdy ekran jest wygaszony Najszybsza trasa - Wyznacza najszybszą trasę zamiast ekonomicznej + Wyznacza najszybszą trasę zamiast ekonomicznej. Do pobrania {1} kafelków na poziomie {0} ({2} MB) Pobierz mapę Proszę wybrać maksymalne przybliżenie do pobrania @@ -297,7 +297,7 @@ Względem kompasu Względem kierunku ruchu Bez obracania (północ na górze) - Wybiera sposób obracania mapy + Wybiera sposób obracania mapy. Orientacja mapy Szczegóły trasy Zaimportowano ulubione @@ -323,9 +323,9 @@ Warstwy mapy Szukaj Miejsc - Umożliwia przesuwanie mapy za pomocą trackballa + Umożliwia przesuwanie mapy za pomocą trackballa. Używanie trackballa - Czas oczekiwania na poprawne położenie GPS + Czas oczekiwania na poprawne położenie GPS. Czas oczekiwania Gdzie jestem? @@ -348,7 +348,7 @@ Filtr Wyłącz dźwięk Włącz dźwięk - Wybiera głos komunikatów nawigatora + Wybiera głos komunikatów nawigatora. Głos komunikatów Inicjowanie danych głosowych… Niewspierana wersja danych głosowych @@ -366,7 +366,7 @@ Skręć łagodnie w lewo i jedź Zawróć i jedź Prosto - Kontynuuj + Następnie Pobierz region Dziękujemy za korzystanie z OsmAnd. Większość funkcjonalności programu wymaga danych o wybranym regionie, które można pobrać w menu „Ustawienia„” → „Zarządzaj mapami”. Dzięki nim będzie można przeglądać mapy, wyszukiwać adresy, użyteczne miejsca i transport publiczny. Wyszukiwanie sygnału… @@ -392,7 +392,7 @@ Długość rozkładu jazdy Transport publiczny Zatwierdź - Wyświetla na mapie przystanki transportu publicznego + Wyświetla na mapie przystanki transportu publicznego. Pokaż przystanki Program do nawigacji satelitarnej OsmAnd Uaktualniono dane użytecznych miejsc (wczytano {0}) @@ -421,7 +421,7 @@ Maks. zoom online Wybierz maksymalny poziom przybliżenia mapy dla pobierania kafelków map online Całkowity dystans %1$s, czas podróży %2$d h %3$d min. - Wybiera usługę nawigacyjną online lub offline + Wybiera usługę nawigacyjną online lub offline. Usługa nawigacyjna Katalog przechowywania danych na karcie SD jest niedostępny! Pobrać {0} - {1} ? @@ -483,10 +483,10 @@ Dane Edytowanie OSM - Automatycznie przybliża mapę w zależności od prędkości (dopóki mapa zsynchronizowana jest z aktualnym położeniem) + Automatycznie przybliża mapę w zależności od prędkości (dopóki mapa zsynchronizowana jest z aktualnym położeniem). Automatyczne przybliżanie mapy Dodatkowe ustawienia - Ustala domyślny profil widoku mapy i ustawień nawigacji + Ustala domyślny profil widoku mapy i ustawień nawigacji. Domyślny profil Ustawienia Zapisuje bieżący ślad do pliku GPX na karcie SD @@ -715,7 +715,7 @@ Jestem tutaj Zmienia stopień przybliżenia mapy poziomymi ruchami trackballa Przybliżanie mapy za pomocą trackballa - Ustawienia ułatwień dostępu + Ustawienia ułatwień dostępu. Ułatwienia dostępu Odblaskowe nakładki Użyj odblaskowych kolorów do wyświetlania ścieżek i tras @@ -783,15 +783,15 @@ Wyszukiwanie transportu publicznego Wyszukaj w ulubionych - "Ukryj wszystkie elementy mapy będące terenami ziemnymi" + Ukryj wszystkie elementy mapy będące terenami ziemnymi. Wielokąty Tryb renderowania Optymalizuj mapę dla Wyświetlanie od stopnia przybliżenia (wymaga danych poziomic): Poziomice - Zwiększ ilość detali pokazywanych na mapie + Zwiększ liczbę szczegółów pokazywanych na mapie. Wyświetl więcej szczegółów na mapie - Rondo: wybierz %1$d zjazd + Na rondzie wybierz %1$d zjazd Trzymaj się lewej strony Trzymaj się prawej strony @@ -836,7 +836,7 @@ Miejsce parkowania oraz czas można znaleźć na karcie w panelu oraz na widżec Godziny Minuty Zaparkowano samochód o - Użyj kompasu, gdy nie zostanie wykryty kierunek + Użyj kompasu, gdy nie zostanie wykryty kierunek. Użyj kompasu Trasa zostanie wyznaczona po określeniu aktualnego położenia Poprzednia trasa nie została ukończona. Kontynuować ją? (%1$s sekund) @@ -881,9 +881,9 @@ Miejsce parkowania oraz czas można znaleźć na karcie w panelu oraz na widżec Dróg nieutwardzonych Promów Omijanie… - Wyznacza trasy omijając drogi płatne, nieutwardzone, promy + Wyznacza trasy omijając drogi płatne, nieutwardzone, promy. Wyświetlanie ostrzeżeń… - Wyświetla ostrzeżenia ruchu drogowego, ostrzeżenia o fotoradarach i informacje o pasach + Wyświetla ostrzeżenia ruchu drogowego, ostrzeżenia o fotoradarach i informacje o pasach ruchu. Mapy dla całego świata i nawigacja działająca w oparciu o stacjonarne jak i sieciowe mapy OSM @@ -913,7 +913,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej " OsmAnd to aplikacja open source do nawigacji obsługująca mapy offline i online Autostrad - Przyciąga położenie do dróg podczas nawigowania + Przyciąga położenie do dróg podczas nawigowania. Przyciąganie do drogi Informacja o dniu/nocy @@ -1091,7 +1091,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej OpenMaps EU brak - Preferuj autostrady + Preferuj autostrady. Preferuj autostrady Preferuj… Mapa @@ -1195,7 +1195,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Ostrzeżenia o ruchu Hasło OSM (opcjonalne) Zapowiadanie… - Konfiguruje zapowiadanie nazw ulic, ostrzeżeń o ruchu (przymusowe przystanki, progi zwalniające), fotoradarów, ograniczeń prędkości + Konfiguruje zapowiadanie nazw ulic, ostrzeżeń o ruchu (przymusowe przystanki, progi zwalniające), fotoradarów, ograniczeń prędkości. Nazwy ulic (syntezowane) Punkty śladu GPX @@ -1204,7 +1204,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Stany Zjednoczone Europa i Azja, Ameryka Łaciński i podobne Wielka Brytania, Indie i inne - Wybiera region poruszania się: Stany Zjednoczone, Europa, Wielka Brytania, Azja oraz inne + Wybiera region poruszania się: Stany Zjednoczone, Europa, Wielka Brytania, Azja oraz inne. Region ruchu Kanada Diagnozowanie błędów FPS @@ -1262,14 +1262,14 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Samolot Renderowanie Profile programu - Wybiera używane profile widoczne w programie + Wybiera używane profile widoczne w programie. Żeglugowy znak orientacyjny - Określa tempo odtwarzania syntezowanych komunikatów głosowych + Określa tempo odtwarzania syntezowanych komunikatów głosowych. Szybkość mowy - Wyłącza 2-etapowe wyznaczanie trasy dla nawigacji samochodowej + Wyłącza 2-etapowe wyznaczanie trasy dla nawigacji samochodowej. "Nie udało się szybko wyznaczyć trasę (%s). Przełączanie na tryb powolny." Wyłączenie złożonego wyznaczania trasy Ustawienia nawigacji @@ -1283,19 +1283,19 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej \n Uwaga 1: stare pliki pozostaną nienaruszone (mogą być usunięte ręcznie). \n Uwaga 2: w nowym położeniu nie będzie możliwe współdzielenie tych samych plików pomiędzy OsmAnd i OsmAnd+." Preferowanie autostrad - Preferowanie autostrad + Preferuj autostrady. Omijanie płatnych dróg - Omijanie płatnych dróg + Omijaj płatne drogi. Omijanie nieutwardzonych dróg - Omijanie nieutwardzonych dróg + Omijaj nieutwardzone drogi. Omijanie przepraw promowych - Omijanie przepraw promowych + Omijaj przeprawy promowe. Omijanie autostrad - Omijanie autostrad + Omijaj autostrady. Ograniczenie wagi - Określa maksymalną, dozwoloną masę pojazdu + Określa maksymalną, dozwoloną masę pojazdu. Wybierz ślad GPX… Wybierz cel trasy Wskaż na mapie @@ -1359,7 +1359,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Adresy krajowe Podstawowa mapa świata Światowa mapa tras narciarskich - Całkowicie wstrzymuje odtwarzanie muzyki podczas komunikatów (nie tylko ją przycisza) + Całkowicie wstrzymuje odtwarzanie muzyki podczas komunikatów (nie tylko ją przycisza). Przerywanie muzyki Zawsze wyśrodkowane położenie Głos @@ -1378,7 +1378,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Monitoring OpenStreetMap OsMo Tylko ręcznie (naciśnij strzałkę) - Powtarza instrukcje nawigacji w regularnych odstępach czasu + Powtarza instrukcje nawigacji w regularnych odstępach czasu. Powtarzanie instrukcji Powiadomienia osiągnięcia celu Określa moment powiadamiania o osiągnięciu celu @@ -1504,7 +1504,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Wybierz cele docelowe Etykiety punktów - Wyświetla przyciski zbliżania i oddalania podczas nawigacji + Wyświetla przyciski zbliżania i oddalania podczas nawigacji. Przyciski zbliżania Sortuj wg odległości Sortuj wg nazwy @@ -1538,7 +1538,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Włącz tryb działania GPS w tle Częstość wybudzania GPS Wyłączyć tryb działania GPS w tle? - Preferowany język dla etykiet na mapie (jeśli niedostępny, zostanie wybrany język angielski lub lokalna nazwa) + Preferowany język dla etykiet na mapie (jeśli niedostępny, zostanie wybrany język angielski lub lokalna nazwa). Preferowany język map Nazwy lokalne Suahili @@ -1656,7 +1656,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Skonfiguruj mapę W odległości Włączanie ekranu - Włącza ekran urządzenia podczas zbliżania się do zakrętu + Włącza ekran urządzenia podczas zbliżania się do zakrętu. Omijanie dróg… Linie tramwajowe i kolejowe @@ -1698,9 +1698,9 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Amerykański atlas drogowy Bez reguł wyznaczania tras z wersji 1.9 Nie używa reguł wyznaczania tras wprowadzonych w wersji 1.9 - Linia współrzędnych y\" + Linia współrzędnych \"y\" Przystanki transportu miejskiego - Linia współrzędnych x\" + Linia współrzędnych \"x\" Pobrane Pobieranie niemożliwe. Proszę sprawdzić połączenie internetowe. Komunikaty głosowe @@ -1756,7 +1756,7 @@ OsmAnd jest otwarto-źródłowym programem do nawigacji z dostępem do szerokiej Symulowanie położenia Szerokość %1$s Długość %2$s - Wyświetla najczęściej zadawane pytania, ostatnie zmiany i inne + Wyświetla najczęściej zadawane pytania, ostatnie zmiany i inne. Ustawienia nawigacji Ustawienia ogólne @@ -1856,11 +1856,11 @@ Długość %2$s Numery budynków Pamięć użytkownika - Omija przejścia graniczne z innym państwem + Omijaj przejścia graniczne z innym państwem. Ograniczenie wysokości - Określa maksymalną, dozwoloną wysokość pojazdu + Określa maksymalną, dozwoloną wysokość pojazdu. Inteligentne przeliczanie trasy - Wyznacza ponownie tylko początkową część trasy dla długich podróży + Wyznacza ponownie tylko początkową część trasy dla długich podróży. Wyloguj się Udostępnianie położenia Linia w kolorze oznakowania OSMC @@ -1991,7 +1991,7 @@ Długość %2$s Drogi Dodaj nową Wybór kategorii - Definiuje jednostki prędkości + Definiuje jednostki prędkości. Jednostki prędkości Mile morskie Mm @@ -2051,7 +2051,7 @@ Długość %2$s Prześlij Utworzone użyteczne miejsce OSM - Ustala flagę wskazującą pierwsze uruchomienie programu zachowując wszystkie pozostałe ustawienia + Ustala flagę wskazującą pierwsze uruchomienie programu zachowując wszystkie pozostałe ustawienia. geo: Pobrać mapę samochodową, nawet jeśli pobrano już zwykłą mapę? Wyświetla ilość zużytych darmowych pobrań @@ -2064,8 +2064,8 @@ Długość %2$s Inne Wtyczki Pierwsze użycie - Jak pobrać mapy, ustawić podstawowe ustawienia - Konfiguracja nawigacja + Jak pobrać mapy, ustawić podstawowe opcje. + Konfiguracja nawigacji. Planowanie podróży Częste pytania Często zadawane pytania @@ -2078,7 +2078,7 @@ Długość %2$s Kontakt z nami Legenda mapy Zapisać użyteczne miejsce bez określonego rodzaju? - Wyświetla kokpit zamiast menu + Wyświetla kokpit zamiast menu. Dostęp z mapy Skopiowane do schowka \\u2022 Nowe menu kontekstowe, przystosowane do wybierania lokacji na mapie oraz na innych ekranach @@ -2115,7 +2115,7 @@ Długość %2$s Używaj menu To jest nowy wybór podstawowej kontroli aplikacja za pomocą konfigurowalnego panelu lub statycznego menu. Wybór zawsze można zmienić w ustawieniach panelu. Zapisz lokalnie - Proszę określić rodzaj użytecznego miejsca lub pominąć go + Proszę określić rodzaj użytecznego miejsca lub pominąć go. Zmodyfikowane użyteczne miejsce OSM Usunięto użyteczne miejce OSM Otwarto ponownie notatkę OSM @@ -2138,14 +2138,14 @@ Długość %2$s Najniższa jakość Najwyższa jakość Jakość wideo - Wybiera jakość wyjściowego nagrania wideo + Wybiera jakość nagrania wideo. Format dźwięku - Wybiera format wyjściowego nagrania dźwięku + Wybiera format wyjściowego nagrania dźwięku. Przepływność dźwięku Określa wartość przepływności dźwięku Obok Omijanie schodów - Omijanie schodów + Omijaj schody. Omijanie przejść granicznych Szlaki konne Brak określonego adresu @@ -2159,8 +2159,8 @@ Długość %2$s Wyszukiwanie adresu Program nie posiada uprawnień do użycia karty SD Wybór komunikatów głosowych - Proszę wybrać lub pobrać komunikaty głosowe właściwe dla danego języka - Wskazuje drogi, których należy unikać podczas nawigowania + Proszę wybrać lub pobrać komunikaty głosowe właściwe dla danego języka. + Wskazuje drogi, których należy unikać podczas nawigowania. Dźwięk Program nie ma uprawnień dostępu do danych o położeniu. Program nie ma uprawnień dostępu do aparatu. @@ -2216,7 +2216,7 @@ Długość %2$s Dodaj znacznik mapy Wybierz znacznik mapy Odwróć kolejność - Aktywuje funkcję znaczników mapy + Aktywuje funkcję znaczników mapy. Usunąć wszystkie aktywne znaczniki? Wyczyścić historię znaczników mapy? Aktywne znaczniki @@ -2340,7 +2340,7 @@ Długość %2$s Węgierski (formalny) Kannada Format współrzędnych - Ustala format współrzędnych geograficznych + Ustala format współrzędnych geograficznych. Karta pamięci Otwarte teraz Otwarte 24/7 @@ -2378,7 +2378,7 @@ Długość %2$s Zmień Rozpocznij Ekonomiczna trasa - Wyznacza ekonomiczną trasę (zwykle najkrótszą) + Wyznacza ekonomiczną trasę (zwykle najkrótszą). Zastąpić ulubiony punkt %1$s? Pomiń pobieranie map Otrzymuj wskazówki dojazdu i odkrywaj nowe miejsca bez połączenia z Internetem @@ -2597,12 +2597,12 @@ Reprezentuje obszar: %1$s x %2$s \n • Mnóstwo innych ulepszeń i poprawek \n \n i więcej… - Wyświetla kontury i punkty głębi + Wyświetla kontury i punkty głębi. Mapy batymetryczne Więcej równin lub więcej wzgórz Użyj danych wysokościowych - Używa danych wysokościowych dostarczanych przez SRTM, ASTER i EU-DEM + Używa danych wysokościowych dostarczanych przez SRTM, ASTER i EU-DEM. Wysokość trasy Zjazdy @@ -2633,7 +2633,7 @@ Reprezentuje obszar: %1$s x %2$s Dodaj nowy katalog Nachylenie Berberyjski - Preferuj teren: płaski lub górzysty + Preferuj teren: płaski lub górzysty. Górzysty Mniej górzysty Płaski @@ -2661,7 +2661,7 @@ Reprezentuje obszar: %1$s x %2$s Wyłącz automatyczne przybliżanie mapy Przełącz automatyczne przybliżanie Dodaj pierwszy pośredni cel trasy - Przełącza automatyczne przybliżanie mapy zależne od prędkości ruchu. + Włącza/wyłącza automatyczne przybliżanie mapy zależne od prędkości ruchu. Ustala cel trasy w położeniu na środku ekranu a poprzednio ustalony cel zamienia na ostatni cel pośredni. Zastępuje cel trasy położeniem na środku ekranu. Ustala pierwszy cel pośredni trasy w położeniu na środku ekranu. @@ -2690,7 +2690,7 @@ Reprezentuje obszar: %1$s x %2$s w %1$s Podsumowanie Animowanie położenia - Włącza animację aktualnego położenia na mapie + Włącza animację aktualnego położenia na mapie. " Nawigacja GPS • Możesz wybrać pomiędzy trybem offline (brak kosztów roamingu za granicą) lub online (szybciej) @@ -2711,7 +2711,7 @@ Reprezentuje obszar: %1$s x %2$s Zestaw kolorów Wyświetlanie od stopnia przybliżenia Uwzględnianie prywatnych obszarów - Zezwala na dostęp do prywatnych obszarów + Zezwala na dostęp do prywatnych obszarów. Ta trasa może być zbyt długa do wyznaczenia. Prosimy dodać punkty pośrednie, jeżeli nie otrzymasz wyniku w ciągu 10 minut. Nazwa zawiera zbyt wiele wielkich liter. Czy chcesz kontynuować? Wtyczka @@ -2731,7 +2731,7 @@ Reprezentuje obszar: %1$s x %2$s Rozpocznij ponownie wyszukiwanie Zwiększ promień wyszukiwania Nic nie odnaleziono :( - Proszę zmienić zapytanie lub zwiększyć promień wyszukiwania + Proszę zmienić zapytanie lub zwiększyć promień wyszukiwania. Cel podróży jest położony na obszarze o charakterze prywatnym. Umożliwić dostęp do prywatnych dróg dla tej trasy? Szukaj ulubionych Mapillary @@ -2834,7 +2834,7 @@ Reprezentuje obszar: %1$s x %2$s Wyświetlanie na mapie Zakończyć bez zapisywania? Wyłączenie animacji - Wyłącza animacje w programie + Wyłącza animacje w aplikacji. Przenieś wszystkie do historii Wyznacz trasę Wskaźnik odległości @@ -2842,7 +2842,7 @@ Reprezentuje obszar: %1$s x %2$s Opcje znacznika Proszę wybrać w jaki sposób wskazywać odległość i kierunek do znaczników mapy na ekranie: Próg zmiany orientacji mapy - Wybiera prędkość, poniżej której orientacja mapy zmieni się z „względem kierunku ruchu” na „względem kompasu” + Wybiera prędkość, poniżej której orientacja mapy zmieni się z „względem kierunku ruchu” na „względem kompasu”. Wszystkie znaczniki mapy przeniesiono do historii Znacznik mapy przeniesiono do historii Znacznik mapy przeniesiono do aktywnych @@ -2934,4 +2934,5 @@ Reprezentuje obszar: %1$s x %2$s Zmodyfikowane Dodane Tworzenie lub modyfikowanie obiektów OSM + Zmień nazwę znacznika From b271306076bde6b88cccae9a015110a5e31930ab Mon Sep 17 00:00:00 2001 From: Igor Eliezer Date: Fri, 22 Dec 2017 05:04:58 +0000 Subject: [PATCH 24/40] Translated using Weblate (Portuguese (Brazil)) Currently translated at 81.2% (2045 of 2516 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index acba9bc074..fbd6238e5f 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -2427,4 +2427,23 @@ Pôr do Sol: %2$s Transliterar nomes Arquivo %1$s não possui pontos de passagem, importe-o como uma trilha? Adicionar a uma trilha GPX - +Adicionar nota de áudio, vídeo ou foto para cada ponto no mapa, usando o widget ou o menu de contexto. + Tocando no botão de ação adicionará um destino na localização do centro da tela. O destino anteriormente definido se torna o último destino intermediário. + Tocando no botão de ação substituirá o destino com a localização do centro da tela. + Tocando no botão de ação adicionará um primeiro ponto intermédio na localização do centro da tela. + Se inscreva na nossa lista de e-mail sobre descontos do app e obtenha mais 3 downloads de mapa! + OsmAnd coleta informações sobre quais partes do aplicativo você abrir. A sua localização nunca é enviada, nem qualquer coisa digitada no aplicativo ou detalhes das áreas que você visualizar, pesquisar ou baixar. + Autodividir gravações após um intervalo + Iniciar novo segmento após intervalo de 6 min, um novo trajeto após intervalo de 2 h, ou um novo arquivo depois de um longo intervalo se a data foi alterada. + Você pode enviar sua nota de OSM anonimamente ou usando seu perfil OpenStreetMap.org. + Exiba uma notificação de sistema que permite iniciar a gravação de viagem. + Antecipando os feriados de Natal e ano novo, você pode optar por exibir o POI associado com o Natal: árvores de Natal, mercados, etc. + Assinatura será cobrada mensalmente. Você pode cancelar sua assinatura no Google Play a qualquer momento. + Parte de sua doação será enviada aos usuários OSM que enviam alterações ao OpenStreetMap. O custo da inscrição permanece o mesmo. + Assinatura permite atualizações a cada hora, diariamente e semanais, e downloads ilimitados para todos os mapas globalmente. + Adquira já + Adquira por %1$s + Adquira por %1$s mês + Obter downloads ilimitados de mapa e atualizações de mapas mais de uma vez por mês: por hora, diária ou semanal. + Tocando o botão de ação adicionará um ponto de passagem de GPX na localização do centro da tela. + From ab4315fab82bc30f0b0aecb38504acd725a97333 Mon Sep 17 00:00:00 2001 From: Yunkers Date: Wed, 20 Dec 2017 22:33:06 +0000 Subject: [PATCH 25/40] Translated using Weblate (Polish) Currently translated at 99.9% (3321 of 3322 strings) --- OsmAnd/res/values-pl/phrases.xml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/values-pl/phrases.xml b/OsmAnd/res/values-pl/phrases.xml index 0ffa3e6968..76be10798b 100644 --- a/OsmAnd/res/values-pl/phrases.xml +++ b/OsmAnd/res/values-pl/phrases.xml @@ -886,7 +886,7 @@ Falochron Ostroga brzegowa - Basen + Zbiornik wodny Obszar chroniony Dźwig @@ -1361,7 +1361,7 @@ Typ: kurchan Typ: mauzoleum Skarpetki - Koszulki + Koszule Zabytkowy kamień milowy Skóra @@ -1449,7 +1449,7 @@ Tajski Erotyczny Chiński - Tterapeutyczny + Terapeutyczny Poręcz: tak Poręcz: nie @@ -1675,7 +1675,7 @@ Specjalnych miejsc dla niepełnosprawnych Ze specjalnymi miejscami dla kobiet Bez specjalnych miejsc dla kobiet - Specjalnych miejsc dla kobiet + Ze specjalnymi miejscami dla kobiet Specjalnych miejsc dla uczniów Specjalnych miejsc dla nauczycieli Ze specjalnymi miejscami dla rodziców @@ -2545,7 +2545,7 @@ Szafki Wieszak rowerowy - Pół-otwarty stojak + Półotwarty stojak Słona woda Słodka woda @@ -3172,7 +3172,7 @@ Ciasta Naleśniki Spaghetti i makarony - Szybkie żarcie + Fast-food Soki Soba (makaron z mąki gryczanej) Ekskluzywne dania @@ -3229,7 +3229,7 @@ Tak Tak - Bez-laktozowa + Bezlaktozowa Halal Koszerne potrawy Bezglutenowa @@ -3672,4 +3672,12 @@ Stacja ładowania +Skrzynka na listy + Ulica + Numer budynku + Mieszkania + + Centrum płatności + Przelew pieniędzy + From 64395be3cb92a35794ab85f1cbb37697310836f9 Mon Sep 17 00:00:00 2001 From: Igor Eliezer Date: Fri, 22 Dec 2017 08:31:20 +0000 Subject: [PATCH 26/40] Translated using Weblate (Portuguese (Brazil)) Currently translated at 62.7% (2085 of 3322 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 78 ++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 76e5404332..6b35312d6e 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -2792,4 +2792,82 @@ Dificuldade da pista Preparação de pista Fumantes + Comida para levar + Coquetéis + Microcervejaria + Resíduos aceitos + Lareira + Característica da água + Dieta + Especialidade de saúde + Tipo de massagem + Barracas + Máquina de lavar roupa + Trailer + Fonte de energia + Sistema médico + Visita domiciliar + Prato + Tipo de pagamento (transporte) + Tipo + Grupo-alvo + Ar comprimido + Aspirador de pó + Característica + Cafetaria + Tipo + Serviços + Tipo de motocicleta + Animais aceitos + Finalidade + Barcos alugados + Estado operacional + Tipo de abastecimento de água + Purificação de água + Acesso a local com água + +Infraestrutura de emergência + Loja de especiarias + Loja de materiais artísticos + Posto de gasolina para embarcações + Eclusa + Altura livre + Altura livre (fechada) + Altura livre (aberta) + Largura livre + + Acesso para cadeira de rodas + Animais selvagens + Cavalos + Mamíferos + Peixes + + Vegetariano + Vegano + Livre de glúten + Kosher + Halal + Livre de lactose + Sim + Sim + Sim + Cobrança: sim + Cobrança: não + Estação de auto-reparo de bicicletas + + Sim + Medicina paliativa + + Voo livre (esporte) + + Torneira de água + Operado por botões: sim + Operado por botões: não + + Decolagem + Pouso + Treinamento + Oficial: sim + Oficial: não + Parapente From 05895e577b5d379cb50c849a0949d0066c6ebe58 Mon Sep 17 00:00:00 2001 From: ezjerry liao Date: Fri, 22 Dec 2017 11:07:42 +0000 Subject: [PATCH 27/40] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2521 of 2521 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 6c7d46feb0..9bfdb8ffb9 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -2976,4 +2976,9 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式 \n• 地形(上坡)察覺登山健行時間(尼史密夫定律) \n \n - + 包括座標和所選註解資料的 GPX 檔案。 + 包括座標和所有註解資料的 GPX 檔案。 + 編輯 %1$s,合計 %2$s mBTC + OSM 收件人 + 捐款總計 + From 296bca7d969b5b8a01442a3a68a4421ffe39937d Mon Sep 17 00:00:00 2001 From: PaulStets Date: Fri, 22 Dec 2017 13:09:55 +0200 Subject: [PATCH 28/40] Added the recipients for the World and corrected the text2 position --- OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java | 6 +++--- .../net/osmand/plus/liveupdates/UsersReportFragment.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java index ffb7762a7b..66f88b8cec 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java @@ -134,9 +134,9 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect int monthItemPosition = monthReportsSpinner.getSelectedItemPosition(); String monthUrlString = monthsForReportsAdapter.getQueryString(monthItemPosition); String countryUrlString = selectedCountryItem.getDownloadName(); - if (countryUrlString.length() > 0) { + boolean isRecipientsReport = v.getId() == R.id.numberOfRecipientsLayout; + if (countryUrlString.length() > 0 || isRecipientsReport) { Bundle bl = new Bundle(); - boolean isRecipientsReport = v.getId() == R.id.numberOfRecipientsLayout; bl.putString(UsersReportFragment.URL_REQUEST, String.format(isRecipientsReport ? RECIPIENTS_BY_MONTH : USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString)); userReportFragment.setArguments(bl); @@ -281,7 +281,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect clearTextViewResult(recipientsTextView); clearTextViewResult(donationsTextView); clearTextViewResult(donationsTotalTextView); - + String recfinalUrl = String.format(RECIPIENTS_BY_MONTH, monthUrlString, regionUrlString); recChangesByMontAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, recfinalUrl); } diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java index 9d03c3ccf8..bba2d2155c 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java @@ -122,6 +122,7 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment { text2.setTextColor(textSecondaryColor); text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null); text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding)); + text2.setPadding(text1.getTotalPaddingLeft(), text1.getTotalPaddingTop(), text1.getTotalPaddingRight(), text1.getTotalPaddingBottom()); Object item = getItem(position); if (item instanceof UserRankingByMonth) { UserRankingByMonth rankingByMonth = (UserRankingByMonth) item; From 2e732526d16ff4b52fa4cc5330a9c751fe99ebcd Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Fri, 22 Dec 2017 09:52:35 +0000 Subject: [PATCH 29/40] Translated using Weblate (French) Currently translated at 99.8% (2517 of 2521 strings) --- OsmAnd/res/values-fr/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 68994c7f86..db9aa8efcf 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3043,4 +3043,5 @@ représentant la zone : %1$s x %2$s \n • Durée d\'ascension en fonction du terrain (basé sur la règle de Naismith) \n \n - + Total des dons + From 4b611c8bbbf3b7f4f37cced6ecc27246133c4c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Alain?= Date: Fri, 22 Dec 2017 12:01:48 +0000 Subject: [PATCH 30/40] Translated using Weblate (French) Currently translated at 100.0% (2521 of 2521 strings) --- OsmAnd/res/values-fr/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index db9aa8efcf..2ae50ff48e 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3044,4 +3044,8 @@ représentant la zone : %1$s x %2$s \n \n Total des dons - +Fichier GPX comprenant les coordonnées et le contenu des notes sélectionnées. + Fichier GPX comprenant les coordonnées et le contenu de toutes les notes. + Modifications %1$s, total %2$s mBTC + Bénéficiaires d\\\'OSM + From 2caffd860e81e54ffae7a4be4b6b3e80fbb42266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Alain?= Date: Fri, 22 Dec 2017 12:16:43 +0000 Subject: [PATCH 31/40] Translated using Weblate (French) Currently translated at 85.0% (2825 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index a517261396..31d55ea9bc 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3122,4 +3122,6 @@ Réservation : non Réservation : membres uniquement + État opérationnel + Mode de distribution de l\\\'eau From 044ed8012bedb0596301d857c43a611420656222 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Fri, 22 Dec 2017 12:18:15 +0000 Subject: [PATCH 32/40] Translated using Weblate (French) Currently translated at 85.1% (2830 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 31d55ea9bc..faaa45606a 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3124,4 +3124,10 @@ État opérationnel Mode de distribution de l\\\'eau + Ampérage + Boite aux lettres + Rue + Plat + + Centre de paiement From 6e333a81b766a85fa58c308c766babf9905852be Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Fri, 22 Dec 2017 12:21:55 +0000 Subject: [PATCH 33/40] Translated using Weblate (French) Currently translated at 85.3% (2834 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index faaa45606a..3311fdc6e4 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3130,4 +3130,7 @@ Plat Centre de paiement + Bureau médical + Stationnement payant : oui + Stationnement payant : non From d07f4abfd3d3c685779f3b8e26edd5565d8752a4 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Fri, 22 Dec 2017 12:32:48 +0000 Subject: [PATCH 34/40] Translated using Weblate (French) Currently translated at 86.1% (2862 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 3311fdc6e4..e0790e1227 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3133,4 +3133,36 @@ Bureau médical Stationnement payant : oui Stationnement payant : non + Oiseaux + Location + Location : non + Réparation + Réparation : non + Pièces détachées + Pièces détachées : non + Pneus + Pneus : non + Propriétaire + + Direction : sens horaire + Direction : sens anti-horaire + Direction : entrée + Direction : sortie + Location de bateau + Bateaux à voile : oui + Bateaux à voile : non + Réseau + + Archive + Service public + Canal VHF + + Zone montagneuse + + Cassé + A réparer + + Aucune + Osmose inverse + Pompe From f923ef4562e21e5db2ae9b6a6a7134d06ec65a77 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 22 Dec 2017 10:20:28 +0000 Subject: [PATCH 35/40] Translated using Weblate (Danish) Currently translated at 100.0% (2521 of 2521 strings) --- OsmAnd/res/values-da/strings.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 717bd6e8e7..4951765f5c 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2994,4 +2994,9 @@ Repræsenterer område: %1$s x %2$s \n• Vandretid tager hensyn til terræn (stigning) (Naismiths regel) \n \n - + GPX fil med koordinaterne og data for de valgte noter. + GPX-fil med koordinater og data for alle noter. + Redigeringer %1$s, sum %2$s mBTC + OSM modtagere + Samlede donationer + From d82e28358d2a07192535ee6ade39de67f08425ff Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Fri, 22 Dec 2017 12:08:29 +0000 Subject: [PATCH 36/40] Translated using Weblate (French) Currently translated at 100.0% (2521 of 2521 strings) --- OsmAnd/res/values-fr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 2ae50ff48e..d27bdbb4b2 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3045,7 +3045,7 @@ représentant la zone : %1$s x %2$s \n Total des dons Fichier GPX comprenant les coordonnées et le contenu des notes sélectionnées. - Fichier GPX comprenant les coordonnées et le contenu de toutes les notes. - Modifications %1$s, total %2$s mBTC + Fichier GPX contenant les coordonnées et les notes. + Modifications : %1$s, Total : %2$s mBTC Bénéficiaires d\\\'OSM From 29460cbebbb88e60bfc860d5324c25f8092f435e Mon Sep 17 00:00:00 2001 From: Igor Eliezer Date: Fri, 22 Dec 2017 11:38:58 +0000 Subject: [PATCH 37/40] Translated using Weblate (Portuguese (Brazil)) Currently translated at 82.6% (2083 of 2521 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 40 +++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index fbd6238e5f..2a0c245044 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -2446,4 +2446,42 @@ Pôr do Sol: %2$s Adquira por %1$s mês Obter downloads ilimitados de mapa e atualizações de mapas mais de uma vez por mês: por hora, diária ou semanal. Tocando o botão de ação adicionará um ponto de passagem de GPX na localização do centro da tela. - + Arquivo GPX com coordenadas e dados de todas as notas. + Armazenamento de dados do OsmAnd (para mapas, trilhas, etc.): %1$s. + Obtenha direções e descobra novos lugares sem precisar de conexão com Internet + Objetos superficiais + Vamos começar + %1$s paradas antes + Pesquisar a %1$s daqui + Trajeto atual + Resposta sonora de direção + Indicar a direção do ponto de destino por som. + Resposta tátil de direção + Indica a direção do ponto de destino por vibração. + Ativar a navegação por mudanças do OsmAnd Live. + Rumo magnético + Rumo relativo + Sem recálculo de rota depois de deixá-la + Sem recálculo de rota para a direção oposta + Auto-anúncio inteligente + Lista recolhida + Lista-árvore + Por favor, adicione marcadores de mapa pelo mapa + Não há pontos de passagem encontrados + Agora o aplicativo tem permissão para gravar no armazenamento externo. Reiniciar o aplicativo manualmente é necessário. + Mover para cima + Mover para baixo + Finalizar a navegação + Evitar estrada + Assinatura OsmAnd Live + Assinar + Nome Público + Não mostre meu nome em relatórios + Região de suporte + Custo mensal + Pagamento mensal. + Ativo + Inativo + Por favor insira um endereço de e-mail válido + Total de doações + From 38f223412116e596320dbf82d81f784615bb5459 Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 22 Dec 2017 12:49:07 +0000 Subject: [PATCH 38/40] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (2521 of 2521 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index c475ffb52f..0106fb82dd 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -2867,4 +2867,9 @@ Proporciona un código completo \n • El tiempo de caminata es consciente del terreno ascendente (regla de Naismith). \n \n - + Archivo GPX con coordenadas y datos de las notas elegidas. + Archivo GPX con coordenadas y datos de todas las notas. + Ediciones %1$s, sum %2$s mBTC + Destinatarios de OSM + Total de donaciones + From 2fd340d695356e044543bf8b11ee631aa899e2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Alain?= Date: Fri, 22 Dec 2017 13:21:24 +0000 Subject: [PATCH 39/40] Translated using Weblate (French) Currently translated at 86.7% (2881 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index e0790e1227..971c4dd47f 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -2153,7 +2153,7 @@ Automatisé Type Type de carburant - Type + Type de carburant (avions) Type de paiement Son Bande podotactile @@ -3013,7 +3013,7 @@ Mammifères Poissons - Balise de voie + Balise de chemin Autorisé uniquement à pied Arrière-pays @@ -3165,4 +3165,19 @@ Aucune Osmose inverse Pompe + Implantation + Type de fortification : rempart + Référence du pont + Référence du tunnel + + Spécialité médicale : pédiatrie : non + Spécialité médicale : médecine d\'urgence : non + Spécialité médicale : médecine tropicale : non + Spécialité médicale : obstétrique (postnatale) : non + Spécialité médicale : obstétrique (prénatale) : non + Spécialité médicale : pédiatrie sociale : non + Spécialité médicale : obstétrique (césarienne) : non + Addictologie + Orthophonie + Thérapie manuelle From 2110dc171d1b1a272989fcb3a3f30ecc2c440076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C3=A9bin?= Date: Fri, 22 Dec 2017 13:22:27 +0000 Subject: [PATCH 40/40] Translated using Weblate (French) Currently translated at 86.7% (2881 of 3322 strings) --- OsmAnd/res/values-fr/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 971c4dd47f..0c7454c03b 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3036,7 +3036,7 @@ Sans balai Location bateaux -Accès toilettes : communauté +Accès au toilettes : propriété collective Péage par automate Décoration de façade