Merge branch 'master' of ssh://github.com/osmandapp/Osmand into TelegramStaleLocation
This commit is contained in:
commit
448290aa21
67 changed files with 1579 additions and 437 deletions
|
@ -24,7 +24,7 @@ public interface ITileSource {
|
||||||
|
|
||||||
public boolean couldBeDownloadedFromInternet();
|
public boolean couldBeDownloadedFromInternet();
|
||||||
|
|
||||||
public int getExpirationTimeMillis();
|
public long getExpirationTimeMillis();
|
||||||
|
|
||||||
public int getExpirationTimeMinutes();
|
public int getExpirationTimeMinutes();
|
||||||
|
|
||||||
|
|
|
@ -11,15 +11,12 @@ import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ArrayBlockingQueue;
|
|
||||||
import java.util.concurrent.BlockingDeque;
|
|
||||||
import java.util.concurrent.BlockingQueue;
|
import java.util.concurrent.BlockingQueue;
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
@ -310,4 +307,5 @@ public class MapTileDownloader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class TileSourceManager {
|
||||||
private int avgSize;
|
private int avgSize;
|
||||||
private int bitDensity;
|
private int bitDensity;
|
||||||
// -1 never expires,
|
// -1 never expires,
|
||||||
private int expirationTimeMillis = -1;
|
private long expirationTimeMillis = -1;
|
||||||
private boolean ellipticYTile;
|
private boolean ellipticYTile;
|
||||||
private String rule;
|
private String rule;
|
||||||
private boolean hidden; // if hidden in configure map settings, for example mapillary sources
|
private boolean hidden; // if hidden in configure map settings, for example mapillary sources
|
||||||
|
@ -141,7 +141,7 @@ public class TileSourceManager {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExpirationTimeMillis(int timeMillis) {
|
public void setExpirationTimeMillis(long timeMillis) {
|
||||||
this.expirationTimeMillis = timeMillis;
|
this.expirationTimeMillis = timeMillis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ public class TileSourceManager {
|
||||||
if(minutes < 0) {
|
if(minutes < 0) {
|
||||||
this.expirationTimeMillis = -1;
|
this.expirationTimeMillis = -1;
|
||||||
} else {
|
} else {
|
||||||
this.expirationTimeMillis = minutes * 60 * 1000;
|
this.expirationTimeMillis = minutes * 60 * 1000l;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,10 +157,10 @@ public class TileSourceManager {
|
||||||
if(expirationTimeMillis < 0) {
|
if(expirationTimeMillis < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return expirationTimeMillis / (60 * 1000);
|
return (int) (expirationTimeMillis / (60 * 1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getExpirationTimeMillis() {
|
public long getExpirationTimeMillis() {
|
||||||
return expirationTimeMillis;
|
return expirationTimeMillis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -401,6 +401,10 @@ public class SearchUICore {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void search(final String text, final boolean delayedExecution, final ResultMatcher<SearchResult> matcher) {
|
public void search(final String text, final boolean delayedExecution, final ResultMatcher<SearchResult> matcher) {
|
||||||
|
search(text, delayedExecution, matcher, searchSettings);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void search(final String text, final boolean delayedExecution, final ResultMatcher<SearchResult> matcher, final SearchSettings searchSettings) {
|
||||||
final int request = requestNumber.incrementAndGet();
|
final int request = requestNumber.incrementAndGet();
|
||||||
final SearchPhrase phrase = this.phrase.generateNewPhrase(text, searchSettings);
|
final SearchPhrase phrase = this.phrase.generateNewPhrase(text, searchSettings);
|
||||||
this.phrase = phrase;
|
this.phrase = phrase;
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:fitsSystemWindows="true"
|
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<android.support.design.widget.AppBarLayout
|
<android.support.design.widget.AppBarLayout
|
||||||
|
android:id="@+id/app_bar_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="?attr/card_bg_color">
|
android:background="?attr/card_bg_color">
|
||||||
|
|
|
@ -129,7 +129,7 @@
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginEnd="@dimen/content_padding_standard"
|
android:layout_marginEnd="@dimen/content_padding_standard"
|
||||||
android:layout_marginRight="@dimen/content_padding_standard"
|
android:layout_marginRight="@dimen/content_padding_standard"
|
||||||
android:text="@string/stop_sharing_chat"
|
android:text="@string/turn_off_location_sharing"
|
||||||
android:textColor="?attr/ctrl_active_color"
|
android:textColor="?attr/ctrl_active_color"
|
||||||
android:textSize="@dimen/hint_text_size"
|
android:textSize="@dimen/hint_text_size"
|
||||||
app:typeface="@string/font_roboto_medium" />
|
app:typeface="@string/font_roboto_medium" />
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
android:textColor="?android:attr/textColorSecondary"
|
android:textColor="?android:attr/textColorSecondary"
|
||||||
android:textSize="@dimen/hint_text_size"
|
android:textSize="@dimen/hint_text_size"
|
||||||
app:typeface="@string/font_roboto_regular"
|
app:typeface="@string/font_roboto_regular"
|
||||||
tools:text="@string/stop_at" />
|
tools:text="@string/expire_in" />
|
||||||
|
|
||||||
<net.osmand.telegram.ui.views.TextViewEx
|
<net.osmand.telegram.ui.views.TextViewEx
|
||||||
android:id="@+id/ending_in_first_part"
|
android:id="@+id/ending_in_first_part"
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
<string name="send_my_location">Send my location</string>
|
<string name="send_my_location">Send my location</string>
|
||||||
<string name="gps_and_location">GPS & location</string>
|
<string name="gps_and_location">GPS & location</string>
|
||||||
<string name="sharing_time">Sharing time</string>
|
<string name="sharing_time">Sharing time</string>
|
||||||
<string name="stop_at">Stop at</string>
|
<string name="expire_in">Expire in</string>
|
||||||
<string name="stop_sharing_all">Sharing is enabled (disable)</string>
|
<string name="stop_sharing_all">Sharing is enabled (disable)</string>
|
||||||
<string name="stop_sharing_chat">Stop chat sharing</string>
|
<string name="turn_off_location_sharing">Turn off location sharing</string>
|
||||||
<string name="open_osmand">Open OsmAnd</string>
|
<string name="open_osmand">Open OsmAnd</string>
|
||||||
<string name="shared_string_live">Live</string>
|
<string name="shared_string_live">Live</string>
|
||||||
<string name="shared_string_bot">Bot</string>
|
<string name="shared_string_bot">Bot</string>
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
<item name="primary_btn_bg">@drawable/primary_btn_bg_light</item>
|
<item name="primary_btn_bg">@drawable/primary_btn_bg_light</item>
|
||||||
<item name="primary_btn_text_color">@color/primary_btn_text_light</item>
|
<item name="primary_btn_text_color">@color/primary_btn_text_light</item>
|
||||||
<item name="secondary_btn_bg">@drawable/secondary_btn_bg_light</item>
|
<item name="secondary_btn_bg">@drawable/secondary_btn_bg_light</item>
|
||||||
<item name="android:windowTranslucentStatus">true</item>
|
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="bottom_nav_shadow">@drawable/bg_bottom_bar_shadow_with_line_day</item>
|
<item name="bottom_nav_shadow">@drawable/bg_bottom_bar_shadow_with_line_day</item>
|
||||||
|
@ -41,6 +40,11 @@
|
||||||
<item name="android:windowTranslucentStatus">true</item>
|
<item name="android:windowTranslucentStatus">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionbar.Transparent">
|
||||||
|
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||||
|
<item name="android:windowTranslucentNavigation">true</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.BottomSheet">
|
<style name="AppTheme.BottomSheet">
|
||||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||||
<item name="android:windowBackground">@android:color/transparent</item>
|
<item name="android:windowBackground">@android:color/transparent</item>
|
||||||
|
|
|
@ -162,6 +162,11 @@ class TelegramSettings(private val app: TelegramApplication) {
|
||||||
|
|
||||||
fun getShowOnMapChatsCount() = showOnMapChats.size
|
fun getShowOnMapChatsCount() = showOnMapChats.size
|
||||||
|
|
||||||
|
fun clear() {
|
||||||
|
stopSharingLocationToChats()
|
||||||
|
app.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE).edit().clear().apply()
|
||||||
|
}
|
||||||
|
|
||||||
fun save() {
|
fun save() {
|
||||||
val prefs = app.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE)
|
val prefs = app.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE)
|
||||||
val edit = prefs.edit()
|
val edit = prefs.edit()
|
||||||
|
|
|
@ -35,12 +35,16 @@ class MessagesDbHelper(val app: TelegramApplication) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun saveMessages() {
|
fun saveMessages() {
|
||||||
sqliteHelper.clearMessages()
|
clearMessages()
|
||||||
synchronized(messages) {
|
synchronized(messages) {
|
||||||
sqliteHelper.addMessages(messages)
|
sqliteHelper.addMessages(messages)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun clearMessages() {
|
||||||
|
sqliteHelper.clearMessages()
|
||||||
|
}
|
||||||
|
|
||||||
private fun addMessage(chatId: Long, messageId: Long) {
|
private fun addMessage(chatId: Long, messageId: Long) {
|
||||||
synchronized(messages) {
|
synchronized(messages) {
|
||||||
messages.add(Message(chatId, messageId))
|
messages.add(Message(chatId, messageId))
|
||||||
|
|
|
@ -145,15 +145,17 @@ class TelegramHelper private constructor() {
|
||||||
|
|
||||||
fun getChatLiveMessages() = chatLiveMessages
|
fun getChatLiveMessages() = chatLiveMessages
|
||||||
|
|
||||||
fun getMessagesByChatIds(): Map<Long, List<TdApi.Message>> {
|
fun getMessagesByChatIds(messageExpTime: Long): Map<Long, List<TdApi.Message>> {
|
||||||
val res = mutableMapOf<Long, MutableList<TdApi.Message>>()
|
val res = mutableMapOf<Long, MutableList<TdApi.Message>>()
|
||||||
for (message in usersLocationMessages.values) {
|
for (message in usersLocationMessages.values) {
|
||||||
var messages = res[message.chatId]
|
if (System.currentTimeMillis() / 1000 - getLastUpdatedTime(message) < messageExpTime) {
|
||||||
if (messages != null) {
|
var messages = res[message.chatId]
|
||||||
messages.add(message)
|
if (messages != null) {
|
||||||
} else {
|
messages.add(message)
|
||||||
messages = mutableListOf(message)
|
} else {
|
||||||
res[message.chatId] = messages
|
messages = mutableListOf(message)
|
||||||
|
res[message.chatId] = messages
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
@ -179,10 +181,19 @@ class TelegramHelper private constructor() {
|
||||||
return chat.type is TdApi.ChatTypeSupergroup || chat.type is TdApi.ChatTypeBasicGroup
|
return chat.type is TdApi.ChatTypeSupergroup || chat.type is TdApi.ChatTypeBasicGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getLastUpdatedTime(message: TdApi.Message) = Math.max(message.editDate, message.date)
|
fun getLastUpdatedTime(message: TdApi.Message): Int {
|
||||||
|
val content = message.content
|
||||||
|
return if (content is MessageOsmAndBotLocation) {
|
||||||
|
content.lastUpdated
|
||||||
|
} else {
|
||||||
|
Math.max(message.editDate, message.date)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun isPrivateChat(chat: TdApi.Chat): Boolean = chat.type is TdApi.ChatTypePrivate
|
fun isPrivateChat(chat: TdApi.Chat): Boolean = chat.type is TdApi.ChatTypePrivate
|
||||||
|
|
||||||
|
fun isSecretChat(chat: TdApi.Chat): Boolean = chat.type is TdApi.ChatTypeSecret
|
||||||
|
|
||||||
private fun isChannel(chat: TdApi.Chat): Boolean {
|
private fun isChannel(chat: TdApi.Chat): Boolean {
|
||||||
return chat.type is TdApi.ChatTypeSupergroup && (chat.type as TdApi.ChatTypeSupergroup).isChannel
|
return chat.type is TdApi.ChatTypeSupergroup && (chat.type as TdApi.ChatTypeSupergroup).isChannel
|
||||||
}
|
}
|
||||||
|
@ -577,7 +588,7 @@ class TelegramHelper private constructor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun stopSendingLiveLocationMessages() {
|
fun stopSendingLiveLocationMessages() {
|
||||||
chatLiveMessages.forEach { chatId, _ ->
|
chatLiveMessages.forEach { (chatId, _ )->
|
||||||
stopSendingLiveLocationToChat(chatId)
|
stopSendingLiveLocationToChat(chatId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -612,7 +623,7 @@ class TelegramHelper private constructor() {
|
||||||
|
|
||||||
private fun sendLiveLocationImpl(chatLivePeriods: Map<Long, Long>, latitude: Double, longitude: Double) {
|
private fun sendLiveLocationImpl(chatLivePeriods: Map<Long, Long>, latitude: Double, longitude: Double) {
|
||||||
val location = TdApi.Location(latitude, longitude)
|
val location = TdApi.Location(latitude, longitude)
|
||||||
chatLivePeriods.forEach { chatId, livePeriod ->
|
chatLivePeriods.forEach { (chatId, livePeriod) ->
|
||||||
val content = TdApi.InputMessageLocation(location, livePeriod.toInt())
|
val content = TdApi.InputMessageLocation(location, livePeriod.toInt())
|
||||||
val msgId = chatLiveMessages[chatId]?.id
|
val msgId = chatLiveMessages[chatId]?.id
|
||||||
if (msgId != null) {
|
if (msgId != null) {
|
||||||
|
@ -901,8 +912,6 @@ class TelegramHelper private constructor() {
|
||||||
internal set
|
internal set
|
||||||
var lastUpdated: Int = 0
|
var lastUpdated: Int = 0
|
||||||
internal set
|
internal set
|
||||||
var created: Int = 0
|
|
||||||
internal set
|
|
||||||
|
|
||||||
override fun getConstructor() = -1
|
override fun getConstructor() = -1
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package net.osmand.telegram.ui
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.support.v4.app.DialogFragment
|
||||||
|
import net.osmand.telegram.R
|
||||||
|
import net.osmand.telegram.TelegramApplication
|
||||||
|
|
||||||
|
open class BaseDialogFragment : DialogFragment() {
|
||||||
|
|
||||||
|
val app: TelegramApplication
|
||||||
|
get() = activity?.application as TelegramApplication
|
||||||
|
|
||||||
|
val telegramHelper get() = app.telegramHelper
|
||||||
|
val settings get() = app.settings
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
when {
|
||||||
|
Build.VERSION.SDK_INT >= 23 -> setStyle(DialogFragment.STYLE_NO_FRAME, R.style.AppTheme_NoActionbar_Transparent)
|
||||||
|
Build.VERSION.SDK_INT >= 19 -> setStyle(DialogFragment.STYLE_NO_FRAME, R.style.AppTheme_NoActionbar_Translucent)
|
||||||
|
else -> setStyle(DialogFragment.STYLE_NO_FRAME, R.style.AppTheme_NoActionbar)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -212,13 +212,13 @@ class LiveNowTabFragment : Fragment(), TelegramListener, TelegramIncomingMessage
|
||||||
|
|
||||||
private fun updateLocationUi() {
|
private fun updateLocationUi() {
|
||||||
if (locationUiUpdateAllowed) {
|
if (locationUiUpdateAllowed) {
|
||||||
app.runInUIThread { adapter.notifyDataSetChanged() }
|
app.runInUIThread { updateList() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateList() {
|
private fun updateList() {
|
||||||
val res = mutableListOf<ListItem>()
|
val res = mutableListOf<ListItem>()
|
||||||
for ((id, messages) in telegramHelper.getMessagesByChatIds()) {
|
for ((id, messages) in telegramHelper.getMessagesByChatIds(settings.locHistoryTime)) {
|
||||||
telegramHelper.getChat(id)?.also { chat ->
|
telegramHelper.getChat(id)?.also { chat ->
|
||||||
res.add(TelegramUiHelper.chatToChatItem(telegramHelper, chat, messages))
|
res.add(TelegramUiHelper.chatToChatItem(telegramHelper, chat, messages))
|
||||||
val type = chat.type
|
val type = chat.type
|
||||||
|
|
|
@ -6,7 +6,6 @@ import android.graphics.Rect
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.annotation.StringRes
|
import android.support.annotation.StringRes
|
||||||
import android.support.v4.app.DialogFragment
|
|
||||||
import android.support.v4.app.FragmentManager
|
import android.support.v4.app.FragmentManager
|
||||||
import android.support.v4.content.ContextCompat
|
import android.support.v4.content.ContextCompat
|
||||||
import android.support.v7.widget.AppCompatImageView
|
import android.support.v7.widget.AppCompatImageView
|
||||||
|
@ -30,7 +29,7 @@ import net.osmand.telegram.utils.AndroidUtils
|
||||||
import studio.carbonylgroup.textfieldboxes.ExtendedEditText
|
import studio.carbonylgroup.textfieldboxes.ExtendedEditText
|
||||||
|
|
||||||
|
|
||||||
class LoginDialogFragment : DialogFragment() {
|
class LoginDialogFragment : BaseDialogFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
@ -118,10 +117,7 @@ class LoginDialogFragment : DialogFragment() {
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setStyle(DialogFragment.STYLE_NO_FRAME, R.style.AppTheme_NoActionbar_Translucent)
|
requireActivity().window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
|
||||||
val activity = requireActivity()
|
|
||||||
val window = activity.window
|
|
||||||
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
|
@ -218,7 +214,7 @@ class LoginDialogFragment : DialogFragment() {
|
||||||
var focusRequested = false
|
var focusRequested = false
|
||||||
for (t in LoginDialogType.values()) {
|
for (t in LoginDialogType.values()) {
|
||||||
val layout: View? = view?.findViewById(t.viewId)
|
val layout: View? = view?.findViewById(t.viewId)
|
||||||
val contains = t == loginDialogActiveType && !showProgress
|
val contains = t == loginDialogActiveType
|
||||||
when {
|
when {
|
||||||
contains -> {
|
contains -> {
|
||||||
if (layout != null) {
|
if (layout != null) {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package net.osmand.telegram.ui
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.design.widget.BottomNavigationView
|
import android.support.design.widget.BottomNavigationView
|
||||||
import android.support.v4.app.DialogFragment
|
import android.support.v4.app.DialogFragment
|
||||||
|
@ -58,6 +59,12 @@ class MainActivity : AppCompatActivity(), TelegramListener, ActionButtonsListene
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
|
AndroidUtils.enterToTransparentFullScreen(this)
|
||||||
|
} else if (Build.VERSION.SDK_INT >= 19) {
|
||||||
|
AndroidUtils.enterToTranslucentFullScreen(this)
|
||||||
|
}
|
||||||
|
|
||||||
paused = false
|
paused = false
|
||||||
|
|
||||||
val viewPager = findViewById<LockableViewPager>(R.id.view_pager).apply {
|
val viewPager = findViewById<LockableViewPager>(R.id.view_pager).apply {
|
||||||
|
@ -149,8 +156,6 @@ class MainActivity : AppCompatActivity(), TelegramListener, ActionButtonsListene
|
||||||
|
|
||||||
if (AndroidUtils.isLocationPermissionAvailable(this)) {
|
if (AndroidUtils.isLocationPermissionAvailable(this)) {
|
||||||
app.locationProvider.resumeAllUpdates()
|
app.locationProvider.resumeAllUpdates()
|
||||||
} else {
|
|
||||||
AndroidUtils.requestLocationPermission(this)
|
|
||||||
}
|
}
|
||||||
if (settings.hasAnyChatToShowOnMap() && !isOsmAndInstalled()) {
|
if (settings.hasAnyChatToShowOnMap() && !isOsmAndInstalled()) {
|
||||||
showOsmandMissingDialog()
|
showOsmandMissingDialog()
|
||||||
|
@ -191,7 +196,14 @@ class MainActivity : AppCompatActivity(), TelegramListener, ActionButtonsListene
|
||||||
telegramHelper.init()
|
telegramHelper.init()
|
||||||
telegramHelper.requestAuthorizationState()
|
telegramHelper.requestAuthorizationState()
|
||||||
}
|
}
|
||||||
TelegramAuthorizationState.READY -> LoginDialogFragment.dismiss(fm)
|
TelegramAuthorizationState.READY -> {
|
||||||
|
LoginDialogFragment.dismiss(fm)
|
||||||
|
if (AndroidUtils.isLocationPermissionAvailable(this)) {
|
||||||
|
app.locationProvider.resumeAllUpdates()
|
||||||
|
} else {
|
||||||
|
AndroidUtils.requestLocationPermission(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,6 +293,8 @@ class MainActivity : AppCompatActivity(), TelegramListener, ActionButtonsListene
|
||||||
fun logoutTelegram(silent: Boolean = false) {
|
fun logoutTelegram(silent: Boolean = false) {
|
||||||
if (telegramHelper.getTelegramAuthorizationState() == TelegramHelper.TelegramAuthorizationState.READY) {
|
if (telegramHelper.getTelegramAuthorizationState() == TelegramHelper.TelegramAuthorizationState.READY) {
|
||||||
if (app.isInternetConnectionAvailable) {
|
if (app.isInternetConnectionAvailable) {
|
||||||
|
app.messagesDbHelper.clearMessages()
|
||||||
|
settings.clear()
|
||||||
telegramHelper.logout()
|
telegramHelper.logout()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, R.string.logout_no_internet_msg, Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, R.string.logout_no_internet_msg, Toast.LENGTH_SHORT).show()
|
||||||
|
|
|
@ -578,7 +578,7 @@ class MyLocationTabFragment : Fragment(), TelegramListener {
|
||||||
|
|
||||||
holder.stopSharingDescr?.apply {
|
holder.stopSharingDescr?.apply {
|
||||||
visibility = getStopSharingVisibility(expiresIn)
|
visibility = getStopSharingVisibility(expiresIn)
|
||||||
text = "${getText(R.string.stop_at)}:"
|
text = "${getText(R.string.expire_in)}:"
|
||||||
}
|
}
|
||||||
|
|
||||||
holder.stopSharingFirstPart?.apply {
|
holder.stopSharingFirstPart?.apply {
|
||||||
|
|
|
@ -2,7 +2,6 @@ package net.osmand.telegram.ui
|
||||||
|
|
||||||
import android.app.TimePickerDialog
|
import android.app.TimePickerDialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v4.app.DialogFragment
|
|
||||||
import android.support.v4.app.Fragment
|
import android.support.v4.app.Fragment
|
||||||
import android.support.v4.app.FragmentManager
|
import android.support.v4.app.FragmentManager
|
||||||
import android.support.v7.widget.LinearLayoutManager
|
import android.support.v7.widget.LinearLayoutManager
|
||||||
|
@ -15,7 +14,6 @@ import android.widget.TextView
|
||||||
import net.osmand.Location
|
import net.osmand.Location
|
||||||
import net.osmand.data.LatLon
|
import net.osmand.data.LatLon
|
||||||
import net.osmand.telegram.R
|
import net.osmand.telegram.R
|
||||||
import net.osmand.telegram.TelegramApplication
|
|
||||||
import net.osmand.telegram.TelegramLocationProvider.TelegramLocationListener
|
import net.osmand.telegram.TelegramLocationProvider.TelegramLocationListener
|
||||||
import net.osmand.telegram.TelegramLocationProvider.TelegramCompassListener
|
import net.osmand.telegram.TelegramLocationProvider.TelegramCompassListener
|
||||||
import net.osmand.telegram.helpers.ShareLocationHelper
|
import net.osmand.telegram.helpers.ShareLocationHelper
|
||||||
|
@ -29,13 +27,7 @@ import org.drinkless.td.libcore.telegram.TdApi
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class SetTimeDialogFragment : DialogFragment(), TelegramLocationListener, TelegramCompassListener {
|
class SetTimeDialogFragment : BaseDialogFragment(), TelegramLocationListener, TelegramCompassListener {
|
||||||
|
|
||||||
private val app: TelegramApplication
|
|
||||||
get() = activity?.application as TelegramApplication
|
|
||||||
|
|
||||||
private val telegramHelper get() = app.telegramHelper
|
|
||||||
private val settings get() = app.settings
|
|
||||||
|
|
||||||
private lateinit var locationViewCache: UiUtils.UpdateLocationViewCache
|
private lateinit var locationViewCache: UiUtils.UpdateLocationViewCache
|
||||||
private val adapter = SetTimeListAdapter()
|
private val adapter = SetTimeListAdapter()
|
||||||
|
@ -49,11 +41,6 @@ class SetTimeDialogFragment : DialogFragment(), TelegramLocationListener, Telegr
|
||||||
private var heading: Float? = null
|
private var heading: Float? = null
|
||||||
private var locationUiUpdateAllowed: Boolean = true
|
private var locationUiUpdateAllowed: Boolean = true
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
setStyle(DialogFragment.STYLE_NO_FRAME, R.style.AppTheme_NoActionbar)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
|
@ -100,7 +87,7 @@ class SetTimeDialogFragment : DialogFragment(), TelegramLocationListener, Telegr
|
||||||
if (!AndroidUtils.isLocationPermissionAvailable(view.context)) {
|
if (!AndroidUtils.isLocationPermissionAvailable(view.context)) {
|
||||||
AndroidUtils.requestLocationPermission(activity!!)
|
AndroidUtils.requestLocationPermission(activity!!)
|
||||||
} else {
|
} else {
|
||||||
chatLivePeriods.forEach { chatId, livePeriod ->
|
chatLivePeriods.forEach { (chatId, livePeriod) ->
|
||||||
settings.shareLocationToChat(chatId, true, livePeriod)
|
settings.shareLocationToChat(chatId, true, livePeriod)
|
||||||
}
|
}
|
||||||
app.shareLocationHelper.startSharingLocation()
|
app.shareLocationHelper.startSharingLocation()
|
||||||
|
|
|
@ -3,7 +3,6 @@ package net.osmand.telegram.ui
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.annotation.DrawableRes
|
import android.support.annotation.DrawableRes
|
||||||
import android.support.annotation.StringRes
|
import android.support.annotation.StringRes
|
||||||
import android.support.v4.app.DialogFragment
|
|
||||||
import android.support.v4.app.FragmentManager
|
import android.support.v4.app.FragmentManager
|
||||||
import android.support.v7.widget.ListPopupWindow
|
import android.support.v7.widget.ListPopupWindow
|
||||||
import android.support.v7.widget.Toolbar
|
import android.support.v7.widget.Toolbar
|
||||||
|
@ -21,22 +20,12 @@ import net.osmand.telegram.helpers.TelegramUiHelper
|
||||||
import net.osmand.telegram.utils.AndroidUtils
|
import net.osmand.telegram.utils.AndroidUtils
|
||||||
import net.osmand.telegram.utils.OsmandFormatter
|
import net.osmand.telegram.utils.OsmandFormatter
|
||||||
|
|
||||||
class SettingsDialogFragment : DialogFragment() {
|
class SettingsDialogFragment : BaseDialogFragment() {
|
||||||
|
|
||||||
private val app: TelegramApplication
|
|
||||||
get() = activity?.application as TelegramApplication
|
|
||||||
|
|
||||||
private val uiUtils get() = app.uiUtils
|
private val uiUtils get() = app.uiUtils
|
||||||
private val telegramHelper get() = app.telegramHelper
|
|
||||||
private val settings get() = app.settings
|
|
||||||
|
|
||||||
private val gpsAndLocPrefs = listOf(SendMyLocPref(), StaleLocPref(), LocHistoryPref())
|
private val gpsAndLocPrefs = listOf(SendMyLocPref(), StaleLocPref(), LocHistoryPref())
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
setStyle(android.support.v4.app.DialogFragment.STYLE_NO_FRAME, R.style.AppTheme_NoActionbar)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
parent: ViewGroup?,
|
parent: ViewGroup?,
|
||||||
|
@ -44,6 +33,9 @@ class SettingsDialogFragment : DialogFragment() {
|
||||||
): View {
|
): View {
|
||||||
val mainView = inflater.inflate(R.layout.fragement_settings_dialog, parent)
|
val mainView = inflater.inflate(R.layout.fragement_settings_dialog, parent)
|
||||||
|
|
||||||
|
val appBarLayout = mainView.findViewById<View>(R.id.app_bar_layout)
|
||||||
|
AndroidUtils.addStatusBarPadding19v(context!!, appBarLayout)
|
||||||
|
|
||||||
mainView.findViewById<Toolbar>(R.id.toolbar).apply {
|
mainView.findViewById<Toolbar>(R.id.toolbar).apply {
|
||||||
navigationIcon = uiUtils.getThemedIcon(R.drawable.ic_arrow_back)
|
navigationIcon = uiUtils.getThemedIcon(R.drawable.ic_arrow_back)
|
||||||
setNavigationOnClickListener { dismiss() }
|
setNavigationOnClickListener { dismiss() }
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
|
import android.graphics.Color
|
||||||
import android.graphics.Paint
|
import android.graphics.Paint
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
@ -17,6 +18,7 @@ import android.support.v4.content.FileProvider
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.util.TypedValue.COMPLEX_UNIT_DIP
|
import android.util.TypedValue.COMPLEX_UNIT_DIP
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.WindowManager
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import net.osmand.telegram.R
|
import net.osmand.telegram.R
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
@ -86,6 +88,22 @@ object AndroidUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun enterToTransparentFullScreen(activity: Activity) {
|
||||||
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
|
val window = activity.window
|
||||||
|
window.statusBarColor = Color.TRANSPARENT
|
||||||
|
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun enterToTranslucentFullScreen(activity: Activity) {
|
||||||
|
if (Build.VERSION.SDK_INT >= 19) {
|
||||||
|
activity.window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun getPopupMenuWidth(ctx: Context, titles: Collection<String>): Int {
|
fun getPopupMenuWidth(ctx: Context, titles: Collection<String>): Int {
|
||||||
val txtSize = ctx.resources.getDimensionPixelSize(R.dimen.list_item_title_text_size)
|
val txtSize = ctx.resources.getDimensionPixelSize(R.dimen.list_item_title_text_size)
|
||||||
val paint = Paint().apply { textSize = txtSize.toFloat() }
|
val paint = Paint().apply { textSize = txtSize.toFloat() }
|
||||||
|
|
|
@ -79,11 +79,10 @@ object OsmandFormatter {
|
||||||
fun getListItemLiveTimeDescr(ctx: TelegramApplication, lastUpdated: Int, prefix: String = ""): String {
|
fun getListItemLiveTimeDescr(ctx: TelegramApplication, lastUpdated: Int, prefix: String = ""): String {
|
||||||
return if (lastUpdated > 0) {
|
return if (lastUpdated > 0) {
|
||||||
val duration = System.currentTimeMillis() / 1000 - lastUpdated
|
val duration = System.currentTimeMillis() / 1000 - lastUpdated
|
||||||
if (duration > MIN_DURATION_FOR_DATE_FORMAT) {
|
when {
|
||||||
prefix + getFormattedDate(lastUpdated.toLong())
|
duration > MIN_DURATION_FOR_DATE_FORMAT -> prefix + getFormattedDate(lastUpdated.toLong())
|
||||||
} else {
|
duration > 0 -> prefix + getFormattedDuration(ctx, duration) + " " + ctx.getString(R.string.time_ago)
|
||||||
prefix + getFormattedDuration(ctx, duration) + " " +
|
else -> ""
|
||||||
ctx.getString(R.string.time_ago)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
""
|
""
|
||||||
|
|
|
@ -299,9 +299,27 @@ task collectExternalResources {
|
||||||
import org.apache.tools.ant.taskdefs.condition.Os
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
|
|
||||||
task buildOsmAndCore(type: Exec) {
|
task buildOsmAndCore(type: Exec) {
|
||||||
|
Gradle gradle = getGradle()
|
||||||
|
String tskReqStr = gradle.getStartParameter().getTaskRequests().toString().toLowerCase()
|
||||||
|
String flavour = "";
|
||||||
|
if(!tskReqStr.contains("fat")) {
|
||||||
|
if(tskReqStr.contains("arm64")) {
|
||||||
|
flavour = flavour.length() == 0 ? "ARM64_ONLY" : ""
|
||||||
|
}
|
||||||
|
if(tskReqStr.contains("armv7")) {
|
||||||
|
flavour = flavour.length() == 0 ? "ARMV7_ONLY" : ""
|
||||||
|
}
|
||||||
|
if(tskReqStr.contains("x86")) {
|
||||||
|
flavour = flavour.length() == 0 ? "X86_ONLY" : ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
description "Build Legacy OsmAndCore"
|
description "Build Legacy OsmAndCore"
|
||||||
|
|
||||||
if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
|
if(flavour.length() > 0) {
|
||||||
|
environment "$flavour", "1"
|
||||||
|
}
|
||||||
commandLine "bash", file("./old-ndk-build.sh").getAbsolutePath()
|
commandLine "bash", file("./old-ndk-build.sh").getAbsolutePath()
|
||||||
} else {
|
} else {
|
||||||
commandLine "cmd", "/c", "echo", "Not supported"
|
commandLine "cmd", "/c", "echo", "Not supported"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
ROOT_PATH := $(LOCAL_PATH)/../../..
|
ROOT_PATH := $(LOCAL_PATH)/../../..
|
||||||
$(info OsmAnd root: $(ROOT_PATH))
|
$(info OsmAnd root: $(ROOT_PATH))
|
||||||
|
|
||||||
ifdef BUILD_ONLY_OLD_LIB
|
ifdef BUILD_ONLY_OLD_LIB
|
||||||
OSMAND_MAKEFILES := \
|
OSMAND_MAKEFILES := \
|
||||||
$(all-subdir-makefiles) \
|
$(all-subdir-makefiles) \
|
||||||
|
|
|
@ -10,8 +10,17 @@ APP_PLATFORM := android-14
|
||||||
# NDK_TOOLCHAIN_VERSION := 4.9
|
# NDK_TOOLCHAIN_VERSION := 4.9
|
||||||
# NDK_TOOLCHAIN_VERSION := 4.8
|
# NDK_TOOLCHAIN_VERSION := 4.8
|
||||||
NDK_TOOLCHAIN_VERSION := clang
|
NDK_TOOLCHAIN_VERSION := clang
|
||||||
|
|
||||||
APP_ABI := x86 armeabi-v7a arm64-v8a
|
APP_ABI := x86 armeabi-v7a arm64-v8a
|
||||||
|
ifdef ARMV7_ONLY
|
||||||
|
APP_ABI := armeabi-v7a
|
||||||
|
endif
|
||||||
|
ifdef ARM64_ONLY
|
||||||
|
APP_ABI := arm64-v8a
|
||||||
|
endif
|
||||||
|
ifdef X86_ONLY
|
||||||
|
APP_ABI := x86
|
||||||
|
endif
|
||||||
|
|
||||||
# APP_ABI := armeabi-v7a
|
# APP_ABI := armeabi-v7a
|
||||||
ifndef OSMAND_DEBUG_NATIVE
|
ifndef OSMAND_DEBUG_NATIVE
|
||||||
# Force release compilation in release optimizations, even if application is debuggable by manifest
|
# Force release compilation in release optimizations, even if application is debuggable by manifest
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
SCRIPT_LOC="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_LOC="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
NAME=$(basename $(dirname "${BASH_SOURCE[0]}") )
|
NAME=$(basename $(dirname "${BASH_SOURCE[0]}") )
|
||||||
|
|
||||||
|
|
||||||
if [ -d "$ANDROID_HOME" ]; then
|
if [ -d "$ANDROID_HOME" ]; then
|
||||||
# for backwards compatbility
|
# for backwards compatbility
|
||||||
export ANDROID_SDK=$ANDROID_HOME
|
export ANDROID_SDK=$ANDROID_HOME
|
||||||
|
|
|
@ -788,7 +788,7 @@ Zachod: %2$s</string>
|
||||||
<string name="avoid_unpaved">Paźbiahać daroh biez pakryćcia</string>
|
<string name="avoid_unpaved">Paźbiahać daroh biez pakryćcia</string>
|
||||||
<string name="avoid_ferries">Paźbiahać paromaŭ</string>
|
<string name="avoid_ferries">Paźbiahać paromaŭ</string>
|
||||||
<string name="avoid_in_routing_title">Paźbiahać…</string>
|
<string name="avoid_in_routing_title">Paźbiahać…</string>
|
||||||
<string name="avoid_in_routing_descr">Pazbiahać platnych i daroh biez pakryccia, paromaŭ.</string>
|
<string name="avoid_in_routing_descr">Pazbiahać, napryklad, platnych i daroh biez pakryccia, paromaŭ.</string>
|
||||||
<string name="map_widget_fluorescent">Lumіniescentnyja maršruty</string>
|
<string name="map_widget_fluorescent">Lumіniescentnyja maršruty</string>
|
||||||
<string name="map_widget_show_ruler">Liniejka</string>
|
<string name="map_widget_show_ruler">Liniejka</string>
|
||||||
<string name="map_widget_view_direction">Kіrunak pohladu</string>
|
<string name="map_widget_view_direction">Kіrunak pohladu</string>
|
||||||
|
@ -3071,7 +3071,7 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB).
|
||||||
<string name="select_travel_book">Abrać dzionnik padarožžaŭ</string>
|
<string name="select_travel_book">Abrać dzionnik padarožžaŭ</string>
|
||||||
<string name="shared_string_travel_book">Dzionnik padarožžaŭ</string>
|
<string name="shared_string_travel_book">Dzionnik padarožžaŭ</string>
|
||||||
<string name="download_images">Spampavać vyjavy</string>
|
<string name="download_images">Spampavać vyjavy</string>
|
||||||
<string name="error_notification_desc">Kali laska, adpraŭcie zdymak ekrana hetaha apaviaščennia na support@osmand.net</string>
|
<string name="error_notification_desc">Kali laska, adpraŭcie zdymak ekrana z hetym apaviaščenniem na support@osmand.net</string>
|
||||||
<string name="release_3_0">"• Novaje: padtrymka svietavych aŭtanomnych turystyčnych daviednikaŭ. Spasylačnyja miasciny zviazany z mapaj. Zychodnyja danyja ad Wikivoyage.
|
<string name="release_3_0">"• Novaje: padtrymka svietavych aŭtanomnych turystyčnych daviednikaŭ. Spasylačnyja miasciny zviazany z mapaj. Zychodnyja danyja ad Wikivoyage.
|
||||||
\n
|
\n
|
||||||
\n • Vikipiedyja: novy vyhliad, aktyŭnyja spasylki, padtrymka vyjaŭ
|
\n • Vikipiedyja: novy vyhliad, aktyŭnyja spasylki, padtrymka vyjaŭ
|
||||||
|
@ -3104,4 +3104,25 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB).
|
||||||
\nRaspaviadzicie nam ab hetym.</string>
|
\nRaspaviadzicie nam ab hetym.</string>
|
||||||
<string name="send_search_query">Adpravić pašukovy zapyt?</string>
|
<string name="send_search_query">Adpravić pašukovy zapyt?</string>
|
||||||
<string name="increase_search_radius_to">Pavialičyć radyus pošuku da %1$s</string>
|
<string name="increase_search_radius_to">Pavialičyć radyus pošuku da %1$s</string>
|
||||||
|
<string name="thank_you_for_feedback">Dziakuj vam za vodhuk</string>
|
||||||
|
<string name="poi_cannot_be_found">Vuziel ci šliach nie znajdzieny.</string>
|
||||||
|
<string name="search_no_results_feedback">Niama vynikaŭ pošuku?
|
||||||
|
\nDajcie nam vodhuk</string>
|
||||||
|
<string name="commiting_way">Fiksujecca šliach…</string>
|
||||||
|
<string name="test_voice_desrc">Nacisnicie na knopku i pasluchajcie adpaviednuju halasavuju padkazku, kab vyznačyć adsutnyja abo paškodžanyja padkazki.</string>
|
||||||
|
<string name="release_3_1">• Navihacyja: vypraŭliennie indykataru prahresu, chutkaja pieramiena pačatkovaha i kančatkovaha punktaŭ maršrutu
|
||||||
|
\n
|
||||||
|
\n • Markiery mapy: vypraŭliennie ŭkliučennia/adkliučennia hrup, mahčymasć chavać markiery z mapy
|
||||||
|
\n
|
||||||
|
\n • Redahavannie OSM: mahčymasć praŭki tehaŭ dlia niekropkavych abjektaŭ i šliachoŭ, vypraŭliennie adsutnych kamientaroŭ na natatkach, reziervovaje kapijavannie pravak
|
||||||
|
\n
|
||||||
|
\n • Paliapšennie razboru Wikipedia i Wikivoyage, abnoŭlienyja fajly ŭžo dastupnyja
|
||||||
|
\n
|
||||||
|
\n • Kantekstnaje mieniu: vypraŭliennie kolieru darožnych znakaŭ u načnym režymie, vypraŭliennie pamieraŭ dadatkovaha mieniu
|
||||||
|
\n
|
||||||
|
\n • Račnaja navihacyja: padtrymka farvateru
|
||||||
|
\n
|
||||||
|
\n • Vypraŭliennie inšych chibaŭ
|
||||||
|
\n
|
||||||
|
\n</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -3913,4 +3913,5 @@
|
||||||
<string name="poi_hazard_minefield">Міннае поле</string>
|
<string name="poi_hazard_minefield">Міннае поле</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
<string name="poi_checkpoint_type_quize">Віктарына</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -329,7 +329,7 @@
|
||||||
<string name="avoid_unpaved">Пазьбягаць дарог без пакрыцьця</string>
|
<string name="avoid_unpaved">Пазьбягаць дарог без пакрыцьця</string>
|
||||||
<string name="avoid_ferries">Пазьбягаць паромаў</string>
|
<string name="avoid_ferries">Пазьбягаць паромаў</string>
|
||||||
<string name="avoid_in_routing_title">Пазбягаць…</string>
|
<string name="avoid_in_routing_title">Пазбягаць…</string>
|
||||||
<string name="avoid_in_routing_descr">Пазбягаць платных і дарог без пакрыцця, паромаў.</string>
|
<string name="avoid_in_routing_descr">Пазбягаць, напрыклад, платных і дарог без пакрыцця, паромаў.</string>
|
||||||
<string name="map_widget_fluorescent">Люмінесцэнтныя маршруты</string>
|
<string name="map_widget_fluorescent">Люмінесцэнтныя маршруты</string>
|
||||||
<string name="map_widget_show_ruler">Лінейка</string>
|
<string name="map_widget_show_ruler">Лінейка</string>
|
||||||
|
|
||||||
|
@ -3155,4 +3155,25 @@
|
||||||
\nРаспавядзіце нам аб гэтым.</string>
|
\nРаспавядзіце нам аб гэтым.</string>
|
||||||
<string name="send_search_query">Адправіць пашуковы запыт?</string>
|
<string name="send_search_query">Адправіць пашуковы запыт?</string>
|
||||||
<string name="increase_search_radius_to">Павялічыць радыус пошуку да %1$s</string>
|
<string name="increase_search_radius_to">Павялічыць радыус пошуку да %1$s</string>
|
||||||
|
<string name="thank_you_for_feedback">Дзякуй вам за водгук</string>
|
||||||
|
<string name="poi_cannot_be_found">Вузел ці шлях не знайдзены.</string>
|
||||||
|
<string name="search_no_results_feedback">Няма вынікаў пошуку?
|
||||||
|
\nДайце нам водгук</string>
|
||||||
|
<string name="commiting_way">Фіксуецца шлях…</string>
|
||||||
|
<string name="test_voice_desrc">Націсніце на кнопку і паслухайце адпаведную галасавую падказку, каб вызначыць адсутныя або пашкоджаныя падказкі.</string>
|
||||||
|
<string name="release_3_1">• Навігацыя: выпраўленне індыкатару прагрэсу, хуткая перамена пачатковага і канчатковага пунктаў маршруту
|
||||||
|
\n
|
||||||
|
\n • Маркеры мапы: выпраўленне ўключэння/адключэння груп, магчымасць хаваць маркеры з мапы
|
||||||
|
\n
|
||||||
|
\n • Рэдагаванне OSM: магчымасць праўкі тэгаў для некропкавых аб\'ектаў і шляхоў, выпраўленне адсутных каментароў на нататках, рэзервовае капіяванне правак
|
||||||
|
\n
|
||||||
|
\n • Паляпшэнне разбору Wikipedia і Wikivoyage, абноўленыя файлы ўжо даступныя
|
||||||
|
\n
|
||||||
|
\n • Кантэкстнае меню: выпраўленне колеру дарожных знакаў у начным рэжыме, выпраўленне памераў дадатковага меню
|
||||||
|
\n
|
||||||
|
\n • Рачная навігацыя: падтрымка фарватэру
|
||||||
|
\n
|
||||||
|
\n • Выпраўленне іншых хібаў
|
||||||
|
\n
|
||||||
|
\n</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -2311,7 +2311,7 @@
|
||||||
<string name="poi_social_facility_for_drug_addicted">Drogově závislí</string>
|
<string name="poi_social_facility_for_drug_addicted">Drogově závislí</string>
|
||||||
<string name="poi_social_facility_for_unemployed">Nezaměstnaní</string>
|
<string name="poi_social_facility_for_unemployed">Nezaměstnaní</string>
|
||||||
<string name="poi_social_facility_for_diseased">Nemocní</string>
|
<string name="poi_social_facility_for_diseased">Nemocní</string>
|
||||||
<string name="poi_social_facility_for_child_juvenile">Děti a Mladiství</string>
|
<string name="poi_social_facility_for_child_juvenile">Děti a mladiství</string>
|
||||||
|
|
||||||
<string name="poi_theatre_genre_philharmonic">Filharmonie</string>
|
<string name="poi_theatre_genre_philharmonic">Filharmonie</string>
|
||||||
<string name="poi_theatre_genre_musical">Hudební</string>
|
<string name="poi_theatre_genre_musical">Hudební</string>
|
||||||
|
|
|
@ -640,7 +640,7 @@
|
||||||
|
|
||||||
|
|
||||||
<string name="osb_comment_dialog_success">Komentář přidán</string>
|
<string name="osb_comment_dialog_success">Komentář přidán</string>
|
||||||
<string name="osb_comment_dialog_error">Chyba: Komentář nepřidán</string>
|
<string name="osb_comment_dialog_error">Nepodařilo se přidat komentář</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1120,7 +1120,7 @@ Proporcionální paměť %4$s MB (limit Androidu %5$s MB, Dalvik %6$s MB).</stri
|
||||||
<string name="routing_attr_avoid_toll_name">Vyhnout se placeným silnicím</string>
|
<string name="routing_attr_avoid_toll_name">Vyhnout se placeným silnicím</string>
|
||||||
<string name="routing_attr_avoid_toll_description">Vyhnout se placeným silnicím.</string>
|
<string name="routing_attr_avoid_toll_description">Vyhnout se placeným silnicím.</string>
|
||||||
<string name="routing_attr_avoid_unpaved_name">Vyhnout se nezpevněným cestám</string>
|
<string name="routing_attr_avoid_unpaved_name">Vyhnout se nezpevněným cestám</string>
|
||||||
<string name="routing_attr_avoid_unpaved_description">Povede trasu mimo nezpevněné a polní cesty.</string>
|
<string name="routing_attr_avoid_unpaved_description">Povede trasu mimo nezpevněné cesty.</string>
|
||||||
<string name="routing_attr_avoid_ferries_name">Vyhnout se trajektům</string>
|
<string name="routing_attr_avoid_ferries_name">Vyhnout se trajektům</string>
|
||||||
<string name="routing_attr_avoid_ferries_description">Vyhnout se trajektům.</string>
|
<string name="routing_attr_avoid_ferries_description">Vyhnout se trajektům.</string>
|
||||||
<string name="routing_attr_avoid_motorway_name">Vyhnout se dálnicím</string>
|
<string name="routing_attr_avoid_motorway_name">Vyhnout se dálnicím</string>
|
||||||
|
@ -1335,7 +1335,7 @@ Proporcionální paměť %4$s MB (limit Androidu %5$s MB, Dalvik %6$s MB).</stri
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<string name="no_index_file_to_download">Není nic ke stažení, prosím zkontrolujte své připojení k Internetu.</string>
|
<string name="no_index_file_to_download">Nic ke stažení nebylo nalezeno, prosím zkontrolujte své připojení k Internetu.</string>
|
||||||
<string name="none_selected_gpx">Nebyl vybrán žádný GPX soubor. Podržením vyberte jednu z dostupných tras.</string>
|
<string name="none_selected_gpx">Nebyl vybrán žádný GPX soubor. Podržením vyberte jednu z dostupných tras.</string>
|
||||||
<string name="rendering_attr_hideBuildings_name">Budovy</string>
|
<string name="rendering_attr_hideBuildings_name">Budovy</string>
|
||||||
<string name="rendering_attr_hideText_name">Text</string>
|
<string name="rendering_attr_hideText_name">Text</string>
|
||||||
|
@ -1353,7 +1353,7 @@ Proporcionální paměť %4$s MB (limit Androidu %5$s MB, Dalvik %6$s MB).</stri
|
||||||
<string name="enable_sleep_mode">Zapnout GPS v režimu na pozadí</string>
|
<string name="enable_sleep_mode">Zapnout GPS v režimu na pozadí</string>
|
||||||
<string name="gps_wake_up_timer">Interval probouzení GPS</string>
|
<string name="gps_wake_up_timer">Interval probouzení GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Zastavit GPS běžící na pozadí?</string>
|
<string name="sleep_mode_stop_dialog">Zastavit GPS běžící na pozadí?</string>
|
||||||
<string name="map_preferred_locale_descr">Preferovaný jazyk pro nápisy na mapě (pokud není dostupný, budou použité anglické nebo lokální názvy).</string>
|
<string name="map_preferred_locale_descr">Preferovaný jazyk pro nápisy na mapě (pokud není dostupný, budou použity anglické nebo lokální názvy).</string>
|
||||||
<string name="map_preferred_locale">Preferovaný jazyk mapy</string>
|
<string name="map_preferred_locale">Preferovaný jazyk mapy</string>
|
||||||
<string name="local_map_names">Lokální názvy</string>
|
<string name="local_map_names">Lokální názvy</string>
|
||||||
<string name="live_monitoring_m_descr">Pokud je zapnutý záznam GPX trasy, odesílat data trasování určené webové službě.</string>
|
<string name="live_monitoring_m_descr">Pokud je zapnutý záznam GPX trasy, odesílat data trasování určené webové službě.</string>
|
||||||
|
@ -1683,7 +1683,7 @@ Délka %2$s</string>
|
||||||
<string name="rendering_value_lightblue_name">Světlemodrá</string>
|
<string name="rendering_value_lightblue_name">Světlemodrá</string>
|
||||||
<string name="rendering_value_blue_name">Modrá</string>
|
<string name="rendering_value_blue_name">Modrá</string>
|
||||||
<string name="rendering_value_purple_name">Fialová</string>
|
<string name="rendering_value_purple_name">Fialová</string>
|
||||||
<string name="restart_is_required">Restartovat ručně aplikaci pro aplikování všech změn.</string>
|
<string name="restart_is_required">Restartujte aplikaci pro aplikování všech změn.</string>
|
||||||
<string name="light_theme">Světlý</string>
|
<string name="light_theme">Světlý</string>
|
||||||
<string name="dark_theme">Tmavý</string>
|
<string name="dark_theme">Tmavý</string>
|
||||||
<string name="rendering_value_defaultTranslucentCyan_name">Výchozí (průsvitná modrozelená)</string>
|
<string name="rendering_value_defaultTranslucentCyan_name">Výchozí (průsvitná modrozelená)</string>
|
||||||
|
@ -1813,7 +1813,7 @@ Délka %2$s</string>
|
||||||
<string name="regions">Oblasti</string>
|
<string name="regions">Oblasti</string>
|
||||||
<string name="region_maps">Mapy oblastí</string>
|
<string name="region_maps">Mapy oblastí</string>
|
||||||
<string name="world_maps">Světové mapy</string>
|
<string name="world_maps">Světové mapy</string>
|
||||||
<string name="favorite_category_dublicate_message">Prosím použijte název kategorie který ještě neexistuje.</string>
|
<string name="favorite_category_dublicate_message">Použijte prosím název kategorie, který ještě neexistuje.</string>
|
||||||
<string name="favorite_category_name">Název kategorie</string>
|
<string name="favorite_category_name">Název kategorie</string>
|
||||||
<string name="favorite_category_add_new_title">Přidat novou kategorii</string>
|
<string name="favorite_category_add_new_title">Přidat novou kategorii</string>
|
||||||
<string name="activate_seamarks_plugin">Prosím aktivujte modul \'Plavební mapový pohled\'</string>
|
<string name="activate_seamarks_plugin">Prosím aktivujte modul \'Plavební mapový pohled\'</string>
|
||||||
|
@ -2012,7 +2012,7 @@ Délka %2$s</string>
|
||||||
<string name="osm_editors_ranking">Pořadí OSM editorů</string>
|
<string name="osm_editors_ranking">Pořadí OSM editorů</string>
|
||||||
<string name="osm_live_subscription">Předplatné OsmAnd Live</string>
|
<string name="osm_live_subscription">Předplatné OsmAnd Live</string>
|
||||||
<string name="osm_live_subscribe_btn">Předplatit</string>
|
<string name="osm_live_subscribe_btn">Předplatit</string>
|
||||||
<string name="osm_live_email_desc">Nutné, aby jsme Vás mohli informovat o příspěvcích.</string>
|
<string name="osm_live_email_desc">Nutné, abychom vás mohli informovat o příspěvcích.</string>
|
||||||
<string name="osm_live_user_public_name">Veřejné jméno</string>
|
<string name="osm_live_user_public_name">Veřejné jméno</string>
|
||||||
<string name="osm_live_hide_user_name">Nezobrazovat mé jméno v hlášeních</string>
|
<string name="osm_live_hide_user_name">Nezobrazovat mé jméno v hlášeních</string>
|
||||||
<string name="osm_live_support_region">Oblast podpory</string>
|
<string name="osm_live_support_region">Oblast podpory</string>
|
||||||
|
@ -2022,7 +2022,7 @@ Délka %2$s</string>
|
||||||
<string name="osm_live_not_active">Neaktivní</string>
|
<string name="osm_live_not_active">Neaktivní</string>
|
||||||
<string name="osm_live_enter_email">Prosím zadejte platnou e-mailovou adresu</string>
|
<string name="osm_live_enter_email">Prosím zadejte platnou e-mailovou adresu</string>
|
||||||
<string name="osm_live_enter_user_name">Prosím zadejte veřejné jméno</string>
|
<string name="osm_live_enter_user_name">Prosím zadejte veřejné jméno</string>
|
||||||
<string name="osm_live_thanks">Děkujeme Vám za podporu projektu OsmAnd!
|
<string name="osm_live_thanks">Děkujeme vám za podporu projektu OsmAnd!
|
||||||
\nPro aktivování všech nových funkcí je třeba restartovat aplikaci OsmAnd.</string>
|
\nPro aktivování všech nových funkcí je třeba restartovat aplikaci OsmAnd.</string>
|
||||||
<string name="osm_live_region_desc">Část vašeho příspěvku bude zaslána uživatelům OSM, kteří upravují mapu ve zvolené oblasti.</string>
|
<string name="osm_live_region_desc">Část vašeho příspěvku bude zaslána uživatelům OSM, kteří upravují mapu ve zvolené oblasti.</string>
|
||||||
<string name="osm_live_subscription_settings">Nastavení předplatného</string>
|
<string name="osm_live_subscription_settings">Nastavení předplatného</string>
|
||||||
|
@ -2517,7 +2517,7 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="empty_state_favourites_desc">Importujte Oblíbené nebo je přidejte označením bodů na mapě.</string>
|
<string name="empty_state_favourites_desc">Importujte Oblíbené nebo je přidejte označením bodů na mapě.</string>
|
||||||
<string name="import_track">Import souboru GPX</string>
|
<string name="import_track">Import souboru GPX</string>
|
||||||
<string name="import_track_desc">Soubor %$1s neobsahuje body GPX trasy, chcete jej přesto importovat jako trasu?</string>
|
<string name="import_track_desc">Soubor %$1s neobsahuje body GPX trasy, chcete jej přesto importovat jako trasu?</string>
|
||||||
<string name="move_point">Přesunout Bod</string>
|
<string name="move_point">Přesunout bod</string>
|
||||||
<string name="add_segment_to_the_track">Přidat do GPX souboru</string>
|
<string name="add_segment_to_the_track">Přidat do GPX souboru</string>
|
||||||
<string name="move_all_to_history">Přesunout vše do historie</string>
|
<string name="move_all_to_history">Přesunout vše do historie</string>
|
||||||
|
|
||||||
|
@ -2551,11 +2551,11 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="shared_string_sort">Seřadit</string>
|
<string name="shared_string_sort">Seřadit</string>
|
||||||
<string name="coordinate_input">Zadání souřadnic</string>
|
<string name="coordinate_input">Zadání souřadnic</string>
|
||||||
<string name="is_saved">je uložen</string>
|
<string name="is_saved">je uložen</string>
|
||||||
<string name="marker_save_as_track_descr">Vyexportuje Vaše značky do tohoto GPX souboru:</string>
|
<string name="marker_save_as_track_descr">Vyexportovat vaše značky do tohoto GPX souboru:</string>
|
||||||
<string name="marker_save_as_track">Uložit jako soubor GPX</string>
|
<string name="marker_save_as_track">Uložit jako soubor GPX</string>
|
||||||
<string name="move_to_history">Přesunout do historie</string>
|
<string name="move_to_history">Přesunout do historie</string>
|
||||||
<string name="group_will_be_removed_after_restart">Skupina bude odstraněna po příštím restartu aplikace.</string>
|
<string name="group_will_be_removed_after_restart">Skupina bude odstraněna po příštím restartu aplikace.</string>
|
||||||
<string name="show_guide_line">Zobrazit vodící čáry</string>
|
<string name="show_guide_line">Zobrazit vodicí čáry</string>
|
||||||
<string name="show_arrows_on_the_map">Zobrazit šipky na mapě</string>
|
<string name="show_arrows_on_the_map">Zobrazit šipky na mapě</string>
|
||||||
<string name="remove_from_map_markers">Odebrat z mapových značek</string>
|
<string name="remove_from_map_markers">Odebrat z mapových značek</string>
|
||||||
<string name="descendingly">sestupně</string>
|
<string name="descendingly">sestupně</string>
|
||||||
|
@ -2568,14 +2568,14 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="fast_coordinates_input_descr">Zvolte formát souřadnicového vstupu. Můžete ho kdykoli změnit klepnutím na \'Možnosti\'.</string>
|
<string name="fast_coordinates_input_descr">Zvolte formát souřadnicového vstupu. Můžete ho kdykoli změnit klepnutím na \'Možnosti\'.</string>
|
||||||
<string name="fast_coordinates_input">Rychlé zadávání souřadnic</string>
|
<string name="fast_coordinates_input">Rychlé zadávání souřadnic</string>
|
||||||
<string name="routing_attr_avoid_ice_roads_fords_name">Vyhnout brodům a ledovým cestám</string>
|
<string name="routing_attr_avoid_ice_roads_fords_name">Vyhnout brodům a ledovým cestám</string>
|
||||||
<string name="routing_attr_avoid_ice_roads_fords_description">Povede trasu mimo brody přes vodu a mimo ledové cesty.</string>
|
<string name="routing_attr_avoid_ice_roads_fords_description">Povede trasu mimo brody a ledové cesty.</string>
|
||||||
<string name="show_passed">Zobrazit prošlé</string>
|
<string name="show_passed">Zobrazit prošlé</string>
|
||||||
<string name="hide_passed">Skrýt prošlé</string>
|
<string name="hide_passed">Skrýt prošlé</string>
|
||||||
<string name="marker_show_distance_descr">Vyberte, jak ukazovat vzdálenost a směr k mapovým značkám na obrazovce mapy:</string>
|
<string name="marker_show_distance_descr">Vyberte, jak ukazovat vzdálenost a směr k mapovým značkám na obrazovce mapy:</string>
|
||||||
<string name="osn_modify_dialog_error">Nepodařilo se změnit poznámku</string>
|
<string name="osn_modify_dialog_error">Nepodařilo se změnit poznámku</string>
|
||||||
<string name="osn_modify_dialog_title">Upravit poznámku</string>
|
<string name="osn_modify_dialog_title">Upravit poznámku</string>
|
||||||
<string name="context_menu_item_modify_note">Upravit poznámku OSM</string>
|
<string name="context_menu_item_modify_note">Upravit poznámku OSM</string>
|
||||||
<string name="make_round_trip_descr">Přidat počátečního bod také jako cíl pro vytvoření okruhu.</string>
|
<string name="make_round_trip_descr">Přidat počáteční bod také jako cíl pro vytvoření okruhu.</string>
|
||||||
<string name="make_round_trip">Vytvořit okružní trasu</string>
|
<string name="make_round_trip">Vytvořit okružní trasu</string>
|
||||||
|
|
||||||
<string name="import_gpx_file_description">Může být importováno jako Oblíbené nebo jako GPX soubor.</string>
|
<string name="import_gpx_file_description">Může být importováno jako Oblíbené nebo jako GPX soubor.</string>
|
||||||
|
@ -2611,7 +2611,7 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="empty_state_markers_history_desc">Značky označené jako prošlé se objeví na této obrazovce.</string>
|
<string name="empty_state_markers_history_desc">Značky označené jako prošlé se objeví na této obrazovce.</string>
|
||||||
<string name="shared_string_two">Dvě</string>
|
<string name="shared_string_two">Dvě</string>
|
||||||
<string name="shared_string_one">Jedna</string>
|
<string name="shared_string_one">Jedna</string>
|
||||||
<string name="show_guide_line_descr">Zobrazit vodící čáry od vaší polohy k aktivním značkám.</string>
|
<string name="show_guide_line_descr">Zobrazit vodicí čáry od vaší polohy k aktivním značkám.</string>
|
||||||
<string name="show_arrows_descr">Zobrazit jednu nebo dvě šipky označující směr k aktivním značkám.</string>
|
<string name="show_arrows_descr">Zobrazit jednu nebo dvě šipky označující směr k aktivním značkám.</string>
|
||||||
<string name="distance_indication_descr">Zvolte způsob zobrazení vzdálenosti k aktivním značkám.</string>
|
<string name="distance_indication_descr">Zvolte způsob zobrazení vzdálenosti k aktivním značkám.</string>
|
||||||
<string name="active_markers_descr">Zvolte, kolik ukazatelů směru se má zobrazit.</string>
|
<string name="active_markers_descr">Zvolte, kolik ukazatelů směru se má zobrazit.</string>
|
||||||
|
@ -2654,7 +2654,7 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="open_from">Otevřeno od</string>
|
<string name="open_from">Otevřeno od</string>
|
||||||
<string name="open_till">Otevřeno do</string>
|
<string name="open_till">Otevřeno do</string>
|
||||||
<string name="will_close_at">Zavírá v</string>
|
<string name="will_close_at">Zavírá v</string>
|
||||||
<string name="will_open_at">Otevírá od</string>
|
<string name="will_open_at">Otevírá v</string>
|
||||||
<string name="will_open_on">Otevírá v</string>
|
<string name="will_open_on">Otevírá v</string>
|
||||||
<string name="additional_actions">Další akce</string>
|
<string name="additional_actions">Další akce</string>
|
||||||
<string name="av_locations_selected_desc">GPX soubor se souřadnicemi a daty vybraných poznámek.</string>
|
<string name="av_locations_selected_desc">GPX soubor se souřadnicemi a daty vybraných poznámek.</string>
|
||||||
|
@ -2663,7 +2663,7 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="winter_and_ski_renderer">Zimní</string>
|
<string name="winter_and_ski_renderer">Zimní</string>
|
||||||
<string name="touring_view_renderer">Cestovní</string>
|
<string name="touring_view_renderer">Cestovní</string>
|
||||||
<string name="nautical_renderer">Plavební</string>
|
<string name="nautical_renderer">Plavební</string>
|
||||||
<string name="will_open_tomorrow_at">Otevírá zítra od</string>
|
<string name="will_open_tomorrow_at">Otevírá zítra v</string>
|
||||||
<string name="shared_string_marker">Značka</string>
|
<string name="shared_string_marker">Značka</string>
|
||||||
|
|
||||||
<string name="osm_recipient_stat">Počet úprav %1$s, součet %2$s mBTC</string>
|
<string name="osm_recipient_stat">Počet úprav %1$s, součet %2$s mBTC</string>
|
||||||
|
@ -2715,30 +2715,103 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="distance_nearest">Vzdálenost: nejbližší jako první</string>
|
<string name="distance_nearest">Vzdálenost: nejbližší jako první</string>
|
||||||
<string name="rendering_attr_whiteWaterSports_name">Divoká voda</string>
|
<string name="rendering_attr_whiteWaterSports_name">Divoká voda</string>
|
||||||
<string name="osmand_extended_description_part2">GPS navigace
|
<string name="osmand_extended_description_part2">GPS navigace
|
||||||
\n• Můžete si vybrat mezi offline režimem (bez roamingových poplatků v zahraničí) a online režimem (rychlejší)
|
\n• Vyberte si mezi offline režimem (bez roamingových poplatků v zahraničí) a online režimem (rychlejší)
|
||||||
\n• Hlasová navigace vás povede krok za krokem vaší cestou (nahraný nebo syntetizovaný hlas)
|
\n• Hlasová navigace vás povede krok za krokem vaší cestou (nahraný nebo syntetizovaný hlas)
|
||||||
\n• Při každém odchýlení se trasa přepočítá
|
\n• Při každém odchýlení se trasa přepočítá
|
||||||
\n• Pomůže vám navádění do jízdních pruhů, zobrazení názvů ulic a předpokládaný čas příjezdu
|
\n• Pomůže vám navádění do jízdních pruhů, zobrazení názvů ulic a předpokládaný čas příjezdu
|
||||||
\n• Pro větší bezpečí se aplikace automaticky přepíná mezi denním a nočním režimem
|
\n• Pro větší bezpečí se aplikace automaticky přepíná mezi denním a nočním režimem
|
||||||
\n• Můžete si zapnout zobrazování rychlostních limitů a upozornění při jejich překročení
|
\n• Můžete si zapnout zobrazování rychlostních limitů a upozornění při jejich překročení
|
||||||
\n• Přiblížení mapy se přizpůsobí rychlosti pohybu
|
\n• Přiblížení mapy se přizpůsobí rychlosti pohybu
|
||||||
\n• Můžete hledat cíle podle adresy, typu (např. parkoviště, restaurace, hotel, čerpací stanice, muzeum) či podle geografických souřadnic
|
\n• Hledejte cíle podle adresy, typu (např. parkoviště, restaurace, hotel, čerpací stanice, muzeum) či podle geografických souřadnic
|
||||||
\n• Do svého itineráře můžete přidávat mezicíle
|
\n• Do svého itineráře můžete přidávat mezicíle
|
||||||
\n• Můžete si zaznamenat nebo nahrát GPX trasu a následovat ji
|
\n• Zaznamenávejte nebo nahrajte svoji GPX trasu a následujte ji
|
||||||
\n</string>
|
\n</string>
|
||||||
<string name="osmand_extended_description_part3">Mapa • Zobrazuje POI (body zájmu) ve vašem okolí • Mapa se otáčí podle směru vašeho pohybu (nebo podle kompasu) • Ukazuje, kde jste a kterým směrem se díváte • Svoji polohu můžete sdílet se svými přáteli • Důležitá místa si můžete uložit do složky \'Moje místa\' • Můžete si vybrat, jak se na mapě budou zobrazovat názvy: V angličtině, v místním jazyce nebo ve fonetickém přepisu • Zobrazuje specializované online dlaždice, satelitní mapy (z Bingu), různé překryvné informace jako navigační GPX trasy a další vrstvy s volitelnou průhledností</string>
|
<string name="osmand_extended_description_part3">Mapa
|
||||||
<string name="osmand_extended_description_part4">OsmAnd plugin Lyžařský mapový pohled zobrazuje lyžařské trasy podle stupně obtížnosti a také další informace jako polohy vleků a dalších zařízení.</string>
|
\n• Zobrazuje POI (body zájmu) ve vašem okolí
|
||||||
<string name="osmand_extended_description_part5">Cyklistika • Na mapě najdete cyklostezky • GPS navigace v režimu Cyklista vytvoří trasu podél cyklostezek • Vidíte svoji rychlost a nadmořskou výšku • Pomocí funkce GPX záznam si svůj výlet uložíte a můžete sdílet • Pomocí dalších pluginů si můžete na mapě zobrazit vrstevnice a stínování kopců</string>
|
\n• Mapa se otáčí podle směru vašeho pohybu (nebo podle kompasu)
|
||||||
<string name="osmand_extended_description_part6">Pěší výlety, procházky městem • Mapa zobrazuje pěší a turistické trasy • Wikipedie ve vašem zvoleném jazyce vám poskytne mnoho informací při procházce městem • Při pohybu v neznámém městě vám pomůže zobrazování názvů zastávek a tras veřejné dopravy (autobusy, tramvaje, vlaky) • GPS navigace v režimu Pěší vytvoří trasu cest vhodných pro chodce • Můžete otevřít GPX trasu a následovat ji nebo zaznamenat a sdílet svou vlastní</string>
|
\n• Ukazuje vaši polohu a směr, kterým se díváte
|
||||||
<string name="osmand_extended_description_part7">Přispějte do OSM • Hlaste chyby v datech • Nahrávejte GPX trasy do OSM přímo z aplikace • Přidávejte body zájmu a rovnou je nahrávejte do OSM (nebo později, pokud jste zrovna offline)</string>
|
\n• Svoji polohu můžete sdílet se svými přáteli
|
||||||
<string name="osmand_extended_description_part8">OsmAnd je aktivně vyvíjený open-source software. Do aplikace může každý přispět hlášením chyb, vylepšováním překladů nebo programováním nových funkcí. Projekt je živý a neustále se vyvíjí díky této spolupráci mezi vývojáři a uživateli. Vývoj je také závislý na finančních příspěvcích pro programování a testování nových funkcí. Přibližné pokrytí a kvalita map: • Západní Evropa: **** • Východní Evropa: *** • Rusko: *** • Severní Amerika: *** • Jižní Amerika: ** • Asie: ** • Japonsko & Korea: *** • Střední Východ: ** • Afrika: ** • Antarktida: * Mapy většiny států na zeměkouli jsou dostupné ke stažení! Získejte spolehlivého navigátora ve své zemi - ať je to Francie, Německo, Mexiko, Spojené království, Španělsko, Nizozemí, USA, Rusko, Brazílie či jakákoliv jiná.</string>
|
\n• Důležitá místa si můžete uložit do složky \'Moje místa\'
|
||||||
<string name="osmand_plus_extended_description_part1">OsmAnd+ (OSM Automated Navigation Directions) je mapová a navigační aplikace s přístupem ke kvalitním, bezplatným a celosvětovým datům OpenStreetMap (OSM). Můžete využít hlasovou a optickou navigaci, prohlížet si POI (body zájmu), vytvářet a spravovat GPX trasy, zobrazit vrstevnice a údaje o nadmořské výšce, vybírat mezi režimem Auto, Cyklista a Pěší, editovat OSM a mnoho dalšího. OsmAnd+ je placenou verzí aplikace. Jejím zakoupením podpoříte projekt, přispějete na vývoj nových funkcí a získáte nejnovější aktualizace. Mezi hlavní funkce patří:</string>
|
\n• Můžete si vybrat, jak se na mapě budou zobrazovat názvy: V angličtině, v místním jazyce nebo ve fonetickém přepisu
|
||||||
<string name="osmand_plus_extended_description_part2">Navigace • Pracuje rychle (online) nebo i offline (bez roamingových poplatků v zahraničí) • Hlasová navigace krok za krokem (nahraný nebo syntetizovaný hlas) • Volitelné navádění do jízdních pruhů, zobrazení názvů ulic a předpokládaného čas příjezdu • Podporuje mezicíle v itineráři • Automatické přepočítání trasy při odchýlení • Hledání míst podle adresy, typu (např. restaurace, hotel, čerpací stanice, muzeum) či podle geografických souřadnic</string>
|
\n• Zobrazuje specializované online dlaždice, satelitní mapy (z Bingu), různé překryvné informace jako navigační GPX trasy a další vrstvy s volitelnou průhledností</string>
|
||||||
<string name="osmand_plus_extended_description_part3">"Prohlížení mapy • Ukazuje vaši pozici a orientaci • Volitelné otáčení podle směru vašeho pohybu (nebo podle kompasu) • Ukládání důležitých míst do složky Moje místa • Zobrazuje POI (body zájmu) ve vašem okolí • Zobrazuje specializované online dlaždice, satelitní mapy (z Bingu), různé překryvné informace jako navigační GPX trasy a další vrstvy s volitelnou průhledností • Názvy míst lze zobrazit v angličtině, v místním jazyce nebo ve fonetickém přepisu"</string>
|
<string name="osmand_extended_description_part4">Lyžování
|
||||||
<string name="osmand_plus_extended_description_part4">Využívá data OSM a Wikipedie • Kvalitní informace z nejlepších komunitních projektů na světě • OSM data dostupná podle země nebo regionu • Body zájmu z Wikipedie, skvělé pro vyhlídkové trasy • Bezplatné a neomezené stahování přímo z aplikace • Kompaktní vektorové offline mapy aktualizované nejméně jednou za měsíc • Výběr mezi kompletními daty regionu a pouze silniční mapou (například celá mapa Japonska zabírá 700 MB, silniční pouze 200 MB)</string>
|
\nOsmAnd plugin Lyžařský mapový pohled zobrazuje lyžařské trasy podle stupně obtížnosti a také další informace jako polohy vleků a dalších zařízení.</string>
|
||||||
<string name="osmand_plus_extended_description_part5">Bezpečnostní funkce • Volitelné automatické přepínání denního a nočního režimu • Volitelné zobrazení rychlostních limitů s upozorněním při překročení • Volitelné přiblížení mapy v závislosti na rychlosti • Sdílení polohy s přáteli</string>
|
<string name="osmand_extended_description_part5">Cyklistika
|
||||||
<string name="osmand_plus_extended_description_part6">Funkce pro cyklisty a pěší • Zobrazení pěších, turistických a cyklistických tras, skvělé pro venkovní aktivity • Speciální navigační režim a zobrazení pro cyklisty a chodce • Volitelné zobrazení zastávek veřejné dopravy (autobusy, tramvaje, vlaky) včetně názvů linek • Volitelný záznam výletu do lokálního souboru GPS nebo do online služby • Zobrazení rychlosti a nadmořské výšky • Zobrazení vrstevnic a stínování kopců (pomocí pluginů)</string>
|
\n• Na mapě najdete cyklostezky
|
||||||
<string name="osmand_plus_extended_description_part7">Přispívejte přímo do OSM • Hlaste chyby v datech • Nahrávejte GPX trasy do OSM přímo z aplikace • Přidávejte body zájmu a rovnou je nahrávejte do OSM (nebo později, pokud jste zrovna offline) • Záznam trasy funguje také na pozadí (když je zařízení v režimu spánku) • OsmAnd je aktivně vyvíjený open-source software. Do aplikace může každý přispět hlášením chyb, vylepšováním překladů nebo programováním nových funkcí. Projekt je živý a neustále se vyvíjí díky této spolupráci mezi vývojáři a uživateli. Vývoj je také závislý na finančních příspěvcích pro programování a testování nových funkcí.</string>
|
\n• GPS navigace v režimu Cyklista vytvoří trasu podél cyklostezek
|
||||||
|
\n• Vidíte svoji rychlost a nadmořskou výšku
|
||||||
|
\n• Pomocí funkce GPX záznam si svůj výlet uložíte a můžete sdílet
|
||||||
|
\n• Pomocí dalších pluginů si můžete na mapě zobrazit vrstevnice a stínování kopců</string>
|
||||||
|
<string name="osmand_extended_description_part6">Pěší výlety, procházky městem
|
||||||
|
\n• Mapa zobrazuje pěší a turistické trasy
|
||||||
|
\n• Wikipedie ve vašem zvoleném jazyce vám poskytne mnoho informací při procházce městem
|
||||||
|
\n• Při pohybu v neznámém městě vám pomůže zobrazování názvů zastávek a tras veřejné dopravy (autobusy, tramvaje, vlaky)
|
||||||
|
\n• GPS navigace v režimu Pěší vytvoří trasu cest vhodných pro chodce
|
||||||
|
\n• Můžete otevřít GPX trasu a následovat ji nebo zaznamenat a sdílet svou vlastní</string>
|
||||||
|
<string name="osmand_extended_description_part7">Přispějte do OSM
|
||||||
|
\n• Hlaste chyby v datech
|
||||||
|
\n•Nahrávejte GPX trasy do OSM přímo z aplikace
|
||||||
|
\n• Přidávejte body zájmu a rovnou je nahrávejte do OSM (nebo později, pokud jste zrovna offline)</string>
|
||||||
|
<string name="osmand_extended_description_part8">OsmAnd je aktivně vyvíjený open-source software. Do aplikace může každý přispět hlášením chyb, vylepšováním překladů nebo programováním nových funkcí. Projekt je také závislý na finančních příspěvcích pro programování a testování nových funkcí.
|
||||||
|
\nPřibližné pokrytí a kvalita map:
|
||||||
|
\n• Západní Evropa: ****
|
||||||
|
\n• Východní Evropa: ***
|
||||||
|
\n• Rusko: ***
|
||||||
|
\n• Severní Amerika: ***
|
||||||
|
\n• Jižní Amerika: **
|
||||||
|
\n• Asie: **
|
||||||
|
\n• Japonsko & Korea: ***
|
||||||
|
\n• Střední Východ: **
|
||||||
|
\n• Afrika: **
|
||||||
|
\n• Antarktida: *
|
||||||
|
\nMapy většiny států na zeměkouli jsou dostupné ke stažení!
|
||||||
|
\nZískejte spolehlivého navigátora ve své zemi - ať je to Francie, Německo, Mexiko, Spojené království, Španělsko, Nizozemí, USA, Rusko, Brazílie či jakákoliv jiná.</string>
|
||||||
|
<string name="osmand_plus_extended_description_part1">OsmAnd+ (OSM Automated Navigation Directions) je mapová a navigační aplikace s přístupem ke kvalitním, bezplatným a celosvětovým datům OpenStreetMap (OSM).
|
||||||
|
\nMůžete využít hlasovou a optickou navigaci, prohlížet si POI (body zájmu), vytvářet a spravovat GPX trasy, zobrazit vrstevnice a údaje o nadmořské výšce, vybírat mezi režimem Auto, Cyklista a Pěší, editovat OSM a mnoho dalšího.
|
||||||
|
\n
|
||||||
|
\nOsmAnd+ je placenou verzí aplikace. Jejím zakoupením podpoříte projekt, přispějete na vývoj nových funkcí a získáte nejnovější aktualizace.
|
||||||
|
\n
|
||||||
|
\nMezi hlavní funkce patří:</string>
|
||||||
|
<string name="osmand_plus_extended_description_part2">Navigace
|
||||||
|
\n• Pracuje online (rychle) nebo i offline (bez roamingových poplatků v zahraničí)
|
||||||
|
\n• Hlasová navigace krok za krokem (nahraný nebo syntetizovaný hlas)
|
||||||
|
\n• Volitelné navádění do jízdních pruhů, zobrazení názvů ulic a předpokládaného čas příjezdu
|
||||||
|
\n• Podporuje mezicíle v itineráři
|
||||||
|
\n• Automatické přepočítání trasy při odchýlení
|
||||||
|
\n• Hledání míst podle adresy, typu (např. restaurace, hotel, čerpací stanice, muzeum) či podle geografických souřadnic</string>
|
||||||
|
<string name="osmand_plus_extended_description_part3">"Prohlížení mapy
|
||||||
|
\n• Ukazuje vaši pozici a orientaci
|
||||||
|
\n• Volitelné otáčení podle směru vašeho pohybu (nebo podle kompasu)
|
||||||
|
\n• Ukládání důležitých míst do složky Moje místa
|
||||||
|
\n• Zobrazuje POI (body zájmu) ve vašem okolí
|
||||||
|
\n• Zobrazuje specializované online dlaždice, satelitní mapy (z Bingu), různé překryvné informace jako navigační GPX trasy a další vrstvy s volitelnou průhledností
|
||||||
|
\n• Názvy míst lze zobrazit v angličtině, v místním jazyce nebo ve fonetickém přepisu"</string>
|
||||||
|
<string name="osmand_plus_extended_description_part4">Využívá data OSM a Wikipedie
|
||||||
|
\n• Kvalitní informace z nejlepších komunitních projektů na světě
|
||||||
|
\n• OSM data dostupná podle země nebo regionu
|
||||||
|
\n• Body zájmu z Wikipedie, skvělé pro vyhlídkové trasy
|
||||||
|
\n• Bezplatné a neomezené stahování přímo z aplikace
|
||||||
|
\n• Kompaktní vektorové offline mapy aktualizované nejméně jednou za měsíc
|
||||||
|
\n
|
||||||
|
\n• Výběr mezi kompletními daty regionu a pouze silniční mapou (například celá mapa Japonska zabírá 700 MB, silniční pouze 200 MB)</string>
|
||||||
|
<string name="osmand_plus_extended_description_part5">Bezpečnostní funkce
|
||||||
|
\n• Volitelné automatické přepínání denního a nočního režimu
|
||||||
|
\n• Volitelné zobrazení rychlostních limitů s upozorněním při překročení
|
||||||
|
\n• Volitelné přiblížení mapy v závislosti na rychlosti
|
||||||
|
\n• Sdílení polohy s přáteli</string>
|
||||||
|
<string name="osmand_plus_extended_description_part6">Funkce pro cyklisty a pěší
|
||||||
|
\n• Zobrazení pěších, turistických a cyklistických tras, skvělé pro venkovní aktivity
|
||||||
|
\n• Speciální navigační režim a zobrazení pro cyklisty a chodce
|
||||||
|
\n• Volitelné zobrazení zastávek veřejné dopravy (autobusy, tramvaje, vlaky) včetně názvů linek
|
||||||
|
\n• Volitelný záznam výletu do lokálního souboru GPS nebo do online služby
|
||||||
|
\n• Zobrazení rychlosti a nadmořské výšky
|
||||||
|
\n• Zobrazení vrstevnic a stínování kopců (pomocí pluginů)</string>
|
||||||
|
<string name="osmand_plus_extended_description_part7">Přispívejte přímo do OSM
|
||||||
|
\n• Hlaste chyby v datech
|
||||||
|
\n• Nahrávejte GPX trasy do OSM přímo z aplikace
|
||||||
|
\n• Přidávejte body zájmu a rovnou je nahrávejte do OSM (nebo později, pokud jste zrovna offline)
|
||||||
|
\n• Záznam trasy funguje také na pozadí (když je zařízení v režimu spánku)
|
||||||
|
\nOsmAnd je aktivně vyvíjený open-source software. Do aplikace může každý přispět hlášením chyb, vylepšováním překladů nebo programováním nových funkcí. Projekt je také závislý na finančních příspěvcích pro programování a testování nových funkcí.</string>
|
||||||
<string name="osmand_plus_extended_description_part8">Přibližné pokrytí a kvalita map: • Západní Evropa: **** • Východní Evropa: *** • Rusko: *** • Severní Amerika: *** • Jižní Amerika: ** • Asie: ** • Japonsko & Korea: *** • Střední Východ: ** • Afrika: ** • Antarktida: * Mapy většiny států na zeměkouli jsou dostupné ke stažení! Od Afghánistánu po Zimbabwe, od Austrálie po USA, Argentinu, Brazílii, Kanadu, Francii, Německo, Mexiko, Spojené království, Španělsko, …</string>
|
<string name="osmand_plus_extended_description_part8">Přibližné pokrytí a kvalita map: • Západní Evropa: **** • Východní Evropa: *** • Rusko: *** • Severní Amerika: *** • Jižní Amerika: ** • Asie: ** • Japonsko & Korea: *** • Střední Východ: ** • Afrika: ** • Antarktida: * Mapy většiny států na zeměkouli jsou dostupné ke stažení! Od Afghánistánu po Zimbabwe, od Austrálie po USA, Argentinu, Brazílii, Kanadu, Francii, Německo, Mexiko, Spojené království, Španělsko, …</string>
|
||||||
<string name="group_deleted">Skupina smazána</string>
|
<string name="group_deleted">Skupina smazána</string>
|
||||||
<string name="clear_all_intermediates">Smazat všechny mezicíle</string>
|
<string name="clear_all_intermediates">Smazat všechny mezicíle</string>
|
||||||
|
@ -2832,7 +2905,7 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
\n
|
\n
|
||||||
\n • Mapové značky: opravena možnost zapnutí/vypnutí skupin, nově možnost skrýt značky na mapě
|
\n • Mapové značky: opravena možnost zapnutí/vypnutí skupin, nově možnost skrýt značky na mapě
|
||||||
\n
|
\n
|
||||||
\n • Úpravy OSM: nově možnost upravovat tagy všech objektů zájmu v mapě, (nejen bodových jako dosud), opraveny chybějící komentáře v poznámkách, přidána možnost zálohy úprav
|
\n • Úpravy OSM: nově možnost upravovat tagy všech objektů zájmu v mapě (nejen bodových jako dosud), opraveny chybějící komentáře v poznámkách, přidána možnost zálohy úprav
|
||||||
\n
|
\n
|
||||||
\n • Vylepšené vykreslování článků Wikipedie a Wikivoyage, upravené soubory jsou již k dispozici ke stažení
|
\n • Vylepšené vykreslování článků Wikipedie a Wikivoyage, upravené soubory jsou již k dispozici ke stažení
|
||||||
\n
|
\n
|
||||||
|
@ -2844,7 +2917,7 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
\n</string>
|
\n</string>
|
||||||
<string name="commiting_way">Odesílání cesty…</string>
|
<string name="commiting_way">Odesílání cesty…</string>
|
||||||
<string name="increase_search_radius_to">Zvětšit okruh hledání na %1$s</string>
|
<string name="increase_search_radius_to">Zvětšit okruh hledání na %1$s</string>
|
||||||
<string name="send_search_query_description">Bude odeslán Váš dotaz pro vyhledávání: <b>\"%1$s\"</b>, spolu s Vaší polohou. <br/><br/> Odeslaná data jsou plně anonymní a nedocházi k žádnému shromažďování Vašich osobních údajů. Zaslaná data slouží pouze k vylepšení vyhledávacího algoritmu.<br/></string>
|
<string name="send_search_query_description">Bude odeslán váš dotaz pro vyhledávání: <b>\"%1$s\"</b> a také vaše poloha. <br/><br/> Nedochází k žádnému shromažďování osobních údajů. Zaslaná data slouží pouze k vylepšení vyhledávacího algoritmu.<br/></string>
|
||||||
<string name="send_search_query">Odeslat data?</string>
|
<string name="send_search_query">Odeslat data?</string>
|
||||||
<string name="shared_string_world">Celý svět</string>
|
<string name="shared_string_world">Celý svět</string>
|
||||||
<string name="point_deleted">Bod %1$s byl smazán</string>
|
<string name="point_deleted">Bod %1$s byl smazán</string>
|
||||||
|
@ -2856,20 +2929,20 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="shared_string_bookmark">Záložka</string>
|
<string name="shared_string_bookmark">Záložka</string>
|
||||||
<string name="off_road_render_descr">Vhodný pro off-road terénní jízdu. Vhodný pro použití se zelenými satelitními snímky použitými jako podkladová vrstva. Zmenšená tloušťka hlavních cest a naopak zvětšená tloušťka polních cest, pěšin, cyklotras a dalších cest. Založeno na \"Topo\" stylu.</string>
|
<string name="off_road_render_descr">Vhodný pro off-road terénní jízdu. Vhodný pro použití se zelenými satelitními snímky použitými jako podkladová vrstva. Zmenšená tloušťka hlavních cest a naopak zvětšená tloušťka polních cest, pěšin, cyklotras a dalších cest. Založeno na \"Topo\" stylu.</string>
|
||||||
<string name="open_wikipedia_link_online">Otevřít odkaz Wikipedia na internetu</string>
|
<string name="open_wikipedia_link_online">Otevřít odkaz Wikipedia na internetu</string>
|
||||||
<string name="open_wikipedia_link_online_description">Odkaz bude otevřen v intenetovém prohlížeči.</string>
|
<string name="open_wikipedia_link_online_description">Odkaz bude otevřen v internetovém prohlížeči.</string>
|
||||||
<string name="read_wikipedia_offline_description">Stahování Wikipedia a Wikivoyage článkú do zařízení pro pozdější použití bez přístupu k internetu je dostupné pouze předplatitelům OsmAnd Live.</string>
|
<string name="read_wikipedia_offline_description">Stahování Wikipedia a Wikivoyage článků pro čtení offline je dostupné pouze předplatitelům OsmAnd Live.</string>
|
||||||
<string name="how_to_open_link">Jak otevřít odkaz?</string>
|
<string name="how_to_open_link">Jak otevřít odkaz?</string>
|
||||||
<string name="read_wikipedia_offline">Číst Wikipedia bez internetu</string>
|
<string name="read_wikipedia_offline">Číst Wikipedii offline</string>
|
||||||
<string name="download_all">Stáhnout vše</string>
|
<string name="download_all">Stáhnout vše</string>
|
||||||
<string name="purchase_cancelled_dialog_title">Zrušili jste Vaše předplatné OsmAnd Live</string>
|
<string name="purchase_cancelled_dialog_title">Zrušili jste své předplatné OsmAnd Live</string>
|
||||||
<string name="paid_app">Placená aplikace</string>
|
<string name="paid_app">Placená aplikace</string>
|
||||||
<string name="paid_plugin">Placený modul</string>
|
<string name="paid_plugin">Placený modul</string>
|
||||||
<string name="travel_card_update_descr">Jsou dostupná nová data Wikivoyage, aktualizujte je na nejnovější verzi.</string>
|
<string name="travel_card_update_descr">Jsou dostupná nová data Wikivoyage, aktualizujte je na nejnovější verzi.</string>
|
||||||
<string name="wikivoyage_travel_guide">Turistický Průvodce Wikivoyage</string>
|
<string name="wikivoyage_travel_guide">Turistický průvodce Wikivoyage</string>
|
||||||
<string name="wikivoyage_travel_guide_descr">Průvodce Wikivoyage Vám ukáže nejzajímavější místa planety, přímo v aplikaci OsmAnd a bez nutnosti připojení k internetu.</string>
|
<string name="wikivoyage_travel_guide_descr">Průvodce Wikivoyage Vám ukáže nejzajímavější místa planety, přímo v aplikaci OsmAnd a bez nutnosti připojení k internetu.</string>
|
||||||
<string name="shared_string_gpx_files">Soubory GPX</string>
|
<string name="shared_string_gpx_files">Soubory GPX</string>
|
||||||
<string name="access_intermediate_arrival_time">Čas příjezdu do mezicíle</string>
|
<string name="access_intermediate_arrival_time">Čas příjezdu do mezicíle</string>
|
||||||
<string name="map_widget_intermediate_time">Do Průjezdního bodu</string>
|
<string name="map_widget_intermediate_time">Do průjezdního bodu</string>
|
||||||
<string name="test_voice_desrc">Klepněte na tlačítko pro vyslechnutí odpovídajícího hlasového pokynu, aby jste zjistili chybné nebo chybějící pokyny.</string>
|
<string name="test_voice_desrc">Klepněte na tlačítko pro vyslechnutí odpovídajícího hlasového pokynu, aby jste zjistili chybné nebo chybějící pokyny.</string>
|
||||||
<string name="nautical_render_descr">Plavební navigační styl. Klíčové vlastnosti: Bóje, majáky, plavební cesty, mořské cesty a značky, přístavy, námořní služby, plavební hloubka.</string>
|
<string name="nautical_render_descr">Plavební navigační styl. Klíčové vlastnosti: Bóje, majáky, plavební cesty, mořské cesty a značky, přístavy, námořní služby, plavební hloubka.</string>
|
||||||
<string name="ski_map_render_descr">Zimní režim. Klíčové vlastnosti: Vykresluje sjezdovky, lyžařské vleky a další praktické objekty pro lyžaře a snowboardisty. Nedůležité objekty jsou na mapě méně výrazné.</string>
|
<string name="ski_map_render_descr">Zimní režim. Klíčové vlastnosti: Vykresluje sjezdovky, lyžařské vleky a další praktické objekty pro lyžaře a snowboardisty. Nedůležité objekty jsou na mapě méně výrazné.</string>
|
||||||
|
@ -2877,4 +2950,10 @@ Zobrazená oblast: %1$s x %2$s</string>
|
||||||
<string name="light_rs_render_descr">Jednoduchý a kontrastní styl pro automobilovou navigaci. Příjemný na oči v nočním režimu. Klíčové vlastnosti: Vrstevnice, kontrastní oranžové silnice, druhořadé objekty jsou méně výrazné.</string>
|
<string name="light_rs_render_descr">Jednoduchý a kontrastní styl pro automobilovou navigaci. Příjemný na oči v nočním režimu. Klíčové vlastnosti: Vrstevnice, kontrastní oranžové silnice, druhořadé objekty jsou méně výrazné.</string>
|
||||||
<string name="topo_render_descr">Kontrastní styl určený primárně pro pěší turistiku a cyklistiku v přírodě. Dobrá čitelnost při složitém venkovním osvětlením. Klíčové vlastnosti: kontrastní silnice a přírodních objekty, různé typy tras, vrstevnice s rozšířeným nastavením, více detailů při odpovídající úrovni zvětšení než ve výchozím stylu. Umožňuje rozlišit kvalitu povrchu vozovky. Nemá noční režim.</string>
|
<string name="topo_render_descr">Kontrastní styl určený primárně pro pěší turistiku a cyklistiku v přírodě. Dobrá čitelnost při složitém venkovním osvětlením. Klíčové vlastnosti: kontrastní silnice a přírodních objekty, různé typy tras, vrstevnice s rozšířeným nastavením, více detailů při odpovídající úrovni zvětšení než ve výchozím stylu. Umožňuje rozlišit kvalitu povrchu vozovky. Nemá noční režim.</string>
|
||||||
<string name="mapnik_render_descr">Starý styl vykreslení jako výchozí \"Mapnik\". Klíčové vlastnosti: barvy jsou podobné \"Mapnik\" stylu.</string>
|
<string name="mapnik_render_descr">Starý styl vykreslení jako výchozí \"Mapnik\". Klíčové vlastnosti: barvy jsou podobné \"Mapnik\" stylu.</string>
|
||||||
|
<string name="touring_view_render_descr">Vysoce detailní styl pro účely cestování. Obsahuje všechna nastavení z výchozího stylu a navíc zobrazuje maximum detailů, především všechny silnice, cesty a jiné způsoby cestování. Jasně rozlišuje různé typy cest, podobně jako mnohé cestovní atlasy. Vysoce kontrastní schéma pro venkovní použití, denní a noční režim.</string>
|
||||||
|
<string name="default_render_descr">Obecný styl. Zjednodušené vykreslování v hustě osídlených městech. Klíčové vlastnosti: vrstevnice, trasy, kvalita povrchu cest, omezení přístupu, čísla cest, značení dle SAC, objekty pro vodní sporty.</string>
|
||||||
|
<string name="travel_card_download_descr">Stáhněte si cestovní průvodce Wikivoyage a prohlížejte články o místech po celém světě bez připojení na internet.</string>
|
||||||
|
<string name="start_editing_card_image_text">Bezplatný cestovní průvodce, který může upravovat každý.</string>
|
||||||
|
<string name="welcome_to_open_beta_description">Cestovní průvodci jsou nyní založené na Wikivoyage. Všechny jejich funkce můžete otestovat zdarma během beta testování. Poté budou zpřístupněny předplatitelům služby OsmAnd Live a uživatelům OsmAnd+.</string>
|
||||||
|
<string name="start_editing_card_description">Můžete (a měli byste) upravovat libovolný článek na Wikivoyage. Sdílejte znalosti, zkušenosti, talent a svoji pozornost</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1164,7 +1164,7 @@
|
||||||
|
|
||||||
<string name="poi_cypress">Zypresse</string>
|
<string name="poi_cypress">Zypresse</string>
|
||||||
<string name="poi_bench_yes">ja</string>
|
<string name="poi_bench_yes">ja</string>
|
||||||
<string name="poi_bench_no">Ohne Sitzbank</string>
|
<string name="poi_bench_no">ohne Sitzbank</string>
|
||||||
<string name="poi_bin_yes">Mit Abfalleimer</string>
|
<string name="poi_bin_yes">Mit Abfalleimer</string>
|
||||||
<string name="poi_bin_no">Ohne Abfalleimer</string>
|
<string name="poi_bin_no">Ohne Abfalleimer</string>
|
||||||
|
|
||||||
|
@ -1400,7 +1400,7 @@
|
||||||
<string name="poi_fireplace_no">Keine Feuerstelle</string>
|
<string name="poi_fireplace_no">Keine Feuerstelle</string>
|
||||||
|
|
||||||
<string name="poi_covered_yes">ja</string>
|
<string name="poi_covered_yes">ja</string>
|
||||||
<string name="poi_covered_no">offen</string>
|
<string name="poi_covered_no">nicht überdacht</string>
|
||||||
|
|
||||||
<string name="poi_smoking_no">Nicht erlaubt</string>
|
<string name="poi_smoking_no">Nicht erlaubt</string>
|
||||||
<string name="poi_smoking_outside">nur Außerhalb</string>
|
<string name="poi_smoking_outside">nur Außerhalb</string>
|
||||||
|
|
|
@ -78,7 +78,7 @@ Lon %2$s</string>
|
||||||
<string name="shared_string_help">Ayuda</string>
|
<string name="shared_string_help">Ayuda</string>
|
||||||
<string name="shared_string_settings">Ajustes</string>
|
<string name="shared_string_settings">Ajustes</string>
|
||||||
<string name="shared_string_history">Historial</string>
|
<string name="shared_string_history">Historial</string>
|
||||||
<string name="shared_string_select_on_map">Elegir en el mapa</string>
|
<string name="shared_string_select_on_map">Marcar en el mapa</string>
|
||||||
<string name="shared_string_select_all">Marcar todo</string>
|
<string name="shared_string_select_all">Marcar todo</string>
|
||||||
<string name="shared_string_deselect">Desmarcar</string>
|
<string name="shared_string_deselect">Desmarcar</string>
|
||||||
<string name="shared_string_deselect_all">Desmarcar todo</string>
|
<string name="shared_string_deselect_all">Desmarcar todo</string>
|
||||||
|
@ -219,11 +219,11 @@ Lon %2$s</string>
|
||||||
<string name="traffic_warning">Aviso de tráfico</string>
|
<string name="traffic_warning">Aviso de tráfico</string>
|
||||||
<string name="speak_favorites">Favoritos cercanos</string>
|
<string name="speak_favorites">Favoritos cercanos</string>
|
||||||
<string name="speak_poi">PDI cercanos</string>
|
<string name="speak_poi">PDI cercanos</string>
|
||||||
<string name="way_alarms">Avisos de tráfico</string>
|
<string name="way_alarms">Advertencias de tráfico</string>
|
||||||
<string name="stop_navigation_service">Parar</string>
|
<string name="stop_navigation_service">Parar</string>
|
||||||
<string name="confirm_every_run">Preguntar siempre</string>
|
<string name="confirm_every_run">Preguntar siempre</string>
|
||||||
<string name="enable_sleep_mode">Activar modo reposo del GPS</string>
|
<string name="enable_sleep_mode">Activar modo reposo del GPS</string>
|
||||||
<string name="save_current_track_descr">Guardar ahora la traza actual como un archivo GPX.</string>
|
<string name="save_current_track_descr">Guarda la traza actual como archivo GPX ahora.</string>
|
||||||
<string name="save_current_track">Guardar la traza actual</string>
|
<string name="save_current_track">Guardar la traza actual</string>
|
||||||
<string name="save_track_interval_globally">Intervalo de registro</string>
|
<string name="save_track_interval_globally">Intervalo de registro</string>
|
||||||
<string name="voice_provider">Indicaciones por voz</string>
|
<string name="voice_provider">Indicaciones por voz</string>
|
||||||
|
@ -538,7 +538,7 @@ Lon %2$s</string>
|
||||||
<string name="map_preferred_locale">Idioma preferido del mapa</string>
|
<string name="map_preferred_locale">Idioma preferido del mapa</string>
|
||||||
<string name="forward">Siguiente</string>
|
<string name="forward">Siguiente</string>
|
||||||
<string name="home">Panel de control</string>
|
<string name="home">Panel de control</string>
|
||||||
<string name="live_monitoring_m_descr">Envía los datos de rastreo a un servicio web específico, si la grabación GPX está activada.</string>
|
<string name="live_monitoring_m_descr">Envía los datos de seguimiento a un servicio web específico, si la grabación GPX está activada.</string>
|
||||||
<string name="live_monitoring_m">Rastreo en línea (requiere GPX)</string>
|
<string name="live_monitoring_m">Rastreo en línea (requiere GPX)</string>
|
||||||
<string name="live_monitoring_start">Iniciar rastreo en línea</string>
|
<string name="live_monitoring_start">Iniciar rastreo en línea</string>
|
||||||
<string name="live_monitoring_stop">Parar rastreo en línea</string>
|
<string name="live_monitoring_stop">Parar rastreo en línea</string>
|
||||||
|
@ -641,7 +641,7 @@ Lon %2$s</string>
|
||||||
<string name="edit_tilesource_url_to_load">URL</string>
|
<string name="edit_tilesource_url_to_load">URL</string>
|
||||||
<string name="edit_tilesource_choose_existing">Elegir existente…</string>
|
<string name="edit_tilesource_choose_existing">Elegir existente…</string>
|
||||||
<string name="maps_define_edit">Definir/Editar…</string>
|
<string name="maps_define_edit">Definir/Editar…</string>
|
||||||
<string name="map_widget_fps_info">Info de depuración FPS</string>
|
<string name="map_widget_fps_info">Información de FPS</string>
|
||||||
<string name="driving_region_descr">Región de conducción: EEUU, Europa, Reino Unido, Asia u otras.</string>
|
<string name="driving_region_descr">Región de conducción: EEUU, Europa, Reino Unido, Asia u otras.</string>
|
||||||
<string name="driving_region">Región de conducción</string>
|
<string name="driving_region">Región de conducción</string>
|
||||||
<string name="driving_region_japan">Japón</string>
|
<string name="driving_region_japan">Japón</string>
|
||||||
|
@ -650,7 +650,7 @@ Lon %2$s</string>
|
||||||
<string name="driving_region_europe_asia">Europa, Asia, Latinoamérica y similares</string>
|
<string name="driving_region_europe_asia">Europa, Asia, Latinoamérica y similares</string>
|
||||||
<string name="driving_region_uk">Reino Unido, India y similares</string>
|
<string name="driving_region_uk">Reino Unido, India y similares</string>
|
||||||
<string name="speak_title">Anunciar…</string>
|
<string name="speak_title">Anunciar…</string>
|
||||||
<string name="speak_descr">Configura el anuncio de nombres de calles, avisos de tráfico (paradas, lomadas), radares y límites de velocidad.</string>
|
<string name="speak_descr">Configura el anuncio de nombres de calles, advertencias de tráfico (paradas, lomadas), radares y límites de velocidad.</string>
|
||||||
<string name="speak_street_names">Nombres de calles (TTS)</string>
|
<string name="speak_street_names">Nombres de calles (TTS)</string>
|
||||||
<string name="speak_speed_limit">Límite de velocidad</string>
|
<string name="speak_speed_limit">Límite de velocidad</string>
|
||||||
<string name="speak_cameras">Radares de velocidad</string>
|
<string name="speak_cameras">Radares de velocidad</string>
|
||||||
|
@ -841,7 +841,7 @@ Lon %2$s</string>
|
||||||
<string name="poi_filter_for_tourists">Para turistas</string>
|
<string name="poi_filter_for_tourists">Para turistas</string>
|
||||||
<string name="poi_filter_fuel">Combustible</string>
|
<string name="poi_filter_fuel">Combustible</string>
|
||||||
<string name="show_warnings_title">Mostrar alertas…</string>
|
<string name="show_warnings_title">Mostrar alertas…</string>
|
||||||
<string name="show_warnings_descr">Configura avisos de tráfico (límites de velocidad, paradas forzosas, lomadas, túneles), radares de velocidad, e información de carriles.</string>
|
<string name="show_warnings_descr">Configura advertencias de tráfico (límites de velocidad, paradas forzosas, lomadas, túneles), radares de velocidad, e información de carriles.</string>
|
||||||
<string name="use_compass_navigation_descr">Usa la brújula cuando no se detecta la dirección.</string>
|
<string name="use_compass_navigation_descr">Usa la brújula cuando no se detecta la dirección.</string>
|
||||||
<string name="use_compass_navigation">Usar brújula</string>
|
<string name="use_compass_navigation">Usar brújula</string>
|
||||||
<string name="avoid_motorway">Evitar autopistas</string>
|
<string name="avoid_motorway">Evitar autopistas</string>
|
||||||
|
@ -910,7 +910,7 @@ Lon %2$s</string>
|
||||||
<string name="avoid_unpaved">Evitar caminos sin pavimentar</string>
|
<string name="avoid_unpaved">Evitar caminos sin pavimentar</string>
|
||||||
<string name="avoid_ferries">Evitar ferris</string>
|
<string name="avoid_ferries">Evitar ferris</string>
|
||||||
<string name="avoid_in_routing_title">Evitar…</string>
|
<string name="avoid_in_routing_title">Evitar…</string>
|
||||||
<string name="avoid_in_routing_descr">Evita caminos con peajes, sin pavimentar, transbordadores u otros.</string>
|
<string name="avoid_in_routing_descr">Evita caminos con peajes, sin pavimentar, transbordadores o ferris y otros.</string>
|
||||||
<string name="map_widget_fluorescent">Rutas fluorescentes</string>
|
<string name="map_widget_fluorescent">Rutas fluorescentes</string>
|
||||||
<string name="map_widget_show_ruler">Escala</string>
|
<string name="map_widget_show_ruler">Escala</string>
|
||||||
<string name="map_widget_view_direction">Dirección de visualización</string>
|
<string name="map_widget_view_direction">Dirección de visualización</string>
|
||||||
|
@ -1077,7 +1077,7 @@ Lon %2$s</string>
|
||||||
<string name="direction_style_sidewise">Según el lado (8 sectores)</string>
|
<string name="direction_style_sidewise">Según el lado (8 sectores)</string>
|
||||||
<string name="direction_style_clockwise">Según el reloj (12 sectores)</string>
|
<string name="direction_style_clockwise">Según el reloj (12 sectores)</string>
|
||||||
<string name="settings_direction_style">Estilo de dirección</string>
|
<string name="settings_direction_style">Estilo de dirección</string>
|
||||||
<string name="settings_direction_style_descr">Elige el estilo para expresar direcciones relativas en movimiento.</string>
|
<string name="settings_direction_style_descr">Elige el estilo para expresar direcciones relativas al moverse.</string>
|
||||||
<string name="auto_announce_on">Iniciar anuncios automáticos</string>
|
<string name="auto_announce_on">Iniciar anuncios automáticos</string>
|
||||||
<string name="auto_announce_off">Parar anuncios automáticos</string>
|
<string name="auto_announce_off">Parar anuncios automáticos</string>
|
||||||
<string name="i_am_here">Estoy aquí</string>
|
<string name="i_am_here">Estoy aquí</string>
|
||||||
|
@ -1327,7 +1327,7 @@ Lon %2$s</string>
|
||||||
<string name="m">m</string>
|
<string name="m">m</string>
|
||||||
<string name="old_map_index_is_not_supported">Formato de datos «{0}» del mapa, obsoleto e incompatible</string>
|
<string name="old_map_index_is_not_supported">Formato de datos «{0}» del mapa, obsoleto e incompatible</string>
|
||||||
<string name="poi_filter_closest_poi">PDI más cercanos</string>
|
<string name="poi_filter_closest_poi">PDI más cercanos</string>
|
||||||
<string name="poi_filter_custom_filter">Filtro propio</string>
|
<string name="poi_filter_custom_filter">Filtro personal</string>
|
||||||
<string name="poi_filter_namefinder">NameFinder en línea</string>
|
<string name="poi_filter_namefinder">NameFinder en línea</string>
|
||||||
<string name="reading_cached_tiles">Leyendo teselas guardadas…</string>
|
<string name="reading_cached_tiles">Leyendo teselas guardadas…</string>
|
||||||
<string name="version_index_is_big_for_memory">La versión «{0}» de índices no cabe en memoria</string>
|
<string name="version_index_is_big_for_memory">La versión «{0}» de índices no cabe en memoria</string>
|
||||||
|
@ -1345,7 +1345,7 @@ Lon %2$s</string>
|
||||||
\nVersión: {0}
|
\nVersión: {0}
|
||||||
\nFecha: {1}
|
\nFecha: {1}
|
||||||
\nTamaño: {2} MB</string>
|
\nTamaño: {2} MB</string>
|
||||||
<string name="loading_builds_failed">Fallo al recuperar la lista de compilaciones de OsmAnd</string>
|
<string name="loading_builds_failed">Error al recuperar la lista de compilaciones de OsmAnd</string>
|
||||||
<string name="loading_builds">Cargando compilaciones de OsmAnd…</string>
|
<string name="loading_builds">Cargando compilaciones de OsmAnd…</string>
|
||||||
<string name="select_build_to_install">Instalar una compilación de OsmAnd</string>
|
<string name="select_build_to_install">Instalar una compilación de OsmAnd</string>
|
||||||
<string name="gps_status_app_not_found">La aplicación «GPS Status» no está instalada. ¿Buscar en la tienda de aplicaciones?</string>
|
<string name="gps_status_app_not_found">La aplicación «GPS Status» no está instalada. ¿Buscar en la tienda de aplicaciones?</string>
|
||||||
|
@ -2045,7 +2045,7 @@ Lon %2$s</string>
|
||||||
<string name="osm_editors_ranking">Clasificación de editores OSM</string>
|
<string name="osm_editors_ranking">Clasificación de editores OSM</string>
|
||||||
<string name="osm_live_subscription">Suscripción de OsmAnd Live</string>
|
<string name="osm_live_subscription">Suscripción de OsmAnd Live</string>
|
||||||
<string name="osm_live_subscribe_btn">Suscribirse</string>
|
<string name="osm_live_subscribe_btn">Suscribirse</string>
|
||||||
<string name="osm_live_email_desc">Necesario para proporcionarte información sobre las contribuciones.</string>
|
<string name="osm_live_email_desc">Necesario para proporcionar información sobre las contribuciones.</string>
|
||||||
<string name="osm_live_user_public_name">Nombre público</string>
|
<string name="osm_live_user_public_name">Nombre público</string>
|
||||||
<string name="osm_live_hide_user_name">Ocultar mi nombre en los informes</string>
|
<string name="osm_live_hide_user_name">Ocultar mi nombre en los informes</string>
|
||||||
<string name="osm_live_support_region">Región soportada</string>
|
<string name="osm_live_support_region">Región soportada</string>
|
||||||
|
@ -2173,7 +2173,7 @@ Lon %2$s</string>
|
||||||
<string name="no_inet_connection_desc_map">Necesario para descargar mapas.</string>
|
<string name="no_inet_connection_desc_map">Necesario para descargar mapas.</string>
|
||||||
<string name="search_location">Buscando la ubicación…</string>
|
<string name="search_location">Buscando la ubicación…</string>
|
||||||
<string name="storage_free_space">Espacio libre</string>
|
<string name="storage_free_space">Espacio libre</string>
|
||||||
<string name="storage_place_description">Almacenamiento de datos OsmAnd (para mapas, archivos GPX, etc.): %1$s.</string>
|
<string name="storage_place_description">Almacenamiento de datos de OsmAnd (para mapas, archivos GPX, etc.): %1$s.</string>
|
||||||
<string name="give_permission">Conceder permiso</string>
|
<string name="give_permission">Conceder permiso</string>
|
||||||
<string name="allow_access_location">Permitir el acceso a la ubicación</string>
|
<string name="allow_access_location">Permitir el acceso a la ubicación</string>
|
||||||
<string name="first_usage_greeting">Obtén direcciones y descubre lugares nuevos sin una conexión a Internet</string>
|
<string name="first_usage_greeting">Obtén direcciones y descubre lugares nuevos sin una conexión a Internet</string>
|
||||||
|
@ -2355,7 +2355,7 @@ Lon %2$s</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="routing_attr_height_obstacles_name">Usar datos de elevación</string>
|
<string name="routing_attr_height_obstacles_name">Usar datos de elevación</string>
|
||||||
<string name="routing_attr_height_obstacles_description">Factor de elevación del terreno (según datos de SRTM, ASTER y EU-DEM).</string>
|
<string name="routing_attr_height_obstacles_description">Incluye como factor, la elevación del terreno (según datos de SRTM, ASTER y EU-DEM).</string>
|
||||||
|
|
||||||
<string name="routing_attr_driving_style_name">Estilo de conducción</string>
|
<string name="routing_attr_driving_style_name">Estilo de conducción</string>
|
||||||
|
|
||||||
|
@ -2760,7 +2760,7 @@ Lon %2$s</string>
|
||||||
<string name="shared_string_gpx_waypoints">Puntos de referencia de la traza</string>
|
<string name="shared_string_gpx_waypoints">Puntos de referencia de la traza</string>
|
||||||
<string name="favourites_group">Categoría de favoritos</string>
|
<string name="favourites_group">Categoría de favoritos</string>
|
||||||
<string name="add_group">Añadir un grupo</string>
|
<string name="add_group">Añadir un grupo</string>
|
||||||
<string name="add_group_descr">Importar grupos de Favoritos o puntos de referencia GPX.</string>
|
<string name="add_group_descr">Importar grupos desde Favoritos o puntos de referencia GPX.</string>
|
||||||
<string name="empty_state_markers_active">¡Crea marcadores del mapa!</string>
|
<string name="empty_state_markers_active">¡Crea marcadores del mapa!</string>
|
||||||
<string name="empty_state_markers_active_desc">Pulsa en «Lugares» y luego pulsa la bandera del marcador.</string>
|
<string name="empty_state_markers_active_desc">Pulsa en «Lugares» y luego pulsa la bandera del marcador.</string>
|
||||||
<string name="empty_state_markers_groups">Importar grupos</string>
|
<string name="empty_state_markers_groups">Importar grupos</string>
|
||||||
|
@ -2789,11 +2789,11 @@ Lon %2$s</string>
|
||||||
<string name="by_date">Por fecha</string>
|
<string name="by_date">Por fecha</string>
|
||||||
<string name="by_type">Por tipo</string>
|
<string name="by_type">Por tipo</string>
|
||||||
<string name="modify_the_search_query">Modificar la consulta de búsqueda.</string>
|
<string name="modify_the_search_query">Modificar la consulta de búsqueda.</string>
|
||||||
<string name="release_3_0">• Nuevo: Soporte de guías turísticas globales sin conexión a Internet. Las ubicaciones de referencias, están enlazadas al mapa. Datos iniciales de Wikiviajes
|
<string name="release_3_0">• Nuevo: Soporte para guías turísticas globales sin conexión a Internet. Las ubicaciones de referencia, están vinculadas al mapa. Datos iniciales de Wikiviajes
|
||||||
\n
|
\n
|
||||||
\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes
|
\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes
|
||||||
\n
|
\n
|
||||||
\n • Interfaz de apertura de traza: Soporte para los grupos de puntos de ruta
|
\n • Interfaz de usuario de Open Tracks: Soporte para grupos de puntos de ruta
|
||||||
\n
|
\n
|
||||||
\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto
|
\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto
|
||||||
\n
|
\n
|
||||||
|
@ -2824,7 +2824,7 @@ Lon %2$s</string>
|
||||||
<string name="will_open_tomorrow_at">Abre mañana a las</string>
|
<string name="will_open_tomorrow_at">Abre mañana a las</string>
|
||||||
<string name="rendering_attr_hidePOILabels_name">Etiquetas de PDI</string>
|
<string name="rendering_attr_hidePOILabels_name">Etiquetas de PDI</string>
|
||||||
|
|
||||||
<string name="day_off_label">cerrado (día libre)</string>
|
<string name="day_off_label">cerrado</string>
|
||||||
<string name="winter_and_ski_renderer">Invierno y esquí</string>
|
<string name="winter_and_ski_renderer">Invierno y esquí</string>
|
||||||
<string name="touring_view_renderer">Vista turística</string>
|
<string name="touring_view_renderer">Vista turística</string>
|
||||||
<string name="nautical_renderer">Náutico</string>
|
<string name="nautical_renderer">Náutico</string>
|
||||||
|
@ -2894,7 +2894,7 @@ Lon %2$s</string>
|
||||||
<string name="shared_string_do">Sí</string>
|
<string name="shared_string_do">Sí</string>
|
||||||
<string name="shared_string_only_with_wifi">Sólo con Wi-Fi</string>
|
<string name="shared_string_only_with_wifi">Sólo con Wi-Fi</string>
|
||||||
<string name="wikivoyage_download_pics">Descargar imágenes</string>
|
<string name="wikivoyage_download_pics">Descargar imágenes</string>
|
||||||
<string name="wikivoyage_download_pics_descr">Las imágenes de los artículos pueden descargarse para su uso sin conexión.
|
<string name="wikivoyage_download_pics_descr">Las imágenes del artículo pueden descargarse para su uso sin conexión.
|
||||||
\nSiempre disponible en «Explorar» → «Opciones».</string>
|
\nSiempre disponible en «Explorar» → «Opciones».</string>
|
||||||
<string name="shared_string_wifi_only">Sólo con Wi-Fi</string>
|
<string name="shared_string_wifi_only">Sólo con Wi-Fi</string>
|
||||||
<string name="select_travel_book">Marcar un libro de viaje</string>
|
<string name="select_travel_book">Marcar un libro de viaje</string>
|
||||||
|
|
|
@ -78,7 +78,7 @@ Lon %2$s</string>
|
||||||
<string name="shared_string_help">Ayuda</string>
|
<string name="shared_string_help">Ayuda</string>
|
||||||
<string name="shared_string_settings">Ajustes</string>
|
<string name="shared_string_settings">Ajustes</string>
|
||||||
<string name="shared_string_history">Historial</string>
|
<string name="shared_string_history">Historial</string>
|
||||||
<string name="shared_string_select_on_map">Elegir en el mapa</string>
|
<string name="shared_string_select_on_map">Marcar en el mapa</string>
|
||||||
<string name="shared_string_select_all">Marcar todo</string>
|
<string name="shared_string_select_all">Marcar todo</string>
|
||||||
<string name="shared_string_deselect">Desmarcar</string>
|
<string name="shared_string_deselect">Desmarcar</string>
|
||||||
<string name="shared_string_deselect_all">Desmarcar todo</string>
|
<string name="shared_string_deselect_all">Desmarcar todo</string>
|
||||||
|
@ -219,11 +219,11 @@ Lon %2$s</string>
|
||||||
<string name="traffic_warning">Aviso de tráfico</string>
|
<string name="traffic_warning">Aviso de tráfico</string>
|
||||||
<string name="speak_favorites">Favoritos cercanos</string>
|
<string name="speak_favorites">Favoritos cercanos</string>
|
||||||
<string name="speak_poi">PDI cercanos</string>
|
<string name="speak_poi">PDI cercanos</string>
|
||||||
<string name="way_alarms">Avisos de tráfico</string>
|
<string name="way_alarms">Advertencias de tráfico</string>
|
||||||
<string name="stop_navigation_service">Parar</string>
|
<string name="stop_navigation_service">Parar</string>
|
||||||
<string name="confirm_every_run">Preguntar siempre</string>
|
<string name="confirm_every_run">Preguntar siempre</string>
|
||||||
<string name="enable_sleep_mode">Activar modo reposo del GPS</string>
|
<string name="enable_sleep_mode">Activar modo reposo del GPS</string>
|
||||||
<string name="save_current_track_descr">Guardar ahora la traza actual como un archivo GPX.</string>
|
<string name="save_current_track_descr">Guarda la traza actual como archivo GPX ahora.</string>
|
||||||
<string name="save_current_track">Guardar la traza actual</string>
|
<string name="save_current_track">Guardar la traza actual</string>
|
||||||
<string name="save_track_interval_globally">Intervalo de registro</string>
|
<string name="save_track_interval_globally">Intervalo de registro</string>
|
||||||
<string name="voice_provider">Indicaciones por voz</string>
|
<string name="voice_provider">Indicaciones por voz</string>
|
||||||
|
@ -538,7 +538,7 @@ Lon %2$s</string>
|
||||||
<string name="map_preferred_locale">Idioma preferido del mapa</string>
|
<string name="map_preferred_locale">Idioma preferido del mapa</string>
|
||||||
<string name="forward">Siguiente</string>
|
<string name="forward">Siguiente</string>
|
||||||
<string name="home">Panel de control</string>
|
<string name="home">Panel de control</string>
|
||||||
<string name="live_monitoring_m_descr">Envía los datos de rastreo a un servicio web específico, si la grabación GPX está activada.</string>
|
<string name="live_monitoring_m_descr">Envía los datos de seguimiento a un servicio web específico, si la grabación GPX está activada.</string>
|
||||||
<string name="live_monitoring_m">Rastreo en línea (requiere GPX)</string>
|
<string name="live_monitoring_m">Rastreo en línea (requiere GPX)</string>
|
||||||
<string name="live_monitoring_start">Iniciar rastreo en línea</string>
|
<string name="live_monitoring_start">Iniciar rastreo en línea</string>
|
||||||
<string name="live_monitoring_stop">Parar rastreo en línea</string>
|
<string name="live_monitoring_stop">Parar rastreo en línea</string>
|
||||||
|
@ -641,7 +641,7 @@ Lon %2$s</string>
|
||||||
<string name="edit_tilesource_url_to_load">URL</string>
|
<string name="edit_tilesource_url_to_load">URL</string>
|
||||||
<string name="edit_tilesource_choose_existing">Elegir existente…</string>
|
<string name="edit_tilesource_choose_existing">Elegir existente…</string>
|
||||||
<string name="maps_define_edit">Definir/Editar…</string>
|
<string name="maps_define_edit">Definir/Editar…</string>
|
||||||
<string name="map_widget_fps_info">Info de depuración FPS</string>
|
<string name="map_widget_fps_info">Información de FPS</string>
|
||||||
<string name="driving_region_descr">Región de conducción: EEUU, Europa, Reino Unido, Asia u otras.</string>
|
<string name="driving_region_descr">Región de conducción: EEUU, Europa, Reino Unido, Asia u otras.</string>
|
||||||
<string name="driving_region">Región de conducción</string>
|
<string name="driving_region">Región de conducción</string>
|
||||||
<string name="driving_region_japan">Japón</string>
|
<string name="driving_region_japan">Japón</string>
|
||||||
|
@ -650,7 +650,7 @@ Lon %2$s</string>
|
||||||
<string name="driving_region_europe_asia">Europa, Asia, Latinoamérica y similares</string>
|
<string name="driving_region_europe_asia">Europa, Asia, Latinoamérica y similares</string>
|
||||||
<string name="driving_region_uk">Reino Unido, India y similares</string>
|
<string name="driving_region_uk">Reino Unido, India y similares</string>
|
||||||
<string name="speak_title">Anunciar…</string>
|
<string name="speak_title">Anunciar…</string>
|
||||||
<string name="speak_descr">Configura el anuncio de nombres de calles, avisos de tráfico (paradas, lomadas), radares y límites de velocidad.</string>
|
<string name="speak_descr">Configura el anuncio de nombres de calles, advertencias de tráfico (paradas, lomadas), radares y límites de velocidad.</string>
|
||||||
<string name="speak_street_names">Nombres de calles (TTS)</string>
|
<string name="speak_street_names">Nombres de calles (TTS)</string>
|
||||||
<string name="speak_speed_limit">Límite de velocidad</string>
|
<string name="speak_speed_limit">Límite de velocidad</string>
|
||||||
<string name="speak_cameras">Radares de velocidad</string>
|
<string name="speak_cameras">Radares de velocidad</string>
|
||||||
|
@ -841,7 +841,7 @@ Lon %2$s</string>
|
||||||
<string name="poi_filter_for_tourists">Para turistas</string>
|
<string name="poi_filter_for_tourists">Para turistas</string>
|
||||||
<string name="poi_filter_fuel">Combustible</string>
|
<string name="poi_filter_fuel">Combustible</string>
|
||||||
<string name="show_warnings_title">Mostrar alertas…</string>
|
<string name="show_warnings_title">Mostrar alertas…</string>
|
||||||
<string name="show_warnings_descr">Configura avisos de tráfico (límites de velocidad, paradas forzosas, lomadas, túneles), radares de velocidad, e información de carriles.</string>
|
<string name="show_warnings_descr">Configura advertencias de tráfico (límites de velocidad, paradas forzosas, lomadas, túneles), radares de velocidad, e información de carriles.</string>
|
||||||
<string name="use_compass_navigation_descr">Usa la brújula cuando no se detecta la dirección.</string>
|
<string name="use_compass_navigation_descr">Usa la brújula cuando no se detecta la dirección.</string>
|
||||||
<string name="use_compass_navigation">Usar brújula</string>
|
<string name="use_compass_navigation">Usar brújula</string>
|
||||||
<string name="avoid_motorway">Evitar autopistas</string>
|
<string name="avoid_motorway">Evitar autopistas</string>
|
||||||
|
@ -910,7 +910,7 @@ Lon %2$s</string>
|
||||||
<string name="avoid_unpaved">Evitar caminos sin pavimentar</string>
|
<string name="avoid_unpaved">Evitar caminos sin pavimentar</string>
|
||||||
<string name="avoid_ferries">Evitar ferris</string>
|
<string name="avoid_ferries">Evitar ferris</string>
|
||||||
<string name="avoid_in_routing_title">Evitar…</string>
|
<string name="avoid_in_routing_title">Evitar…</string>
|
||||||
<string name="avoid_in_routing_descr">Evita caminos con peajes, sin pavimentar, transbordadores y otros.</string>
|
<string name="avoid_in_routing_descr">Evita caminos con peajes, sin pavimentar, transbordadores o ferris y otros.</string>
|
||||||
<string name="map_widget_fluorescent">Rutas fluorescentes</string>
|
<string name="map_widget_fluorescent">Rutas fluorescentes</string>
|
||||||
<string name="map_widget_show_ruler">Escala</string>
|
<string name="map_widget_show_ruler">Escala</string>
|
||||||
<string name="map_widget_view_direction">Dirección de visualización</string>
|
<string name="map_widget_view_direction">Dirección de visualización</string>
|
||||||
|
@ -1077,7 +1077,7 @@ Lon %2$s</string>
|
||||||
<string name="direction_style_sidewise">Según el lado (8 sectores)</string>
|
<string name="direction_style_sidewise">Según el lado (8 sectores)</string>
|
||||||
<string name="direction_style_clockwise">Según el reloj (12 sectores)</string>
|
<string name="direction_style_clockwise">Según el reloj (12 sectores)</string>
|
||||||
<string name="settings_direction_style">Estilo de dirección</string>
|
<string name="settings_direction_style">Estilo de dirección</string>
|
||||||
<string name="settings_direction_style_descr">Elige el estilo para expresar direcciones relativas en movimiento.</string>
|
<string name="settings_direction_style_descr">Elige el estilo para expresar direcciones relativas al moverse.</string>
|
||||||
<string name="auto_announce_on">Iniciar anuncios automáticos</string>
|
<string name="auto_announce_on">Iniciar anuncios automáticos</string>
|
||||||
<string name="auto_announce_off">Parar anuncios automáticos</string>
|
<string name="auto_announce_off">Parar anuncios automáticos</string>
|
||||||
<string name="i_am_here">Estoy aquí</string>
|
<string name="i_am_here">Estoy aquí</string>
|
||||||
|
@ -1327,7 +1327,7 @@ Lon %2$s</string>
|
||||||
<string name="m">m</string>
|
<string name="m">m</string>
|
||||||
<string name="old_map_index_is_not_supported">Formato de datos «{0}» del mapa, obsoleto e incompatible</string>
|
<string name="old_map_index_is_not_supported">Formato de datos «{0}» del mapa, obsoleto e incompatible</string>
|
||||||
<string name="poi_filter_closest_poi">PDI más cercanos</string>
|
<string name="poi_filter_closest_poi">PDI más cercanos</string>
|
||||||
<string name="poi_filter_custom_filter">Filtro propio</string>
|
<string name="poi_filter_custom_filter">Filtro personal</string>
|
||||||
<string name="poi_filter_namefinder">NameFinder en línea</string>
|
<string name="poi_filter_namefinder">NameFinder en línea</string>
|
||||||
<string name="reading_cached_tiles">Leyendo teselas guardadas…</string>
|
<string name="reading_cached_tiles">Leyendo teselas guardadas…</string>
|
||||||
<string name="version_index_is_big_for_memory">La versión «{0}» de índices no cabe en memoria</string>
|
<string name="version_index_is_big_for_memory">La versión «{0}» de índices no cabe en memoria</string>
|
||||||
|
@ -1341,8 +1341,11 @@ Lon %2$s</string>
|
||||||
<string name="osmand_net_previously_installed">Todos los datos sin conexión en la versión vieja de OsmAnd son compatibles con la nueva versión, pero los puntos de Favoritos deben exportarse desde la versión vieja y luego, importarse en la nueva.</string>
|
<string name="osmand_net_previously_installed">Todos los datos sin conexión en la versión vieja de OsmAnd son compatibles con la nueva versión, pero los puntos de Favoritos deben exportarse desde la versión vieja y luego, importarse en la nueva.</string>
|
||||||
<string name="build_installed">Compilación {0} instalada ({1}).</string>
|
<string name="build_installed">Compilación {0} instalada ({1}).</string>
|
||||||
<string name="downloading_build">Descargando compilación…</string>
|
<string name="downloading_build">Descargando compilación…</string>
|
||||||
<string name="install_selected_build">¿Instalar OsmAnd - {0} de {1} {2} MB ?</string>
|
<string name="install_selected_build">¿Instalar OsmAnd?
|
||||||
<string name="loading_builds_failed">Fallo al recuperar la lista de compilaciones de OsmAnd</string>
|
\nVersión: {0}
|
||||||
|
\nFecha: {1}
|
||||||
|
\nTamaño: {2} MB</string>
|
||||||
|
<string name="loading_builds_failed">Error al recuperar la lista de compilaciones de OsmAnd</string>
|
||||||
<string name="loading_builds">Cargando compilaciones de OsmAnd…</string>
|
<string name="loading_builds">Cargando compilaciones de OsmAnd…</string>
|
||||||
<string name="select_build_to_install">Instalar una compilación de OsmAnd</string>
|
<string name="select_build_to_install">Instalar una compilación de OsmAnd</string>
|
||||||
<string name="gps_status_app_not_found">La aplicación «GPS Status» no está instalada. ¿Buscar en la tienda de aplicaciones?</string>
|
<string name="gps_status_app_not_found">La aplicación «GPS Status» no está instalada. ¿Buscar en la tienda de aplicaciones?</string>
|
||||||
|
@ -1670,7 +1673,7 @@ Lon %2$s</string>
|
||||||
<string name="av_camera_pic_size_descr">Tamaño interno de la fotografía.</string>
|
<string name="av_camera_pic_size_descr">Tamaño interno de la fotografía.</string>
|
||||||
<string name="navigation_intent_invalid">Formato inválido: %s</string>
|
<string name="navigation_intent_invalid">Formato inválido: %s</string>
|
||||||
<string name="plugin_description_title">Descripción</string>
|
<string name="plugin_description_title">Descripción</string>
|
||||||
<string name="plugin_install_needs_network">Es necesaria una conexión a Internet para instalar este complemento.</string>
|
<string name="plugin_install_needs_network">Debes conectarte a Internet para instalar este complemento.</string>
|
||||||
<string name="get_plugin">Obtener</string>
|
<string name="get_plugin">Obtener</string>
|
||||||
|
|
||||||
<string name="routing_attr_avoid_borders_description">Evita cruzar las fronteras nacionales</string>
|
<string name="routing_attr_avoid_borders_description">Evita cruzar las fronteras nacionales</string>
|
||||||
|
@ -2036,7 +2039,7 @@ Lon %2$s</string>
|
||||||
<string name="osm_editors_ranking">Clasificación de editores OSM</string>
|
<string name="osm_editors_ranking">Clasificación de editores OSM</string>
|
||||||
<string name="osm_live_subscription">Suscripción de OsmAnd Live</string>
|
<string name="osm_live_subscription">Suscripción de OsmAnd Live</string>
|
||||||
<string name="osm_live_subscribe_btn">Suscribirse</string>
|
<string name="osm_live_subscribe_btn">Suscribirse</string>
|
||||||
<string name="osm_live_email_desc">Necesario para proporcionarte información sobre las contribuciones.</string>
|
<string name="osm_live_email_desc">Necesario para proporcionar información sobre las contribuciones.</string>
|
||||||
<string name="osm_live_user_public_name">Nombre público</string>
|
<string name="osm_live_user_public_name">Nombre público</string>
|
||||||
<string name="osm_live_hide_user_name">Ocultar mi nombre en los informes</string>
|
<string name="osm_live_hide_user_name">Ocultar mi nombre en los informes</string>
|
||||||
<string name="osm_live_support_region">Región soportada</string>
|
<string name="osm_live_support_region">Región soportada</string>
|
||||||
|
@ -2170,7 +2173,7 @@ Lon %2$s</string>
|
||||||
<string name="no_inet_connection_desc_map">Necesario para descargar mapas.</string>
|
<string name="no_inet_connection_desc_map">Necesario para descargar mapas.</string>
|
||||||
<string name="search_location">Buscando la ubicación…</string>
|
<string name="search_location">Buscando la ubicación…</string>
|
||||||
<string name="storage_free_space">Espacio libre</string>
|
<string name="storage_free_space">Espacio libre</string>
|
||||||
<string name="storage_place_description">Almacenamiento de datos OsmAnd (para mapas, archivos GPX, etc.): %1$s.</string>
|
<string name="storage_place_description">Almacenamiento de datos de OsmAnd (para mapas, archivos GPX, etc.): %1$s.</string>
|
||||||
<string name="give_permission">Conceder permiso</string>
|
<string name="give_permission">Conceder permiso</string>
|
||||||
<string name="allow_access_location">Permitir el acceso a la ubicación</string>
|
<string name="allow_access_location">Permitir el acceso a la ubicación</string>
|
||||||
<string name="first_usage_greeting">Obtén direcciones y descubre lugares nuevos sin una conexión a Internet</string>
|
<string name="first_usage_greeting">Obtén direcciones y descubre lugares nuevos sin una conexión a Internet</string>
|
||||||
|
@ -2352,7 +2355,7 @@ Lon %2$s</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="routing_attr_height_obstacles_name">Usar datos de elevación</string>
|
<string name="routing_attr_height_obstacles_name">Usar datos de elevación</string>
|
||||||
<string name="routing_attr_height_obstacles_description">Factor de elevación del terreno (según datos de SRTM, ASTER y EU-DEM).</string>
|
<string name="routing_attr_height_obstacles_description">Incluye como factor, la elevación del terreno (según datos de SRTM, ASTER y EU-DEM).</string>
|
||||||
|
|
||||||
<string name="routing_attr_driving_style_name">Estilo de conducción</string>
|
<string name="routing_attr_driving_style_name">Estilo de conducción</string>
|
||||||
|
|
||||||
|
@ -2489,7 +2492,8 @@ Lon %2$s</string>
|
||||||
\n • Añade PDI y súbelos directamente a OSM (o más tarde, si no estás conectado)
|
\n • Añade PDI y súbelos directamente a OSM (o más tarde, si no estás conectado)
|
||||||
\n • (Opcional) Grabación del viaje en modo reposo (mientras el dispositivo está bloqueado)
|
\n • (Opcional) Grabación del viaje en modo reposo (mientras el dispositivo está bloqueado)
|
||||||
\n
|
\n
|
||||||
\n OsmAnd es un software de código abierto, activamente desarrollado. Cualquiera puede contribuir con la aplicación informando sobre errores, mejorando las traducciones o desarrollando nuevas funciones. Además, el proyecto también depende de contribuciones financieras para desarrollar y probar nuevas funcionalidades. "</string>
|
\n OsmAnd es un software de código abierto, activamente desarrollado. Cualquiera puede contribuir con la aplicación informando sobre errores, mejorando las traducciones o desarrollando nuevas funciones. Además, el proyecto también depende de contribuciones financieras para desarrollar y probar nuevas funcionalidades.
|
||||||
|
\n"</string>
|
||||||
<string name="osmand_plus_extended_description_part8">Cobertura y calidad aproximada del mapa:
|
<string name="osmand_plus_extended_description_part8">Cobertura y calidad aproximada del mapa:
|
||||||
\n • Europa Occidental: ****
|
\n • Europa Occidental: ****
|
||||||
\n • Europa Oriental: ***
|
\n • Europa Oriental: ***
|
||||||
|
@ -2757,7 +2761,7 @@ Lon %2$s</string>
|
||||||
<string name="shared_string_gpx_waypoints">Puntos de referencia de la traza</string>
|
<string name="shared_string_gpx_waypoints">Puntos de referencia de la traza</string>
|
||||||
<string name="favourites_group">Categoría de favoritos</string>
|
<string name="favourites_group">Categoría de favoritos</string>
|
||||||
<string name="add_group">Añadir un grupo</string>
|
<string name="add_group">Añadir un grupo</string>
|
||||||
<string name="add_group_descr">Importar grupos de Favoritos o puntos de referencia GPX.</string>
|
<string name="add_group_descr">Importar grupos desde Favoritos o puntos de referencia GPX.</string>
|
||||||
<string name="empty_state_markers_active">¡Crea marcadores del mapa!</string>
|
<string name="empty_state_markers_active">¡Crea marcadores del mapa!</string>
|
||||||
<string name="empty_state_markers_active_desc">Pulsa en «Lugares» y luego pulsa la bandera del marcador.</string>
|
<string name="empty_state_markers_active_desc">Pulsa en «Lugares» y luego pulsa la bandera del marcador.</string>
|
||||||
<string name="empty_state_markers_groups">Importar grupos</string>
|
<string name="empty_state_markers_groups">Importar grupos</string>
|
||||||
|
@ -2786,11 +2790,11 @@ Lon %2$s</string>
|
||||||
<string name="by_date">Por fecha</string>
|
<string name="by_date">Por fecha</string>
|
||||||
<string name="by_type">Por tipo</string>
|
<string name="by_type">Por tipo</string>
|
||||||
<string name="modify_the_search_query">Modificar la consulta de búsqueda.</string>
|
<string name="modify_the_search_query">Modificar la consulta de búsqueda.</string>
|
||||||
<string name="release_3_0">• Nuevo: Soporte de guías turísticas globales sin conexión a Internet. Las ubicaciones de referencias, están enlazadas al mapa. Datos iniciales de Wikiviajes
|
<string name="release_3_0">• Nuevo: Soporte para guías turísticas globales sin conexión a Internet. Las ubicaciones de referencia, están vinculadas al mapa. Datos iniciales de Wikiviajes
|
||||||
\n
|
\n
|
||||||
\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes
|
\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes
|
||||||
\n
|
\n
|
||||||
\n • Interfaz de apertura de traza: Soporte para los grupos de puntos de ruta
|
\n • Interfaz de usuario de Open Tracks: Soporte para grupos de puntos de ruta
|
||||||
\n
|
\n
|
||||||
\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto
|
\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto
|
||||||
\n
|
\n
|
||||||
|
@ -2821,7 +2825,7 @@ Lon %2$s</string>
|
||||||
<string name="will_open_tomorrow_at">Abre mañana a las</string>
|
<string name="will_open_tomorrow_at">Abre mañana a las</string>
|
||||||
<string name="rendering_attr_hidePOILabels_name">Etiquetas de PDI</string>
|
<string name="rendering_attr_hidePOILabels_name">Etiquetas de PDI</string>
|
||||||
|
|
||||||
<string name="day_off_label">cerrado (día libre)</string>
|
<string name="day_off_label">cerrado</string>
|
||||||
<string name="winter_and_ski_renderer">Invierno y esquí</string>
|
<string name="winter_and_ski_renderer">Invierno y esquí</string>
|
||||||
<string name="touring_view_renderer">Vista turística</string>
|
<string name="touring_view_renderer">Vista turística</string>
|
||||||
<string name="nautical_renderer">Náutico</string>
|
<string name="nautical_renderer">Náutico</string>
|
||||||
|
@ -2891,7 +2895,7 @@ Lon %2$s</string>
|
||||||
<string name="shared_string_do">Sí</string>
|
<string name="shared_string_do">Sí</string>
|
||||||
<string name="shared_string_only_with_wifi">Sólo con Wi-Fi</string>
|
<string name="shared_string_only_with_wifi">Sólo con Wi-Fi</string>
|
||||||
<string name="wikivoyage_download_pics">Descargar imágenes</string>
|
<string name="wikivoyage_download_pics">Descargar imágenes</string>
|
||||||
<string name="wikivoyage_download_pics_descr">Las imágenes de los artículos pueden descargarse para su uso sin conexión.
|
<string name="wikivoyage_download_pics_descr">Las imágenes del artículo pueden descargarse para su uso sin conexión.
|
||||||
\nSiempre disponible en «Explorar» → «Opciones».</string>
|
\nSiempre disponible en «Explorar» → «Opciones».</string>
|
||||||
<string name="shared_string_wifi_only">Sólo con Wi-Fi</string>
|
<string name="shared_string_wifi_only">Sólo con Wi-Fi</string>
|
||||||
<string name="select_travel_book">Marcar un libro de viaje</string>
|
<string name="select_travel_book">Marcar un libro de viaje</string>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1744,7 +1744,7 @@
|
||||||
<string name="traffic_warning_pedestrian">گذرگاه پیاده</string>
|
<string name="traffic_warning_pedestrian">گذرگاه پیاده</string>
|
||||||
<string name="show_railway_warnings">تقاطعهای ریلی</string>
|
<string name="show_railway_warnings">تقاطعهای ریلی</string>
|
||||||
<string name="show_pedestrian_warnings">گذرگاههای پیاده</string>
|
<string name="show_pedestrian_warnings">گذرگاههای پیاده</string>
|
||||||
<string name="routing_attr_no_new_routing_name">استفادهنکردن از قوائد مسیریابی نسخهٔ ۱٫۹</string>
|
<string name="routing_attr_no_new_routing_name">استفادهنکردن از قواعد مسیریابی نسخهٔ ۱٫۹</string>
|
||||||
<string name="rendering_attr_transportStops_name">ایستگاههای حملونقل</string>
|
<string name="rendering_attr_transportStops_name">ایستگاههای حملونقل</string>
|
||||||
<string name="navigate_point_northing">بهطرف شمال</string>
|
<string name="navigate_point_northing">بهطرف شمال</string>
|
||||||
<string name="navigate_point_easting">بهطرف شرق</string>
|
<string name="navigate_point_easting">بهطرف شرق</string>
|
||||||
|
|
|
@ -2444,4 +2444,5 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
|
||||||
<string name="quick_action_navigation_voice_descr">Näpäyttämällä tätä toimintonäppäintä otat tai poistat ääniohjauksen käytöstä navigoinnin aikana.</string>
|
<string name="quick_action_navigation_voice_descr">Näpäyttämällä tätä toimintonäppäintä otat tai poistat ääniohjauksen käytöstä navigoinnin aikana.</string>
|
||||||
<string name="open_in_browser_wiki_description">Näytä artikkeli selaimessa.</string>
|
<string name="open_in_browser_wiki_description">Näytä artikkeli selaimessa.</string>
|
||||||
<string name="how_to_open_wiki_title">Kuinka avata Wikipedia artikkelit?</string>
|
<string name="how_to_open_wiki_title">Kuinka avata Wikipedia artikkelit?</string>
|
||||||
</resources>
|
<string name="thank_you_for_feedback">Kiitos palautteesta</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1237,7 +1237,7 @@
|
||||||
|
|
||||||
<string name="poi_smoking_outside">À l\'extérieur uniquement</string>
|
<string name="poi_smoking_outside">À l\'extérieur uniquement</string>
|
||||||
<string name="poi_services">Aire de services</string>
|
<string name="poi_services">Aire de services</string>
|
||||||
<string name="poi_mini_roundabout">Mini rond-point</string>
|
<string name="poi_mini_roundabout">Mini giratoire</string>
|
||||||
<string name="poi_level">Niveau</string>
|
<string name="poi_level">Niveau</string>
|
||||||
<string name="poi_garden_type_residential">Type de jardin : résidentiel</string>
|
<string name="poi_garden_type_residential">Type de jardin : résidentiel</string>
|
||||||
<string name="poi_garden_type_community">Type de jardin : communautaire</string>
|
<string name="poi_garden_type_community">Type de jardin : communautaire</string>
|
||||||
|
|
|
@ -784,7 +784,7 @@
|
||||||
<string name="transport_search_desc">Recherche de transports publics</string>
|
<string name="transport_search_desc">Recherche de transports publics</string>
|
||||||
<string name="favourites_search_desc">Recherche dans les favoris</string>
|
<string name="favourites_search_desc">Recherche dans les favoris</string>
|
||||||
|
|
||||||
<string name="route_roundabout">Rond-point : prenez la sortie %1$d puis continuez</string>
|
<string name="route_roundabout">Giratoire : prenez la sortie %1$d puis continuez</string>
|
||||||
<string name="route_kl">Serrez à gauche et continuez</string>
|
<string name="route_kl">Serrez à gauche et continuez</string>
|
||||||
<string name="route_kr">Serrez à droite et continuez</string>
|
<string name="route_kr">Serrez à droite et continuez</string>
|
||||||
<string name="rendering_attr_noPolygons_description">Rendre invisibles les surfaces représentant des éléments de terrain.</string>
|
<string name="rendering_attr_noPolygons_description">Rendre invisibles les surfaces représentant des éléments de terrain.</string>
|
||||||
|
|
|
@ -2072,4 +2072,6 @@
|
||||||
<string name="poi_shelter_type_picnic_shelter">פיקניק</string>
|
<string name="poi_shelter_type_picnic_shelter">פיקניק</string>
|
||||||
<string name="poi_shelter_type_weather_shelter">מזג אוויר</string>
|
<string name="poi_shelter_type_weather_shelter">מזג אוויר</string>
|
||||||
<string name="poi_shelter_type_lean_to">סככה פתוחה</string>
|
<string name="poi_shelter_type_lean_to">סככה פתוחה</string>
|
||||||
|
<string name="poi_shelter_type_basic_hut">בקתה בסיסית</string>
|
||||||
|
<string name="poi_shelter_type_building">בניין</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<resources>
|
||||||
<string name="starting_point_too_far">Pradžios taškas yra per toli nuo artimiausio kelio.</string>
|
<string name="starting_point_too_far">Pradžios taškas yra per toli nuo artimiausio kelio.</string>
|
||||||
<string name="shared_location">Bendrinta vieta</string>
|
<string name="shared_location">Bendrinta vieta</string>
|
||||||
<string name="osmand_parking_warning">Dėmesio</string>
|
<string name="osmand_parking_warning">Dėmesio</string>
|
||||||
|
@ -2516,7 +2517,7 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.</string>
|
||||||
<string name="private_access_routing_req">Jūsų kelionės tikslas yra privačioje teritorijoje. Ar norite leisti keliavimą privačiais keliais šioje kelionėje?</string>
|
<string name="private_access_routing_req">Jūsų kelionės tikslas yra privačioje teritorijoje. Ar norite leisti keliavimą privačiais keliais šioje kelionėje?</string>
|
||||||
<string name="quick_action_showhide_osmbugs_descr">Paspaudus aktyvinimo mygtuką OSM užrašai bus parodomi ant žemėlapio arba paslepiami.</string>
|
<string name="quick_action_showhide_osmbugs_descr">Paspaudus aktyvinimo mygtuką OSM užrašai bus parodomi ant žemėlapio arba paslepiami.</string>
|
||||||
<string name="hillshade_menu_download_descr">Norėdami pamatyti kalnų reljefo šešėlių žemėlapį turite parsisiųsti kalnų šešėlių sluoksnio žemėlapį šiam regionui.</string>
|
<string name="hillshade_menu_download_descr">Norėdami pamatyti kalnų reljefo šešėlių žemėlapį turite parsisiųsti kalnų šešėlių sluoksnio žemėlapį šiam regionui.</string>
|
||||||
<string name="hillshade_purchase_header">Norėdami pamatyti kalnų šešėlius ant žemėlapio turėsite nusipirkti ir įdiegti Kontūrų Linijų įskiepį</string>
|
<string name="hillshade_purchase_header">Norėdami pamatyti kalnų šešėlius žemėlapyje, turte nusipirkti ir įdiegti \"Kontūrų Linijų\" įskiepį</string>
|
||||||
<string name="hide_from_zoom_level">Paslėpti mąstelį</string>
|
<string name="hide_from_zoom_level">Paslėpti mąstelį</string>
|
||||||
<string name="store_tracks_in_monthly_directories">Išsaugoti įrašytas keliones mėnesiniuose segtuvuose</string>
|
<string name="store_tracks_in_monthly_directories">Išsaugoti įrašytas keliones mėnesiniuose segtuvuose</string>
|
||||||
<string name="store_tracks_in_monthly_directories_descrp">Išsaugoti įrašytas keliones mėnesiniuose poaplankiuose (pvz. 2018-01).</string>
|
<string name="store_tracks_in_monthly_directories_descrp">Išsaugoti įrašytas keliones mėnesiniuose poaplankiuose (pvz. 2018-01).</string>
|
||||||
|
@ -2702,7 +2703,7 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.</string>
|
||||||
<string name="shared_string_edited">Redaguota</string>
|
<string name="shared_string_edited">Redaguota</string>
|
||||||
<string name="shared_string_added">Pridėta</string>
|
<string name="shared_string_added">Pridėta</string>
|
||||||
<string name="marker_activated">Žymeklis %s aktyvuotas.</string>
|
<string name="marker_activated">Žymeklis %s aktyvuotas.</string>
|
||||||
<string name="one_tap_active">Aktyvavimas vienu lietimu</string>
|
<string name="one_tap_active">Aktyvavimas \"vienu lietimu\"</string>
|
||||||
<string name="empty_state_av_notes">Rašykite pastabas!</string>
|
<string name="empty_state_av_notes">Rašykite pastabas!</string>
|
||||||
<string name="by_date">Pagal datą</string>
|
<string name="by_date">Pagal datą</string>
|
||||||
<string name="by_type">Pagal tipą</string>
|
<string name="by_type">Pagal tipą</string>
|
||||||
|
@ -2812,8 +2813,8 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.</string>
|
||||||
<string name="get_unlimited_access">Gauti neribotą prieigą</string>
|
<string name="get_unlimited_access">Gauti neribotą prieigą</string>
|
||||||
<string name="welcome_to_open_beta">Sveiki atvykę į atvirą beta testavimą</string>
|
<string name="welcome_to_open_beta">Sveiki atvykę į atvirą beta testavimą</string>
|
||||||
<string name="wikivoyage_travel_guide">Kelionių vadovas</string>
|
<string name="wikivoyage_travel_guide">Kelionių vadovas</string>
|
||||||
<string name="monthly_map_updates">Žemėlapis atnaujinamas: <b>Kas mėnesį</b></string>
|
<string name="monthly_map_updates">Žemėlapis atnaujinamas: <b>kas mėnesį</b></string>
|
||||||
<string name="daily_map_updates">Žemėlapis atnaujinamas: <b>Kas valandą</b></string>
|
<string name="daily_map_updates">Žemėlapis atnaujinamas: <b>kas valandą</b></string>
|
||||||
<string name="in_app_purchase_desc">Vienkartinis mokestis</string>
|
<string name="in_app_purchase_desc">Vienkartinis mokestis</string>
|
||||||
<string name="purchase_unlim_title">Pirkti - %1$s</string>
|
<string name="purchase_unlim_title">Pirkti - %1$s</string>
|
||||||
<string name="purchase_subscription_title">Prenumeruoti - %1$s</string>
|
<string name="purchase_subscription_title">Prenumeruoti - %1$s</string>
|
||||||
|
@ -2879,4 +2880,15 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.</string>
|
||||||
<string name="show_full_description">Rodyti visą aprašymą</string>
|
<string name="show_full_description">Rodyti visą aprašymą</string>
|
||||||
<string name="read_wikipedia_offline">Skaityti Wikipedia atjungus internetą</string>
|
<string name="read_wikipedia_offline">Skaityti Wikipedia atjungus internetą</string>
|
||||||
<string name="maps_you_need">Jums reikalingi žemėlapiai</string>
|
<string name="maps_you_need">Jums reikalingi žemėlapiai</string>
|
||||||
|
<string name="increase_search_radius_to">Padidinti paieškos spindulį iki %1$s</string>
|
||||||
|
<string name="send_search_query">Siųsti paieškos užklausą?</string>
|
||||||
|
<string name="shared_string_world">Pasaulis</string>
|
||||||
|
<string name="coord_input_edit_point">Redaguoti tašką</string>
|
||||||
|
<string name="coord_input_add_point">Priddėti tašką</string>
|
||||||
|
<string name="open_wikipedia_link_online_description">Nuoroda bus atverta naršyklėje.</string>
|
||||||
|
<string name="start_editing_card_image_text">Atviras pasaulinis kelionių vadovas, kurie kiekvienas gali redaguoti.</string>
|
||||||
|
<string name="access_intermediate_arrival_time">Tarpinis atvykimo laikas</string>
|
||||||
|
<string name="map_widget_intermediate_time">Tarpinis laikas</string>
|
||||||
|
<string name="empty_state_my_tracks">Pridėti GPX failus</string>
|
||||||
|
<string name="download_wikipedia_label">Atsisiųsti Vikipedijos duomenys</string>
|
||||||
</resources>
|
</resources>
|
|
@ -3077,4 +3077,22 @@ voor Gebied: %1$s x %2$s</string>
|
||||||
<string name="send_search_query">"Zoekterm versturen? "</string>
|
<string name="send_search_query">"Zoekterm versturen? "</string>
|
||||||
<string name="shared_string_world">Wereld</string>
|
<string name="shared_string_world">Wereld</string>
|
||||||
<string name="shared_string_gpx_files">GPX bestanden</string>
|
<string name="shared_string_gpx_files">GPX bestanden</string>
|
||||||
</resources>
|
<string name="commiting_way">"Weg vastleggen.. ik "</string>
|
||||||
|
<string name="coord_input_save_as_track">Als GPX-track opslaan</string>
|
||||||
|
<string name="get_osmand_live">"Neem OsmAnd Live en krijg alle mogelijkheden: Dagelijjse kaartupdates en onbeperkte downloads, alle betaalde en gratis plugins, Wikipedia, Wikivoyage en nog meer. "</string>
|
||||||
|
<string name="unirs_render_descr">"Wijziging van de standaard Kaartstijl met mreer constrast voor wandel-en fietspaden. Gebruikt de Mapnik-kleuren. "</string>
|
||||||
|
<string name="waypoints_removed_from_map_markers">"Wegpunten verwijders uit de Markeervlaggetjes "</string>
|
||||||
|
<string name="select_waypoints_category_description">"Voeg alle wegpunten uit de track toe, of kies een categorie. "</string>
|
||||||
|
<string name="one_tap_active_descr">Tik op een Markeervlaggetje om die bovenaan de actieve lijst te zetten, zonder het contextmenu te openen.</string>
|
||||||
|
<string name="one_tap_active">\'Eén tik\' actief</string>
|
||||||
|
<string name="looking_for_tracks_with_waypoints">Tracks met wegpunten zoeken</string>
|
||||||
|
<string name="add_track_to_markers_descr">"Kies een track, om de wegpunten daaruit aan de Markeervlaggetjes toe te voegen."</string>
|
||||||
|
<string name="shared_string_gpx_waypoints">Track routepunten</string>
|
||||||
|
<string name="add_group_descr">"Groepen uit Favorieten of GPX-routepunte. "</string>
|
||||||
|
<string name="empty_state_markers_active_desc">"Tik lang of kort ergens op de kaart en tik op het \'Markeer\'-vlaggetje. "</string>
|
||||||
|
<string name="empty_state_markers_groups_desc">"Importeer een Groep Favorieten of Routepunten als Markeervlaggetjes. "</string>
|
||||||
|
<string name="empty_state_markers_history_desc">Markeervlaggetjes die niet actief zijn, komen in dit scherm.</string>
|
||||||
|
<string name="show_guide_line_descr">"Toon rechte lijnen van je positie nasr de actieve Markeervlaggetjes. "</string>
|
||||||
|
<string name="show_arrows_descr">Toon pijlen richting de actieve Markeervlaggetjes.</string>
|
||||||
|
<string name="waypoints_added_to_map_markers">"Routepunten: toegevoegd aan Markeervlaggetjes "</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2322,7 +2322,7 @@
|
||||||
<string name="poi_site_type_megalith">Megálito</string>
|
<string name="poi_site_type_megalith">Megálito</string>
|
||||||
<string name="poi_site_type_tumulus">Túmulo</string>
|
<string name="poi_site_type_tumulus">Túmulo</string>
|
||||||
<string name="poi_site_type_fortification">Fortificação</string>
|
<string name="poi_site_type_fortification">Fortificação</string>
|
||||||
<string name="poi_site_type_settlement">Povoamento</string>
|
<string name="poi_site_type_settlement">Assentamento</string>
|
||||||
<string name="poi_site_type_city">Cidade</string>
|
<string name="poi_site_type_city">Cidade</string>
|
||||||
<string name="poi_site_type_necropolis">Necrópole</string>
|
<string name="poi_site_type_necropolis">Necrópole</string>
|
||||||
<string name="poi_site_type_petroglyph">Petróglifo</string>
|
<string name="poi_site_type_petroglyph">Petróglifo</string>
|
||||||
|
|
|
@ -2502,7 +2502,7 @@
|
||||||
<string name="this_year">В этом году</string>
|
<string name="this_year">В этом году</string>
|
||||||
<string name="plan_route">План маршрута</string>
|
<string name="plan_route">План маршрута</string>
|
||||||
<string name="coordinate_input">Ввод координат</string>
|
<string name="coordinate_input">Ввод координат</string>
|
||||||
<string name="marker_save_as_track">Сохранить как трек</string>
|
<string name="marker_save_as_track">Сохранить как GPX файл</string>
|
||||||
<string name="move_to_history">Переместить в историю</string>
|
<string name="move_to_history">Переместить в историю</string>
|
||||||
<string name="group_will_be_removed_after_restart">Группа будет выключена при следующем запуске приложения.</string>
|
<string name="group_will_be_removed_after_restart">Группа будет выключена при следующем запуске приложения.</string>
|
||||||
<string name="show_arrows_on_the_map">Показывать стрелки на карте</string>
|
<string name="show_arrows_on_the_map">Показывать стрелки на карте</string>
|
||||||
|
@ -2517,7 +2517,7 @@
|
||||||
<string name="my_location">Мое местоположение</string>
|
<string name="my_location">Мое местоположение</string>
|
||||||
<string name="shared_string_finish">Финиш</string>
|
<string name="shared_string_finish">Финиш</string>
|
||||||
<string name="shared_string_sort">Сортировать</string>
|
<string name="shared_string_sort">Сортировать</string>
|
||||||
<string name="marker_save_as_track_descr">Экспорт маркеров в файл можно задать здесь:</string>
|
<string name="marker_save_as_track_descr">Экспорт маркеров в следующий GPX файл:</string>
|
||||||
<string name="shared_string_markers">Маркеры</string>
|
<string name="shared_string_markers">Маркеры</string>
|
||||||
<string name="osn_modify_dialog_title">Изменить заметку</string>
|
<string name="osn_modify_dialog_title">Изменить заметку</string>
|
||||||
<string name="context_menu_item_modify_note">Изменить заметку OSM</string>
|
<string name="context_menu_item_modify_note">Изменить заметку OSM</string>
|
||||||
|
@ -2590,7 +2590,7 @@
|
||||||
<string name="add_favourites_group_to_markers_descr">Выберите категорию избранных для добавления к маркерам.</string>
|
<string name="add_favourites_group_to_markers_descr">Выберите категорию избранных для добавления к маркерам.</string>
|
||||||
<string name="favourites_group">Категория избранных</string>
|
<string name="favourites_group">Категория избранных</string>
|
||||||
<string name="add_group">Добавить группу</string>
|
<string name="add_group">Добавить группу</string>
|
||||||
<string name="add_group_descr">Импортировать группу из избранных или путевых точек.</string>
|
<string name="add_group_descr">Импортировать группу из избранных или GPX путевых точек.</string>
|
||||||
<string name="empty_state_markers_active">Создайте маркеры карт!</string>
|
<string name="empty_state_markers_active">Создайте маркеры карт!</string>
|
||||||
<string name="empty_state_markers_active_desc">Длинное или короткое нажатие на нужное место, а затем на флажок маркера.</string>
|
<string name="empty_state_markers_active_desc">Длинное или короткое нажатие на нужное место, а затем на флажок маркера.</string>
|
||||||
<string name="empty_state_markers_groups">Импорт групп</string>
|
<string name="empty_state_markers_groups">Импорт групп</string>
|
||||||
|
@ -2611,14 +2611,14 @@
|
||||||
<string name="tap_on_map_to_hide_interface">Полноэкранный режим</string>
|
<string name="tap_on_map_to_hide_interface">Полноэкранный режим</string>
|
||||||
<string name="mark_passed">Отметить пройденным</string>
|
<string name="mark_passed">Отметить пройденным</string>
|
||||||
<string name="import_track_desc">Файл %1$s не содержит путевых точек, импортировать его как трек?</string>
|
<string name="import_track_desc">Файл %1$s не содержит путевых точек, импортировать его как трек?</string>
|
||||||
<string name="add_track_to_markers_descr">Путевые точки можно добавить к маркерам выбрав один из этих треков, содержащих их.</string>
|
<string name="add_track_to_markers_descr">Выберите трек, чтобы добавить свои путевые точки к маркерам.</string>
|
||||||
<string name="shared_string_gpx_waypoints">Трек путевых точек</string>
|
<string name="shared_string_gpx_waypoints">Трек путевых точек</string>
|
||||||
<string name="shared_string_right">Направо</string>
|
<string name="shared_string_right">Направо</string>
|
||||||
<string name="shared_string_left">Налево</string>
|
<string name="shared_string_left">Налево</string>
|
||||||
<string name="show_number_pad">Показать цифровую панель</string>
|
<string name="show_number_pad">Показать цифровую панель</string>
|
||||||
<string name="tap_on_map_to_hide_interface_descr">Нажатие на карте переключает кнопки управления и виджеты.</string>
|
<string name="tap_on_map_to_hide_interface_descr">Нажатие на карте переключает кнопки управления и виджеты.</string>
|
||||||
|
|
||||||
<string name="import_gpx_file_description">могут быть импортированы как избранные точки или как трек файл.</string>
|
<string name="import_gpx_file_description">могут быть импортированы как избранные точки или как GPX файл.</string>
|
||||||
<string name="shared_string_more_without_dots">Больше</string>
|
<string name="shared_string_more_without_dots">Больше</string>
|
||||||
<string name="import_as_gpx">Импортировать как файл GPX</string>
|
<string name="import_as_gpx">Импортировать как файл GPX</string>
|
||||||
<string name="import_as_favorites">Импортировать как избранные</string>
|
<string name="import_as_favorites">Импортировать как избранные</string>
|
||||||
|
@ -2849,14 +2849,14 @@
|
||||||
<string name="shared_string_travel_guides">Путеводитель</string>
|
<string name="shared_string_travel_guides">Путеводитель</string>
|
||||||
<string name="waypoints_removed_from_map_markers">Путевые точки удалены из маркеров карты</string>
|
<string name="waypoints_removed_from_map_markers">Путевые точки удалены из маркеров карты</string>
|
||||||
<string name="nothing_found_in_radius">Ничего не найдено:</string>
|
<string name="nothing_found_in_radius">Ничего не найдено:</string>
|
||||||
<string name="select_waypoints_category_description">Вы можете добавить все путевые точки трека, или выбрать отдельные категории.</string>
|
<string name="select_waypoints_category_description">Добавьте все путевые точки трека или выберите отдельные категории.</string>
|
||||||
<string name="shared_string_total">Всего</string>
|
<string name="shared_string_total">Всего</string>
|
||||||
<string name="shared_string_result">Результат</string>
|
<string name="shared_string_result">Результат</string>
|
||||||
<string name="wikivoyage_search_hint">Поиск: страна, город, провинция</string>
|
<string name="wikivoyage_search_hint">Поиск: страна, город, провинция</string>
|
||||||
<string name="shared_string_read">Читать</string>
|
<string name="shared_string_read">Читать</string>
|
||||||
<string name="saved_articles">Сохраненные статьи</string>
|
<string name="saved_articles">Сохраненные статьи</string>
|
||||||
<string name="shared_string_contents">Главы</string>
|
<string name="shared_string_contents">Главы</string>
|
||||||
<string name="download_maps_travel">Карты путешествий</string>
|
<string name="download_maps_travel">Путеводитель</string>
|
||||||
<string name="shared_string_wikivoyage">Викигид</string>
|
<string name="shared_string_wikivoyage">Викигид</string>
|
||||||
<string name="article_removed">Статья удалена</string>
|
<string name="article_removed">Статья удалена</string>
|
||||||
<string name="shared_string_explore">Исследовать</string>
|
<string name="shared_string_explore">Исследовать</string>
|
||||||
|
@ -2865,14 +2865,14 @@
|
||||||
<string name="delete_search_history">"Удалить историю поиска "</string>
|
<string name="delete_search_history">"Удалить историю поиска "</string>
|
||||||
<string name="show_images">Показать изображения</string>
|
<string name="show_images">Показать изображения</string>
|
||||||
<string name="shared_string_only_with_wifi">Только по WiFi</string>
|
<string name="shared_string_only_with_wifi">Только по WiFi</string>
|
||||||
<string name="wikivoyage_download_pics">Показывать изображения</string>
|
<string name="wikivoyage_download_pics">Загружать изображения</string>
|
||||||
<string name="wikivoyage_download_pics_descr">Изображения из статей можно загрузить для использования в автономном режиме.
|
<string name="wikivoyage_download_pics_descr">Изображения из статей можно загрузить для использования в автономном режиме.
|
||||||
\nВы всегда можете изменить настройку в \"Исследовать\" → \"Параметры\".</string>
|
\nВы всегда можете изменить настройку в \"Исследовать\" → \"Параметры\".</string>
|
||||||
<string name="shared_string_wifi_only">Только WiFi</string>
|
<string name="shared_string_wifi_only">Только WiFi</string>
|
||||||
<string name="select_travel_book">Выберите дневник путешествий</string>
|
<string name="select_travel_book">Выберите дневник путешествий</string>
|
||||||
<string name="shared_string_travel_book">Дневник путешествий</string>
|
<string name="shared_string_travel_book">Дневник путешествий</string>
|
||||||
<string name="online_webpage_warning">Страница доступна только онлайн. Открыть ее в браузере?</string>
|
<string name="online_webpage_warning">Страница доступна только онлайн. Открыть ее в браузере?</string>
|
||||||
<string name="download_images">Показывать изображения</string>
|
<string name="download_images">Загружать изображения</string>
|
||||||
<string name="shared_string_dont">Нет</string>
|
<string name="shared_string_dont">Нет</string>
|
||||||
<string name="shared_string_do">Выполнить</string>
|
<string name="shared_string_do">Выполнить</string>
|
||||||
<string name="purchase_dialog_title">Выберите план</string>
|
<string name="purchase_dialog_title">Выберите план</string>
|
||||||
|
@ -2911,7 +2911,7 @@
|
||||||
<string name="open_in_browser_wiki">Открыть статью в Интернете</string>
|
<string name="open_in_browser_wiki">Открыть статью в Интернете</string>
|
||||||
<string name="open_in_browser_wiki_description">Просмотреть эту статью в браузере.</string>
|
<string name="open_in_browser_wiki_description">Просмотреть эту статью в браузере.</string>
|
||||||
<string name="download_wiki_region_placeholder">этот регион</string>
|
<string name="download_wiki_region_placeholder">этот регион</string>
|
||||||
<string name="wiki_article_search_text">Поиск нужной статьи в вики</string>
|
<string name="wiki_article_search_text">Поиск соответствующей статьи в вики</string>
|
||||||
<string name="wiki_article_not_found">Статья не найдена</string>
|
<string name="wiki_article_not_found">Статья не найдена</string>
|
||||||
<string name="how_to_open_wiki_title">Как открыть статьи Википедии?</string>
|
<string name="how_to_open_wiki_title">Как открыть статьи Википедии?</string>
|
||||||
<string name="popular_destinations">Популярные направления</string>
|
<string name="popular_destinations">Популярные направления</string>
|
||||||
|
@ -2979,4 +2979,5 @@
|
||||||
\n• Другие исправления ошибок
|
\n• Другие исправления ошибок
|
||||||
\n</string>
|
\n</string>
|
||||||
<string name="increase_search_radius_to">Увеличить радиус поиска до %1$s</string>
|
<string name="increase_search_radius_to">Увеличить радиус поиска до %1$s</string>
|
||||||
|
<string name="commiting_way">Фиксируется путь…</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1876,4 +1876,53 @@
|
||||||
<string name="poi_tactile_paving_no">Без површне облоге</string>
|
<string name="poi_tactile_paving_no">Без површне облоге</string>
|
||||||
<string name="poi_services">Услужни простор</string>
|
<string name="poi_services">Услужни простор</string>
|
||||||
<string name="poi_railway_level_crossing">Пружни прелаз у нивоу</string>
|
<string name="poi_railway_level_crossing">Пружни прелаз у нивоу</string>
|
||||||
|
<string name="poi_leisure_common">Заједнички простор одмора</string>
|
||||||
|
<string name="poi_heath">Врес</string>
|
||||||
|
<string name="poi_grassland">Травната земља</string>
|
||||||
|
<string name="poi_scrub">Жбун</string>
|
||||||
|
<string name="poi_farmland">Земља фарме</string>
|
||||||
|
<string name="poi_logging">Сеча дрвета</string>
|
||||||
|
<string name="poi_windfall">Опало воће</string>
|
||||||
|
<string name="poi_passing_place">Пролазно место</string>
|
||||||
|
<string name="poi_rtsa_scale">РТСА скала</string>
|
||||||
|
|
||||||
|
<string name="poi_piste_grooming_backcountry">Рурални део</string>
|
||||||
|
<string name="poi_payment_girocard_yes">Гирокартица</string>
|
||||||
|
<string name="poi_payment_pikepass_no">PIKEPASS се не прихвата</string>
|
||||||
|
<string name="poi_payment_pikepass_designated">PIKEPASS (намењено)</string>
|
||||||
|
<string name="poi_payment_visa_debit_yes">Виза дебитне картице</string>
|
||||||
|
<string name="poi_payment_visa_debit_no">Виза дебитне картице се не прихватају</string>
|
||||||
|
<string name="poi_payment_cryptocurrencies_no">Криптовалуте се не прихватају</string>
|
||||||
|
<string name="poi_payment_others_yes">Други методи</string>
|
||||||
|
<string name="poi_payment_others_no">Други методи плаћања се не прихватају</string>
|
||||||
|
<string name="poi_payment_routex_yes">Routex да</string>
|
||||||
|
<string name="poi_payment_routex_no">Routex кртице горива се не прихватају</string>
|
||||||
|
<string name="poi_payment_bancomat_yes">Bancomat да</string>
|
||||||
|
<string name="poi_payment_bancomat_no">Bancomat се не прихвата</string>
|
||||||
|
<string name="poi_payment_icsf_yes">IC Stored Fare - да</string>
|
||||||
|
<string name="poi_payment_wire_transfer_yes">Вајер трансфери</string>
|
||||||
|
<string name="poi_payment_wire_transfer_no">Вајер трансфери се не прихватају</string>
|
||||||
|
<string name="poi_events_venue">Места догађаја</string>
|
||||||
|
|
||||||
|
<string name="poi_diet_kosher_no">Кошер исхрана: не</string>
|
||||||
|
<string name="poi_diet_halal_filter_yes">Халал</string>
|
||||||
|
<string name="poi_diet_halal_only">Халал само</string>
|
||||||
|
<string name="poi_diet_halal_yes">Халал</string>
|
||||||
|
<string name="poi_diet_halal_no">Халал исхрана: не</string>
|
||||||
|
<string name="poi_diet_lactose_free_filter_yes">Без лактозе</string>
|
||||||
|
<string name="poi_diet_lactose_free_only">Без лактозе само</string>
|
||||||
|
<string name="poi_diet_lactose_free_yes">Без лактозе</string>
|
||||||
|
<string name="poi_diet_lactose_free_no">Без лактозе исхрана: не</string>
|
||||||
|
<string name="poi_diet_pescetarian_yes">Пескотеријан</string>
|
||||||
|
|
||||||
|
<string name="poi_drive_in_yes">Да</string>
|
||||||
|
<string name="poi_drive_in_no">Улазак колима: не</string>
|
||||||
|
<string name="poi_drive_through_yes">Да</string>
|
||||||
|
<string name="poi_drive_through_no">Пролазак кроз: не</string>
|
||||||
|
|
||||||
|
<string name="poi_brewery_additional">Име пиваре</string>
|
||||||
|
<string name="poi_microbrewery_yes">Микропивара</string>
|
||||||
|
<string name="poi_microbrewery_no">Не микропивара</string>
|
||||||
|
|
||||||
|
<string name="poi_takeaway_filter_yes">Да</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
7
OsmAnd/src/net/osmand/aidl/IOsmAndAidlCallback.aidl
Normal file
7
OsmAnd/src/net/osmand/aidl/IOsmAndAidlCallback.aidl
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
package net.osmand.aidl;
|
||||||
|
|
||||||
|
import net.osmand.aidl.search.SearchResult;
|
||||||
|
|
||||||
|
interface IOsmAndAidlCallback {
|
||||||
|
void onSearchComplete(in List<SearchResult> resultSet);
|
||||||
|
}
|
|
@ -55,6 +55,17 @@ import net.osmand.aidl.maplayer.point.ShowMapPointParams;
|
||||||
|
|
||||||
import net.osmand.aidl.navdrawer.SetNavDrawerItemsParams;
|
import net.osmand.aidl.navdrawer.SetNavDrawerItemsParams;
|
||||||
|
|
||||||
|
import net.osmand.aidl.navigation.PauseNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.ResumeNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.StopNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.MuteNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.UnmuteNavigationParams;
|
||||||
|
|
||||||
|
import net.osmand.aidl.IOsmAndAidlCallback;
|
||||||
|
|
||||||
|
import net.osmand.aidl.search.SearchResult;
|
||||||
|
import net.osmand.aidl.search.SearchParams;
|
||||||
|
|
||||||
// NOTE: Add new methods at the end of file!!!
|
// NOTE: Add new methods at the end of file!!!
|
||||||
|
|
||||||
interface IOsmAndAidlInterface {
|
interface IOsmAndAidlInterface {
|
||||||
|
@ -109,4 +120,12 @@ interface IOsmAndAidlInterface {
|
||||||
boolean showMapPoint(in ShowMapPointParams params);
|
boolean showMapPoint(in ShowMapPointParams params);
|
||||||
|
|
||||||
boolean setNavDrawerItems(in SetNavDrawerItemsParams params);
|
boolean setNavDrawerItems(in SetNavDrawerItemsParams params);
|
||||||
|
|
||||||
|
boolean pauseNavigation(in PauseNavigationParams params);
|
||||||
|
boolean resumeNavigation(in ResumeNavigationParams params);
|
||||||
|
boolean stopNavigation(in StopNavigationParams params);
|
||||||
|
boolean muteNavigation(in MuteNavigationParams params);
|
||||||
|
boolean unmuteNavigation(in UnmuteNavigationParams params);
|
||||||
|
|
||||||
|
boolean search(in SearchParams params, IOsmAndAidlCallback callback);
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package net.osmand.aidl;
|
package net.osmand.aidl;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -28,9 +29,12 @@ import net.osmand.aidl.maplayer.AMapLayer;
|
||||||
import net.osmand.aidl.maplayer.point.AMapPoint;
|
import net.osmand.aidl.maplayer.point.AMapPoint;
|
||||||
import net.osmand.aidl.mapmarker.AMapMarker;
|
import net.osmand.aidl.mapmarker.AMapMarker;
|
||||||
import net.osmand.aidl.mapwidget.AMapWidget;
|
import net.osmand.aidl.mapwidget.AMapWidget;
|
||||||
|
import net.osmand.aidl.search.SearchParams;
|
||||||
|
import net.osmand.aidl.search.SearchResult;
|
||||||
import net.osmand.data.FavouritePoint;
|
import net.osmand.data.FavouritePoint;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
|
import net.osmand.plus.AppInitializer;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
import net.osmand.plus.ContextMenuAdapter;
|
import net.osmand.plus.ContextMenuAdapter;
|
||||||
import net.osmand.plus.ContextMenuItem;
|
import net.osmand.plus.ContextMenuItem;
|
||||||
|
@ -51,6 +55,7 @@ import net.osmand.plus.dialogs.ConfigureMapMenu;
|
||||||
import net.osmand.plus.helpers.ColorDialogs;
|
import net.osmand.plus.helpers.ColorDialogs;
|
||||||
import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
|
import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
|
import net.osmand.plus.search.listitems.QuickSearchListItem;
|
||||||
import net.osmand.plus.views.AidlMapLayer;
|
import net.osmand.plus.views.AidlMapLayer;
|
||||||
import net.osmand.plus.views.MapInfoLayer;
|
import net.osmand.plus.views.MapInfoLayer;
|
||||||
import net.osmand.plus.views.OsmandMapLayer;
|
import net.osmand.plus.views.OsmandMapLayer;
|
||||||
|
@ -58,6 +63,10 @@ import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.mapwidgets.MapWidgetRegistry.MapWidgetRegInfo;
|
import net.osmand.plus.views.mapwidgets.MapWidgetRegistry.MapWidgetRegInfo;
|
||||||
import net.osmand.plus.views.mapwidgets.TextInfoWidget;
|
import net.osmand.plus.views.mapwidgets.TextInfoWidget;
|
||||||
|
import net.osmand.search.SearchUICore;
|
||||||
|
import net.osmand.search.SearchUICore.SearchResultCollection;
|
||||||
|
import net.osmand.search.core.ObjectType;
|
||||||
|
import net.osmand.search.core.SearchSettings;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
@ -81,6 +90,15 @@ import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import static net.osmand.search.core.ObjectType.CITY;
|
||||||
|
import static net.osmand.search.core.ObjectType.HOUSE;
|
||||||
|
import static net.osmand.search.core.ObjectType.POI;
|
||||||
|
import static net.osmand.search.core.ObjectType.POSTCODE;
|
||||||
|
import static net.osmand.search.core.ObjectType.STREET;
|
||||||
|
import static net.osmand.search.core.ObjectType.STREET_INTERSECTION;
|
||||||
|
import static net.osmand.search.core.ObjectType.VILLAGE;
|
||||||
|
import static net.osmand.search.core.SearchCoreFactory.MAX_DEFAULT_SEARCH_RADIUS;
|
||||||
|
|
||||||
|
|
||||||
public class OsmandAidlApi {
|
public class OsmandAidlApi {
|
||||||
private static final Log LOG = PlatformUtil.getLog(OsmandAidlApi.class);
|
private static final Log LOG = PlatformUtil.getLog(OsmandAidlApi.class);
|
||||||
|
@ -117,6 +135,11 @@ public class OsmandAidlApi {
|
||||||
|
|
||||||
private static final String AIDL_NAVIGATE = "aidl_navigate";
|
private static final String AIDL_NAVIGATE = "aidl_navigate";
|
||||||
private static final String AIDL_NAVIGATE_GPX = "aidl_navigate_gpx";
|
private static final String AIDL_NAVIGATE_GPX = "aidl_navigate_gpx";
|
||||||
|
private static final String AIDL_PAUSE_NAVIGATION = "pause_navigation";
|
||||||
|
private static final String AIDL_RESUME_NAVIGATION = "resume_navigation";
|
||||||
|
private static final String AIDL_STOP_NAVIGATION = "stop_navigation";
|
||||||
|
private static final String AIDL_MUTE_NAVIGATION = "mute_navigation";
|
||||||
|
private static final String AIDL_UNMUTE_NAVIGATION = "unmute_navigation";
|
||||||
|
|
||||||
private static final ApplicationMode DEFAULT_PROFILE = ApplicationMode.CAR;
|
private static final ApplicationMode DEFAULT_PROFILE = ApplicationMode.CAR;
|
||||||
|
|
||||||
|
@ -135,7 +158,7 @@ public class OsmandAidlApi {
|
||||||
private Map<String, TextInfoWidget> widgetControls = new ConcurrentHashMap<>();
|
private Map<String, TextInfoWidget> widgetControls = new ConcurrentHashMap<>();
|
||||||
private Map<String, AMapLayer> layers = new ConcurrentHashMap<>();
|
private Map<String, AMapLayer> layers = new ConcurrentHashMap<>();
|
||||||
private Map<String, OsmandMapLayer> mapLayers = new ConcurrentHashMap<>();
|
private Map<String, OsmandMapLayer> mapLayers = new ConcurrentHashMap<>();
|
||||||
private Map<String, BroadcastReceiver> receivers = new TreeMap<String, BroadcastReceiver>();
|
private Map<String, BroadcastReceiver> receivers = new TreeMap<>();
|
||||||
|
|
||||||
|
|
||||||
public OsmandAidlApi(OsmandApplication app) {
|
public OsmandAidlApi(OsmandApplication app) {
|
||||||
|
@ -155,6 +178,11 @@ public class OsmandAidlApi {
|
||||||
registerStopRecordingReceiver(mapActivity);
|
registerStopRecordingReceiver(mapActivity);
|
||||||
registerNavigateReceiver(mapActivity);
|
registerNavigateReceiver(mapActivity);
|
||||||
registerNavigateGpxReceiver(mapActivity);
|
registerNavigateGpxReceiver(mapActivity);
|
||||||
|
registerPauseNavigationReceiver(mapActivity);
|
||||||
|
registerResumeNavigationReceiver(mapActivity);
|
||||||
|
registerStopNavigationReceiver(mapActivity);
|
||||||
|
registerMuteNavigationReceiver(mapActivity);
|
||||||
|
registerUnmuteNavigationReceiver(mapActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDestroyMapActivity(final MapActivity mapActivity) {
|
public void onDestroyMapActivity(final MapActivity mapActivity) {
|
||||||
|
@ -168,7 +196,7 @@ public class OsmandAidlApi {
|
||||||
LOG.error(e.getMessage(), e);
|
LOG.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
receivers = new TreeMap<String, BroadcastReceiver>();
|
receivers = new TreeMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerRefreshMapReceiver(final MapActivity mapActivity) {
|
private void registerRefreshMapReceiver(final MapActivity mapActivity) {
|
||||||
|
@ -529,6 +557,70 @@ public class OsmandAidlApi {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerPauseNavigationReceiver(final MapActivity mapActivity) {
|
||||||
|
BroadcastReceiver pauseNavigationReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
|
if (routingHelper.isRouteCalculated() && !routingHelper.isRoutePlanningMode()) {
|
||||||
|
routingHelper.setRoutePlanningMode(true);
|
||||||
|
routingHelper.setFollowingMode(false);
|
||||||
|
routingHelper.setPauseNavigation(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
registerReceiver(pauseNavigationReceiver, mapActivity, AIDL_PAUSE_NAVIGATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerResumeNavigationReceiver(final MapActivity mapActivity) {
|
||||||
|
BroadcastReceiver resumeNavigationReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
|
if (routingHelper.isRouteCalculated() && routingHelper.isRoutePlanningMode()) {
|
||||||
|
routingHelper.setRoutePlanningMode(false);
|
||||||
|
routingHelper.setFollowingMode(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
registerReceiver(resumeNavigationReceiver, mapActivity, AIDL_RESUME_NAVIGATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerStopNavigationReceiver(final MapActivity mapActivity) {
|
||||||
|
BroadcastReceiver stopNavigationReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
|
if (routingHelper.isPauseNavigation() || routingHelper.isFollowingMode()) {
|
||||||
|
mapActivity.getMapLayers().getMapControlsLayer().stopNavigationWithoutConfirm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
registerReceiver(stopNavigationReceiver, mapActivity, AIDL_STOP_NAVIGATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerMuteNavigationReceiver(final MapActivity mapActivity) {
|
||||||
|
BroadcastReceiver muteNavigationReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
mapActivity.getMyApplication().getSettings().VOICE_MUTE.set(true);
|
||||||
|
mapActivity.getRoutingHelper().getVoiceRouter().setMute(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
registerReceiver(muteNavigationReceiver, mapActivity, AIDL_MUTE_NAVIGATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerUnmuteNavigationReceiver(final MapActivity mapActivity) {
|
||||||
|
BroadcastReceiver unmuteNavigationReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
mapActivity.getMyApplication().getSettings().VOICE_MUTE.set(false);
|
||||||
|
mapActivity.getRoutingHelper().getVoiceRouter().setMute(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
registerReceiver(unmuteNavigationReceiver, mapActivity, AIDL_UNMUTE_NAVIGATION);
|
||||||
|
}
|
||||||
|
|
||||||
public void registerMapLayers(MapActivity mapActivity) {
|
public void registerMapLayers(MapActivity mapActivity) {
|
||||||
for (AMapLayer layer : layers.values()) {
|
for (AMapLayer layer : layers.values()) {
|
||||||
OsmandMapLayer mapLayer = mapLayers.get(layer.getId());
|
OsmandMapLayer mapLayer = mapLayers.get(layer.getId());
|
||||||
|
@ -898,6 +990,7 @@ public class OsmandAidlApi {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
private void finishGpxImport(boolean destinationExists, File destination, String color, boolean show) {
|
private void finishGpxImport(boolean destinationExists, File destination, String color, boolean show) {
|
||||||
int col = ConfigureMapMenu.GpxAppearanceAdapter.parseTrackColor(
|
int col = ConfigureMapMenu.GpxAppearanceAdapter.parseTrackColor(
|
||||||
app.getRendererRegistry().getCurrentSelectedRenderer(), color);
|
app.getRendererRegistry().getCurrentSelectedRenderer(), color);
|
||||||
|
@ -1039,6 +1132,7 @@ public class OsmandAidlApi {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
boolean showGpx(String fileName) {
|
boolean showGpx(String fileName) {
|
||||||
if (!Algorithms.isEmpty(fileName)) {
|
if (!Algorithms.isEmpty(fileName)) {
|
||||||
File f = app.getAppPath(IndexConstants.GPX_INDEX_DIR + fileName);
|
File f = app.getAppPath(IndexConstants.GPX_INDEX_DIR + fileName);
|
||||||
|
@ -1191,6 +1285,41 @@ public class OsmandAidlApi {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean pauseNavigation() {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setAction(AIDL_PAUSE_NAVIGATION);
|
||||||
|
app.sendBroadcast(intent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean resumeNavigation() {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setAction(AIDL_RESUME_NAVIGATION);
|
||||||
|
app.sendBroadcast(intent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean stopNavigation() {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setAction(AIDL_STOP_NAVIGATION);
|
||||||
|
app.sendBroadcast(intent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean muteNavigation() {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setAction(AIDL_MUTE_NAVIGATION);
|
||||||
|
app.sendBroadcast(intent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean unmuteNavigation() {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setAction(AIDL_UNMUTE_NAVIGATION);
|
||||||
|
app.sendBroadcast(intent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
boolean navigateGpx(String data, Uri uri, boolean force) {
|
boolean navigateGpx(String data, Uri uri, boolean force) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.setAction(AIDL_NAVIGATE_GPX);
|
intent.setAction(AIDL_NAVIGATE_GPX);
|
||||||
|
@ -1201,6 +1330,86 @@ public class OsmandAidlApi {
|
||||||
return true;
|
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) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (app.isApplicationInitializing()) {
|
||||||
|
app.getAppInitializer().addListener(new AppInitializer.AppInitializeListener() {
|
||||||
|
@Override
|
||||||
|
public void onProgress(AppInitializer init, AppInitializer.InitEvents event) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFinish(AppInitializer init) {
|
||||||
|
runSearch(searchQuery, searchType, latitude, longitude, radiusLevel, totalLimit, callback);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
runSearch(searchQuery, searchType, latitude, longitude, radiusLevel, totalLimit, callback);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void runSearch(String searchQuery, int searchType, double latitude, double longitude, int radiusLevel,
|
||||||
|
int totalLimit, final SearchCompleteCallback callback) {
|
||||||
|
if (radiusLevel < 1) {
|
||||||
|
radiusLevel = 1;
|
||||||
|
} else if (radiusLevel > MAX_DEFAULT_SEARCH_RADIUS) {
|
||||||
|
radiusLevel = MAX_DEFAULT_SEARCH_RADIUS;
|
||||||
|
}
|
||||||
|
if (totalLimit <= 0) {
|
||||||
|
totalLimit = -1;
|
||||||
|
}
|
||||||
|
final int limit = totalLimit;
|
||||||
|
|
||||||
|
final SearchUICore core = app.getSearchUICore().getCore();
|
||||||
|
core.setOnResultsComplete(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
List<SearchResult> resultSet = new ArrayList<>();
|
||||||
|
SearchResultCollection resultCollection = core.getCurrentSearchResult();
|
||||||
|
int count = 0;
|
||||||
|
for (net.osmand.search.core.SearchResult r : resultCollection.getCurrentSearchResults()) {
|
||||||
|
String name = QuickSearchListItem.getName(app, r);
|
||||||
|
String typeName = QuickSearchListItem.getTypeName(app, r);
|
||||||
|
SearchResult result = new SearchResult(r.location.getLatitude(), r.location.getLongitude(),
|
||||||
|
name, typeName, r.alternateName, new ArrayList<>(r.otherNames));
|
||||||
|
resultSet.add(result);
|
||||||
|
count++;
|
||||||
|
if (limit != -1 && count >= limit) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
callback.onSearchComplete(resultSet);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
SearchSettings searchSettings = new SearchSettings(core.getSearchSettings())
|
||||||
|
.setRadiusLevel(radiusLevel)
|
||||||
|
.setEmptyQueryAllowed(false)
|
||||||
|
.setSortByName(false)
|
||||||
|
.setOriginalLocation(new LatLon(latitude, longitude))
|
||||||
|
.setTotalLimit(totalLimit);
|
||||||
|
|
||||||
|
List<ObjectType> searchTypes = new ArrayList<>();
|
||||||
|
if ((searchType & SearchParams.SEARCH_TYPE_POI) != 0) {
|
||||||
|
searchTypes.add(POI);
|
||||||
|
}
|
||||||
|
if ((searchType & SearchParams.SEARCH_TYPE_ADDRESS) != 0) {
|
||||||
|
searchTypes.add(CITY);
|
||||||
|
searchTypes.add(VILLAGE);
|
||||||
|
searchTypes.add(POSTCODE);
|
||||||
|
searchTypes.add(STREET);
|
||||||
|
searchTypes.add(HOUSE);
|
||||||
|
searchTypes.add(STREET_INTERSECTION);
|
||||||
|
}
|
||||||
|
searchSettings = searchSettings.setSearchTypes(searchTypes.toArray(new ObjectType[searchTypes.size()]));
|
||||||
|
|
||||||
|
core.search(searchQuery, false, null, searchSettings);
|
||||||
|
}
|
||||||
|
|
||||||
boolean setNavDrawerItems(String appPackage, List<net.osmand.aidl.navdrawer.NavDrawerItem> items) {
|
boolean setNavDrawerItems(String appPackage, List<net.osmand.aidl.navdrawer.NavDrawerItem> items) {
|
||||||
if (!TextUtils.isEmpty(appPackage) && items != null) {
|
if (!TextUtils.isEmpty(appPackage) && items != null) {
|
||||||
if (items.isEmpty()) {
|
if (items.isEmpty()) {
|
||||||
|
@ -1339,4 +1548,8 @@ public class OsmandAidlApi {
|
||||||
this.flags = flags;
|
this.flags = flags;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface SearchCompleteCallback {
|
||||||
|
void onSearchComplete(List<SearchResult> resultSet);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,17 @@ package net.osmand.aidl;
|
||||||
|
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerThread;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
import android.os.Looper;
|
||||||
|
import android.os.Message;
|
||||||
|
import android.os.Parcelable;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
|
import net.osmand.aidl.OsmandAidlApi.SearchCompleteCallback;
|
||||||
import net.osmand.aidl.calculateroute.CalculateRouteParams;
|
import net.osmand.aidl.calculateroute.CalculateRouteParams;
|
||||||
import net.osmand.aidl.favorite.AddFavoriteParams;
|
import net.osmand.aidl.favorite.AddFavoriteParams;
|
||||||
import net.osmand.aidl.favorite.RemoveFavoriteParams;
|
import net.osmand.aidl.favorite.RemoveFavoriteParams;
|
||||||
|
@ -35,23 +42,39 @@ import net.osmand.aidl.mapwidget.AddMapWidgetParams;
|
||||||
import net.osmand.aidl.mapwidget.RemoveMapWidgetParams;
|
import net.osmand.aidl.mapwidget.RemoveMapWidgetParams;
|
||||||
import net.osmand.aidl.mapwidget.UpdateMapWidgetParams;
|
import net.osmand.aidl.mapwidget.UpdateMapWidgetParams;
|
||||||
import net.osmand.aidl.navdrawer.SetNavDrawerItemsParams;
|
import net.osmand.aidl.navdrawer.SetNavDrawerItemsParams;
|
||||||
|
import net.osmand.aidl.navigation.MuteNavigationParams;
|
||||||
import net.osmand.aidl.navigation.NavigateGpxParams;
|
import net.osmand.aidl.navigation.NavigateGpxParams;
|
||||||
import net.osmand.aidl.navigation.NavigateParams;
|
import net.osmand.aidl.navigation.NavigateParams;
|
||||||
|
import net.osmand.aidl.navigation.PauseNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.ResumeNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.StopNavigationParams;
|
||||||
|
import net.osmand.aidl.navigation.UnmuteNavigationParams;
|
||||||
import net.osmand.aidl.note.StartAudioRecordingParams;
|
import net.osmand.aidl.note.StartAudioRecordingParams;
|
||||||
import net.osmand.aidl.note.StartVideoRecordingParams;
|
import net.osmand.aidl.note.StartVideoRecordingParams;
|
||||||
import net.osmand.aidl.note.StopRecordingParams;
|
import net.osmand.aidl.note.StopRecordingParams;
|
||||||
import net.osmand.aidl.note.TakePhotoNoteParams;
|
import net.osmand.aidl.note.TakePhotoNoteParams;
|
||||||
|
import net.osmand.aidl.search.SearchParams;
|
||||||
|
import net.osmand.aidl.search.SearchResult;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class OsmandAidlService extends Service {
|
public class OsmandAidlService extends Service {
|
||||||
|
|
||||||
private static final Log LOG = PlatformUtil.getLog(OsmandAidlService.class);
|
private static final Log LOG = PlatformUtil.getLog(OsmandAidlService.class);
|
||||||
|
|
||||||
|
private static final int MSG_RUN_SEARCH = 53;
|
||||||
|
private static final String DATA_KEY_RESULT_SET = "resultSet";
|
||||||
|
|
||||||
|
private ArrayList<IOsmAndAidlCallback> mRemoteCallbacks;
|
||||||
|
private ServiceHandler mHandler = null;
|
||||||
|
HandlerThread mHandlerThread = new HandlerThread("OsmAndAidlServiceThread");
|
||||||
|
|
||||||
OsmandApplication getApp() {
|
OsmandApplication getApp() {
|
||||||
return (OsmandApplication) getApplication();
|
return (OsmandApplication) getApplication();
|
||||||
}
|
}
|
||||||
|
@ -63,15 +86,25 @@ public class OsmandAidlService extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBinder onBind(Intent intent) {
|
public IBinder onBind(Intent intent) {
|
||||||
|
// Handler Thread handling all call back methods
|
||||||
|
mHandlerThread.start();
|
||||||
|
mHandler = new ServiceHandler(mHandlerThread.getLooper());
|
||||||
|
|
||||||
// Return the interface
|
// Return the interface
|
||||||
return mBinder;
|
return mBinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate() {
|
||||||
|
super.onCreate();
|
||||||
|
|
||||||
|
mRemoteCallbacks = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
private final IOsmAndAidlInterface.Stub mBinder = new IOsmAndAidlInterface.Stub() {
|
private final IOsmAndAidlInterface.Stub mBinder = new IOsmAndAidlInterface.Stub() {
|
||||||
|
|
||||||
private void handleException(Exception e) {
|
private void handleException(Exception e) {
|
||||||
LOG.error("AIDL e.getMessage()", e);
|
LOG.error("AIDL e.getMessage()", e);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -459,6 +492,56 @@ public class OsmandAidlService extends Service {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean pauseNavigation(PauseNavigationParams params) throws RemoteException {
|
||||||
|
try {
|
||||||
|
return getApi("pauseNavigation").pauseNavigation();
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean resumeNavigation(ResumeNavigationParams params) throws RemoteException {
|
||||||
|
try {
|
||||||
|
return getApi("resumeNavigation").resumeNavigation();
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean stopNavigation(StopNavigationParams params) throws RemoteException {
|
||||||
|
try {
|
||||||
|
return getApi("stopNavigation").stopNavigation();
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean muteNavigation(MuteNavigationParams params) throws RemoteException {
|
||||||
|
try {
|
||||||
|
return getApi("muteNavigation").muteNavigation();
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean unmuteNavigation(UnmuteNavigationParams params) throws RemoteException {
|
||||||
|
try {
|
||||||
|
return getApi("unmuteNavigation").unmuteNavigation();
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setNavDrawerItems(SetNavDrawerItemsParams params) throws RemoteException {
|
public boolean setNavDrawerItems(SetNavDrawerItemsParams params) throws RemoteException {
|
||||||
try {
|
try {
|
||||||
|
@ -468,5 +551,77 @@ public class OsmandAidlService extends Service {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean search(SearchParams params, final IOsmAndAidlCallback callback) throws RemoteException {
|
||||||
|
try {
|
||||||
|
return params != null && getApi("search").search(params.getSearchQuery(), params.getSearchType(),
|
||||||
|
params.getLatutude(), params.getLongitude(), params.getRadiusLevel(), params.getTotalLimit(), new SearchCompleteCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSearchComplete(List<SearchResult> resultSet) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
if (resultSet.size() > 0) {
|
||||||
|
data.putParcelableArrayList(DATA_KEY_RESULT_SET, new ArrayList<>(resultSet));
|
||||||
|
}
|
||||||
|
sendMsgToHandler(callback, MSG_RUN_SEARCH, data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create handler message to be sent
|
||||||
|
*/
|
||||||
|
void sendMsgToHandler(IOsmAndAidlCallback callback, int flag, Bundle data) {
|
||||||
|
|
||||||
|
mRemoteCallbacks.add(callback);
|
||||||
|
|
||||||
|
Message message = mHandler.obtainMessage();
|
||||||
|
message.arg1 = mRemoteCallbacks.size() - 1;
|
||||||
|
message.setData(data);
|
||||||
|
|
||||||
|
message.what = flag;
|
||||||
|
mHandler.sendMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handler class sending result in callback to respective
|
||||||
|
* application
|
||||||
|
*/
|
||||||
|
private class ServiceHandler extends Handler {
|
||||||
|
int callbackIndex = 0;
|
||||||
|
|
||||||
|
ServiceHandler(Looper looper) {
|
||||||
|
super(looper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMessage(Message msg) {
|
||||||
|
callbackIndex = msg.arg1;
|
||||||
|
|
||||||
|
switch (msg.what) {
|
||||||
|
|
||||||
|
case MSG_RUN_SEARCH:
|
||||||
|
|
||||||
|
Bundle data = msg.getData();
|
||||||
|
List<SearchResult> resultSet;
|
||||||
|
if (data.containsKey(DATA_KEY_RESULT_SET)) {
|
||||||
|
resultSet = data.getParcelableArrayList(DATA_KEY_RESULT_SET);
|
||||||
|
} else {
|
||||||
|
resultSet = Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
mRemoteCallbacks.get(callbackIndex).onSearchComplete(resultSet);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
LOG.error("AIDL e.getMessage()", e);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
parcelable MuteNavigationParams;
|
|
@ -0,0 +1,38 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
public class MuteNavigationParams implements Parcelable {
|
||||||
|
|
||||||
|
public MuteNavigationParams() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public MuteNavigationParams(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<MuteNavigationParams> CREATOR = new Creator<MuteNavigationParams>() {
|
||||||
|
@Override
|
||||||
|
public MuteNavigationParams createFromParcel(Parcel in) {
|
||||||
|
return new MuteNavigationParams(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MuteNavigationParams[] newArray(int size) {
|
||||||
|
return new MuteNavigationParams[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
parcelable PauseNavigationParams;
|
|
@ -0,0 +1,38 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
public class PauseNavigationParams implements Parcelable {
|
||||||
|
|
||||||
|
public PauseNavigationParams() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public PauseNavigationParams(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<PauseNavigationParams> CREATOR = new Creator<PauseNavigationParams>() {
|
||||||
|
@Override
|
||||||
|
public PauseNavigationParams createFromParcel(Parcel in) {
|
||||||
|
return new PauseNavigationParams(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PauseNavigationParams[] newArray(int size) {
|
||||||
|
return new PauseNavigationParams[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
parcelable ResumeNavigationParams;
|
|
@ -0,0 +1,38 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
public class ResumeNavigationParams implements Parcelable {
|
||||||
|
|
||||||
|
public ResumeNavigationParams() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResumeNavigationParams(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<ResumeNavigationParams> CREATOR = new Creator<ResumeNavigationParams>() {
|
||||||
|
@Override
|
||||||
|
public ResumeNavigationParams createFromParcel(Parcel in) {
|
||||||
|
return new ResumeNavigationParams(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResumeNavigationParams[] newArray(int size) {
|
||||||
|
return new ResumeNavigationParams[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
parcelable StopNavigationParams;
|
|
@ -0,0 +1,38 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
public class StopNavigationParams implements Parcelable {
|
||||||
|
|
||||||
|
public StopNavigationParams() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public StopNavigationParams(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<StopNavigationParams> CREATOR = new Creator<StopNavigationParams>() {
|
||||||
|
@Override
|
||||||
|
public StopNavigationParams createFromParcel(Parcel in) {
|
||||||
|
return new StopNavigationParams(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StopNavigationParams[] newArray(int size) {
|
||||||
|
return new StopNavigationParams[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
parcelable UnmuteNavigationParams;
|
|
@ -0,0 +1,38 @@
|
||||||
|
package net.osmand.aidl.navigation;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
public class UnmuteNavigationParams implements Parcelable {
|
||||||
|
|
||||||
|
public UnmuteNavigationParams() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public UnmuteNavigationParams(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<UnmuteNavigationParams> CREATOR = new Creator<UnmuteNavigationParams>() {
|
||||||
|
@Override
|
||||||
|
public UnmuteNavigationParams createFromParcel(Parcel in) {
|
||||||
|
return new UnmuteNavigationParams(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UnmuteNavigationParams[] newArray(int size) {
|
||||||
|
return new UnmuteNavigationParams[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
3
OsmAnd/src/net/osmand/aidl/search/SearchParams.aidl
Normal file
3
OsmAnd/src/net/osmand/aidl/search/SearchParams.aidl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.search;
|
||||||
|
|
||||||
|
parcelable SearchParams;
|
91
OsmAnd/src/net/osmand/aidl/search/SearchParams.java
Normal file
91
OsmAnd/src/net/osmand/aidl/search/SearchParams.java
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
package net.osmand.aidl.search;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
public class SearchParams implements Parcelable {
|
||||||
|
|
||||||
|
public static final int SEARCH_TYPE_POI = 1;
|
||||||
|
public static final int SEARCH_TYPE_ADDRESS = 2;
|
||||||
|
public static final int SEARCH_TYPE_ALL = SEARCH_TYPE_POI | SEARCH_TYPE_ADDRESS;
|
||||||
|
|
||||||
|
private String searchQuery;
|
||||||
|
private int searchType;
|
||||||
|
private double latutude;
|
||||||
|
private double longitude;
|
||||||
|
private int radiusLevel = 1;
|
||||||
|
private int totalLimit = -1;
|
||||||
|
|
||||||
|
public SearchParams(String searchQuery, int searchType, double latutude, double longitude, int radiusLevel, int totalLimit) {
|
||||||
|
this.searchQuery = searchQuery;
|
||||||
|
this.searchType = searchType;
|
||||||
|
this.latutude = latutude;
|
||||||
|
this.longitude = longitude;
|
||||||
|
this.radiusLevel = radiusLevel;
|
||||||
|
this.totalLimit = totalLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SearchParams(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<SearchParams> CREATOR = new Creator<SearchParams>() {
|
||||||
|
@Override
|
||||||
|
public SearchParams createFromParcel(Parcel in) {
|
||||||
|
return new SearchParams(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchParams[] newArray(int size) {
|
||||||
|
return new SearchParams[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public String getSearchQuery() {
|
||||||
|
return searchQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSearchType() {
|
||||||
|
return searchType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLatutude() {
|
||||||
|
return latutude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLongitude() {
|
||||||
|
return longitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRadiusLevel() {
|
||||||
|
return radiusLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalLimit() {
|
||||||
|
return totalLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
out.writeString(searchQuery);
|
||||||
|
out.writeInt(searchType);
|
||||||
|
out.writeDouble(latutude);
|
||||||
|
out.writeDouble(longitude);
|
||||||
|
out.writeInt(radiusLevel);
|
||||||
|
out.writeInt(totalLimit);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
searchQuery = in.readString();
|
||||||
|
searchType = in.readInt();
|
||||||
|
latutude = in.readDouble();
|
||||||
|
longitude = in.readDouble();
|
||||||
|
radiusLevel = in.readInt();
|
||||||
|
totalLimit = in.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
3
OsmAnd/src/net/osmand/aidl/search/SearchResult.aidl
Normal file
3
OsmAnd/src/net/osmand/aidl/search/SearchResult.aidl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
package net.osmand.aidl.search;
|
||||||
|
|
||||||
|
parcelable SearchResult;
|
96
OsmAnd/src/net/osmand/aidl/search/SearchResult.java
Normal file
96
OsmAnd/src/net/osmand/aidl/search/SearchResult.java
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
package net.osmand.aidl.search;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SearchResult implements Parcelable {
|
||||||
|
|
||||||
|
private double latitude;
|
||||||
|
private double longitude;
|
||||||
|
|
||||||
|
private String localName;
|
||||||
|
private String localTypeName;
|
||||||
|
|
||||||
|
private String alternateName;
|
||||||
|
private List<String> otherNames = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
public SearchResult(double latitude, double longitude, String localName, String localTypeName,
|
||||||
|
String alternateName, List<String> otherNames) {
|
||||||
|
this.latitude = latitude;
|
||||||
|
this.longitude = longitude;
|
||||||
|
this.localName = localName;
|
||||||
|
this.localTypeName = localTypeName;
|
||||||
|
this.alternateName = alternateName;
|
||||||
|
if (otherNames != null) {
|
||||||
|
this.otherNames = otherNames;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public SearchResult(Parcel in) {
|
||||||
|
readFromParcel(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<SearchResult> CREATOR = new Creator<SearchResult>() {
|
||||||
|
@Override
|
||||||
|
public SearchResult createFromParcel(Parcel in) {
|
||||||
|
return new SearchResult(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchResult[] newArray(int size) {
|
||||||
|
return new SearchResult[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public double getLatitude() {
|
||||||
|
return latitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLongitude() {
|
||||||
|
return longitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLocalName() {
|
||||||
|
return localName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLocalTypeName() {
|
||||||
|
return localTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAlternateName() {
|
||||||
|
return alternateName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getOtherNames() {
|
||||||
|
return otherNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
out.writeDouble(latitude);
|
||||||
|
out.writeDouble(longitude);
|
||||||
|
out.writeString(localName);
|
||||||
|
out.writeString(localTypeName);
|
||||||
|
out.writeString(alternateName);
|
||||||
|
out.writeStringList(otherNames);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void readFromParcel(Parcel in) {
|
||||||
|
latitude = in.readDouble();
|
||||||
|
longitude = in.readDouble();
|
||||||
|
localName = in.readString();
|
||||||
|
localTypeName = in.readString();
|
||||||
|
alternateName = in.readString();
|
||||||
|
in.readStringList(otherNames);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -43,7 +43,7 @@ public class SQLiteTileSource implements ITileSource {
|
||||||
private int maxZoom = 17;
|
private int maxZoom = 17;
|
||||||
private boolean inversiveZoom = true; // BigPlanet
|
private boolean inversiveZoom = true; // BigPlanet
|
||||||
private boolean timeSupported = false;
|
private boolean timeSupported = false;
|
||||||
private int expirationTimeMillis = -1; // never
|
private long expirationTimeMillis = -1; // never
|
||||||
private boolean isEllipsoid = false;
|
private boolean isEllipsoid = false;
|
||||||
private String rule = null;
|
private String rule = null;
|
||||||
private String referer = null;
|
private String referer = null;
|
||||||
|
@ -208,14 +208,14 @@ public class SQLiteTileSource implements ITileSource {
|
||||||
timeSupported = "yes".equalsIgnoreCase(cursor.getString(timecolumn));
|
timeSupported = "yes".equalsIgnoreCase(cursor.getString(timecolumn));
|
||||||
} else {
|
} else {
|
||||||
timeSupported = hasTimeColumn();
|
timeSupported = hasTimeColumn();
|
||||||
addInfoColumn("timecolumn", timeSupported?"yes" : "no");
|
addInfoColumn("timecolumn", timeSupported? "yes" : "no");
|
||||||
}
|
}
|
||||||
int expireminutes = list.indexOf("expireminutes");
|
int expireminutes = list.indexOf("expireminutes");
|
||||||
this.expirationTimeMillis = -1;
|
this.expirationTimeMillis = -1;
|
||||||
if(expireminutes != -1) {
|
if(expireminutes != -1) {
|
||||||
int minutes = (int) cursor.getInt(expireminutes);
|
int minutes = (int) cursor.getInt(expireminutes);
|
||||||
if(minutes > 0) {
|
if(minutes > 0) {
|
||||||
this.expirationTimeMillis = minutes * 60 * 1000;
|
this.expirationTimeMillis = minutes * 60 * 1000l;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
addInfoColumn("expireminutes", "0");
|
addInfoColumn("expireminutes", "0");
|
||||||
|
@ -462,8 +462,9 @@ public class SQLiteTileSource implements ITileSource {
|
||||||
public void closeDB(){
|
public void closeDB(){
|
||||||
LOG.debug("closeDB");
|
LOG.debug("closeDB");
|
||||||
bshInterpreter = null;
|
bshInterpreter = null;
|
||||||
if(timeSupported)
|
if(timeSupported) {
|
||||||
clearOld();
|
clearOld();
|
||||||
|
}
|
||||||
if(db != null){
|
if(db != null){
|
||||||
db.close();
|
db.close();
|
||||||
db = null;
|
db = null;
|
||||||
|
@ -472,12 +473,15 @@ public class SQLiteTileSource implements ITileSource {
|
||||||
|
|
||||||
public void clearOld() {
|
public void clearOld() {
|
||||||
SQLiteConnection db = getDatabase();
|
SQLiteConnection db = getDatabase();
|
||||||
if(db == null || db.isReadOnly()){
|
long expiration = getExpirationTimeMillis();
|
||||||
|
if(db == null || db.isReadOnly() || expiration <= 0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LOG.debug("DELETE FROM tiles WHERE time<" + (System.currentTimeMillis() - getExpirationTimeMillis()));
|
String sql = "DELETE FROM tiles WHERE time < "+
|
||||||
db.execSQL("DELETE FROM tiles WHERE time<"+(System.currentTimeMillis()-getExpirationTimeMillis())); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
|
(System.currentTimeMillis() - expiration);
|
||||||
db.execSQL("VACUUM"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
|
LOG.debug(sql);
|
||||||
|
db.execSQL(sql);
|
||||||
|
db.execSQL("VACUUM");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -498,10 +502,10 @@ public class SQLiteTileSource implements ITileSource {
|
||||||
if(expirationTimeMillis < 0) {
|
if(expirationTimeMillis < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return expirationTimeMillis / (60 * 1000);
|
return (int) (expirationTimeMillis / (60 * 1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getExpirationTimeMillis() {
|
public long getExpirationTimeMillis() {
|
||||||
return expirationTimeMillis;
|
return expirationTimeMillis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,11 @@ public class ExternalApiHelper {
|
||||||
public static final String API_CMD_NAVIGATE_GPX = "navigate_gpx";
|
public static final String API_CMD_NAVIGATE_GPX = "navigate_gpx";
|
||||||
|
|
||||||
public static final String API_CMD_NAVIGATE = "navigate";
|
public static final String API_CMD_NAVIGATE = "navigate";
|
||||||
|
public static final String API_CMD_PAUSE_NAVIGATION = "pause_navigation";
|
||||||
|
public static final String API_CMD_RESUME_NAVIGATION = "resume_navigation";
|
||||||
|
public static final String API_CMD_STOP_NAVIGATION = "stop_navigation";
|
||||||
|
public static final String API_CMD_MUTE_NAVIGATION = "mute_navigation";
|
||||||
|
public static final String API_CMD_UNMUTE_NAVIGATION = "unmute_navigation";
|
||||||
|
|
||||||
public static final String API_CMD_RECORD_AUDIO = "record_audio";
|
public static final String API_CMD_RECORD_AUDIO = "record_audio";
|
||||||
public static final String API_CMD_RECORD_VIDEO = "record_video";
|
public static final String API_CMD_RECORD_VIDEO = "record_video";
|
||||||
|
@ -86,6 +91,7 @@ public class ExternalApiHelper {
|
||||||
public static final String PARAM_START_LON = "start_lon";
|
public static final String PARAM_START_LON = "start_lon";
|
||||||
public static final String PARAM_DEST_LAT = "dest_lat";
|
public static final String PARAM_DEST_LAT = "dest_lat";
|
||||||
public static final String PARAM_DEST_LON = "dest_lon";
|
public static final String PARAM_DEST_LON = "dest_lon";
|
||||||
|
public static final String PARAM_DEST_SEARCH_QUERY = "dest_search_query";
|
||||||
public static final String PARAM_PROFILE = "profile";
|
public static final String PARAM_PROFILE = "profile";
|
||||||
|
|
||||||
public static final String PARAM_VERSION = "version";
|
public static final String PARAM_VERSION = "version";
|
||||||
|
@ -246,9 +252,20 @@ public class ExternalApiHelper {
|
||||||
startDesc = null;
|
startDesc = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
double destLat = Double.parseDouble(uri.getQueryParameter(PARAM_DEST_LAT));
|
String destSearchQuery = uri.getQueryParameter(PARAM_DEST_SEARCH_QUERY);
|
||||||
double destLon = Double.parseDouble(uri.getQueryParameter(PARAM_DEST_LON));
|
String destLatStr = uri.getQueryParameter(PARAM_DEST_LAT);
|
||||||
final LatLon dest = new LatLon(destLat, destLon);
|
String destLonStr = uri.getQueryParameter(PARAM_DEST_LON);
|
||||||
|
final LatLon dest;
|
||||||
|
if (!Algorithms.isEmpty(destLatStr) && !Algorithms.isEmpty(destLonStr)) {
|
||||||
|
double destLat = Double.parseDouble(destLatStr);
|
||||||
|
double destLon = Double.parseDouble(destLonStr);
|
||||||
|
dest = new LatLon(destLat, destLon);
|
||||||
|
} else {
|
||||||
|
dest = null;
|
||||||
|
}
|
||||||
|
if (!Algorithms.isEmpty(destSearchQuery)) {
|
||||||
|
|
||||||
|
}
|
||||||
final PointDescription destDesc = new PointDescription(PointDescription.POINT_TYPE_LOCATION, destName);
|
final PointDescription destDesc = new PointDescription(PointDescription.POINT_TYPE_LOCATION, destName);
|
||||||
|
|
||||||
boolean force = uri.getBooleanQueryParameter(PARAM_FORCE, false);
|
boolean force = uri.getBooleanQueryParameter(PARAM_FORCE, false);
|
||||||
|
@ -270,6 +287,35 @@ public class ExternalApiHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if (API_CMD_PAUSE_NAVIGATION.equals(cmd)) {
|
||||||
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
|
if (routingHelper.isRouteCalculated() && !routingHelper.isRoutePlanningMode()) {
|
||||||
|
routingHelper.setRoutePlanningMode(true);
|
||||||
|
routingHelper.setFollowingMode(false);
|
||||||
|
routingHelper.setPauseNavigation(true);
|
||||||
|
resultCode = Activity.RESULT_OK;
|
||||||
|
}
|
||||||
|
} else if (API_CMD_RESUME_NAVIGATION.equals(cmd)) {
|
||||||
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
|
if (routingHelper.isRouteCalculated() && routingHelper.isRoutePlanningMode()) {
|
||||||
|
routingHelper.setRoutePlanningMode(false);
|
||||||
|
routingHelper.setFollowingMode(true);
|
||||||
|
resultCode = Activity.RESULT_OK;
|
||||||
|
}
|
||||||
|
} else if (API_CMD_STOP_NAVIGATION.equals(cmd)) {
|
||||||
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
|
if (routingHelper.isPauseNavigation() || routingHelper.isFollowingMode()) {
|
||||||
|
mapActivity.getMapLayers().getMapControlsLayer().stopNavigationWithoutConfirm();
|
||||||
|
resultCode = Activity.RESULT_OK;
|
||||||
|
}
|
||||||
|
} else if (API_CMD_MUTE_NAVIGATION.equals(cmd)) {
|
||||||
|
mapActivity.getMyApplication().getSettings().VOICE_MUTE.set(true);
|
||||||
|
mapActivity.getRoutingHelper().getVoiceRouter().setMute(true);
|
||||||
|
resultCode = Activity.RESULT_OK;
|
||||||
|
} else if (API_CMD_UNMUTE_NAVIGATION.equals(cmd)) {
|
||||||
|
mapActivity.getMyApplication().getSettings().VOICE_MUTE.set(false);
|
||||||
|
mapActivity.getRoutingHelper().getVoiceRouter().setMute(false);
|
||||||
|
resultCode = Activity.RESULT_OK;
|
||||||
} else if (API_CMD_RECORD_AUDIO.equals(cmd)
|
} else if (API_CMD_RECORD_AUDIO.equals(cmd)
|
||||||
|| API_CMD_RECORD_VIDEO.equals(cmd)
|
|| API_CMD_RECORD_VIDEO.equals(cmd)
|
||||||
|| API_CMD_RECORD_PHOTO.equals(cmd)
|
|| API_CMD_RECORD_PHOTO.equals(cmd)
|
||||||
|
|
|
@ -13,7 +13,9 @@ import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.TreeSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
@ -71,6 +73,10 @@ public class MapRenderRepositories {
|
||||||
private final static Log log = PlatformUtil.getLog(MapRenderRepositories.class);
|
private final static Log log = PlatformUtil.getLog(MapRenderRepositories.class);
|
||||||
private final OsmandApplication context;
|
private final OsmandApplication context;
|
||||||
private final static int zoomOnlyForBasemaps = 11;
|
private final static int zoomOnlyForBasemaps = 11;
|
||||||
|
private final static int zoomToOverviewLocalNames = 6;
|
||||||
|
private final static Set<String> languagesNotTransliterateOnBasemap = new TreeSet<>(
|
||||||
|
Arrays.asList("ru", "uk", "be", "bg", "mk", "sr")
|
||||||
|
);
|
||||||
|
|
||||||
static int zoomForBaseRouteRendering = 14;
|
static int zoomForBaseRouteRendering = 14;
|
||||||
private Handler handler;
|
private Handler handler;
|
||||||
|
@ -730,17 +736,14 @@ public class MapRenderRepositories {
|
||||||
currentRenderingContext.width = requestedBox.getPixWidth();
|
currentRenderingContext.width = requestedBox.getPixWidth();
|
||||||
currentRenderingContext.height = requestedBox.getPixHeight();
|
currentRenderingContext.height = requestedBox.getPixHeight();
|
||||||
currentRenderingContext.nightMode = nightMode;
|
currentRenderingContext.nightMode = nightMode;
|
||||||
if(requestedBox.getZoom() <= zoomOnlyForBasemaps &&
|
if(requestedBox.getZoom() <= zoomToOverviewLocalNames &&
|
||||||
"".equals(prefs.MAP_PREFERRED_LOCALE.get())) {
|
"".equals(prefs.MAP_PREFERRED_LOCALE.get())) {
|
||||||
currentRenderingContext.preferredLocale = app.getLanguage();
|
currentRenderingContext.preferredLocale = app.getLanguage();
|
||||||
currentRenderingContext.transliterate = !"ru".equals(app.getLanguage()) && !"uk".equals(app.getLanguage()) && !"be".equals(app.getLanguage())
|
currentRenderingContext.transliterate =
|
||||||
&& !"bg".equals(app.getLanguage()) && !"mk".equals(app.getLanguage()) && !"sr".equals(app.getLanguage());
|
!languagesNotTransliterateOnBasemap.contains(app.getLanguage());
|
||||||
} else {
|
} else {
|
||||||
currentRenderingContext.preferredLocale = prefs.MAP_PREFERRED_LOCALE.get();
|
currentRenderingContext.preferredLocale = prefs.MAP_PREFERRED_LOCALE.get();
|
||||||
currentRenderingContext.transliterate = prefs.MAP_TRANSLITERATE_NAMES.get();
|
currentRenderingContext.transliterate = prefs.MAP_TRANSLITERATE_NAMES.get();
|
||||||
if(currentRenderingContext.preferredLocale.equals("en")) {
|
|
||||||
currentRenderingContext.transliterate = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
final float mapDensity = (float) requestedBox.getMapDensity();
|
final float mapDensity = (float) requestedBox.getMapDensity();
|
||||||
currentRenderingContext.setDensityValue(mapDensity);
|
currentRenderingContext.setDensityValue(mapDensity);
|
||||||
|
@ -770,7 +773,7 @@ public class MapRenderRepositories {
|
||||||
this.prevBmp = this.bmp;
|
this.prevBmp = this.bmp;
|
||||||
this.prevBmpLocation = this.bmpLocation;
|
this.prevBmpLocation = this.bmpLocation;
|
||||||
// necessary for transparent, otherwise 2 times smaller
|
// necessary for transparent, otherwise 2 times smaller
|
||||||
Config cfg = transparent ? Config.ARGB_8888 : Config.RGB_565;
|
Config cfg = true ? Config.ARGB_8888 : Config.RGB_565;
|
||||||
if (reuse != null && reuse.getWidth() == currentRenderingContext.width && reuse.getHeight() == currentRenderingContext.height &&
|
if (reuse != null && reuse.getWidth() == currentRenderingContext.width && reuse.getHeight() == currentRenderingContext.height &&
|
||||||
cfg == reuse.getConfig()) {
|
cfg == reuse.getConfig()) {
|
||||||
bmp = reuse;
|
bmp = reuse;
|
||||||
|
|
|
@ -205,7 +205,7 @@ public abstract class TilesCache<T> {
|
||||||
|
|
||||||
protected boolean isExpired(TileLoadDownloadRequest req, long lastModified) {
|
protected boolean isExpired(TileLoadDownloadRequest req, long lastModified) {
|
||||||
long time = System.currentTimeMillis();
|
long time = System.currentTimeMillis();
|
||||||
int ts = req.tileSource.getExpirationTimeMillis();
|
long ts = req.tileSource.getExpirationTimeMillis();
|
||||||
return ts != -1 && req.url != null && time - lastModified > ts;
|
return ts != -1 && req.url != null && time - lastModified > ts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -363,6 +363,11 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void stopNavigationWithoutConfirm() {
|
||||||
|
mapRouteInfoMenu.hide();
|
||||||
|
mapActivity.getMapActions().stopNavigationWithoutConfirm();
|
||||||
|
}
|
||||||
|
|
||||||
protected void clickRouteCancel() {
|
protected void clickRouteCancel() {
|
||||||
stopNavigation();
|
stopNavigation();
|
||||||
}
|
}
|
||||||
|
|
|
@ -573,7 +573,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
|
||||||
}
|
}
|
||||||
if (bufferBitmapTmp == null || tileBox.getPixHeight() != bufferBitmapTmp.getHeight()
|
if (bufferBitmapTmp == null || tileBox.getPixHeight() != bufferBitmapTmp.getHeight()
|
||||||
|| tileBox.getPixWidth() != bufferBitmapTmp.getWidth()) {
|
|| tileBox.getPixWidth() != bufferBitmapTmp.getWidth()) {
|
||||||
bufferBitmapTmp = Bitmap.createBitmap(tileBox.getPixWidth(), tileBox.getPixHeight(), Config.RGB_565);
|
bufferBitmapTmp = Bitmap.createBitmap(tileBox.getPixWidth(), tileBox.getPixHeight(), Config.ARGB_8888);
|
||||||
}
|
}
|
||||||
long start = SystemClock.elapsedRealtime();
|
long start = SystemClock.elapsedRealtime();
|
||||||
final QuadPoint c = tileBox.getCenterPixelPoint();
|
final QuadPoint c = tileBox.getCenterPixelPoint();
|
||||||
|
|
Loading…
Reference in a new issue