From 7091b05f998e40055439099efa26264be4eccc96 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Fri, 17 Jul 2020 18:19:48 +0300 Subject: [PATCH 01/33] Update toolbar --- .../MeasurementToolFragment.java | 80 +++++++++++++------ 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 17a9eae4e2..ad54c152db 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -311,7 +311,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { undoBtn = ((ImageButton) mainView.findViewById(R.id.undo_point_button)); redoBtn = ((ImageButton) mainView.findViewById(R.id.redo_point_button)); - Drawable undoDrawable = getContentIcon(R.drawable.ic_action_undo_dark); + Drawable undoDrawable = getActiveIcon(R.drawable.ic_action_undo_dark); undoBtn.setImageDrawable(AndroidUtils.getDrawableForDirection(mapActivity, undoDrawable)); undoBtn.setOnClickListener(new View.OnClickListener() { @Override @@ -332,7 +332,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } }); - Drawable redoDrawable = getContentIcon(R.drawable.ic_action_redo_dark); + Drawable redoDrawable = getActiveIcon(R.drawable.ic_action_redo_dark); redoBtn.setImageDrawable(AndroidUtils.getDrawableForDirection(mapActivity, redoDrawable)); redoBtn.setOnClickListener(new View.OnClickListener() { @Override @@ -448,7 +448,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } } } else { - addToGpx(mapActivity); + if (newGpxData == null) { + final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR); + String fileName = getSuggestedName(dir); + saveNewGpx(dir, fileName, true, SaveType.ROUTE_POINT, true); + } else { + addToGpx(mapActivity); + } } } else { Toast.makeText(mapActivity, getString(R.string.none_point_error), Toast.LENGTH_SHORT).show(); @@ -1223,14 +1229,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { }); showOnMapToggle.setChecked(true); - final String suggestedName = new SimpleDateFormat("yyyy-MM-dd_HH-mm_EEE", Locale.US).format(new Date()); - String displayedName = suggestedName; - File fout = new File(dir, suggestedName + GPX_FILE_EXT); - int ind = 1; - while (fout.exists()) { - displayedName = suggestedName + "_" + (++ind); - fout = new File(dir, displayedName + GPX_FILE_EXT); - } + String displayedName = getSuggestedName(dir); nameEt.setText(displayedName); nameEt.setSelection(displayedName.length()); final boolean[] textChanged = new boolean[1]; @@ -1289,6 +1288,18 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } } + private String getSuggestedName(File dir) { + final String suggestedName = new SimpleDateFormat("yyyy-MM-dd_HH-mm_EEE", Locale.US).format(new Date()); + String displayedName = suggestedName; + File fout = new File(dir, suggestedName + GPX_FILE_EXT); + int ind = 1; + while (fout.exists()) { + displayedName = suggestedName + "_" + (++ind); + fout = new File(dir, displayedName + GPX_FILE_EXT); + } + return displayedName; + } + private void saveNewGpx(File dir, String fileName, boolean checked, SaveType saveType, boolean close) { saveGpx(dir, fileName, checked, null, false, null, saveType, close); } @@ -1440,7 +1451,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } private void onGpxSaved(Exception warning) { - MapActivity activity = getMapActivity(); + final MapActivity activity = getMapActivity(); if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } @@ -1451,19 +1462,23 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { if (openTrackActivity) { dismiss(activity); } else { - snackbar = Snackbar.make(activity.getLayout(), - MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getName()), - Snackbar.LENGTH_LONG) - .setAction(R.string.shared_string_rename, new View.OnClickListener() { - @Override - public void onClick(View view) { - FileUtils.renameFile(getActivity(), toSave, null); - } - }); - UiUtilities.setupSnackbar(snackbar, nightMode); - snackbar.show(); if (close) { + snackbar = Snackbar.make(activity.getLayout(), + MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getName()), + Snackbar.LENGTH_LONG) + .setAction(R.string.shared_string_rename, new View.OnClickListener() { + @Override + public void onClick(View view) { + FileUtils.renameFile(activity, toSave, null); + } + }); + UiUtilities.setupSnackbar(snackbar, nightMode); + snackbar.show(); dismiss(activity); + } else { + Toast.makeText(activity, + MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getAbsolutePath()), + Toast.LENGTH_LONG).show(); } } } else { @@ -1494,6 +1509,25 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { distanceTv.setText(measurementLayer.getDistanceSt() + ","); pointsTv.setText((portrait ? pointsSt + ": " : "") + editingCtx.getPointsCount()); } + updateToolbar(); + } + + private void updateToolbar() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity == null) { + return; + } + if (editingCtx.getPointsCount() > 1) { + final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR); + toolBarController.setTitle(getSuggestedName(dir)); + toolBarController.setDescription(getString(R.string.plan_route)); + toolBarController.setSaveViewVisible(true); + } else { + toolBarController.setTitle(getString(R.string.measurement_tool_action_bar)); + toolBarController.setDescription(null); + toolBarController.setSaveViewVisible(false); + } + mapActivity.showTopToolbar(toolBarController); } private void enterMeasurementMode() { From 440ad5828b003e98472ff88732c62c000b0c0d34 Mon Sep 17 00:00:00 2001 From: Everton Hermann Date: Sun, 19 Jul 2020 16:45:00 +0200 Subject: [PATCH 02/33] Add aidl interface to lock and unlock the screen. For instance it call allow a service to wake up the navigation using media buttons --- .../osmand/aidlapi/IOsmAndAidlInterface.aidl | 6 +++ .../aidlapi/lock/SetLockStateParams.aidl | 3 ++ .../aidlapi/lock/SetLockStateParams.java | 41 +++++++++++++++++++ .../net/osmand/aidl/IOsmAndAidlInterface.aidl | 5 +++ OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java | 30 +++++++++++++- .../net/osmand/aidl/OsmandAidlService.java | 11 +++++ .../net/osmand/aidl/OsmandAidlServiceV2.java | 12 ++++++ .../net/osmand/plus/helpers/LockHelper.java | 4 +- 8 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.aidl create mode 100644 OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java diff --git a/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl b/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl index 45bf3907f7..1b1433178a 100644 --- a/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl +++ b/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl @@ -95,6 +95,7 @@ import net.osmand.aidlapi.mapmarker.RemoveMapMarkersParams; import net.osmand.aidlapi.quickaction.QuickActionParams; import net.osmand.aidlapi.quickaction.QuickActionInfoParams; +import net.osmand.aidlapi.lock.SetLockStateParams; // NOTE: Add new methods at the end of file!!! @@ -841,4 +842,9 @@ interface IOsmAndAidlInterface { boolean executeQuickAction(in QuickActionParams params); boolean getQuickActionsInfo(out List quickActions); + /** + * Toggle Lock/Unlock screen. + */ + + boolean setLockState(in SetLockStateParams params); } \ No newline at end of file diff --git a/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.aidl b/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.aidl new file mode 100644 index 0000000000..332f768344 --- /dev/null +++ b/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.aidl @@ -0,0 +1,3 @@ +package net.osmand.aidlapi.lock; + +parcelable SetLockStateParams; \ No newline at end of file diff --git a/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java b/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java new file mode 100644 index 0000000000..babb64c8b5 --- /dev/null +++ b/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java @@ -0,0 +1,41 @@ +package net.osmand.aidlapi.lock; + +import android.os.Bundle; +import android.os.Parcel; + +import net.osmand.aidlapi.AidlParams; + +public class SetLockStateParams extends AidlParams { + private boolean lock; + public SetLockStateParams(boolean lock) { + this.lock = lock; + } + + public SetLockStateParams(Parcel in) { + readFromParcel(in); + } + + public static final Creator CREATOR = new Creator() { + @Override + public SetLockStateParams createFromParcel(Parcel in) { + return new SetLockStateParams(in); + } + + @Override + public SetLockStateParams[] newArray(int size) { + return new SetLockStateParams[size]; + } + }; + public boolean getLockState(){ + return lock; + } + @Override + public void writeToBundle(Bundle bundle) { + bundle.putBoolean("lock", this.lock); + } + + @Override + protected void readFromBundle(Bundle bundle) { + lock = bundle.getBoolean("lock"); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl b/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl index 91410a35c7..6a79918aad 100644 --- a/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl +++ b/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl @@ -96,6 +96,7 @@ import net.osmand.aidl.mapmarker.RemoveMapMarkersParams; import net.osmand.aidl.quickaction.QuickActionParams; import net.osmand.aidl.quickaction.QuickActionInfoParams; +import net.osmand.aidlapi.lock.SetLockStateParams; // NOTE: Add new methods at the end of file!!! @@ -856,4 +857,8 @@ interface IOsmAndAidlInterface { boolean executeQuickAction(in QuickActionParams params); boolean getQuickActionsInfo(out List quickActions); + /** + * Toggle Lock/Unlock screen. + */ + boolean setLockState(in SetLockStateParams params); } diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java index 96686c9956..8168e5dd1c 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java @@ -44,6 +44,7 @@ import net.osmand.plus.AppInitializer; import net.osmand.plus.AppInitializer.AppInitializeListener; import net.osmand.plus.AppInitializer.InitEvents; import net.osmand.plus.dialogs.GpxAppearanceAdapter; +import net.osmand.plus.helpers.LockHelper; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; @@ -177,6 +178,7 @@ public class OsmandAidlApi { private static final String AIDL_EXECUTE_QUICK_ACTION = "aidl_execute_quick_action"; private static final String AIDL_QUICK_ACTION_NUMBER = "aidl_quick_action_number"; + private static final String AIDL_LOCK_STATE = "lock_state"; private static final ApplicationMode DEFAULT_PROFILE = ApplicationMode.CAR; @@ -228,6 +230,7 @@ public class OsmandAidlApi { registerShowSqliteDbFileReceiver(mapActivity); registerHideSqliteDbFileReceiver(mapActivity); registerExecuteQuickActionReceiver(mapActivity); + registerLockStateReceiver(mapActivity); initOsmandTelegram(); app.getAppCustomization().addListener(mapActivity); aMapPointUpdateListener = mapActivity; @@ -853,7 +856,24 @@ public class OsmandAidlApi { }; registerReceiver(executeQuickActionReceiver, mapActivity, AIDL_EXECUTE_QUICK_ACTION); } - + + private void registerLockStateReceiver(MapActivity mapActivity) { + BroadcastReceiver lockStateReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + boolean lock = intent.getBooleanExtra(AIDL_LOCK_STATE,false); + LockHelper lh = app.getLockHelper(); + if(lock) { + lh.lock(); + } + else{ + lh.unlock(); + } + } + }; + registerReceiver(lockStateReceiver, mapActivity, AIDL_LOCK_STATE); + } + public void registerMapLayers(@NonNull MapActivity mapActivity) { for (ConnectedApp connectedApp : connectedApps.values()) { connectedApp.registerMapLayers(mapActivity); @@ -1691,7 +1711,13 @@ public class OsmandAidlApi { app.sendBroadcast(intent); return true; } - + boolean setLockState(boolean lock) { + Intent intent = new Intent(); + intent.setAction(AIDL_LOCK_STATE); + intent.putExtra(AIDL_LOCK_STATE, lock); + app.sendBroadcast(intent); + return true; + } boolean search(final String searchQuery, final int searchType, final double latitude, final double longitude, final int radiusLevel, final int totalLimit, final SearchCompleteCallback callback) { if (Algorithms.isEmpty(searchQuery) || latitude == 0 || longitude == 0 || callback == null) { diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java index 8763156abe..c9fa139f98 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java @@ -85,6 +85,7 @@ import net.osmand.aidl.quickaction.QuickActionParams; import net.osmand.aidl.search.SearchParams; import net.osmand.aidl.search.SearchResult; import net.osmand.aidl.tiles.ASqliteDbFile; +import net.osmand.aidlapi.lock.SetLockStateParams; import net.osmand.data.LatLon; import net.osmand.plus.settings.backend.OsmAndAppCustomization; import net.osmand.plus.OsmandApplication; @@ -1326,6 +1327,16 @@ public class OsmandAidlService extends Service implements AidlCallbackListener { return false; } } + @Override + public boolean setLockState(SetLockStateParams params) { + try { + OsmandAidlApi api = getApi("setLockState"); + return api != null && api.setLockState(params.getLockState()); + } catch (Exception e) { + handleException(e); + return false; + } + } }; private void setCustomization(OsmandAidlApi api, CustomizationInfoParams params) { diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java index 1953e185fd..be86e7a5f5 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java @@ -15,6 +15,7 @@ import net.osmand.PlatformUtil; import net.osmand.aidl.OsmandAidlApi.GpxBitmapCreatedCallback; import net.osmand.aidl.OsmandAidlApi.OsmandAppInitCallback; import net.osmand.aidl.OsmandAidlApi.SearchCompleteCallback; +import net.osmand.aidlapi.lock.SetLockStateParams; import net.osmand.aidlapi.IOsmAndAidlCallback; import net.osmand.aidlapi.IOsmAndAidlInterface; import net.osmand.aidlapi.calculateroute.CalculateRouteParams; @@ -1259,6 +1260,17 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener return false; } } + + @Override + public boolean setLockState(SetLockStateParams params) { + try { + OsmandAidlApi api = getApi("setLockState"); + return api != null && api.setLockState(params.getLockState()); + } catch (Exception e) { + handleException(e); + return false; + } + } }; private void setCustomization(OsmandAidlApi api, CustomizationInfoParams params) { diff --git a/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java b/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java index 9bf628803a..b0f34058d3 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java @@ -104,7 +104,7 @@ public class LockHelper implements SensorEventListener { } @SuppressLint("WakelockTimeout") - private void unlock() { + public void unlock() { if (lockUIAdapter != null) { lockUIAdapter.unlock(); } @@ -116,7 +116,7 @@ public class LockHelper implements SensorEventListener { } } - private void lock() { + public void lock() { releaseWakeLocks(); if (lockUIAdapter != null) { boolean useSystemTimeout = useSystemScreenTimeout.get(); From 2a9cc21a8ac33fb89d16e604813885bf7c0b0904 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 19 Jul 2020 18:04:47 +0000 Subject: [PATCH 03/33] Translated using Weblate (Portuguese) Currently translated at 93.8% (3213 of 3424 strings) --- OsmAnd/res/values-pt/strings.xml | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 909e6a682b..ab51b048ad 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -494,7 +494,7 @@ Enviar a modificação OSM Eliminar alteração Edição assíncrona de OSM: - POIs / anotações guardados no dispositivo + POIs / anotações guardados no aparelho Mostrar e gerir POIs/anotações OSM guardados localmente. Especificar intervalo de monitoramento on-line. Intervalo de rastreamento on-line @@ -719,8 +719,8 @@ PM AM Local de estacionamento - Este suplemento grava onde o seu carro foi estacionado e quanto tempo de estacionamento resta (se houver um limite de tempo). -\nA localização e o tempo ficam visíveis no painel de controlo do OsmAnd e em um widget no ecrã do mapa. Pode ser adicionado um alarme ao calendário Android como lembrete. + Permite gravar onde o seu carro foi estacionado e quanto tempo de estacionamento resta (se houver um limite de tempo). +\nA localização e o tempo ficam visíveis no painel de controlo do OsmAnd e num widget no ecrã do mapa. Um alarme pode ser adicionado ao calendário Android como lembrete. Local de estacionamento Marcar como local de estacionamento Eliminar um marcador de estacionamento @@ -1636,7 +1636,7 @@ Dentro Utilizadores anónimos não podem: \n- Criar grupos; -\n- Sincronizar grupos e dispositivos com o servidor; +\n- Sincronizar grupos e aparelhos com o servidor; \n- Gerir grupos e aparelhos num painel de controlo pessoal no site web. Utilizador anónimo Ligado como %1$s @@ -3341,20 +3341,20 @@ Preferir estradas não pavimentadas. Atualizar todos os mapas Tem certeza de que deseja atualizar todos os mapas (%1$d)\? - - Configurações atualizadas do aplicativo e do perfil: as definições estão agora organizadas por tipo. Cada perfil pode ser personalizado separadamente. -\n -\n - Novo diálogo para descarregar mapas sugerindo um mapa para descarregar enquanto navega -\n -\n - Correções de temas escuros -\n -\n - Vários problemas de roteamento resolvidos ao redor do mundo -\n -\n - Basemap atualizado com uma rede rodoviária mais detalhada -\n -\n - Áreas fixas inundadas em todo o mundo -\n -\n - Roteamento do esqui: perfil de elevação e complexidade da rota adicionado aos detalhes da rota -\n + - Configurações atualizadas da app e do perfil: as definições estão agora organizadas por tipo. Cada perfil pode ser personalizado separadamente. +\n +\n - Novo diálogo para descarregar mapas sugerindo um mapa para descarregar enquanto navega +\n +\n - Correções de temas escuros +\n +\n - Vários problemas de roteamento resolvidos ao redor do mundo +\n +\n - Basemap atualizado com uma rede rodoviária mais detalhada +\n +\n - Áreas fixas inundadas em todo o mundo +\n +\n - Roteamento do esqui: perfil de elevação e complexidade da rota adicionada aos detalhes da rota +\n \n - Outras correções de erros \n \n From e59261fdf15a794827547afc7598f753793d05ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitja=20Je=C5=BE?= Date: Sun, 19 Jul 2020 21:10:11 +0000 Subject: [PATCH 04/33] Translated using Weblate (Slovenian) Currently translated at 77.5% (2655 of 3424 strings) --- OsmAnd/res/values-sl/strings.xml | 54 ++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index 2a3e404076..a2c92a29cf 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -117,7 +117,7 @@ Navigacija OsmAnd brez povezave trenutno ni na voljo. Promet po levi strani Možnost izberite za države, kjer se vozi po levi strani ceste. - Izhodiščna točka še ni določena + Izhodiščna točka še ni določena. Trenutno mesto še ni določeno. Spremeni prosojnost (0 – prosojno, 255 – neprosojno) Ali želite prekiniti prejemanje datoteke? @@ -191,7 +191,7 @@ Bočno (8 sektorjev) Urno (12 sektorjev) Slog prikazovanja smeri - Izbor sloga za prikaz smeri med premikanjem. + Izbor sloga za prikaz smeri med premikanjem Tukaj sem Ali želite poslati datoteko GPX na OSM? Določite uporabniško ime in geslo OSM za nalaganje datotek GPX. @@ -628,20 +628,20 @@ Prozornost osnovnega zemljevida Podloga zemljevida … Podloga zemljevida - Izbor podloge uporabljenega zemljevida. + Izbor podloge uporabljenega zemljevida Prekrivni zemljevid … Brez Prekrivni zemljevid Izbor prekrivnega zemljevida Zemljevid je že nameščen. Nastavitve bodo posodobljene. - Izbor zemljevidov za namestitev ali posodobitev + Izbor zemljevidov za namestitev ali posodobitev. Opravila ni mogoče izvesti brez vzpostavljene povezave z internetom. Namesti več … Določitev spletnega OSM s slikami. Iskanja v načinu brez povezave ni mogoče izvesti. Poišči mesto na zemljevidu Za ogled mesta sledite povezavi spletnega brskalnika %1$s ali povezavi Android %2$s - Vmesna točka GPX »{0}« je dodana. + Vmesna točka GPX »{0}« je dodana Dodaj vmesno točko na shranjeno sled GPX Dodaj vmesno točko na sled GPX Prevoz @@ -685,11 +685,11 @@ Tega zemljevida ni mogoče prejeti Stalno izrisovanje Izvaja stalno izrisovanje namesto slike-po-sliko. - Ni mogoče izrisati izbranega področja + Ni mogoče izrisati izbranega področja. Izrisovalnik je naložen - Izrisovalnika ni mogoče naložiti + Izrisovalnika ni mogoče naložiti. Vektorski izrisovalnik - Izberite videz izrisovalnika. + Izberite videz izrisovalnika Pokaži spletišče POI Pokaži telefon točke POI Poišči … @@ -702,7 +702,7 @@ Vektorski zemljevidi niso naloženi V mapi sledi ni najti mogoče nobene datoteke GPX. Datoteke GPX … - Napaka med branjem podatkov GPX + Napaka med branjem podatkov GPX. Vektorski zemljevidi za delo brez povezave Iskanje prevoza na postaji Poravnava zemljevida: @@ -737,6 +737,7 @@ \n \n OsmAnd+ je plačljiva različica programa. Z nakupom podprete projekt, razvoj programske kode, nove zmožnosti programa in pridobite dostop do vseh najnovejših posodobitev. \n +\n \n Pomembnejše lastnosti: \n • Popolnoma delujoč tudi brez povezave (shrani podatke vektorskih zemljevidov v mapo po izbiri) \n • Na voljo so stisnjeni vektorski podatki zemljevida za cel svet @@ -751,7 +752,7 @@ \n - z nastavljivo usmerjenostjo zemljevida glede na kompas ali glede na smer gibanja \n - z nastavljivo vodenje po voznih pasovih, prikaz omejitev hitrosti, vodenje s posnetim ali sintetiziranim govorom (TTS). \n" - Ni mogoče naložiti datoteke GPX + Ni mogoče naložiti datoteke GPX. Pošlji poročilo Na kartici SD ni podatkov območij za uporabo brez povezave. Vpišite niz za iskanje točk POI @@ -770,7 +771,7 @@ Nastavitev najdaljšega časa čakanja za prilagajanje trenutne točke. Najdaljši časa čakanja prilagajanja Omrežje - Interval prebujanja uporabljenih servisev v ozadju. + Interval prebujanja uporabljenih servisev v ozadju: Interval prebujanja sprejemnika GPS Način določevanja mesta med izvajanjem v ozadju: Ponudnik mesta @@ -796,7 +797,7 @@ Poteka čakanje na signal … Poišči v bližini trenutne sredine zemljevida Priljubljene točke so shranjene v {0} - Oblike zapisa delovnega časa ni mogoče spremeniti + Oblike zapisa delovnega časa ni mogoče spremeniti. Dodajanje novega pravila Poti Postaja @@ -812,8 +813,8 @@ Pokaži postaje javnega prevoza na zemljevidu. Pokaži postaje prevoza Podatki POI podatki so posodobljeni (naloženo {0}) - Seznama točk POI ni mogoče posodobiti - S strežnika ni mogoče naložiti podatkov + Seznama točk POI ni mogoče posodobiti. + S strežnika ni mogoče naložiti podatkov. Ni krajevnih podatkov POI za to območje Približanje pogleda omogoči posodabljanje točk POI Posodobi točko POI @@ -855,12 +856,12 @@ Nalaganje ulic … Nalaganje mest … Točke POI - Datoteke GPX ni mogoče shraniti - Poti ni mogoče določiti - Poti ni mogoče določiti - Določena pot je brez podatkov + Datoteke GPX ni mogoče shraniti. + Poti ni mogoče določiti. + Poti ni mogoče določiti. + Določena pot je brez podatkov. Izračunana nova pot, razdalja - Prispeli ste na cilj + Prispeli ste. Koordinate niso veljavne! Pojdi nazaj na zemljevid OsmAnd Nalaganje podatkov … @@ -907,7 +908,7 @@ ni na voljo Posnemi zvočni zaznamek Posnemi video zaznamek - Posnetka ni mogoče predvajati + Posnetka ni mogoče predvajati. Izbriši posnetek Zvok oziroma video se snema. Za ustavitev pritisnite gumb gradnika AV. Sloj posnetka @@ -1092,7 +1093,7 @@ Nastavitve navigacije Onemogoči dvofazno usmerjanje za avtomobilsko navigacijo. Nastavitve usmerjanja - Določitev hitrosti govora za TTS. + Določite hitrost govora za besedilo-v-govor (TTS). Hitrost govora Hitri izračun poti je spodletel (%s), zato bo uporabljen počasnejši način izračuna. Onemogoči zapleteno usmerjanje @@ -1149,7 +1150,7 @@ Izogne se trajektom Brez avtocest Izogne se avtocestam - Omejitev teže vozila + Omejitev teže Vodenje po poteh z omejitvijo dovoljene teže vozila. Tovorno vozilo Svetovna plačila Bitcoin @@ -1289,7 +1290,7 @@ Zadnji metri pred ciljem Z barvo označi vrsto stavbe Velikost fotografije - Izberite velikost posnetkov vgrajenega fotoaparata. + Nastavite velikost posnetkov fotoaparata Prejem manjkajočih zemljevidov %1$s (%2$d MB)? Več … Vožnja z avtomobilom @@ -2854,7 +2855,7 @@ Ne objavi Objavi Prejmite prispevke z Wikipedija o %1$s za pregled brez povezave. - Pritisnite na gumb in poslušajte glasovni odziv za ugotavljanje manjkajočih oziroma napačnih navodil. + Pritisnite na gumb in poslušajte glasovni odziv, da bi slišali, če je manjkajoč oziroma napačen Naročnine Dodaj cilj Dodaj vmesni cilj @@ -3337,4 +3338,9 @@ Invalidski voziček Gokart Zaprta opomba OSM + Za nadaljevanje morate izpolniti izbor delovnih dni + Pot med točkama/-i + Načrtujte pot + Dodaj na sled + Omejitev širine \ No newline at end of file From 51b6ccbd7b502e7ab8b9e520552df5f5eda039a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sun, 19 Jul 2020 05:33:03 +0000 Subject: [PATCH 05/33] Translated using Weblate (Turkish) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-tr/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index a809895149..b26699b76f 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3265,7 +3265,7 @@ Pist zorluğu Genişlik sınırı Rotalarda izin verilen araç genişlik sınırını belirtin. - Belirli rotalardan ve yol türlerinden kaçının + Belirli güzergahlardan ve yol türlerinden kaçının Yan yana Hava yolu Bağlantı @@ -3396,7 +3396,7 @@ Video notları Fotoğraf notları Rotanın yeniden hesaplanması - Anons + Duyuru Kullanıcı adı ve parola Bu ayarlar tüm profiller için geçerlidir. OSM düzenleme @@ -3544,8 +3544,8 @@ Bu profili oluşturduktan/ içe aktardıktan sonra tüm profil ayarları orijinal değerlerine geri yüklenecektir. Kayıtlı verileri silmek istediğinize emin misiniz\? Sapma durumunda güzergahı yeniden hesapla - Rotanın yeniden hesaplanacağı mesafeyi seçin. - Rotadan geçerli konuma olan mesafe seçilen değerden fazla ise rota yeniden hesaplanacaktır. + Güzergahın yeniden hesaplanacağı mesafeyi seçin. + Güzergahtan geçerli konuma olan mesafe seçilen değerden fazla ise güzergah yeniden hesaplanacaktır. %1$s / %2$s Yamaçlar Araziyi göster / gizle From bc31c6f5d1a975c7747c9c104cba41585f447b22 Mon Sep 17 00:00:00 2001 From: ace shadow Date: Sun, 19 Jul 2020 14:21:36 +0000 Subject: [PATCH 06/33] Translated using Weblate (Slovak) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-sk/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index b41cf8721c..4c1a4284c8 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -2068,7 +2068,7 @@ Záznam Žiadne údaje Zapnúť rýchly záznam - Zobraziť systémové oznámenie, ktoré umožňuje nahrávanie. + Zobraziť systémové oznámenie, ktoré umožňuje spustiť nahrávanie. Oznámenia Pokračovať Nemáte zatiaľ žiadne súbory GPX @@ -3818,4 +3818,8 @@ Invalidný vozík dopredu Motokára Zatvorená OSM poznámka + Pre pokračovanie musíte zadať pracovné dni + Trasa medzi bodmi + Naplánovať trasu + Pridať do stopy \ No newline at end of file From 7604bbad775340cc4004417fb165d22cefd61d13 Mon Sep 17 00:00:00 2001 From: Yunkers Date: Sun, 19 Jul 2020 15:40:34 +0000 Subject: [PATCH 07/33] Translated using Weblate (Polish) Currently translated at 99.6% (3411 of 3424 strings) --- OsmAnd/res/values-pl/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index c7ab2ef74d..8338aaddde 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3815,4 +3815,15 @@ Uzyskaj informacje o interesujących miejscach z Wikipedii. Jest to kieszonkowy przewodnik offline - wystarczy włączyć wtyczkę Wikipedii i cieszyć się artykułami o obiektach wokół ciebie. Motocykl Enduro Skuter + Określ długość pojazdu dozwoloną na trasach. + Limit długości + Rolki + Przyciski głośności jako powiększenie + Wózek inwalidzki + Gokart + Zamknięte Uwagi OSM + Aby kontynuować, musisz ustawić dni robocze + Droga pomiędzy punktami + Zaplanuj trasę + Dodaj do śladów \ No newline at end of file From 85f1aec19da4d5d7f38c26b8229a708a62a21fe8 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood Date: Sun, 19 Jul 2020 11:48:11 +0000 Subject: [PATCH 08/33] Translated using Weblate (Arabic) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-ar/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index ebfe2a0de6..f8169f5c69 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3793,7 +3793,7 @@ \n \nحدد %2$s. جميع البيانات المتعلقة كاميرات السرعة: التنبيهات، والإخطارات، سيتم حذف نقاط الاهتمام حتى يتم إعادة تثبيت أوسماند تماما. تحديد الارتفاع الأعلى المسموح به على الطرق. - طول الحد + حد الطول هذا الجهاز لا يملك كاميرات السرعة. أحذية تزلج تمكين التحكم في مستوى التكبير/التصغير بالخريطة باستخدام أزرار مستوى صوت الجهاز. @@ -3810,4 +3810,8 @@ منحدرات عربة التسوق أغلق ملاحظة OSM + تحتاج إلى تعيين أيام العمل للمتابعة + المسار بين النقاط + قياس المسافة + إضافة إلى مسار \ No newline at end of file From 617fb0c38f15bfcdb77fb883dfaf6ec68189ba2e Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 19 Jul 2020 21:13:03 +0000 Subject: [PATCH 09/33] Translated using Weblate (Sardinian) Currently translated at 99.6% (3412 of 3424 strings) --- OsmAnd/res/values-sc/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 393ad520fa..5ca06be084 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3381,7 +3381,7 @@ Annanghe unu profilu aberende su documentu suo cun OsmAnd. Errore de importatzione de %1$s: %2$s %1$s importadu. - Istimat s\'ora de arribu pro castas disconnotas de caminu, e limitat sa lestresa pro totu sos caminos (diat pòdere mudare s\'àndala) + Faghet unu càrculu de s\'ora de arribu pro castas disconnotas de caminu, e limitat sa lestresa pro totu sos caminos (diat pòdere mudare s\'àndala) Biancu Cuncàmbia %1$s e %2$s Puntu de incumintzu @@ -3822,4 +3822,8 @@ Cadira a rodas Go-kart Nota de OSM serrada + Depes impostare sas dies de traballu pro sighire + Àndala intre puntos + Pranìfica un\'àndala + Annanghe a una rasta \ No newline at end of file From 405c6f987ab899add0520e4f6142eb9fd040d44c Mon Sep 17 00:00:00 2001 From: syl Date: Sun, 19 Jul 2020 09:28:05 +0000 Subject: [PATCH 10/33] Translated using Weblate (French) Currently translated at 99.9% (3811 of 3812 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 f26c9279aa..bc34ba433b 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3830,4 +3830,6 @@ Flèche Vibration Boîte à dons + Îlot urbain + Arrondissement \ No newline at end of file From 03aecdc6fd668cb547a8a94f0b6cb03061ab03c9 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 19 Jul 2020 15:16:23 +0000 Subject: [PATCH 11/33] Translated using Weblate (Portuguese) Currently translated at 99.9% (3809 of 3812 strings) --- OsmAnd/res/values-pt/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt/phrases.xml b/OsmAnd/res/values-pt/phrases.xml index 4871e54c12..eb9e32712b 100644 --- a/OsmAnd/res/values-pt/phrases.xml +++ b/OsmAnd/res/values-pt/phrases.xml @@ -2568,7 +2568,7 @@ Salva de explosão: segunda ou posterior detonação de um teste de salva Explosão: diâmetro de cratera Explosão: ogiva - Explosão: dispositivo + Explosão: aparelho Complemento Viveiro de plantas Sim From 1111b20d21e58039923b0510e7fa4c36682b7412 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 19 Jul 2020 18:14:14 +0000 Subject: [PATCH 12/33] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/pt_PT/ --- OsmAnd-telegram/res/values-pt-rPT/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd-telegram/res/values-pt-rPT/strings.xml b/OsmAnd-telegram/res/values-pt-rPT/strings.xml index 1d32c5f8b3..40b67220ba 100644 --- a/OsmAnd-telegram/res/values-pt-rPT/strings.xml +++ b/OsmAnd-telegram/res/values-pt-rPT/strings.xml @@ -25,11 +25,11 @@ Bate-papos ativos Minutos por quilômetro Funcionamento em segundo plano - Ocultar contatos que não foram movidos em um determinado momento. + Ocultar contactos que não foram movidos num determinado momento. Configurações de GPX Digite o nome do contato ou do grupo min/m - Senha do telegrama + Palavra-passe do telegrama Última localização atualizada: Parado Mostrar quantidade de pontos de GPS coletados e enviados. @@ -71,7 +71,7 @@ Conectar OsmAnd Por favor, instale o Telegram e configure uma conta. Quilômetros por hora - Senha + Palavra-passe Distância mínima de registro Gravar Iniciar @@ -92,7 +92,7 @@ Mais tarde Minha localização Instalar OsmAnd - Telegrama (o aplicativo de mensagens) é usado para conectar e se comunicar com as pessoas. + Telegrama (a app de mensagens) é usado para conectar e se comunicar com as pessoas. Não é possível enviar para bate-papo do Telegram: Ainda não enviado %1$d pontos @@ -108,7 +108,7 @@ Expira Enviar localização como Sair - O aplicativo não tem permissão para acessar os dados de localização. + A app não tem permissão para acessar os dados de localização. Milhas por hora Pode criar e visualizar o ID do aparelho no cliente de telegrama usando o bot de bate-papo %1$s. %2$s Voltar @@ -208,7 +208,7 @@ Velocidade média Situação km/h - Então você pode usar este aplicativo. + Então pode usar esta app. Configurações Vá para as configurações Uma faixa GPX é salva automaticamente durante a navegação. From 4639396674a375b47c3bb6db9411003a454fb76e Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 19 Jul 2020 18:16:42 +0000 Subject: [PATCH 13/33] Translated using Weblate (Portuguese) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/pt/ --- OsmAnd-telegram/res/values-pt/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd-telegram/res/values-pt/strings.xml b/OsmAnd-telegram/res/values-pt/strings.xml index fe4559ac9c..ecd23c5bcd 100644 --- a/OsmAnd-telegram/res/values-pt/strings.xml +++ b/OsmAnd-telegram/res/values-pt/strings.xml @@ -58,7 +58,7 @@ Desativar monitoramento Gravação de localização ativada Ative o monitoramento para salvar todos os locais no histórico. - Telegrama (o aplicativo de mensagens) é usado para conectar e se comunicar com as pessoas. + Telegrama (a app de mensagens) é usado para conectar e se comunicar com as pessoas. OsmAnd tracker é um dos clientes que usam a Plataforma aberta do Telegram . Seus contatos podem usar qualquer outro cliente Telegram. Ao clicar em \"Continuar\" você concorda com as condições da política de privacidade do Telegram e OsmAnd. Aceitar @@ -144,7 +144,7 @@ no %1$s Escolha a versão OsmAnd que OsmAnd Tracker usa para exibir posições. Conectar OsmAnd - Ocultar contatos que não foram movidos em um determinado momento. + Ocultar contactos que não foram movidos num determinado momento. Histórico de localização A última vez que um contato foi movido. Parado @@ -161,7 +161,7 @@ Registro no Telegram Você precisa de uma conta do Telegram para usar o compartilhamento de local. Por favor, instale o Telegram e configure uma conta. - Então você pode usar este aplicativo. + Então pode usar esta app. Todos Desligado Você precisa de uma conta e número de telefone registrados no Telegram @@ -190,7 +190,7 @@ Código de Autenticação Uma faixa GPX é salva automaticamente durante a navegação. Digite a palavra-passe - Senha do telegrama + Palavra-passe do Telegram Entrar Sair Iniciando @@ -201,7 +201,7 @@ Continuar Cancelar Configurações - O aplicativo não tem permissão para acessar os dados de localização. + A app não tem permissão para acessar os dados de localização. Por favor, ligue \"Localização\" nas configurações do sistema Selecione um dos provedores de localização para compartilhar sua localização. Modo de fundo From b427a2f3faaf9edcae871723fa40646857f57997 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 20 Jul 2020 10:28:26 +0300 Subject: [PATCH 14/33] Fix WeakReference --- .../MeasurementToolFragment.java | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index ad54c152db..8b222fda08 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -80,6 +80,7 @@ import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController; import java.io.File; +import java.lang.ref.WeakReference; import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -1300,8 +1301,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { return displayedName; } - private void saveNewGpx(File dir, String fileName, boolean checked, SaveType saveType, boolean close) { - saveGpx(dir, fileName, checked, null, false, null, saveType, close); + private void saveNewGpx(File dir, String fileName, boolean showOnMap, SaveType saveType, boolean close) { + saveGpx(dir, fileName, showOnMap, null, false, null, saveType, close); } private void saveExistingGpx(GPXFile gpx, boolean showOnMap, ActionType actionType, boolean openTrackActivity) { @@ -1317,6 +1318,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { final ActionType actionType, final SaveType saveType, final boolean close) { + final WeakReference mapActivityRef = new WeakReference<>(getMapActivity()); new AsyncTask() { @@ -1451,39 +1453,40 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } private void onGpxSaved(Exception warning) { - final MapActivity activity = getMapActivity(); + final MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity == null || mapActivity.isFinishing()) { + return; + } if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } - if (activity != null) { - activity.refreshMap(); - if (warning == null) { - saved = true; - if (openTrackActivity) { - dismiss(activity); - } else { - if (close) { - snackbar = Snackbar.make(activity.getLayout(), - MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getName()), - Snackbar.LENGTH_LONG) - .setAction(R.string.shared_string_rename, new View.OnClickListener() { - @Override - public void onClick(View view) { - FileUtils.renameFile(activity, toSave, null); - } - }); - UiUtilities.setupSnackbar(snackbar, nightMode); - snackbar.show(); - dismiss(activity); - } else { - Toast.makeText(activity, - MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getAbsolutePath()), - Toast.LENGTH_LONG).show(); - } - } + mapActivity.refreshMap(); + if (warning == null) { + saved = true; + if (openTrackActivity) { + dismiss(mapActivity); } else { - Toast.makeText(activity, warning.getMessage(), Toast.LENGTH_LONG).show(); + if (close) { + snackbar = Snackbar.make(mapActivity.getLayout(), + MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getName()), + Snackbar.LENGTH_LONG) + .setAction(R.string.shared_string_rename, new View.OnClickListener() { + @Override + public void onClick(View view) { + FileUtils.renameFile(mapActivity, toSave, null); + } + }); + UiUtilities.setupSnackbar(snackbar, nightMode); + snackbar.show(); + dismiss(mapActivity); + } else { + Toast.makeText(mapActivity, + MessageFormat.format(getString(R.string.gpx_saved_sucessfully), toSave.getAbsolutePath()), + Toast.LENGTH_LONG).show(); + } } + } else { + Toast.makeText(mapActivity, warning.getMessage(), Toast.LENGTH_LONG).show(); } } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); From 660acb4d5ba512cd41e889ad603c9f6b499e6f8d Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 20 Jul 2020 11:17:45 +0300 Subject: [PATCH 15/33] Fix tracker compilation --- .../src/net/osmand/telegram/helpers/OsmandAidlHelper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/helpers/OsmandAidlHelper.kt b/OsmAnd-telegram/src/net/osmand/telegram/helpers/OsmandAidlHelper.kt index dd93c294db..338b81c48f 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/helpers/OsmandAidlHelper.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/helpers/OsmandAidlHelper.kt @@ -939,7 +939,7 @@ class OsmandAidlHelper(private val app: TelegramApplication) { if (mIOsmAndAidlInterface != null) { try { return mIOsmAndAidlInterface!!.setMapLocation( - SetMapLocationParams(latitude, longitude, zoom, animated)) + SetMapLocationParams(latitude, longitude, zoom, Float.NaN, animated)) } catch (e: RemoteException) { e.printStackTrace() } From 08a4fb229ffaba2a703dfa9e50e8c09839482e36 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 20 Jul 2020 11:48:40 +0300 Subject: [PATCH 16/33] Fix review --- .../MeasurementToolFragment.java | 56 +++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 8b222fda08..34898f6d52 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -1,6 +1,7 @@ package net.osmand.plus.measurementtool; import android.annotation.SuppressLint; +import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; @@ -80,7 +81,6 @@ import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController; import java.io.File; -import java.lang.ref.WeakReference; import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -441,7 +441,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { if (editingCtx.getPointsCount() > 0) { if (newGpxData != null && newGpxData.getActionType() == ActionType.EDIT_SEGMENT && editingCtx.isInSnapToRoadMode()) { - if (mapActivity != null && measurementLayer != null) { + if (mapActivity != null) { if (editingCtx.getPointsCount() > 0) { openSaveAsNewTrackMenu(mapActivity); } else { @@ -510,10 +510,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { @Override public void onResume() { super.onResume(); - getMapActivity().getMapLayers().getMapControlsLayer().showMapControlsIfHidden(); - cachedMapPosition = getMapActivity().getMapView().getMapPosition(); - setDefaultMapPosition(); - addInitialPoint(); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapLayers().getMapControlsLayer().showMapControlsIfHidden(); + cachedMapPosition = mapActivity.getMapView().getMapPosition(); + setDefaultMapPosition(); + addInitialPoint(); + } } @Override @@ -543,8 +546,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { return R.color.status_bar_transparent_gradient; } + @Nullable private MapActivity getMapActivity() { - return (MapActivity) getActivity(); + Activity activity = getActivity(); + if (activity instanceof MapActivity && !activity.isFinishing()) { + return (MapActivity) getActivity(); + } + return null; } private MeasurementToolLayer getMeasurementLayer() { @@ -1028,14 +1036,14 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } private void switchMovePointMode(boolean enable) { - if (enable) { - int navigationIconResId = AndroidUtils.getNavigationIconResId(getMapActivity()); - toolBarController.setBackBtnIconIds(navigationIconResId, navigationIconResId); - } else { - toolBarController.setBackBtnIconIds(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_dark); - } MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { + if (enable) { + int navigationIconResId = AndroidUtils.getNavigationIconResId(mapActivity); + toolBarController.setBackBtnIconIds(navigationIconResId, navigationIconResId); + } else { + toolBarController.setBackBtnIconIds(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_dark); + } mapActivity.showTopToolbar(toolBarController); } markGeneralComponents(enable ? View.GONE : View.VISIBLE); @@ -1048,14 +1056,14 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } private void switchAddPointBeforeAfterMode(boolean enable) { - if (enable) { - int navigationIconResId = AndroidUtils.getNavigationIconResId(getMapActivity()); - toolBarController.setBackBtnIconIds(navigationIconResId, navigationIconResId); - } else { - toolBarController.setBackBtnIconIds(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_dark); - } MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { + if (enable) { + int navigationIconResId = AndroidUtils.getNavigationIconResId(mapActivity); + toolBarController.setBackBtnIconIds(navigationIconResId, navigationIconResId); + } else { + toolBarController.setBackBtnIconIds(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_dark); + } mapActivity.showTopToolbar(toolBarController); } markGeneralComponents(enable ? View.GONE : View.VISIBLE); @@ -1318,7 +1326,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { final ActionType actionType, final SaveType saveType, final boolean close) { - final WeakReference mapActivityRef = new WeakReference<>(getMapActivity()); new AsyncTask() { @@ -1453,8 +1460,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } private void onGpxSaved(Exception warning) { - final MapActivity mapActivity = mapActivityRef.get(); - if (mapActivity == null || mapActivity.isFinishing()) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity == null) { return; } if (progressDialog != null && progressDialog.isShowing()) { @@ -1473,7 +1480,10 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { .setAction(R.string.shared_string_rename, new View.OnClickListener() { @Override public void onClick(View view) { - FileUtils.renameFile(mapActivity, toSave, null); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + FileUtils.renameFile(mapActivity, toSave, null); + } } }); UiUtilities.setupSnackbar(snackbar, nightMode); From 4d866d3c8f4a49aedacd0f798bd1679884fcb20e Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 20 Jul 2020 12:05:25 +0300 Subject: [PATCH 17/33] Fix review --- .../osmand/plus/measurementtool/MeasurementToolFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 34898f6d52..cb4492c4f4 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -550,7 +550,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { private MapActivity getMapActivity() { Activity activity = getActivity(); if (activity instanceof MapActivity && !activity.isFinishing()) { - return (MapActivity) getActivity(); + return (MapActivity) activity; } return null; } From a866efa5c75c3996a84798f496b84cdef045c013 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 20 Jul 2020 07:06:14 +0000 Subject: [PATCH 18/33] Translated using Weblate (German) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-de/strings.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 80666c5ffd..34edeeebfb 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2082,7 +2082,7 @@ Strecke Aufzeichnen Schnellaufzeichnung einschalten - Anzeige einer Systembenachrichtigung zum Starten der Streckenaufzeichnung. + Eine Systembenachrichtigung anzeigen um die Aufzeichnung starten zu können. Benachrichtigungen Aussehen Routenberechnung @@ -3811,7 +3811,7 @@ \n%2$s wählen, worauf alle Daten zu Blitzern (Warnungen, Hinweise und POIs) bis zu einer vollständigen Neuinstallation von OsmAnd gelöscht werden. Geben Sie die Fahrzeuglänge an, die auf Routen erlaubt sein soll. Längenbegrenzung - Dieses Gerät hat keine Blitzer. + Diese App hat keine Informationen zu Blitzern. Inline-Skates Aktivieren Sie die Steuerung der Zoomstufe der Karte mit den Lautstärketasten des Geräts. Lautstärketasten als Zoom @@ -3827,4 +3827,8 @@ Go-Kart Geschlossene OSM-Notiz Rollstuhl vorwärts + Zum Fortfahren müssen die Arbeitstage gesetzt sein + Route zwischen Punkten + Eine Route planen + Zu einem Track hinzufügen \ No newline at end of file From b42fe3ed177fd1ed445446763b733911240a2b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitja=20Je=C5=BE?= Date: Mon, 20 Jul 2020 11:38:14 +0000 Subject: [PATCH 19/33] Translated using Weblate (Slovenian) Currently translated at 77.5% (2656 of 3424 strings) --- OsmAnd/res/values-sl/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index a2c92a29cf..7db3977500 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -731,7 +731,7 @@ \n• brez povezave ni dostopa do vsebin z Wikipedije. \n \nOsmAnd je program v razvoju. Napredek projekta je odvisen od finančnih prispevkov, s katerimi se financira razvoj in testiranje novih funkcionalnosti. Razmislite o nakupu aplikacije OsmAnd+, ali financiranju posamezne funkcionalnosti oziroma nenamensko donacijo na spletni strani https://osmand.net. - "OsmAnd+ (OSM Automated Navigation Directions) + OsmAnd+ (OSM Automated Navigation Directions) \n \n OsmAnd+ je odprtokodna programska oprema za navigacijo, ki za prikaz uporablja širok nabor zemljevidov OpenStreetMap (OSM). Vse podatke zemljevidov je mogoče shraniti v pomnilnik naprave (telefona ali tablice) za uporabo brez povezave. OsmAnd omogoča tudi izračun poti in glasovno vodenje od zavoja do zavoja. \n @@ -747,11 +747,11 @@ \n • Iskanje naslovov, krajev in zanimivih točk (POI) brez povezave \n • Vodenje poti v načinu brez povezave za srednje dolge poti \n • Način za avtomobiliste, kolesarje in pešce: -\n - z nastavljivim samodejnim preklopom med dnevnim in nočnim prikazom -\n - z nastavljivo povečavo zemljevida glede na hitrost gibanja -\n - z nastavljivo usmerjenostjo zemljevida glede na kompas ali glede na smer gibanja -\n - z nastavljivo vodenje po voznih pasovih, prikaz omejitev hitrosti, vodenje s posnetim ali sintetiziranim govorom (TTS). -\n" +\n - z nastavljivim samodejnim preklopom med dnevnim in nočnim prikazom +\n - z nastavljivo povečavo zemljevida glede na hitrost gibanja +\n - z nastavljivo usmerjenostjo zemljevida glede na kompas ali glede na smer gibanja +\n - z nastavljivo vodenje po voznih pasovih, prikaz omejitev hitrosti, vodenje s posnetim ali sintetiziranim govorom (TTS). +\n Ni mogoče naložiti datoteke GPX. Pošlji poročilo Na kartici SD ni podatkov območij za uporabo brez povezave. @@ -3306,7 +3306,7 @@ Izbor ikone, barve in imena Uredi seznam profilov Izbrani profil - Vse nastavitve profila bodo počiščene na stanje takoj po namestitvi. + Počisti vse nastavitve profila na stanje takoj po namestitvi. Ali želite vse nastavitve profila povrniti na privzete vrednosti\? Programsko privzeto (%s) Profil po meri From e02c768c0c82601e73c862fe22225ccbdf9c3a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitja=20Je=C5=BE?= Date: Mon, 20 Jul 2020 11:36:19 +0000 Subject: [PATCH 20/33] Translated using Weblate (Slovenian) Currently translated at 20.3% (775 of 3812 strings) --- OsmAnd/res/values-sl/phrases.xml | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-sl/phrases.xml b/OsmAnd/res/values-sl/phrases.xml index fcc590aa2d..c16c397c2b 100644 --- a/OsmAnd/res/values-sl/phrases.xml +++ b/OsmAnd/res/values-sl/phrases.xml @@ -185,7 +185,7 @@ Blagovna žičnica Ledenik Greben - + Vrtača Slap Mokrišče Gozdiček @@ -203,7 +203,7 @@ Nevarno območje Vojaška pomorska baza Pogonska žičniška postaja - + Trapezna ploščad Urejen prostor za izletnike Sankaška steza Jahaško počivališče @@ -377,9 +377,9 @@ Žaga (industrijski obrat) Krovstvo Lončarstvo - + Monter Sedlarstvo - + Jadrar Ključavničarstvo Slikarstvo Paketarstvo @@ -758,4 +758,25 @@ Dvižna vrata Vrata Odpiralni časi + Stranišča + Internetna kavarna + Pomol + Tuš + Prostor za kadilce + Plačilni terminal + Plačilo z bitcoini + Jama + Vrh + Sedlo + Bankomat + Bordel + Manikura + Računalniška obrt + Ključavničar + Urar + Rokodelec + Čebelar + Steklar + Mavčar + Podzemna železnica \ No newline at end of file From 2177acc421f5e4b1b454d71b7c71a27d79a1894e Mon Sep 17 00:00:00 2001 From: MadWasp79 Date: Mon, 20 Jul 2020 15:55:37 +0300 Subject: [PATCH 21/33] fix debug routing toast conditions --- OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java | 1 - .../net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java index b52e495dd3..ff0051a451 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java @@ -1306,7 +1306,6 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo @Override public void newRouteIsCalculated(boolean newRoute, ValueHolder showToast) { - showToast.value = false; } @Override diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index 6d980d6a22..f340b6caf6 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -1994,9 +1994,6 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener directionInfo = -1; routeSelected = false; updateMenu(); - if (isVisible()) { - showToast.value = false; - } } public String generateViaDescription() { From 2cd73b56a97f96d07893084ff1dd1a3113353458 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 20 Jul 2020 18:25:14 +0300 Subject: [PATCH 22/33] Add icons for show track appearance --- .../drawable/ic_action_track_line_bold_color.xml | 9 +++++++++ .../ic_action_track_line_bold_direction.xml | 12 ++++++++++++ .../drawable/ic_action_track_line_bold_stroke.xml | 12 ++++++++++++ .../ic_action_track_line_medium_color.xml | 9 +++++++++ .../ic_action_track_line_medium_direction.xml | 12 ++++++++++++ .../ic_action_track_line_medium_stroke.xml | 12 ++++++++++++ .../drawable/ic_action_track_line_thin_color.xml | 9 +++++++++ .../ic_action_track_line_thin_direction.xml | 15 +++++++++++++++ .../drawable/ic_action_track_line_thin_stroke.xml | 12 ++++++++++++ 9 files changed, 102 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_track_line_bold_color.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_bold_direction.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_bold_stroke.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_medium_color.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_medium_direction.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_medium_stroke.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_thin_color.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_thin_direction.xml create mode 100644 OsmAnd/res/drawable/ic_action_track_line_thin_stroke.xml diff --git a/OsmAnd/res/drawable/ic_action_track_line_bold_color.xml b/OsmAnd/res/drawable/ic_action_track_line_bold_color.xml new file mode 100644 index 0000000000..81499eb9ac --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_bold_color.xml @@ -0,0 +1,9 @@ + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_bold_direction.xml b/OsmAnd/res/drawable/ic_action_track_line_bold_direction.xml new file mode 100644 index 0000000000..846c926133 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_bold_direction.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_bold_stroke.xml b/OsmAnd/res/drawable/ic_action_track_line_bold_stroke.xml new file mode 100644 index 0000000000..5a6928aa3b --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_bold_stroke.xml @@ -0,0 +1,12 @@ + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_medium_color.xml b/OsmAnd/res/drawable/ic_action_track_line_medium_color.xml new file mode 100644 index 0000000000..5427c312d9 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_medium_color.xml @@ -0,0 +1,9 @@ + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_medium_direction.xml b/OsmAnd/res/drawable/ic_action_track_line_medium_direction.xml new file mode 100644 index 0000000000..846c926133 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_medium_direction.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_medium_stroke.xml b/OsmAnd/res/drawable/ic_action_track_line_medium_stroke.xml new file mode 100644 index 0000000000..4bd70cfc68 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_medium_stroke.xml @@ -0,0 +1,12 @@ + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_thin_color.xml b/OsmAnd/res/drawable/ic_action_track_line_thin_color.xml new file mode 100644 index 0000000000..89bab2e721 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_thin_color.xml @@ -0,0 +1,9 @@ + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_thin_direction.xml b/OsmAnd/res/drawable/ic_action_track_line_thin_direction.xml new file mode 100644 index 0000000000..3da2fecfa6 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_thin_direction.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/OsmAnd/res/drawable/ic_action_track_line_thin_stroke.xml b/OsmAnd/res/drawable/ic_action_track_line_thin_stroke.xml new file mode 100644 index 0000000000..1ad8af14ea --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_track_line_thin_stroke.xml @@ -0,0 +1,12 @@ + + + From 724ef4bf09560f273e7b59e6ee66960bc5a4a456 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 20 Jul 2020 18:55:29 +0300 Subject: [PATCH 23/33] Add icon for tracks that have start and finish point in the same location --- .../map_track_point_start_finish.png | Bin 0 -> 2249 bytes .../map_track_point_start_finish.png | Bin 0 -> 1238 bytes .../map_track_point_start_finish.png | Bin 0 -> 3277 bytes .../map_track_point_start_finish.png | Bin 0 -> 6130 bytes .../map_track_point_start_finish.png | Bin 0 -> 9965 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OsmAnd/res/drawable-hdpi/map_track_point_start_finish.png create mode 100644 OsmAnd/res/drawable-mdpi/map_track_point_start_finish.png create mode 100644 OsmAnd/res/drawable-xhdpi/map_track_point_start_finish.png create mode 100644 OsmAnd/res/drawable-xxhdpi/map_track_point_start_finish.png create mode 100644 OsmAnd/res/drawable-xxxhdpi/map_track_point_start_finish.png diff --git a/OsmAnd/res/drawable-hdpi/map_track_point_start_finish.png b/OsmAnd/res/drawable-hdpi/map_track_point_start_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..70115e1cb93c5027d7d9574a26223237e3c29a35 GIT binary patch literal 2249 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 A%m4rY literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/map_track_point_start_finish.png b/OsmAnd/res/drawable-xhdpi/map_track_point_start_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..1637e27c6e93ae8cf3060e011f2847fda5314d46 GIT binary patch literal 3277 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 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/map_track_point_start_finish.png b/OsmAnd/res/drawable-xxhdpi/map_track_point_start_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..63bea3579f02936ea8003af6efa666a5bea09c31 GIT binary patch literal 6130 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 P=&{t4v=po4KYaNg<{k+9 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxxhdpi/map_track_point_start_finish.png b/OsmAnd/res/drawable-xxxhdpi/map_track_point_start_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..3961e655ccd06f4c4d60d8a89f2f692068743804 GIT binary patch literal 9965 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 Date: Mon, 20 Jul 2020 19:13:41 +0300 Subject: [PATCH 24/33] Fix #9340 --- OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java index d865a4a04b..5f206edabb 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java @@ -622,7 +622,7 @@ public class TrackPointFragment extends OsmandExpandableListFragment implements FavouritesDbHelper fdb = app.getFavorites(); for (GpxDisplayItem i : getSelectedItems()) { if (i.locationStart != null) { - FavouritePoint fp = new FavouritePoint(i.locationStart.lat, i.locationStart.lon, i.name, editText.getText().toString()); + FavouritePoint fp = FavouritePoint.fromWpt(i.locationStart, app); if (!Algorithms.isEmpty(i.description)) { fp.setDescription(i.description); } From 2aa3d03af6cd040a5e941ddf0f8fd213bfc253cd Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Mon, 20 Jul 2020 19:27:27 +0300 Subject: [PATCH 25/33] Fix #9422 --- OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java index cae8be284e..4e8febb56e 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/DetailsBottomSheet.java @@ -20,6 +20,7 @@ import net.osmand.plus.ContextMenuItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.activities.SettingsActivity; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemTwoChoicesButton; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemTwoChoicesButton.OnBottomBtnClickListener; @@ -124,6 +125,7 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { for (int i = 0; i < properties.size(); i++) { RenderingRuleProperty property = properties.get(i); final CommonPreference pref = preferences.get(i); + final String propertyName = SettingsActivity.getStringPropertyName(app, property.getAttrName(), property.getName()); if (STREET_LIGHTING.equals(property.getAttrName()) && streetLightNightProp != null) { final CommonPreference streetLightsNightPref = preferences.get(properties.indexOf(streetLightNightProp)); final BottomSheetItemTwoChoicesButton[] item = new BottomSheetItemTwoChoicesButton[1]; @@ -139,7 +141,7 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { }) .setCompoundButtonColorId(selectedProfileColorRes) .setChecked(pref.get()) - .setTitle(property.getName()) + .setTitle(propertyName) .setIconHidden(true) .setLayoutId(R.layout.bottom_sheet_item_two_choices) .setOnClickListener(new View.OnClickListener() { @@ -160,7 +162,7 @@ public class DetailsBottomSheet extends BasePreferenceBottomSheet { item[0] = (BottomSheetItemWithCompoundButton) new BottomSheetItemWithCompoundButton.Builder() .setCompoundButtonColorId(selectedProfileColorRes) .setChecked(pref.get()) - .setTitle(property.getName()) + .setTitle(propertyName) .setIconHidden(true) .setLayoutId(R.layout.bottom_sheet_item_with_switch) .setOnClickListener(new View.OnClickListener() { From b5c6593743cb58d31dcaba927989cbbfa9a3134e Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 20 Jul 2020 21:49:00 +0300 Subject: [PATCH 26/33] Fix support for old aidl api --- .../aidlapi/lock/SetLockStateParams.java | 6 ++- .../net/osmand/aidl/IOsmAndAidlInterface.aidl | 2 +- OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java | 31 ++++++------- .../net/osmand/aidl/OsmandAidlService.java | 2 +- .../osmand/aidl/lock/SetLockStateParams.aidl | 3 ++ .../osmand/aidl/lock/SetLockStateParams.java | 45 +++++++++++++++++++ 6 files changed, 71 insertions(+), 18 deletions(-) create mode 100644 OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.aidl create mode 100644 OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.java diff --git a/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java b/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java index babb64c8b5..0b71c750df 100644 --- a/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java +++ b/OsmAnd-api/src/net/osmand/aidlapi/lock/SetLockStateParams.java @@ -6,7 +6,9 @@ import android.os.Parcel; import net.osmand.aidlapi.AidlParams; public class SetLockStateParams extends AidlParams { + private boolean lock; + public SetLockStateParams(boolean lock) { this.lock = lock; } @@ -26,9 +28,11 @@ public class SetLockStateParams extends AidlParams { return new SetLockStateParams[size]; } }; - public boolean getLockState(){ + + public boolean getLockState() { return lock; } + @Override public void writeToBundle(Bundle bundle) { bundle.putBoolean("lock", this.lock); diff --git a/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl b/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl index 6a79918aad..153c0591cd 100644 --- a/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl +++ b/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl @@ -96,7 +96,7 @@ import net.osmand.aidl.mapmarker.RemoveMapMarkersParams; import net.osmand.aidl.quickaction.QuickActionParams; import net.osmand.aidl.quickaction.QuickActionInfoParams; -import net.osmand.aidlapi.lock.SetLockStateParams; +import net.osmand.aidl.lock.SetLockStateParams; // NOTE: Add new methods at the end of file!!! diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java index 8168e5dd1c..6b3b4e5373 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java @@ -43,9 +43,6 @@ import net.osmand.data.PointDescription; import net.osmand.plus.AppInitializer; import net.osmand.plus.AppInitializer.AppInitializeListener; import net.osmand.plus.AppInitializer.InitEvents; -import net.osmand.plus.dialogs.GpxAppearanceAdapter; -import net.osmand.plus.helpers.LockHelper; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.FavouritesDbHelper; @@ -54,16 +51,15 @@ import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; -import net.osmand.plus.settings.backend.OsmAndAppCustomization; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.SQLiteTileSource; -import net.osmand.plus.settings.backend.SettingsHelper; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.audionotes.AudioVideoNotesPlugin; +import net.osmand.plus.dialogs.GpxAppearanceAdapter; import net.osmand.plus.helpers.ColorDialogs; import net.osmand.plus.helpers.ExternalApiHelper; +import net.osmand.plus.helpers.LockHelper; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.mapcontextmenu.other.IContextMenuButtonListener; import net.osmand.plus.monitoring.OsmandMonitoringPlugin; @@ -75,6 +71,10 @@ import net.osmand.plus.routing.IRoutingDataUpdateListener; import net.osmand.plus.routing.RouteCalculationResult.NextDirectionInfo; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.VoiceRouter; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmAndAppCustomization; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.SettingsHelper; import net.osmand.plus.views.AidlMapLayer; import net.osmand.plus.views.MapInfoLayer; import net.osmand.plus.views.OsmandMapLayer; @@ -856,24 +856,23 @@ public class OsmandAidlApi { }; registerReceiver(executeQuickActionReceiver, mapActivity, AIDL_EXECUTE_QUICK_ACTION); } - + private void registerLockStateReceiver(MapActivity mapActivity) { BroadcastReceiver lockStateReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - boolean lock = intent.getBooleanExtra(AIDL_LOCK_STATE,false); - LockHelper lh = app.getLockHelper(); - if(lock) { - lh.lock(); - } - else{ - lh.unlock(); + LockHelper lockHelper = app.getLockHelper(); + boolean lock = intent.getBooleanExtra(AIDL_LOCK_STATE, false); + if (lock) { + lockHelper.lock(); + } else { + lockHelper.unlock(); } } }; registerReceiver(lockStateReceiver, mapActivity, AIDL_LOCK_STATE); } - + public void registerMapLayers(@NonNull MapActivity mapActivity) { for (ConnectedApp connectedApp : connectedApps.values()) { connectedApp.registerMapLayers(mapActivity); @@ -1711,6 +1710,7 @@ public class OsmandAidlApi { app.sendBroadcast(intent); return true; } + boolean setLockState(boolean lock) { Intent intent = new Intent(); intent.setAction(AIDL_LOCK_STATE); @@ -1718,6 +1718,7 @@ public class OsmandAidlApi { app.sendBroadcast(intent); return true; } + boolean search(final String searchQuery, final int searchType, final double latitude, final double longitude, final int radiusLevel, final int totalLimit, final SearchCompleteCallback callback) { if (Algorithms.isEmpty(searchQuery) || latitude == 0 || longitude == 0 || callback == null) { diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java index c9fa139f98..5dcd6626bf 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java @@ -85,7 +85,7 @@ import net.osmand.aidl.quickaction.QuickActionParams; import net.osmand.aidl.search.SearchParams; import net.osmand.aidl.search.SearchResult; import net.osmand.aidl.tiles.ASqliteDbFile; -import net.osmand.aidlapi.lock.SetLockStateParams; +import net.osmand.aidl.lock.SetLockStateParams; import net.osmand.data.LatLon; import net.osmand.plus.settings.backend.OsmAndAppCustomization; import net.osmand.plus.OsmandApplication; diff --git a/OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.aidl b/OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.aidl new file mode 100644 index 0000000000..c6ffbd4be8 --- /dev/null +++ b/OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.aidl @@ -0,0 +1,3 @@ +package net.osmand.aidl.lock; + +parcelable SetLockStateParams; \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.java b/OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.java new file mode 100644 index 0000000000..5de87873e2 --- /dev/null +++ b/OsmAnd/src/net/osmand/aidl/lock/SetLockStateParams.java @@ -0,0 +1,45 @@ +package net.osmand.aidl.lock; + +import android.os.Parcel; +import android.os.Parcelable; + +public class SetLockStateParams implements Parcelable { + + private boolean lock; + + public SetLockStateParams(boolean lock) { + this.lock = lock; + } + + public SetLockStateParams(Parcel in) { + readFromParcel(in); + } + + public static final Creator CREATOR = new Creator() { + @Override + public SetLockStateParams createFromParcel(Parcel in) { + return new SetLockStateParams(in); + } + + @Override + public SetLockStateParams[] newArray(int size) { + return new SetLockStateParams[size]; + } + }; + + public boolean getLockState() { + return lock; + } + + public void writeToParcel(Parcel out, int flags) { + out.writeByte((byte) (lock ? 1 : 0)); + } + + private void readFromParcel(Parcel in) { + lock = in.readByte() == 1; + } + + public int describeContents() { + return 0; + } +} \ No newline at end of file From d6c6392f395e942b6038510412814e56de5a806e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= Date: Mon, 20 Jul 2020 16:27:15 +0000 Subject: [PATCH 27/33] Translated using Weblate (Galician) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-gl/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 5484f5620c..89741b406b 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -1539,7 +1539,7 @@ Lon %2$s Baixar o mapa especial sen conexión para amosar as instalacións de esquí. ELIMINAR ETIQUETA Estado do GPS - Alumeado da rúa + Alumeamento público Proxy Especifica un servidor proxy. Privacidade @@ -3847,4 +3847,8 @@ Lon %2$s Cadeira de rodas só cara adiante Kart Nota do OSM pechada + Tes que definir os días laborais para continuar + Ruta entre puntos + Planear unha ruta + Engadir a unha pista \ No newline at end of file From e9b3a8b1cb9a998ca4df6cdfcdb6191d9792cf69 Mon Sep 17 00:00:00 2001 From: ssantos Date: Mon, 20 Jul 2020 19:24:53 +0000 Subject: [PATCH 28/33] Translated using Weblate (Portuguese) Currently translated at 96.0% (3290 of 3424 strings) --- OsmAnd/res/values-pt/strings.xml | 234 ++++++++++++++++--------------- 1 file changed, 118 insertions(+), 116 deletions(-) diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index ab51b048ad..a695637c93 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -84,7 +84,7 @@ Filtro Mapa de alta resolução Utilizar mapas de alta resolução para aparelhos com alta densidade de ecrã. - Posição atual desconhecida + Posição atual desconhecida. Pesquisar transportes públicos Resultados de transporte (sem destino): Resultados de transporte ({0} para o destino): @@ -389,15 +389,15 @@ Pesquisar POI (ponto de interesse) Pesquisar endereço Coordenadas - Pesquisar transporte público + Procura de transportes públicos Uma forma de procurar favoritos Navegação OsmAnd offline está temporariamente indisponível. Circulação pela esquerda Para países onde as pessoas conduzem do lado esquerdo da estrada. - Ponto de partida ainda não foi determinado - Modificar a transparência (0 - transparente, 255 - opaco) - Quer interromper o descarregamento de ficheiros\? - O mapa base está selecionado para descarregar para que a aplicação funcione. + O ponto de partida ainda não foi determinado + Definir a transparência (0 - transparente, 255 - opaco) + Cancelar o descarregamento\? + O mapa base, necessário para fornecer funcionalidade básica, está na fila de descarregamentos. Quadrículas de mapa on-line e em cache Mapas padrão (vetorial) Ative o suplemento de \'Mapas on-line\' para selecionar diferentes fontes de mapas @@ -704,11 +704,11 @@ Privado Ir buscar viatura ao estacionamento Aviso - Foi adicionada ao seu calendário uma notificação para levantar o seu carro. Esta irá permanecer lá até que elimine manualmente o lembrete. + Uma notificação para levantar o seu carro foi adicionada ao seu calendário e pode ser editada ou removida lá. Definir limite de tempo de estacionamento Eliminar o marcador de localização do estacionamento\? Eliminar um marcador de estacionamento - Escolha o tipo de estacionamento + Selecione o tipo de estacionamento Tempo limitado Sem limite de tempo Adicionar uma notificação à aplicação Calendário @@ -728,10 +728,10 @@ Local partilhado Allocated memory %1$s MB (Android limit %2$s MB, dalvik %3$s MB). Memória alocada - Memória nativa total alocada pela aplicação %1$s MB (Dalvik %2$s MB, outros %3$s MB). + Memória nativa total alocada pela app %1$s MB (Dalvik %2$s MB, outros %3$s MB). \nMemória proporcional %4$s MB (limite do Android %5$s MB, Dalvik %6$s MB). Memória nativa total - Selecione velocidade de animação da rota + Velocidade de simulação de rota: Horas Minutos O carro está estacionado em @@ -741,11 +741,11 @@ Continuar a navegação a seguir que ficou antes inacabada\? (%1$s segundos) Radares de velocidade Avisos de tráfego - Evitar estradas com portagem + Sem estradas com portagem Nome da Rua Configuração do ecrã Onde estou - Bloquear ecrã + Bloquear Bússola Resetar para original Estacionamento @@ -758,24 +758,24 @@ Próxima manobra (menor) Segunda próxima manobra Mini mapa da rota - Travar/Destravar ecrã + Bloquear O ecrã esta bloqueado Definir intervalo para ativar: - Toque no ícone de cadeado para desbloquear o ecrã - Desbloquear ecrã + Toque no ícone de cadeado para desbloquear + Desbloquear Desligar modo oculto Parar \n modo segundo plano Mostrar alertas… Configure avisos de trânsito (limites de velocidade, paragens forçadas, redutores de velocidade, túneis), avisos de radares de velocidade e informações da faixa. - Sem auto-estradas + Sem autoestradas Encaixe posição de estradas durante a navegação. Ajustar à estrada - OsmAnd é uma aplicação de navegação de código aberto para mapas off-line e on-line + Visualização e navegação móvel de mapas globais do OSM offline e online OsmAnd é uma aplicação de navegação de código aberto para mapas off-line e on-line Criar filtro de POI - Selecione o meio de transporte + Meio de transporte: Nascer do sol: %1$s \nPôr-do-sol: %2$s Dia/noite Informações @@ -783,8 +783,8 @@ Estilo de renderização Configurar ecrã Mostrar faixas - Evitar estradas não pavimentadas - Evite ferries + Sem estradas não pavimentadas + Sem balsas Evitar… Rotas fluorescentes Regua @@ -792,28 +792,28 @@ Widgets transparentes Contínuo e-mail - OsmAnd (direções automatizadas de navegação OSM) -\n -\nO OsmAnd é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados globais do OpenStreetMap (OSM). Todos os dados dos mapas (mapas vetoriais ou imagens raster) podem ser armazenados no cartão de memória do telemóvel para usar desligado da Internet. O OsmAnd também permite roteamento, tanto ligado como desligado da Internet, incluindo a funcionalidade de roteamento curva a curva com orientação por voz. -\n -\nAlgumas das características principais: -\n- Funcionalidade totalmente desligado da Internet (guarda os mapas obtidos, sejam eles vetoriais ou imagens, numa pasta selecionável). -\n- Mapas vetoriais compactados do mundo inteiro disponíveis. -\n- Descarregamento de mapas de países ou regiões diretamente na aplicação. -\n- Sobreposição de mapas diversos, como GPX ou trajetos de navegação, pontos de interesse (POI), favoritos, curvas de nível, paragens de transportes públicos, mapas adicionais com transparência personalizável. -\n- Pesquisa desligado da Internet para endereços e locais (POIs). -\n- Encaminhamento desligado da Internet para distâncias médias. -\n- Modo de carro, bicicleta e pedestre. -\n- Vista de dia/noite, com alteração automática (opcional). -\n- Ampliação do mapa dependente da velocidade. -\n- Orientação do mapa de acordo com bússola ou direção do movimento. -\n- Orientação de faixas de rodagem, aviso de limite de velocidade, vozes gravadas e vozes TTS. -\n -\nLimitações desta versão gratuita do OsmAnd: -\n- Número de descarregamentos de mapas limitado. -\n- Sem acesso aos POIs da Wikipédia no modo desligado da Internet. -\n -\nO OsmAnd está a em desenvolvimento ativo, mas o nosso projeto e o seu progresso ainda depende de contribuições financeiras para o desenvolvimento e testes de novas funcionalidades. Por favor, considere comprar o OsmAnd+, ou a ajudar a financiar novas funcionalidades específicas ou fazer um donativo no osmand.net + OsmAnd (direções automatizadas de navegação OSM) +\n +\nO OsmAnd é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados globais do OSM. Todos os dados dos mapas (mapas vetoriais ou imagens raster) podem ser armazenados no cartão de memória do telemóvel para usar desligado da Internet. O OsmAnd também permite roteamento, tanto ligado como desligado da Internet, incluindo a funcionalidade de roteamento curva a curva com orientação por voz. +\n +\nAlgumas das características principais: +\n- Funcionalidade totalmente desligado da Internet (guarda os mapas obtidos, sejam eles vetoriais ou imagens, numa pasta selecionável). +\n- Mapas vetoriais compactados do mundo inteiro disponíveis. +\n- Descarregar mapas de países ou regiões diretamente na aplicação. +\n- Sobreposição de mapas diversos, como GPX ou trajetos de navegação, pontos de interesse (POI), favoritos, curvas de nível, paragens de transportes públicos, mapas adicionais com transparência personalizável. +\n- Pesquisa desligado da Internet para endereços e locais (POIs). +\n- Encaminhamento desligado da Internet para distâncias médias. +\n- Modo de carro, bicicleta e pedestre. +\n- Vista de dia/noite, com alteração automática (opcional). +\n- Ampliação do mapa dependente da velocidade. +\n- Orientação do mapa de acordo com bússola ou direção do movimento. +\n- Orientação de faixas de rodagem, aviso de limite de velocidade, vozes gravadas e vozes para a conversão de texto para voz. +\n +\nLimitações desta versão gratuita do OsmAnd: +\n- Quantidade de descarregamentos de mapas limitado. +\n- Sem acesso aos POIs da Wikipédia no modo desligado da Internet. +\n +\nO OsmAnd está em desenvolvimento ativo, mas o nosso projeto e o seu progresso ainda depende de contribuições financeiras para o desenvolvimento e testes de novas funcionalidades. Por favor, considere comprar o OsmAnd+, ou a ajudar a financiar novas funcionalidades específicas, ou fazer um donativo no osmand.net. Selecione um esquema de cores de estrada: Esquema de cores Ver direção para o destino @@ -846,7 +846,7 @@ Destino intermediário Destino muito longe da estrada mais próxima. Adicionar etiqueta - Selecione quando mostrar apenas mapas de estradas: + Escolher quando mostrar apenas mapas de estradas: Mapas de estradas Só Estradas Mapa padrão @@ -856,15 +856,15 @@ A aplicação está a ser executada no modo de segurança (desligue-a em \"Definições\"). O serviço de segundo plano OsmAnd ainda está em execução. Tambẽm pará-lo\? Fechar conjunto de alterações - "Pesquisa mais povoações / código postal" + Pesquisar mais povoações/códigos postais O suplemento Dropbox permite sincronizar trilhos e anotações de vídeo/audio com a sua conta Dropbox. Gravar vídeo Gravar audio - Selecione a ação de widget padrão. + Ação predefinida do widget: Ação widget padrão Formato de saída de vídeo Usar gravador externo - Configurar definições de áudio e vídeo. + Definir configurações de áudio e vídeo. "Definições de áudio e vídeo " A gravação falhou Câmara não disponível @@ -874,7 +874,7 @@ Fazer uma anotação de áudio Fazer uma anotação de vídeo Camada de gravação - A gravação não pode ser reproduzida + Não foi possível reproduzir a gravação. Eliminar a gravação Tocar Hora de chegada @@ -893,10 +893,10 @@ Tire uma foto Extensão Dropbox Alterar ordem - Por favor, considere comprar o suplemento \'Curvas de Nível\' (Contour Lines) para apoiar o desenvolvimento. + Por favor, considere comprar a extensão \'Curvas de Nível\' (Contour Lines) para apoiar o desenvolvimento. Extensão curvas de nível - Selecionar na altura - Selecione o formato de saída de vídeo. + Sob demanda\? + Formato de saída de vídeo: Usar gravador do sistema para vídeo. Utilize aplicação do sistema para fotos. Usar aplicação da câmara @@ -940,17 +940,17 @@ Nome da rua Número de casa Gravação de viagem - Escolha o tema da aplicação. + Personalizar a aparência da aplicação. Tema da aplicação Opções de acessibilidade - Selecione o endereço + Especifique um endereço Selecione favorito Modificaçoes OSM Outras ações Camada de sombras de relevo Informação de GPS Não conectado ao Wi-Fi. Usar a conexão atual com a Internet para descarregar\? - Configure como gravar suas viagens. + Configurar como gravar as suas viagens. Apagar local de destino Sombras de relevo Restando %1$d ficheiros @@ -1036,16 +1036,16 @@ Versão: Sobre Versão, licenças, membros do projeto - Ampliações transferidas: %1$s - Expira (minutos): %1$s + Níveis de ampliações descarregadas: %1$s + Tempo de expiração (minutos): %1$s Transferível: %1$s Zoom máximo: %1$s Ampliação Mínima: %1$s Dados do mosaico: %1$s A origem do mosaico %1$s foi guardada - Mercator elíptico + Projeção elíptica de Mercator Zoom máximo - Expira (minutos) + Tempo de expiração (minutos) Ampliação mínima URL Escolher existente… @@ -1053,27 +1053,28 @@ Depuração FPS Lupa do mapa Mapa mundial - "OsmAnd+ (Direções de Navegação Automatizada do OSM) + OsmAnd+ (Direções de Navegação Automatizada do OSM) +\n +\n OsmAnd+ é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados globais do OSM. Todos os dados dos mapas (mapas vetoriais ou imagens raster) podem ser armazenados no cartão de memória do telemóvel para usar desligado da Internet. O OsmAnd também permite roteamento, tanto ligado como desligado da Internet, incluindo a funcionalidade de roteamento curva a curva com orientação por voz. +\n +\n OsmAnd+ é a versão paga da aplicação, ao comprá-lo está a apoiar o projeto, a financiar o desenvolvimento de novas funcionalidades e a receber as últimas atualizações. +\n +\n Algumas das características principais: +\n - Funcionalidade totalmente desligado da Internet (guarda os mapas obtidos, sejam eles vetoriais ou imagens, numa pasta selecionável). +\n - Mapas vetoriais compactados do mundo inteiro disponíveis. +\n - Descarregamento de mapas de países ou regiões diretamente na aplicação. +\n - Recurso Wikipédia desligado da Internet (descarregamento de POIs da Wikipédia), ótimo para passeios turísticos. +\n - Possibilidade de sobreposição de várias camadas de mapas, como trilhos GPX ou navegação, pontos de Interesse, favoritos, curvas de nível, paragens de transporte público, mapas adicionais com transparência personalizável. \n -\n OsmAnd+ é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados globais do OpenStreetMap (OSM). Todos os dados dos mapas (mapas vetoriais ou imagens raster) podem ser armazenados no cartão de memória do telemóvel para usar desligado da Internet. O OsmAnd também permite roteamento, tanto ligado como desligado da Internet, incluindo a funcionalidade de roteamento curva a curva com orientação por voz. -\n -\n OsmAnd+ é a versão paga da aplicação, ao comprá-lo está a apoiar o projeto, a financiar o desenvolvimento de novas funcionalidades e a receber as últimas atualizações. -\n -\n Algumas das características principais: -\n - Funcionalidade totalmente desligado da Internet (guarda os mapas obtidos, sejam eles vetoriais ou imagens, numa pasta selecionável). -\n - Mapas vetoriais compactados do mundo inteiro disponíveis. -\n - Descarregamento de mapas de países ou regiões diretamente na aplicação. -\n - Recurso Wikipédia desligado da Internet (descarregamento de POIs da Wikipédia), ótimo para passeios turísticos. -\n - Possibilidade de sobreposição de várias camadas de mapas, como trilhos GPX ou navegação, pontos de Interesse, favoritos, curvas de nível, paragens de transporte público, mapas adicionais com transparência personalizável. -\n -\n - Pesquisa desligado da Internet para endereços e locais (POIs). -\n - Encaminhamento desligado da Internet para distâncias médias. -\n - Modos de carro, bicicleta e pedestre com os opcionais: -\n - Mudança automática de visualização dia/noite -\n - Ampliação do mapa conforme a velocidade -\n - Orientação do mapa de acordo com a bússola ou a direção do movimento. -\n - Orientação por faixas de rodagem, indicação do limite de velocidade, vozes gravadas e TTS. -\n" +\n +\n - Pesquisa desligado da Internet para endereços e locais (POIs). +\n - Encaminhamento desligado da Internet para distâncias médias. +\n - Modos de carro, bicicleta e pedestre com os opcionais: +\n - Mudança automática de visualização dia/noite +\n - Ampliação do mapa conforme a velocidade +\n - Orientação do mapa de acordo com a bússola ou a direção do movimento. +\n - Orientação por faixas de rodagem, indicação do limite de velocidade, vozes gravadas e vozes de conversão de texto em voz. +\n Sem ampliação automático Aproximar Visão intermédia @@ -1093,7 +1094,7 @@ Eliminar tudo Wikipédia (off-line) Marca Marítima - Escolha os perfis visíveis na aplicação. + Escolha perfis visíveis. Perfis da aplicação Destino Rosa @@ -1101,7 +1102,7 @@ Mostrar cor Preferencias de navegação Preferências de rota - Definir a velocidade de fala para TTS. + Definir a velocidade de fala da conversão de texto em fala. Velocidade de fala dias Conectar @@ -1127,21 +1128,21 @@ Usar o trajeto indicado para a navegação\? Adicionar como destino posterior Selecione GPX … - Selecionar destino + Define destino Selecione no mapa Favorito Preferências de rota Informações de rota Prefere auto-estradas Prefere auto-estradas - Evitar estradas com portagem - Evitar estradas com portagem - Evitar estradas não pavimentadas - Evite estradas não pavimentadas. - Evitar balsas - Evitar balsas - Evitar auto-estradas - Evitar auto-estradas + Sem estradas com portagem + Evita estradas com portagem + Sem estradas não pavimentadas + Evita estradas não pavimentadas. + Sem balsas + Evita balsas + Sem autoestradas + Evita autoestradas Peso máximo Especifique o limite de peso permitido para veículos em rotas. Desde a versão KitKat que não se pode descarregar e atualizar mapas no local de armazenamento anterior (%s). Quer alterar para um local com permissão e copiar todos os ficheiros para lá\?          @@ -1211,7 +1212,7 @@ Cálculo rápido de rota falhou (%s), voltando para cálculo lento. Desativar encaminhamento de 2 fases para navegação automóvel. Desativar roteamento complexo - Voz solicita pausa, não apenas suprimir, a reprodução de música. + Avisos de voz pausam a reprodução de música. Pausar a música Partilhar rota como ficheiro GPX Rota partilhada via OsmAnd @@ -1225,7 +1226,7 @@ Favoritos partilhados via OsmAnd Formato inválido: %s Guardar como grupo de Favoritos - Selecionar destinos + Define destinos Rótulos de sobreposições de POI Carregando %1$s … Tempo atual @@ -2498,9 +2499,9 @@ Ativar proxy HTTP Configurar o proxy HTTP para todas as solicitações de rede. Servidor Proxy - Configurar o hostname do seu proxy (p. ex., 127.0.0.1). + Especifique o hostname do seu proxy (p. ex., 127.0.0.1). Porta do proxy - Configurar o número da porta do seu proxy (p. ex. 8118). + Especifique o número da porta do seu proxy (p. ex. 8118). Média %1$d de %2$d Subida/Descida @@ -2524,12 +2525,12 @@ Hebraico Avançar Painel de controlo - Enviar o rastreamento para um serviço web especificado, se estiver ativado o registo de GPX. + Enviar o rastreamento para um serviço web especificado, se o registo de GPX estiver ligado. Rastreamento on-line (requer GPX) Iniciar rastreamento on-line Parar rastreamento on-line - Iniciar registo de GPX - Parar registo de GPX + Retomar o registo de GPX + Pausar o registo de GPX Iniciar novo segmento Estradas não trafegáveis Texto @@ -2538,8 +2539,8 @@ Menos detalhes Restrições de acesso Descarregamentos não encontrados, por favor verifique a sua ligação à Internet. - Não há ficheiros GPX selecionados. Para selecionar toque e segure a trilha disponível. - Selecione para mostrar + Especificar um ficheiro GPX com um toque longo primeiro. + Selecione um trilho Ordenar por distância Ordenar por nome Inglês (Reino Unido) @@ -2555,10 +2556,10 @@ Chinês (simplificado) Chinês (Hong Kong) "Chinês (tradicional) " - Evitar escadas - Evitar escadas - Evitar passagens por fronteiras - Evitar cruzar fronteiras nacionais + Sem escadas + Evita escadas + Sem passagens por fronteiras + Evita cruzar fronteiras nacionais Limite de altura Especifique a altura permitida do veículo nas rotas. Para longas distâncias: por favor adicione destinos intermédios se nenhuma rota for encontrada dentro de 10 minutos. @@ -2568,7 +2569,7 @@ Renderizar caminhos de acordo com a escala de SAC. Renderizar caminhos de acordo com traços OSMC. Hora intermediária - OsmAnd (sigla em inglês de direções de navegação automatizada do OSM) é uma aplicação de mapas e navegação com acesso a dados livres, mundiais e de alta qualidade do OpenStreetMap (OSM). + OsmAnd (sigla em inglês de direções de navegação automatizada do OSM) é uma aplicação de mapas e navegação com acesso a dados livres, mundiais e de alta qualidade do OSM. \n \nPoderá usar o navegador visual e por voz, ver POIs (pontos de interesse), criar e gerir trilhos GPX, usar (através de um suplemento) curvas de nível e dados de altitude, escolher entre os modos motorista, ciclista e pedestre, editar o OpenStreetMap e muito mais. Navegação GPS @@ -2626,7 +2627,7 @@ \n • Antártida: * \n A maioria dos países ao redor do globo está disponível para descarregar! \n Obtenha um navegador confiável no seu país - seja em França, Alemanha, México, Reino Unido, Espanha, Holanda, EUA, Rússia, Brasil ou qualquer outro. - OsmAnd+ (direções de navegação automatizada do OSM) é uma aplicação de mapas e navegação com acesso a dados livres do OpenStreetMap (OSM), de todo o mundo e de alta qualidade. + OsmAnd+ (direções de navegação automatizada do OSM) é uma aplicação de mapas e navegação com acesso a dados livres do OSM, de todo o mundo e de alta qualidade. \nDesfrute da navegação visual ou por voz, vendo POIs (pontos de interesse), criando e gerindo trilhos GPX, usando informação de altitude e curvas de nível, escolher entre modos dirigir, andar de bicicleta e pedestre, editar o OpenStreetMap e muito mais. \n \nOsmAnd+ é a versão paga da aplicação. Ao comprá-lo, está a apoiar o projeto, a financiar o desenvolvimento de novas funcionalidades e a receber as últimas atualizações. @@ -2640,20 +2641,21 @@ \n• Correção automática da rota sempre que sair da rota. \n• Procure lugares por endereço, pelo tipo (por exemplo: restaurante, hotel, posto de gasolina, museu...) ou por coordenadas geográficas. Visualização de mapa -\n • Veja a sua posição e orientação. -\n • Oriente opcionalmente o ecrã de acordo com a bússola ou a direção do seu movimento. -\n • Guarde os seus lugares mais importantes como favoritos. -\n • Veja POIs (pontos de interesse) por perto. -\n • Veja imagens online especializadas, vistas de satélite (do Bing), diferentes camadas como trilhos de navegação GPX e camadas adicionais com transparência personalizável. +\n • Veja a sua posição e orientação. +\n • Oriente opcionalmente o ecrã de acordo com a bússola ou a direção do seu movimento. +\n • Guarde os seus lugares mais importantes como favoritos. +\n • Veja POIs (pontos de interesse) por perto. +\n • Veja imagens online especializadas, vistas de satélite (do Bing), diferentes camadas como trilhos de navegação GPX e camadas adicionais com transparência personalizável. \n • Veja opcionalmente nomes de lugares em inglês, na língua local ou grafia fonética. \n Use dados do OpenStretMap e da Wikipédia -\n • Informações de alta qualidade dos melhores projetos colaborativos do mundo. -\n • Dados do OpenStretMap disponíveis por país ou região. -\n • POIs da Wikipédia, ótimo para passeios turísticos. -\n • Descarregamentos grátis ilimitados, diretamente da aplicação. -\n • Mapas vetoriais compactos e atualizados mensalmente, desligado da Internet. -\n • Seleção entre região completa ou apenas a rede rodoviária (exemplo: o Japão inteiro tem 700 MB e a rede rodoviária tem apenas 200 MB). +\n • Informações de alta qualidade dos melhores projetos colaborativos do mundo. +\n • Dados do OSM disponíveis por país ou região. +\n • POIs da Wikipédia, ótimo para passeios turísticos. +\n • Descarregamentos grátis ilimitados, diretamente da aplicação. +\n • Mapas offline vetoriais compactos e atualizados mensalmente +\n +\n • Escolha entre região completa ou apenas a rede rodoviária (exemplo: o Japão inteiro tem 700 MB e a rede rodoviária tem apenas 200 MB). Recursos de segurança \n• Mudança da visualização automática para dia/noite opcional \n• Visualização do limite de velocidade (opcional), com lembrete se o ultrapassar @@ -3184,9 +3186,9 @@ Grau 4 Grau 5 Aparelhos de entrada externos - Selecione um aparelho como um teclado genérico ou WunderLINQ para controles externos. + Selecione um aparelho de controle externo, como um teclado ou WunderLINQ. Nenhum - Teclado Genérico + Teclado WunderLINQ Parrot Por favor, ative pelo menos um perfil de app para usar esta configuração. From 3dc52d2bdb94f7001e52a553bdb57f17e1fc4932 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 20 Jul 2020 16:00:54 +0000 Subject: [PATCH 29/33] Translated using Weblate (German) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 34edeeebfb..5ccd2bb2cd 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3776,7 +3776,7 @@ Sie können Schnellaktionen mit Anwendungsprofilen exportieren oder importieren. Alles löschen\? Möchten Sie %d Schnellaktionen wirklich unwiderruflich löschen\? - Töne + Tonnen Meter Bildschirm-Zeitlimit Zusätzliche Kartendetails anzeigen oder ausblenden From 1ca865a61ed27b56f88899005f7d7fdc7fd854cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Vieites=20Sueiro?= Date: Mon, 20 Jul 2020 19:25:57 +0000 Subject: [PATCH 30/33] Translated using Weblate (Galician) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-gl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 89741b406b..bf9fe81455 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -3849,6 +3849,6 @@ Lon %2$s Nota do OSM pechada Tes que definir os días laborais para continuar Ruta entre puntos - Planear unha ruta + Planificar unha ruta Engadir a unha pista \ No newline at end of file From ae7964da1ea9e338d08abd27e1e4340bd40a9979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= Date: Mon, 20 Jul 2020 16:28:49 +0000 Subject: [PATCH 31/33] Translated using Weblate (Galician) Currently translated at 100.0% (3812 of 3812 strings) --- OsmAnd/res/values-gl/phrases.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 5e15e78702..355af7af55 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -1111,7 +1111,7 @@ Pedras de pasaxe en río Barreira levadiza Illa de tránsito - Torre de alumeado + Torre de alumeamento Embalaxes de plástico Embalaxes de papel Liña branca @@ -1616,7 +1616,7 @@ Tipo de cabina: servizo postal Tipo de cabina: lixo Tipo de cabina: xestión da auga - Tipo de cabina: alumeado público + Tipo de cabina: alumeamento público Tipo de bomba: bomba de vareta Tipo de bomba: India Mark II ou III Tipo de bomba: de gravidade From e663511f7155a9fdfc002da958ba3622cdec4a3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mitja=20Je=C5=BE?= Date: Mon, 20 Jul 2020 14:39:23 +0000 Subject: [PATCH 32/33] Translated using Weblate (Slovenian) Currently translated at 21.1% (807 of 3812 strings) --- OsmAnd/res/values-sl/phrases.xml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/OsmAnd/res/values-sl/phrases.xml b/OsmAnd/res/values-sl/phrases.xml index c16c397c2b..93541c0d37 100644 --- a/OsmAnd/res/values-sl/phrases.xml +++ b/OsmAnd/res/values-sl/phrases.xml @@ -779,4 +779,36 @@ Steklar Mavčar Podzemna železnica + Parfumerija + Trgovina z avto deli + Prodajalna pnevmatik + Prodaja vstopnic + Trgovina z rabljenimi izdelki + Glasbena trgovina + Trgovina z usnjem + Trgovina s tekočim plinom + Naredi sam trgovina + Fotoaparati in objektivi + Trgovina s kavo + Trgovina s čokolado + Trgovina s siri + Točke pohodne/kolesarske mreže + Video + SMS + Dostop za moped + Dostop za avtobus + Dostop za motorne sani + Da + Plezalna pečina + Parkiraj in se pelji + Knjige + Vtičnica + Stisnjen zrak + Posoda + Napajalnik + Drive-thru + Za s seboj + Menjalnica + Posojilodajalec + Zastavljalnica \ No newline at end of file From ab12671e9f08419aec9ed2bdee295d16b0730f56 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Mon, 20 Jul 2020 17:37:25 +0000 Subject: [PATCH 33/33] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3424 of 3424 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 98806e2f4c..3cb0a667c4 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3807,4 +3807,8 @@ Pôr do Sol: %2$s Cadeira de rodas para a frente Carrinho de compras Nota OSM fechada + Adicionar a uma trilha + Você precisa definir dias úteis para continuar + Rota entre pontos + Planejar uma rota \ No newline at end of file