Merge branch 'master' into markers_export_fixes

This commit is contained in:
Vitaliy 2020-11-21 05:26:53 +02:00
commit ad02da64a0
13 changed files with 1011 additions and 240 deletions

521
OsmAnd/build.gradle.lib Normal file
View file

@ -0,0 +1,521 @@
//apply plugin: 'com.android.application'
apply plugin: 'com.android.library'
// Global Parameters accepted
// TARGET_APP_NAME - app name
// APK_NUMBER_VERSION - version number of apk
// APK_VERSION_SUFFIX - build number like #99999Z, appended (for dev builds) to Manifest's versionName as X.X.X#99999Z
// Z means flavor: M=-master, D=-main-default, B=-Blackberry, Des=-design, MQA=-main-qt-arm, MQDA=-main-qt-default-arm, S=-sherpafy
// APP_EDITION - date stamp of builds
// APP_FEATURES - features +play_market +gps_status -parking_plugin -blackberry -free_version -amazon
// 1. To be done Filter fonts
// <unzip src="OsmAndCore_android.aar" dest=".">
// <patternset>
// <include name="assets/**/map/fonts/OpenSans/*"/>
// <include name="assets/**/map/fonts/NotoSans/*"/>
// </patternset>
// </unzip>
// Less important
task printc {
configurations.each { if(it.isCanBeResolved()) println it.name }
}
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
// compileNdkVersion "android-ndk-r17b"
signingConfigs {
development {
storeFile file("../keystores/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
publishing {
storeFile file("/var/lib/jenkins/osmand_key")
storePassword System.getenv("OSMAND_APK_PASSWORD")
keyAlias "osmand"
keyPassword System.getenv("OSMAND_APK_PASSWORD")
}
}
defaultConfig {
minSdkVersion System.getenv("MIN_SDK_VERSION") ? System.getenv("MIN_SDK_VERSION").toInteger() : 15
targetSdkVersion 29
versionCode 390
versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode
multiDexEnabled true
versionName "3.9.0"
versionName System.getenv("APK_VERSION")? System.getenv("APK_VERSION").toString(): versionName
versionName System.getenv("APK_VERSION_SUFFIX")? versionName + System.getenv("APK_VERSION_SUFFIX").toString(): versionName
// Stops the Gradle plugins automatic rasterization of vectors
// vectorDrawables.generatedDensities = ['hdpi']
vectorDrawables.useSupportLibrary = true
}
lintOptions {
lintConfig file("lint.xml")
abortOnError false
warningsAsErrors false
}
/*
bundle {
language {
// Specifies that the app bundle should not support
// configuration APKs for language resources. These
// resources are instead packaged with each base and
// dynamic feature APK.
enableSplit = false
}
}
*/
// related to kuromoji
//packagingOptions {
// exclude '/META-INF/CONTRIBUTORS.md'
// exclude '/META-INF/LICENSE.md'
// exclude '/META-INF/NOTICE.md'
//}
// This is from OsmAndCore_android.aar - for some reason it's not inherited
aaptOptions {
// Don't compress any embedded resources
noCompress "qz"
cruncherEnabled = false
// Flag notifies aapt to keep the attribute IDs around
// additionalParameters "--no-version-vectors"
}
dexOptions {
javaMaxHeapSize "4g"
}
sourceSets {
main {
manifest.srcFile "AndroidManifest.xml"
jni.srcDirs = []
jniLibs.srcDirs = ["libs"]
aidl.srcDirs = ["src"]
java.srcDirs = ["src", "src-google"]
resources.srcDirs = ["src"]
renderscript.srcDirs = ["src"]
res.srcDirs = ["res"]
assets.srcDirs = ["assets"]
}
debug {
manifest.srcFile "AndroidManifest-debug.xml"
}
/*
full {
java.srcDirs = ["src-google"]
}
free {
java.srcDirs = ["src-google"]
manifest.srcFile "AndroidManifest-free.xml"
}
freedev {
java.srcDirs = ["src-google"]
manifest.srcFile "AndroidManifest-freedev.xml"
}
freehuawei {
java.srcDirs = ["src-huawei"]
manifest.srcFile "AndroidManifest-freehuawei.xml"
}
*/
legacy {
jniLibs.srcDirs = ["libc++"]
}
}
flavorDimensions "coreversion", "abi"
productFlavors {
// ABI
armv7 {
dimension "abi"
ndk {
abiFilter 'armeabi-v7a'
}
}
arm64 {
dimension "abi"
ndk {
abiFilter 'arm64-v8a'
}
}
x86 {
dimension "abi"
ndk {
abiFilters 'x86', 'x86_64'
}
}
armonly {
dimension "abi"
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}
fat {
dimension "abi"
ndk {
abiFilters 'arm64-v8a', 'x86', 'x86_64', 'armeabi-v7a'
}
}
/*
// Version
freedev {
dimension "version"
applicationId "net.osmand.dev"
// resConfig "en"
}
free {
dimension "version"
applicationId "net.osmand"
}
full {
dimension "version"
applicationId "net.osmand.plus"
}
freehuawei {
dimension "version"
applicationId "net.osmand.huawei"
}
*/
// CoreVersion
// Build that doesn't include 3D OpenGL
legacy {
dimension "coreversion"
}
// Build that includes 3D OpenGL release
qtcore {
dimension "coreversion"
}
// Build that includes 3D OpenGL debug
qtcoredebug {
dimension "coreversion"
}
}
buildTypes {
debug {
buildConfigField "String", "OPR_BASE_URL", "\"https://test.openplacereviews.org/\""
buildConfigField "String", "OSM_OAUTH_CONSUMER_KEY", "\"Ti2qq3fo4i4Wmuox3SiWRIGq3obZisBHnxmcM05y\""
buildConfigField "String", "OSM_OAUTH_CONSUMER_SECRET", "\"lxulb3HYoMmd2cC4xxNe1dyfRMAY8dS0eNihJ0DM\""
signingConfig signingConfigs.development
}
release {
buildConfigField "String", "OPR_BASE_URL", "\"https://test.openplacereviews.org/\""
buildConfigField "String", "OSM_OAUTH_CONSUMER_KEY", "\"Ti2qq3fo4i4Wmuox3SiWRIGq3obZisBHnxmcM05y\""
buildConfigField "String", "OSM_OAUTH_CONSUMER_SECRET", "\"lxulb3HYoMmd2cC4xxNe1dyfRMAY8dS0eNihJ0DM\""
signingConfig signingConfigs.publishing
}
}
}
def replaceNoTranslate(line) {
if (line.contains("\"app_name\"") && System.getenv("TARGET_APP_NAME")) {
return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<")
}
if (line.contains("\"app_name_free\"") && System.getenv("TARGET_APP_NAME")) {
return line.replaceAll(">[^<]*<", ">" + System.getenv("TARGET_APP_NAME") + "<")
}
if (line.contains("\"app_edition\"") && System.getenv("APP_EDITION")) {
return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_EDITION") + "<")
}
if (line.contains("\"versionFeatures\"") && System.getenv("APP_FEATURES")) {
return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_FEATURES") + "<")
}
return line;
}
task updateNoTranslate(type: Copy) {
from('.') {
include 'no_translate.xml'
filter {
line -> replaceNoTranslate(line);
}
}
into 'res/values/'
}
task validateTranslate {
println "Validating translations"
file("res").eachFileRecurse groovy.io.FileType.FILES, {
if (it.name == "strings.xml" || it.name == "phrases.xml") {
it.eachLine { line ->
if (line.contains("\$ s") || line.contains("\$ d") || line.contains("\$ f") ||
line.contains(" \$s") || line.contains(" \$d") || line.contains(" \$f") ||
line.contains("1\$ ") || line.contains("2\$ ") || line.contains("3\$ ") ||
line.contains("%1s") || line.contains(" 1\$s") ||
(line.contains("% \$") || line.contains("% 1") || line.contains("% 2") ||
line.contains("% 3") || line.contains("% s"))) {
throw new GradleException("Incorrect translation " + it.getAbsolutePath() + " " + line);
}
}
}
}
}
task downloadWorldMiniBasemap {
doLast {
ant.get(src: 'http://builder.osmand.net/basemap/World_basemap_mini_2.obf', dest: 'assets/World_basemap_mini.obf', skipexisting: 'true')
}
}
task collectVoiceAssets(type: Sync) {
from "../../resources/voice"
into "assets/voice"
include "**/*.js"
}
task cleanNoTranslate(type: Delete) {
delete('res/values/no_translate.xml')
}
task collectFonts(type: Copy) {
from "../../resources/fonts"
from "../../resources/rendering_styles/fonts"
// from "../../resources/rendering_styles/fonts/OpenSans"
into "assets/fonts"
include "*.ttf"
}
task collectHelpContentsStyle(type: Copy) {
from("../../help/website/help/") {
include "style.css"
}
into "assets"
}
task collectHelpContentsAssets(type: Copy) {
from("../../help/website/help") {
include "about.html"
include "changes.html"
include "faq.html"
include "technical-articles.html"
include "map-legend.html"
}
from("../../help/website/feature_articles") {
include "*.html"
}
from("../../help/website/blog_articles") {
include "osmand-3-8-released.html"
}
into "assets/feature_articles"
}
task copyPoiCategories(type: Copy) {
from("../../resources/poi") {
include "poi_categories.json"
}
into "assets"
}
task copyMapShaderIcons(type: Sync) {
// from "../../resources/rendering_styles/style-icons/map-shaders-png"
// into "res/"
from "../../resources/rendering_styles/style-icons/map-shaders-vector"
into "res/drawable"
include "**/*.png", "**/*.xml"
preserve {
include '**/*'
exclude "**/h_*"
}
}
task copyMapPOIIcons(type: Sync) {
from "../../resources/rendering_styles/style-icons/map-icons-vector"
into "res/drawable/"
// from "../../resources/rendering_styles/style-icons/map-icons-png"
// into "res/"
include "**/*.png", "**/*.xml"
preserve {
include '**/*'
exclude "**/mm_*"
}
}
task copyLargePOIIcons(type: Sync) {
from "../../resources/rendering_styles/style-icons/poi-icons-vector"
into "res/drawable/"
include "**/*.png", "**/*.xml"
preserve {
include '**/*'
exclude "**/mx_*"
}
}
task copyWidgetIconsXhdpi(type: Sync) {
from "res/drawable-xxhdpi/"
into "res/drawable-large-xhdpi/"
include "**/widget_*.png", "**/widget_*.xml", "**/map_*.xml", "**/map_*.png"
preserve {
include '*'
exclude "**/widget_*.png", "**/widget_*.xml", "**/map_*.xml", "**/map_*.png"
}
}
task copyWidgetIconsHdpi(type: Sync) {
from "res/drawable-xhdpi/"
into "res/drawable-large-hdpi/"
include "**/widget_*.png", "**/widget_*.xml", "**/map_*.xml", "**/map_*.png"
preserve {
include '*'
exclude "**/widget_*.png", "**/widget_*.xml", "**/map_*.xml", "**/map_*.png"
}
}
task copyWidgetIcons(type: Sync) {
from "res/drawable-hdpi/"
into "res/drawable-large/"
include "**/widget_*.png", "**/widget_*.xml", "**/map_*.xml", "**/map_*.png"
preserve {
include '*'
exclude "**/widget_*.png", "**/widget_*.xml", "**/map_*.xml", "**/map_*.png"
}
}
task collectExternalResources {
dependsOn collectVoiceAssets,
collectFonts,
collectHelpContentsAssets,
collectHelpContentsStyle,
copyMapShaderIcons,
copyMapPOIIcons,
copyLargePOIIcons,
updateNoTranslate,
validateTranslate,
copyWidgetIcons,
copyWidgetIconsHdpi,
copyWidgetIconsXhdpi,
copyPoiCategories,
downloadWorldMiniBasemap
}
// Legacy core build
import org.apache.tools.ant.taskdefs.condition.Os
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("armonly")) {
flavour = flavour.length() == 0 ? "ARM_ONLY" : ""
}
if(tskReqStr.contains("x86")) {
flavour = flavour.length() == 0 ? "X86_ONLY" : ""
}
}
description "Build Legacy OsmAndCore"
if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
if(flavour.length() > 0) {
environment "$flavour", "1"
}
commandLine "bash", file("./old-ndk-build.sh").getAbsolutePath()
} else {
commandLine "cmd", "/c", "echo", "Not supported"
}
}
task cleanupDuplicatesInCore() {
dependsOn buildOsmAndCore
// doesn't work for legacy debug builds
doLast {
file("libc++/armeabi-v7a").mkdirs()
file("libs/armeabi-v7a/libc++_shared.so").renameTo(file("libc++/armeabi-v7a/libc++_shared.so"))
file("libc++/arm64-v8a").mkdirs()
file("libs/arm64-v8a/libc++_shared.so").renameTo(file("libc++/arm64-v8a/libc++_shared.so"))
file("libc++/x86").mkdirs()
file("libs/x86/libc++_shared.so").renameTo(file("libc++/x86/libc++_shared.so"))
file("libc++/x86_64").mkdirs()
file("libs/x86_64/libc++_shared.so").renameTo(file("libc++/x86_64/libc++_shared.so"))
}
}
afterEvaluate {
android.libraryVariants.all { variant ->
variant.javaCompiler.dependsOn(collectExternalResources, buildOsmAndCore, cleanupDuplicatesInCore)
}
Gradle gradle = getGradle()
String tskReqStr = gradle.getStartParameter().getTaskRequests().toString().toLowerCase()
if (tskReqStr.contains("huawei")) {
apply plugin: 'com.huawei.agconnect'
}
}
task appStart(type: Exec) {
// linux
commandLine 'adb', 'shell', 'am', 'start', '-n', 'net.osmand.plus/net.osmand.plus.activities.MapActivity'
// windows
// commandLine 'cmd', '/c', 'adb', 'shell', 'am', 'start', '-n', 'net.osmand.plus/net.osmand.plus.activities.MapActivity'
}
dependencies {
implementation project(path: ':OsmAnd-java', configuration: 'android')
implementation project(':OsmAnd-api')
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.preference:preference:1.1.0'
implementation fileTree(include: ['gnu-trove-osmand.jar', 'icu4j-49_1_patched.jar'], dir: 'libs')
implementation group: 'commons-logging', name: 'commons-logging', version: '1.2'
implementation 'commons-codec:commons-codec:1.11'
implementation 'it.unibo.alice.tuprolog:tuprolog:3.2.1'
implementation 'org.apache.commons:commons-compress:1.17'
implementation 'com.moparisthebest:junidecode:0.1.1'
implementation 'org.immutables:gson:2.5.0'
implementation 'com.vividsolutions:jts-core:1.14.0'
implementation 'com.google.openlocationcode:openlocationcode:1.0.4'
implementation 'com.android.billingclient:billing:2.0.3'
// turn off for now
//implementation 'com.atilika.kuromoji:kuromoji-ipadic:0.9.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'me.zhanghai.android.materialprogressbar:library:1.4.2'
// JS core
implementation group: 'org.mozilla', name: 'rhino', version: '1.7.9'
// size restrictions
// implementation 'com.ibm.icu:icu4j:50.1'
// implementation 'net.sf.trove4j:trove4j:3.0.3'
qtcoreImplementation fileTree(include: ['QtAndroid.jar', 'QtAndroidBearer.jar'], dir: 'libs')
qtcoredebugImplementation fileTree(include: ['QtAndroid.jar', 'QtAndroidBearer.jar'], dir: 'libs')
legacyImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@jar"
qtcoredebugImplementation "net.osmand:OsmAndCore_androidNativeDebug:0.1-SNAPSHOT@aar"
qtcoredebugImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@aar"
qtcoreImplementation "net.osmand:OsmAndCore_androidNativeRelease:0.1-SNAPSHOT@aar"
qtcoreImplementation "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@aar"
implementation ("com.getkeepsafe.taptargetview:taptargetview:1.12.0"){
exclude group: 'com.android.support'
}
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1'
implementation ("com.github.HITGIF:TextFieldBoxes:1.4.5"){
exclude group: 'com.android.support'
}
implementation('com.github.scribejava:scribejava-apis:7.1.1'){
exclude group: "com.fasterxml.jackson.core"
}
implementation 'com.jaredrummler:colorpicker:1.1.0'
//freehuaweiImplementation 'com.huawei.hms:iap:5.0.2.300'
}

View file

@ -3853,4 +3853,34 @@
<string name="poi_parking_rooftop">Dachparkplätze</string>
<string name="poi_gpx_point">GPX-Wegpunkt</string>
<string name="poi_radar_tower">Radarturm</string>
<string name="poi_diplomatic_services_citizen_services_no">nein</string>
<string name="poi_diplomatic_services_citizen_services_yes">ja</string>
<string name="poi_diplomatic_services_immigrant_visas_no">nein</string>
<string name="poi_diplomatic_services_immigrant_visas_yes">ja</string>
<string name="poi_diplomatic_services_non_immigrant_visas_no">nein</string>
<string name="poi_diplomatic_services_non_immigrant_visas_yes">ja</string>
<string name="poi_liaison_subnational">Subnationales Büro</string>
<string name="poi_liaison_representative_office">Repräsentanzbüro</string>
<string name="poi_liaison_liaison_office">Verbindungsbüro</string>
<string name="poi_consulate_honorary_consul">Honorarkonsul</string>
<string name="poi_consulate_consulate_general">Generalkonsulat</string>
<string name="poi_consulate_consular_office">Konsularbüro</string>
<string name="poi_consulate_consular_agency">Konsularagentur</string>
<string name="poi_consulate_yes">Geleitet von einem Konsul</string>
<string name="poi_embassy_residence">Residenz</string>
<string name="poi_embassy_nunciature">Nuntiatur</string>
<string name="poi_embassy_mission">Mission</string>
<string name="poi_embassy_interests_section">Interessenvertretung</string>
<string name="poi_embassy_high_commission">Hochkommissar</string>
<string name="poi_embassy_delegation">Delegation</string>
<string name="poi_embassy_branch_embassy">Niederlassung</string>
<string name="poi_embassy_yes">Geleitet von einem Botschafter</string>
<string name="poi_diplomatic_liaison">Verbindungsbüro</string>
<string name="poi_diplomatic_embassy">Botschaft</string>
<string name="poi_diplomatic_services_citizen_services_filter">Dienstleistungen für Bürger</string>
<string name="poi_diplomatic_services_immigrant_visas_filter">Einwanderungsvisa</string>
<string name="poi_diplomatic_services_non_immigrant_visas_filter">Nicht-Einwanderungsvisa</string>
<string name="poi_liaison_filter">Verbindungsbüro</string>
<string name="poi_consulate_filter">Konsulat</string>
<string name="poi_embassy_filter">Botschaft</string>
</resources>

View file

@ -3928,13 +3928,13 @@
<string name="complex_routing_descr">Zwei-Phasen-Routenberechnung für die Autonavigation.</string>
<string name="use_native_pt">Native ÖPNV Entwicklung</string>
<string name="use_native_pt_desc">Wechseln zu Java (sicher) Berechnung des ÖPNV-Routings</string>
<string name="osm_edit_logout_success">Abmeldung erfolgreich</string>
<string name="osm_edit_logout_success">Abgemeldet</string>
<string name="file_already_imported">Datei wurde bereits in OsmAnd importiert</string>
<string name="perform_oauth_authorization">Anmelden über OAuth</string>
<string name="clear_osm_token">OpenStreetMap OAuth-Token löschen</string>
<string name="what_is_new">Was ist neu</string>
<string name="snowmobile_render_descr">Für das Schneemobilfahren mit speziellen Straßen und Tracks.</string>
<string name="perform_oauth_authorization_description">Durchführen eines OAuth-Logins zur Nutzung der osmedit-Funktionen</string>
<string name="perform_oauth_authorization_description">Anmelden mit OAuth zur Nutzung der osmedit-Funktionen</string>
<string name="use_two_phase_routing">2-Phasen-A*-Routing-Algorithmus verwenden</string>
<string name="message_need_calculate_route_before_show_graph">%1$s Daten sind nur auf den Straßen verfügbar, Sie müssen eine Route mit \"Route zwischen Punkten\" berechnen, um sie zu erhalten.</string>
<string name="ltr_or_rtl_combine_via_dash">%1$s — %2$s</string>
@ -3957,15 +3957,15 @@
<string name="subscription_expired_title">OsmAnd Live Abonnement ist abgelaufen</string>
<string name="subscription_paused_title">OsmAnd Live Abonnement wurde ausgesetzt</string>
<string name="subscription_on_hold_title">OsmAnd Live Abonnement liegt auf Eis</string>
<string name="login_open_street_map">Anmeldung bei OpenStreetMap</string>
<string name="login_open_street_map_org">Anmeldung bei OpenStreetMap.org</string>
<string name="login_open_street_map">Anmeldung für OpenStreetMap</string>
<string name="login_open_street_map_org">Anmeldung für OpenStreetMap.org</string>
<string name="sign_in_with_open_street_map">Anmelden mit OpenStreetMap</string>
<string name="open_street_map_login_mode">Sie müssen sich anmelden, um Änderungen hochzuladen.
<string name="open_street_map_login_mode">Melden Sie sich an, um Änderungen hochzuladen,
\n
\nSie können sich mit der sicheren OAuth-Methode anmelden oder Ihren Benutzernamen und Ihr Passwort verwenden.</string>
<string name="use_login_password">Benutzername und Passwort verwenden</string>
\nentweder mit OAuth oder mit Ihrem Benutzernamen und Passwort.</string>
<string name="use_login_password">Anmelden mit Benutzername und Passwort</string>
<string name="login_account">Konto</string>
<string name="user_login">Login</string>
<string name="user_login">Benutzername</string>
<string name="markers_history">Historie der Marker</string>
<string name="send_files_to_openstreetmap">GPX-Datei an OpenStreetMap senden</string>
<string name="enter_text_separated">Geben Sie durch Komma getrennte Tags ein.</string>
@ -3975,14 +3975,26 @@
<string name="gpx_upload_trackable_visibility_descr">\"Verfolgbar\" bedeutet, dass die Spur nicht in öffentlichen Auflistungen auftaucht, aber verarbeitete Trackpunkte mit Zeitstempeln davon (die nicht direkt mit Ihnen in Verbindung gebracht werden können) durch Downloads von der öffentlichen GPS API.</string>
<string name="osm_edit_close_note">OSM Notiz schließen</string>
<string name="osm_edit_comment_note">OSM Notiz kommentieren</string>
<string name="osm_login_descr">Sie können sich mit der sicheren OAuth-Methode anmelden oder Ihren Benutzernamen und Passwort verwenden.</string>
<string name="osm_login_descr">Melden Sie sich mit der sicheren OAuth-Methode an oder verwenden Sie Ihren Benutzernamen und Ihr Passwort.</string>
<string name="shared_string_add_photo">Foto hinzufügen</string>
<string name="register_on_openplacereviews">Registrieren bei
\nOpenPlaceReviews.org</string>
<string name="register_on_openplacereviews_desc">Fotos werden vom offenen Datenprojekt OpenPlaceReviews.org zur Verfügung gestellt. Um Ihre Fotos hochladen zu können, müssen Sie sich auf der Website anmelden.</string>
<string name="register_on_openplacereviews_desc">Melden Sie sich auf der Open Data Website OpenPlaceReviews.org an, um noch mehr Fotos hochzuladen.</string>
<string name="register_opr_create_new_account">Neues Konto erstellen</string>
<string name="register_opr_have_account">Ich habe bereits ein Konto</string>
<string name="shared_string_search_history">Suchverlauf</string>
<string name="app_mode_kayak">Kajak</string>
<string name="app_mode_motorboat">Motorboot</string>
<string name="add_to_mapillary">Zu Mapillary hinzufügen</string>
<string name="add_to_opr">Zu OpenPlaceReviews hinzufügen</string>
<string name="add_photos_descr">OsmAnd zeigt Fotos aus verschiedenen Quellen:
\nOpenPlaceReviews - POI Fotos;
\nMapillary - Bilder auf Straßenebene;
\nWeb / Wikimedia - POI Fotos, die in OpenStreetMap Daten angegeben sind.</string>
<string name="shared_string_resources">Quellen</string>
<string name="approximate_file_size">Ungefähre Dateigröße</string>
<string name="select_data_to_export">Wählen Sie die Daten aus, die in die Datei exportiert werden sollen.</string>
<string name="file_size_needed_for_import">Benötigt für Import</string>
<string name="export_not_enough_space_descr">Ihr Gerät hat nur %1$s Speicherplatz frei. Bitte machen Sie etwas Platz frei oder heben Sie die Auswahl einiger zu exportierender Objekte auf.</string>
<string name="export_not_enough_space">Es gibt nicht genug Speicherplatz</string>
</resources>

View file

@ -3980,4 +3980,14 @@
<string name="shared_string_search_history">Serĉi en historio</string>
<string name="app_mode_kayak">Kajako</string>
<string name="app_mode_motorboat">Motorboato</string>
<string name="add_photos_descr">OsmAnd montras fotojn el diversaj fontoj:
\nOpenPlaceReviews fotoj de interesejoj;
\nMapillary stratnivela fotaro;
\ninterreto, Vikimedio fotoj de interesejoj difinitaj en OpenStreetMap-datumoj.</string>
<string name="shared_string_resources">Rimedoj</string>
<string name="approximate_file_size">Proksimuma dosiergrando</string>
<string name="select_data_to_export">Elektu datumojn por elporti al dosiero.</string>
<string name="file_size_needed_for_import">Necesa por enporti</string>
<string name="export_not_enough_space_descr">En via aparato estas nur %1$s da libera spaco. Liberigu iom da spaco aŭ malelektu iujn elementojn de elporto.</string>
<string name="export_not_enough_space">Mankas spaco</string>
</resources>

View file

@ -1749,7 +1749,7 @@
<string name="poi_podiatrist">Oin-sendagile</string>
<string name="poi_tax_advisor">Zerga aholkularien bulegoa</string>
<string name="poi_ice_stock">Ice stock kirola</string>
<string name="poi_korfbal">Korfbal</string>
<string name="poi_korfbal">Korfball</string>
<string name="poi_paddle_tennis">Paddle tenisa</string>
<string name="poi_racquet">Erraketa (kirol tresna)</string>
<string name="poi_rugby_union">Errugbi elkartea</string>
@ -2592,7 +2592,7 @@
<string name="poi_pump_powered">Motorizatua</string>
<string name="poi_pump_no">Bonba gabekoa</string>
<string name="poi_water_characteristic_mineral">Minerala</string>
<string name="poi_water_characteristic_mud">Uraren ezaugarria: lokatza</string>
<string name="poi_water_characteristic_mud">Lokatza</string>
<string name="poi_water_characteristic_sulfuric">Sulfurikoa</string>
<string name="poi_water_point">Ur-puntua</string>
<string name="poi_information_guidepost">Poste adierazlea</string>
@ -3549,18 +3549,18 @@
<string name="poi_rtsa_scale_filter">Zailtasun-kategoria</string>
<string name="poi_rtsa_scale_nc">н/к</string>
<string name="poi_rtsa_scale_nc_asterisk">н/к*</string>
<string name="poi_rtsa_scale_1a">1А</string>
<string name="poi_rtsa_scale_1a">1A</string>
<string name="poi_rtsa_scale_1a_asterisk">1А*</string>
<string name="poi_rtsa_scale_1b">1Б</string>
<string name="poi_rtsa_scale_1b_asterisk">1Б*</string>
<string name="poi_rtsa_scale_2a">2А</string>
<string name="poi_rtsa_scale_2a_asterisk">2А*</string>
<string name="poi_rtsa_scale_2b">2Б</string>
<string name="poi_rtsa_scale_2b_asterisk">2Б*</string>
<string name="poi_rtsa_scale_3a">3А</string>
<string name="poi_rtsa_scale_3a_asterisk">3А*</string>
<string name="poi_rtsa_scale_3b">3Б</string>
<string name="poi_rtsa_scale_3b_asterisk">3Б*</string>
<string name="poi_rtsa_scale_1b">1B</string>
<string name="poi_rtsa_scale_1b_asterisk">1B*</string>
<string name="poi_rtsa_scale_2a">2A</string>
<string name="poi_rtsa_scale_2a_asterisk">2A*</string>
<string name="poi_rtsa_scale_2b">2B</string>
<string name="poi_rtsa_scale_2b_asterisk">2B*</string>
<string name="poi_rtsa_scale_3a">3A</string>
<string name="poi_rtsa_scale_3a_asterisk">3A*</string>
<string name="poi_rtsa_scale_3b">3B</string>
<string name="poi_rtsa_scale_3b_asterisk">3B*</string>
<string name="poi_change_delete">Ezabatutako objektua</string>
<string name="poi_health_specialty_radiotherapy_yes">Erradioterapia</string>
<string name="poi_climbing_crag">Bai</string>
@ -3789,7 +3789,7 @@
<string name="poi_booth">Kabina mota</string>
<string name="poi_video_yes">Bai</string>
<string name="poi_video_no">Ez</string>
<string name="poi_internet_access_fee_customers">Zutoina aurkitzeko seinalea</string>
<string name="poi_internet_access_fee_customers">Internet sarbidea: Bezeroak</string>
<string name="poi_traffic_signals_sound_locate">Ibiltzea baimenduta dagoenean soilik</string>
<string name="poi_tactile_paving_contrasted">Kontrastatua</string>
<string name="poi_tactile_paving_primitive">Primitiboa</string>
@ -3803,7 +3803,7 @@
<string name="poi_seamark_water_level_awash">Ur maila: boladaka</string>
<string name="poi_drinking_water_refill_network">Edateko ura betetzeko sarea</string>
<string name="poi_drinking_water_refill_no">Edateko ura betetzeko: ez</string>
<string name="poi_drinking_water_refill_yes">Edateko ura betetzeko: bai</string>
<string name="poi_drinking_water_refill_yes">Bai</string>
<string name="poi_seamark_obstruction">Trabatzea</string>
<string name="poi_seamark_water_level_below_mwl">Ur maila: batezbestekotik behera</string>
<string name="poi_seamark_water_level_above_mwl">Ur maila: batezbestekotik gora</string>

File diff suppressed because it is too large Load diff

View file

@ -3846,4 +3846,19 @@
<string name="poi_parking_rooftop">Cobertura</string>
<string name="poi_gpx_point">Puntu GPX</string>
<string name="poi_radar_tower">Torre ràdar</string>
<string name="poi_diplomatic_services_citizen_services_no">Nono</string>
<string name="poi_diplomatic_services_citizen_services_yes">Eja</string>
<string name="poi_diplomatic_services_immigrant_visas_no">Nono</string>
<string name="poi_diplomatic_services_immigrant_visas_yes">Eja</string>
<string name="poi_diplomatic_services_non_immigrant_visas_no">Nono</string>
<string name="poi_diplomatic_services_non_immigrant_visas_yes">Eja</string>
<string name="poi_liaison_liaison_office">Ufìtziu</string>
<string name="poi_consulate_consulate_general">Consoladu generale</string>
<string name="poi_embassy_residence">Residèntzia</string>
<string name="poi_embassy_mission">Missione</string>
<string name="poi_embassy_high_commission">Commissione arta</string>
<string name="poi_embassy_delegation">Delegatzione</string>
<string name="poi_diplomatic_embassy">Ambassada</string>
<string name="poi_consulate_filter">Consoladu</string>
<string name="poi_embassy_filter">Ambassada</string>
</resources>

View file

@ -786,7 +786,7 @@
<string name="use_fluorescent_overlays">Subrapositziones fluorescentes</string>
<string name="use_fluorescent_overlays_descr">Imprea colores fluorescentes pro visualizzare rastas e àndalas.</string>
<string name="offline_edition">Modìficas chene lìnia</string>
<string name="offline_edition_descr">Si sa sa modìfica chene lìnia est abilitada, sas modìficas ant a èssere sarvadas in locale, in antis, e carrigadas si benit pedidu. Si nono, ant a èssere carrigadas immediatamente.</string>
<string name="offline_edition_descr">Si sa modìfica chene lìnia est abilitada, sas modìficas ant a èssere sarvadas in locale, in antis, e carrigadas si benit pedidu. Si nono, ant a èssere carrigadas immediatamente.</string>
<string name="update_poi_does_not_change_indexes">Sa modìficas de sos PDI intre saplicatzione non tenent efetos in sas mapas iscarrigadas, sunt imbetzes sarvadas in su dispositivu.</string>
<string name="local_openstreetmap_were_uploaded">{0} PDI/notas carrigados/as</string>
<string name="local_openstreetmap_upload">Càrriga sa modìfica in OSM</string>
@ -2639,7 +2639,7 @@
<string name="copy_location_name">Còpia sa positzione/su nùmene de su PDI</string>
<string name="toast_empty_name_error">Logu chene nùmene</string>
<string name="show_closed_notes">Ammustra sas notas serradas</string>
<string name="switch_osm_notes_visibility_desc">Ammustra/cua sas notas OSM in sa mapa.</string>
<string name="switch_osm_notes_visibility_desc">Ammustra o cua sas notas OSM in sa mapa.</string>
<string name="gpx_file_desc">GPX - adatu pro s\'esportatzione a JOSM o a àteros editores OSM.</string>
<string name="osc_file_desc">OSC - adatu pro s\'esportatzione in OpenStreetmap.</string>
<string name="shared_string_gpx_file">Documentu GPX</string>
@ -3084,9 +3084,9 @@
<string name="application_profiles_descr">Ischerta sos profilos chi cheres chi siant visìbiles in saplicatzione.</string>
<string name="application_profiles">Profilos de s\'aplicatzione</string>
<string name="quick_action_need_to_add_item_to_list">Annanghe a su mancu un\'elementu a sa lista in sas impostatziones pro sas atziones lestras</string>
<string name="routing_attr_piste_type_downhill_name">Iscì alpinu/de achirrada</string>
<string name="routing_attr_piste_type_downhill_name">Iscì alpinu e de achirrada</string>
<string name="routing_attr_piste_type_downhill_description">Pistas pro iscì alpinu o de achirrada e atzessu a sos impiantos de artiada.</string>
<string name="routing_attr_piste_type_nordic_name">Iscì de fundu/nòrdicu</string>
<string name="routing_attr_piste_type_nordic_name">Iscì de fundu e nòrdicu</string>
<string name="routing_attr_piste_type_nordic_description">Pistas pro s\'iscì nòrdicu o de fundu.</string>
<string name="routing_attr_piste_type_skitour_name">Iscì-alpinismu</string>
<string name="routing_attr_piste_type_skitour_description">Àndalas pro s\'iscì-alpinismu.</string>
@ -3577,7 +3577,7 @@
<string name="shared_string_hillshade">Umbraduras de sos rilievos</string>
<string name="n_items_of_z">%1$s de %2$s</string>
<string name="download_slope_maps">Pistas</string>
<string name="quick_action_show_hide_terrain">Ammustra / cua su terrinu</string>
<string name="quick_action_show_hide_terrain">Ammustra o cua su terrinu</string>
<string name="quick_action_terrain_hide">Cua su terrinu</string>
<string name="quick_action_terrain_show">Ammustra su terrinu</string>
<string name="quick_action_terrain_descr">Unu butone pro ammustrare o cuare s\'istratu de su terrinu in sa mapa.</string>
@ -3695,11 +3695,11 @@
<string name="additional_actions_descr">Podes atzèdere a custas atziones incarchende su butone \"%1$s\".</string>
<string name="quick_action_transport_hide">Cua sos trasportos pùblicos</string>
<string name="quick_action_transport_show">Ammustra sos trasportos pùblicos</string>
<string name="quick_action_show_hide_transport">Ammustra/cua sos trasportos pùblicos</string>
<string name="quick_action_show_hide_transport">Ammustra o cua sos trasportos pùblicos</string>
<string name="quick_action_transport_descr">Butone pro ammustrare o cuare sos trasportos pùblicos in sa mapa.</string>
<string name="create_edit_poi">Crea / Modìfica unu PDI</string>
<string name="create_edit_poi">Crea o modìfica unu PDI</string>
<string name="parking_positions">Logos de parchègiu</string>
<string name="add_edit_favorite">Annanghe / Modìfica unu preferidu</string>
<string name="add_edit_favorite">Annanghe o modìfica unu preferidu</string>
<string name="reset_deafult_order">Riprìstina s\'òrdine predefinidu de sos elementos</string>
<string name="back_to_editing">Torra a modificare</string>
<string name="quick_action_switch_profile_descr">Su butone de atzione faghet colare dae unu profilu ischertadu a s\'àteru.</string>
@ -3852,7 +3852,7 @@
<string name="gpx_monitoring_start">Sighi cun sa registratzione de su biàgiu</string>
<string name="marker_save_as_track">Sarva comente documentu de rasta</string>
<string name="number_of_gpx_files_selected_pattern">%s documentos de rasta ischertados</string>
<string name="save_global_track_interval_descr">Dislinda sintervallu pro sa registratzione generale de sas rastas (abilitadu pro mèdiu de su widget registratzione GPX in sa mapa).</string>
<string name="save_global_track_interval_descr">Dislinda sintervallu pro sa registratzione generale de sas rastas (allutu pro mèdiu de su widget \'Registratzione GPX\' in sa mapa).</string>
<string name="monitoring_control_start">Registra</string>
<string name="shared_string_gpx_route">Àndala de una rasta</string>
<string name="follow_track">Sighi sa rasta</string>
@ -3887,7 +3887,7 @@
<string name="shared_string_redo">Torra a fàghere</string>
<string name="release_3_8">• Funtzionalidade de pranificatione de un\'àndala agiornada: permitit de impreare castas diferentes de navigatzione pro segmentu e s\'inclusione de rastas
\n
\n • Menù de Aparèntzia nou pro sas rastas: ischerta su colore, grussària, visulaizatzione de sas fritzas de diretzione, iconas de incumintzu/fine
\n • Menù de Aparèntzia nou pro sas rastas: ischerta su colore, grussària, visulaizatzione de sas fritzas de diretzione, iconas de incumintzu e fine
\n
\n • Visibilidade megiorada de sos nodos pro sas bitzicletas.
\n
@ -3903,7 +3903,7 @@
<string name="sort_last_modified">Ùrtima modìfica</string>
<string name="sort_name_descending">Nùmene: Z A</string>
<string name="sort_name_ascending">Nùmene: A Z</string>
<string name="start_finish_icons">Iconas de incumintzu/fine</string>
<string name="start_finish_icons">Iconas de incumintzu e fine</string>
<string name="contour_lines_thanks">Gràtzias pro àere comporadu \'Curvas de livellu\'</string>
<string name="osm_live_payment_desc_hw">Costu periòdicu de s\'abbonamentu. Lu podes anullare in AppGallery cando boles.</string>
<string name="osm_live_payment_subscription_management_hw">Su pagamentu at a èssere addebitadu a su contu tuo de AppGallery cando sa còmpora at a èssere cunfirmada.
@ -3923,7 +3923,7 @@
<string name="perform_oauth_authorization_description">Intra cun OAuth pro impreare sas funtzionalidades osmedit</string>
<string name="perform_oauth_authorization">Intra impreende OAuth</string>
<string name="clear_osm_token">Iscantzella su getone OAuth de OpenStreetMap</string>
<string name="osm_edit_logout_success">Essida fata chene problemas</string>
<string name="osm_edit_logout_success">Essidu</string>
<string name="file_already_imported">Su documentu est giai importadu in OsmAnd</string>
<string name="use_two_phase_routing">Imprea un\'algoritmu de càrculu de s\'àndala A* a duas fases</string>
<string name="snowmobile_render_descr">Pro sa ghia de motoislitas cun caminos e rastas dedicados.</string>
@ -3947,13 +3947,13 @@
<string name="message_you_need_add_two_points_to_show_graphs">Depes annànghere a su mancu duos puntos</string>
<string name="login_open_street_map">Intra in OpenStreetMap</string>
<string name="login_open_street_map_org">Intra in OpenStreetMap.org</string>
<string name="sign_in_with_open_street_map">Identìfica·ti cun OpenStreetMap</string>
<string name="open_street_map_login_mode">Depes intrare pro pòdere carrigare modìficas noas o mudadas.
<string name="sign_in_with_open_street_map">Intra cun OpenStreetMap</string>
<string name="open_street_map_login_mode">Intra pro carrigare modìficas noas o mudadas,
\n
\nPodes intrare impreende su mètodu seguru OAuth o cun s\'identificadore (su nùmene de impreadore) tuo e sa crae de intrada tua.</string>
<string name="use_login_password">Imprea un\'identificadore e una crae de intrada</string>
\nimpreende su mètodu seguru OAuth o cun su nùmene de impreadore tuo e sa crae de intrada tua.</string>
<string name="use_login_password">Intra cun unu nùmene de impreadore e una crae de intrada</string>
<string name="login_account">Contu</string>
<string name="user_login">Identificadore</string>
<string name="user_login">Nùmene impreadore</string>
<string name="manage_subscription">Amministra s\'abbonamentu</string>
<string name="subscription_payment_issue_title">B\'at unu problema cun s\'abbonamentu tuo. Incarca su butone pro andare a sas impostatziones de sos abbonamentos de Google Play pro acontzare sa manera de pagamentu tua.</string>
<string name="subscription_expired_title">S\'abbonamentu de OsmAnd Live est iscadidu</string>
@ -3962,8 +3962,8 @@
<string name="markers_history">Cronologia de sos marcadores</string>
<string name="send_files_to_openstreetmap">Imbia unu documentu GPX a OpenStreetMap</string>
<string name="enter_text_separated">Inserta sas etichetas iscrobadas dae vìrgulas.</string>
<string name="gpx_upload_public_visibility_descr">Pùblica cheret nàrrere chi sa rasta at a èssere ammustrada in manera pùblica in sas rastas GPS tuas e in sas listas de rastas GPS pùblicas. Sos datos frunidos pro mèdiu de s\'API non sunt ligados a sa pàgina de sa rasta tua. Sas datas integradas in sos puntos de rasta no ant a èssere a disponimentu pro mèdiu de s\'API GPS, e sos puntos no ant a èssere ordinados in manera cronològica. Nointames custu sos àteros impreadores ant a pòdere iscarrigare sa rasta su matessi dae sa lista pùblica de sas rastas cun totu sas datas e sas oras integradas.</string>
<string name="gpx_upload_private_visibility_descr">Privada cheret nàrrere chi sa rasta no at a èssere ammustrada in peruna lista, ma sos puntos suos ant a èssere a disponimentu su matessi pro mèdiu de s\'API GPS pùblicu chene datas e oras ma no ant a èssere ordinados in manera cronològica.</string>
<string name="gpx_upload_public_visibility_descr">\"Pùblica\" cheret nàrrere chi sa rasta at a èssere ammustrada in manera pùblica in sas rastas GPS tuas, in sas listas de rastas GPS pùblicas e in sa lista de rastas pùblicas cun datas e oras in forma originale. Sos datos frunidos pro mèdiu de s\'API non sunt ligados a sa pàgina de sa rasta tua. Sas datas e sas oras integradas in sos puntos de rasta no ant a èssere a disponimentu pro mèdiu de s\'API GPS, e sos puntos no ant a èssere ordinados in manera cronològica.</string>
<string name="gpx_upload_private_visibility_descr">\"Privada\" cheret nàrrere chi sa rasta no at a èssere ammustrada in peruna lista, ma sos puntos suos ant a èssere a disponimentu su matessi, in òrdine cronològicu, pro mèdiu de s\'API GPS pùblica chene datas e oras.</string>
<string name="gpx_upload_identifiable_visibility_descr">\"Identificàbile\" cheret nàrrere chi sa rasta at a èssere ammustrada in manera pùblica in sas rastas GPS tuas e in sas listas de rastas GPS pùblicas. Est a nàrrere chi àteros impreadores ant a pòdere iscarrigare sa rasta e l\'ant a pòdere assotziare a su nùmene de impreadore tuo. Sos puntos de rastas cun datas e oras dae s\'API GPS frunidos pro mèdiu de s\'API de sos puntos de sas rastas ant a èssere ligados a sa pàgina de sa rasta originale tua.</string>
<string name="gpx_upload_trackable_visibility_descr">\"Arrastàbile\" cheret nàrrere chi sa rasta no at a èssere ammustrada in peruna lista pùblica, ma sos puntos suos cun sas datas (no ant a èssere assotziados diretamente cun tie) l\'ant a èssere pro mèdiu de iscarrigamentos dae s\'API GPS pùblica.</string>
<string name="osm_edit_close_note">Serra sa nota de OSM</string>

View file

@ -304,9 +304,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
}
mapActions = new MapActivityActions(this);
mapLayers = new MapActivityLayers(this);
if (mapViewTrackingUtilities == null) {
mapViewTrackingUtilities = new MapViewTrackingUtilities(app);
}
dashboardOnMap.createDashboardView();
checkAppInitialization();

View file

@ -819,7 +819,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
}
}
});
mapInfoLayer.registerSideWidget(recordControl, new AudioVideoNotesWidgetState(app), "audionotes", false, 32);
mapInfoLayer.registerSideWidget(recordControl, new AudioVideoNotesWidgetState(app, AV_DEFAULT_ACTION), "audionotes", false, 32);
mapInfoLayer.recreateControls();
}
}
@ -2153,20 +2153,23 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
return DashAudioVideoNotesFragment.FRAGMENT_DATA;
}
public class AudioVideoNotesWidgetState extends WidgetState {
public static class AudioVideoNotesWidgetState extends WidgetState {
private final CommonPreference<Integer> defaultActionSetting;
private static final int AV_WIDGET_STATE_ASK = R.id.av_notes_widget_state_ask;
private static final int AV_WIDGET_STATE_AUDIO = R.id.av_notes_widget_state_audio;
private static final int AV_WIDGET_STATE_VIDEO = R.id.av_notes_widget_state_video;
private static final int AV_WIDGET_STATE_PHOTO = R.id.av_notes_widget_state_photo;
AudioVideoNotesWidgetState(OsmandApplication ctx) {
AudioVideoNotesWidgetState(OsmandApplication ctx, CommonPreference<Integer> defaultActionSetting) {
super(ctx);
this.defaultActionSetting = defaultActionSetting;
}
@Override
public int getMenuTitleId() {
Integer action = AV_DEFAULT_ACTION.get();
Integer action = defaultActionSetting.get();
switch (action) {
case AV_DEFAULT_ACTION_AUDIO:
return R.string.av_def_action_audio;
@ -2181,7 +2184,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public int getMenuIconId() {
Integer action = AV_DEFAULT_ACTION.get();
Integer action = defaultActionSetting.get();
switch (action) {
case AV_DEFAULT_ACTION_AUDIO:
return R.drawable.ic_action_micro_dark;
@ -2196,7 +2199,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public int getMenuItemId() {
Integer action = AV_DEFAULT_ACTION.get();
Integer action = defaultActionSetting.get();
switch (action) {
case AV_DEFAULT_ACTION_AUDIO:
return AV_WIDGET_STATE_AUDIO;
@ -2226,19 +2229,14 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public void changeState(int stateId) {
switch (stateId) {
case AV_WIDGET_STATE_AUDIO:
AV_DEFAULT_ACTION.set(AV_DEFAULT_ACTION_AUDIO);
break;
case AV_WIDGET_STATE_VIDEO:
AV_DEFAULT_ACTION.set(AV_DEFAULT_ACTION_VIDEO);
break;
case AV_WIDGET_STATE_PHOTO:
AV_DEFAULT_ACTION.set(AV_DEFAULT_ACTION_TAKEPICTURE);
break;
default:
AV_DEFAULT_ACTION.set(AV_DEFAULT_ACTION_CHOOSE);
break;
if (stateId == AV_WIDGET_STATE_AUDIO) {
defaultActionSetting.set(AV_DEFAULT_ACTION_AUDIO);
} else if (stateId == AV_WIDGET_STATE_VIDEO) {
defaultActionSetting.set(AV_DEFAULT_ACTION_VIDEO);
} else if (stateId == AV_WIDGET_STATE_PHOTO) {
defaultActionSetting.set(AV_DEFAULT_ACTION_TAKEPICTURE);
} else {
defaultActionSetting.set(AV_DEFAULT_ACTION_CHOOSE);
}
}
}

View file

@ -436,7 +436,12 @@ public class QuickSearchHelper implements ResourceListener {
SearchResult sr = new SearchResult(phrase);
PointDescription pd = point.getName();
if (pd.isPoiType()) {
AbstractPoiType pt = MapPoiTypes.getDefault().getAnyPoiTypeByKey(pd.getName());
String name = pd.getName();
MapPoiTypes mapPoiTypes = MapPoiTypes.getDefault();
AbstractPoiType pt = mapPoiTypes.getAnyPoiTypeByKey(name);
if (pt == null) {
pt = mapPoiTypes.getAnyPoiAdditionalTypeByKey(name);
}
if (pt != null) {
sr.localeName = pt.getTranslation();
sr.object = pt;

View file

@ -221,18 +221,13 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.switch_compat:
onSwitchClick();
break;
case R.id.left_button:
setupTerrainMode(HILLSHADE);
break;
case R.id.right_button:
setupTerrainMode(SLOPE);
break;
default:
break;
int id = view.getId();
if (id == R.id.switch_compat) {
onSwitchClick();
} else if (id == R.id.left_button) {
setupTerrainMode(HILLSHADE);
} else if (id == R.id.right_button) {
setupTerrainMode(SLOPE);
}
}

View file

@ -191,13 +191,13 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
private boolean wasZoomInMultiTouch;
private float elevationAngle;
public OsmandMapTileView(MapActivity activity, int w, int h) {
public OsmandMapTileView(Activity activity, int w, int h) {
this.activity = activity;
init(activity, w, h);
}
// ///////////////////////////// INITIALIZING UI PART ///////////////////////////////////
public void init(final MapActivity ctx, int w, int h) {
public void init(final Activity ctx, int w, int h) {
application = (OsmandApplication) ctx.getApplicationContext();
settings = application.getSettings();
@ -256,7 +256,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
if (isZoomingAllowed(getZoom(), -1.1f)) {
getAnimatedDraggingThread().startZooming(getZoom() - 1, currentViewport.getZoomFloatPart(), false);
if (wasMapLinkedBeforeGesture) {
ctx.getMapViewTrackingUtilities().setMapLinkedToLocation(true);
application.getMapViewTrackingUtilities().setMapLinkedToLocation(true);
}
}
}
@ -1318,7 +1318,9 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
angle = 90f;
}
this.elevationAngle = angle;
((MapActivity) activity).setMapElevation(angle);
if (activity instanceof MapActivity) {
((MapActivity) activity).setMapElevation(angle);
}
}
private boolean isZoomingAllowed(int baseZoom, float dz) {
@ -1341,7 +1343,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback {
@Override
public boolean onDown(MotionEvent e) {
// Facilitates better map re-linking for two finger tap zoom out
wasMapLinkedBeforeGesture = ((MapActivity) activity).getMapViewTrackingUtilities().isMapLinkedToLocation();
wasMapLinkedBeforeGesture = application.getMapViewTrackingUtilities().isMapLinkedToLocation();
return false;
}