Merge current version into branch

This commit is contained in:
IsiGebauer 2025-01-12 22:06:12 +01:00
commit d5ed80c395
No known key found for this signature in database
GPG key ID: 65BE6ED421A3F911
902 changed files with 52704 additions and 21384 deletions

75
.github/CODEOWNERS vendored
View file

@ -1,9 +1,66 @@
# Require legal approval for all new graphics
android/app/src/main/res/drawable*/ @organicmaps/legal
android/app/src/main/res/fonts/ @organicmaps/legal
android/app/src/main/res/mipmap*/ @organicmaps/legal
data/*.ttf @organicmaps/legal
data/resources*/ @organicmaps/legal
data/search-icons/ @organicmaps/legal
data/styles/clear/style-*/ @organicmaps/legal
iphone/Maps/Images.xcassets/ @organicmaps/legal
# All non-assigned.
* @organicmaps/mergers
# Visual design.
android/app/src/main/res/drawable*/ @organicmaps/design
android/app/src/main/res/font/ @organicmaps/design
android/app/src/main/res/mipmap*/ @organicmaps/design
data/*.ttf @organicmaps/design
data/resources*/ @organicmaps/design
data/search-icons/ @organicmaps/design
data/styles/default/light/**/*.png @organicmaps/design
data/styles/default/light/**/*.svg @organicmaps/design
data/styles/default/dark/**/*.png @organicmaps/design
data/styles/default/dark/**/*.svg @organicmaps/design
iphone/Maps/Images.xcassets/ @organicmaps/design
# Android.
android/ @organicmaps/android
android/app/src/main/java/app/organicmaps/car/ @organicmaps/android-auto
docs/ANDROID_LOCATION_TEST.md @organicmaps/android
docs/JAVA_STYLE.md @organicmaps/android
# iOS.
iphone/ @organicmaps/ios
xcode/ @organicmaps/ios
docs/OBJC_STYLE.md @organicmaps/ios
# Qt
qt/ @organicmaps/qt
# Rendering
drape/ @organicmaps/rendering
drape_frontend/ @organicmaps/rendering
# Map Data.
tools/python/maps_generator/ @organicmaps/data
generator/ @organicmaps/data
topography_generator/ @organicmaps/data
data/borders/ @organicmaps/data
data/conf/isolines/ @organicmaps/data
docs/SUBWAY_GENERATION.md @organicmaps/data
docs/MAPS.md @organicmaps/data
docs/EXPERIMENTAL_PUBLIC_TRANSPORT_SUPPORT.md @organicmaps/data
# Map Styles.
data/styles/ @organicmaps/styles
data/types.txt @organicmaps/styles
data/visibility.txt @organicmaps/styles
data/mapcss-mapping.csv @organicmaps/styles
data/replaced_tags.txt @organicmaps/styles
data/classificator.txt @organicmaps/styles
data/drules_* @organicmaps/styles
docs/STYLES.md
tools/kothic/ @organicmaps/styles
# DevOps.
.github/workflows @organicmaps/devops
android/*gradle* @organicmaps/devops
docs/RELEASE_MANAGEMENT.md @organicmaps/devops
xcode/fastlane/ @organicmaps/devops
# Growth.
README.md @organicmaps/growth
.github/FUNDING.yml @organicmaps/growth
android/app/src/fdroid/play/ @organicmaps/growth
android/app/src/google/play/ @organicmaps/growth
iphone/metadata/ @organicmaps/growth
# Legal.
LEGAL @organicmaps/legal
LICENSE @organicmaps/legal
NOTICE @organicmaps/legal
CONTRIBUTORS @organicmaps/legal
docs/CODE_OF_CONDUCT.md @organicmaps/legal
docs/DCO.md @organicmaps/legal
docs/GOVERNANCE.md @organicmaps/legal

View file

@ -56,19 +56,24 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Checkout private keys
uses: actions/checkout@v4
with:
repository: ${{ secrets.PRIVATE_REPO }}
ssh-key: ${{ secrets.PRIVATE_SSH_KEY }}
ref: master
path: private.git
- name: Configure repo with private keys
- name: Restore beta keys
shell: bash
run: |
./configure.sh ./private.git
rm -rf ./private.git
echo "$PRIVATE_H" | base64 -d > private.h
echo "$FIREBASE_APP_DISTRIBUTION_JSON" | base64 -d > android/app/firebase-app-distribution.json
echo "$GOOGLE_SERVICES_JSON" | base64 -d > android/app/google-services.json
echo "$SECURE_PROPERTIES" | base64 -d > android/app/secure.properties
echo "$RELEASE_KEYSTORE" | base64 -d > android/app/release.keystore
env:
PRIVATE_H: ${{ secrets.PRIVATE_H }}
FIREBASE_APP_DISTRIBUTION_JSON: ${{ secrets.FIREBASE_APP_DISTRIBUTION_JSON }}
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
- name: Configure repository
shell: bash
run: ./configure.sh
- name: Compile
shell: bash

View file

@ -51,7 +51,7 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Configure in Open Source mode
- name: Configure repository
shell: bash
run: ./configure.sh
@ -66,11 +66,11 @@ jobs:
strategy:
fail-fast: false
matrix:
flavor: [WebDebug, FdroidBeta]
flavor: [WebDebug, FdroidDebug]
include:
- flavor: WebDebug
arch: arm64
- flavor: FdroidBeta
- flavor: FdroidDebug
arch: arm32
# Cancels previous jobs if the same branch or PR was updated again.
concurrency:
@ -93,7 +93,7 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Configure in Open Source mode
- name: Configure repository
shell: bash
run: ./configure.sh

View file

@ -56,19 +56,26 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Checkout private keys
uses: actions/checkout@v4
with:
repository: ${{ secrets.PRIVATE_REPO }}
ssh-key: ${{ secrets.PRIVATE_SSH_KEY }}
ref: master
path: private.git
- name: Configure repo with private keys
- name: Restore beta keys
shell: bash
run: |
./configure.sh ./private.git
rm -rf ./private.git
echo "$PRIVATE_H" | base64 -d > private.h
echo "$FIREBASE_TEST_LAB_JSON" | base64 -d > android/app/firebase-test-lab.json
echo "$FIREBASE_APP_DISTRIBUTION_JSON" | base64 -d > android/app/firebase-app-distribution.json
echo "$GOOGLE_SERVICES_JSON" | base64 -d > android/app/google-services.json
echo "$SECURE_PROPERTIES" | base64 -d > android/app/secure.properties
echo "$RELEASE_KEYSTORE" | base64 -d > android/app/release.keystore
env:
PRIVATE_H: ${{ secrets.PRIVATE_H }}
FIREBASE_TEST_LAB_JSON: ${{ secrets.FIREBASE_TEST_LAB_JSON }}
FIREBASE_APP_DISTRIBUTION_JSON: ${{ secrets.FIREBASE_APP_DISTRIBUTION_JSON }}
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
- name: Configure repository
shell: bash
run: ./configure.sh
- name: Compile
shell: bash

View file

@ -26,19 +26,14 @@ jobs:
ref: master
path: screenshots
- name: Checkout private keys
uses: actions/checkout@v4
with:
repository: ${{ secrets.PRIVATE_REPO }}
ssh-key: ${{ secrets.PRIVATE_SSH_KEY }}
ref: master
path: private.git
- name: Configure repo with private keys
- name: Restore release keys
shell: bash
run: |
./configure.sh ./private.git
rm -rf ./private.git
echo "$PRIVATE_H" | base64 -d > private.h
echo "$GOOGLE_PLAY_JSON" | base64 -d > android/app/google-play.json
env:
PRIVATE_H: ${{ secrets.PRIVATE_H }}
GOOGLE_PLAY_JSON: ${{ secrets.GOOGLE_PLAY_JSON }}
- name: Upload
shell: bash

View file

@ -100,19 +100,26 @@ jobs:
ref: master
path: screenshots
- name: Checkout private keys
uses: actions/checkout@v4
with:
repository: ${{ secrets.PRIVATE_REPO }}
ssh-key: ${{ secrets.PRIVATE_SSH_KEY }}
ref: master
path: private.git
- name: Configure repo with private keys
- name: Restore release keys
shell: bash
run: |
./configure.sh ./private.git
rm -rf ./private.git
echo "$PRIVATE_H" | base64 -d > private.h
echo "$GOOGLE_PLAY_JSON" | base64 -d > android/app/google-play.json
echo "$HUAWEI_APPGALLERY_JSON" | base64 -d > android/app/huawei-appgallery.json
echo "$AGCONNECT_SERVICES_JSON" | base64 -d > android/app/agconnect-services.json
echo "$SECURE_PROPERTIES" | base64 -d > android/app/secure.properties
echo "$RELEASE_KEYSTORE" | base64 -d > android/app/release.keystore
env:
PRIVATE_H: ${{ secrets.PRIVATE_H }}
GOOGLE_PLAY_JSON: ${{ secrets.GOOGLE_PLAY_JSON }}
HUAWEI_APPGALLERY_JSON: ${{ secrets.HUAWEI_APPGALLERY_JSON }}
AGCONNECT_SERVICES_JSON: ${{ secrets.AGCONNECT_SERVICES_JSON }}
SECURE_PROPERTIES: ${{ secrets.SECURE_PROPERTIES }}
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
- name: Configure repository
shell: bash
run: ./configure.sh
- name: Set up SDK
shell: bash

View file

@ -94,7 +94,7 @@ jobs:
llvm \
gcovr
- name: Configure
- name: Configure repository
shell: bash
run: ./configure.sh

View file

@ -52,18 +52,23 @@ jobs:
- name: Parallel submodules checkout
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
- name: Checkout private keys
uses: actions/checkout@v4
with:
repository: ${{ secrets.PRIVATE_REPO }}
ssh-key: ${{ secrets.PRIVATE_SSH_KEY }}
ref: master
path: private.git
- name: Configure repo with private keys
- name: Restore beta keys
shell: bash
run: |
./configure.sh ./private.git
rm -rf ./private.git
mkdir -p xcode/keys
echo "$PRIVATE_H" | base64 -d > private.h
echo "$APPSTORE_JSON" | base64 -d > xcode/keys/appstore.json
echo "$CERTIFICATES_DEV_P12" | base64 -d > xcode/keys/CertificatesDev.p12
echo "$CERTIFICATES_DISTR_P12" | base64 -d > xcode/keys/CertificatesDistr.p12
env:
PRIVATE_H: ${{ secrets.PRIVATE_H }}
APPSTORE_JSON: ${{ secrets.APPSTORE_JSON }}
CERTIFICATES_DEV_P12: ${{ secrets.CERTIFICATES_DEV_P12 }}
CERTIFICATES_DISTR_P12: ${{ secrets.CERTIFICATES_DISTR_P12 }}
- name: Configure repository
shell: bash
run: ./configure.sh
- name: Compile and upload to TestFlight
run: |

View file

@ -59,7 +59,7 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
- name: Configure
- name: Configure repository
shell: bash
run: ./configure.sh

View file

@ -16,20 +16,13 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout private keys
uses: actions/checkout@v4
with:
repository: ${{ secrets.PRIVATE_REPO }}
ssh-key: ${{ secrets.PRIVATE_SSH_KEY }}
ref: master
path: ./private.git
- name: Configure repo with private keys
- name: Restore release keys
shell: bash
run: |
mkdir -p xcode/keys/
cp -p ./private.git/xcode/keys/appstore.json xcode/keys/
rm -rf ./private.git
mkdir -p xcode/keys
echo "$APPSTORE_JSON" | base64 -d > xcode/keys/appstore.json
env:
APPSTORE_JSON: ${{ secrets.APPSTORE_JSON }}
- name: Checkout screenshots
uses: actions/checkout@v4

View file

@ -67,7 +67,7 @@ jobs:
libqt6positioning6-plugins \
libqt6positioning6
- name: Configure
- name: Configure repository
shell: bash
run: ./configure.sh
@ -134,7 +134,7 @@ jobs:
libqt6positioning6-plugins \
libqt6positioning6
- name: Configure
- name: Configure repository
shell: bash
run: ./configure.sh

View file

@ -57,7 +57,7 @@ jobs:
run: |
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install ninja qt@6
- name: Configure
- name: Configure repository
shell: bash
run: ./configure.sh

3
.gitmodules vendored
View file

@ -4,9 +4,6 @@
[submodule "tools/kothic"]
path = tools/kothic
url = https://github.com/organicmaps/kothic.git
[submodule "tools/macdeployqtfix"]
path = tools/macdeployqtfix
url = https://github.com/aurelien-rainone/macdeployqtfix.git
[submodule "3party/protobuf/protobuf"]
path = 3party/protobuf/protobuf
url = https://github.com/organicmaps/protobuf.git

View file

@ -22,7 +22,6 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
set(EXPAT_DTD OFF)
set(EXPAT_NS ON)
add_subdirectory(expat/expat)
add_library(expat::expat ALIAS expat)
# Configure Jansson library.
set(JANSSON_BUILD_DOCS OFF)

@ -1 +1 @@
Subproject commit 6b3f93c6caa0308455beeced0268cfae04df3584
Subproject commit a0dc7d5efacbe2b744211289c276e2b9168bd4ae

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.22.1)
project(omim C CXX)
set(CMAKE_CXX_STANDARD 20)
@ -163,6 +163,7 @@ option(SKIP_QT_GUI "Skip building of Qt GUI" OFF)
option(USE_PCH "Use precompiled headers" OFF)
option(NJOBS "Number of parallel processes" OFF)
option(ENABLE_VULKAN_DIAGNOSTICS "Enable Vulkan diagnostics" OFF)
option(ENABLE_TRACE "Enable Tracing" OFF)
if (NJOBS)
message(STATUS "Number of parallel processes: ${NJOBS}")
@ -219,6 +220,11 @@ if (ENABLE_VULKAN_DIAGNOSTICS)
add_definitions(-DENABLE_VULKAN_DIAGNOSTICS)
endif()
if (ENABLE_TRACE)
message(STATUS "Tracing is enabled")
add_definitions(-DENABLE_TRACE)
endif()
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# Set environment variables

9
LEGAL Normal file
View file

@ -0,0 +1,9 @@
Certain project resources, including but not limited to domain names, trademarks, hosting accounts, payment accounts, and others, are overseen and managed by Organic Maps OÜ. The governance of these digital assets is subject to policies established by Organic Maps OÜ, in compliance with applicable statutory laws.
Organic Maps OÜ is a legal entity established on 2021-05-01 under the laws of the Republic of Estonia and the European Union, with registration number 16225385. The primary purpose of the entity is to shield the project's members from personal liability and to ensure the legal protection of the project's assets. Official up-to-date information about the entity can be found in the Estonian Business Register:
https://ariregister.rik.ee/eng/company/16225385/Organic-Maps-O%C3%9C
Organic Maps OÜ does not require contributors to transfer copyright ownership and does not retain any copyright over the code contributed to the repository. See the NOTICE file and docs/DCO.md for additional information.
For any legal inquiries, feel free to contact legal@organicmaps.app.

View file

@ -1,6 +1,7 @@
# Organic Maps
<a name="install"/>
<div align="center">
<img src="/qt/res/logo.png" height="100"/>
</div>
<h1 align="center"">Organic Maps</h1>
[Organic Maps](https://organicmaps.app) is a free Android & iOS offline maps app for travellers, tourists, drivers, hikers, and cyclists.
It uses crowd-sourced [OpenStreetMap](https://www.openstreetmap.org) data and is developed with love by the creators of **MapsWithMe** (later renamed to **Maps.Me**) and by our community.
@ -114,6 +115,14 @@ Beloved institutional sponsors below have provided targeted grants to cover some
<a href="https://www.mythic-beasts.com/">Mythic Beasts</a> ISP <a href="https://www.mythic-beasts.com/blog/2021/10/06/improving-the-world-bit-by-expensive-bit/">provides us</a> two virtual servers with 400 TB/month of free bandwidth to host and serve maps downloads and updates.
</td>
</tr>
<tr>
<td>
<a href="https://44plus.vn"><img src="docs/sponsors/44plus.svg" alt="44+ Technologies" width="200px"></a>
</td>
<td>
<a href="https://44plus.vn">44+ Technologies</a> is <a href="https://44plus.vn/organicmaps">providing us </a>with a free dedicated server worth around $12,000/year to serve maps across Vietnam & Southeast Asia.
</td>
</tr>
<tr>
<td>
<a href="https://futo.org"><img src="docs/sponsors/futo.svg" alt="FUTO" width="200px"></a>

View file

@ -22,7 +22,7 @@ buildscript {
googleFirebaseServicesDefault
dependencies {
classpath 'com.android.tools.build:gradle:8.6.1'
classpath 'com.android.tools.build:gradle:8.7.2'
if (googleFirebaseServicesEnabled) {
println('Building with Google Firebase Services')
@ -45,7 +45,6 @@ repositories {
}
apply plugin: 'com.android.application'
apply from: 'secure.properties'
if (googleFirebaseServicesEnabled) {
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
@ -84,11 +83,12 @@ def osName = System.properties['os.name'].toLowerCase()
project.ext.appId = 'app.organicmaps'
project.ext.appName = 'Organic Maps'
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
// I have Java 21 installed, but this doesn't work on MacOS.
//java {
// toolchain {
// languageVersion.set(JavaLanguageVersion.of(17))
// }
//}
android {
namespace 'app.organicmaps'
@ -129,6 +129,11 @@ android {
enableVulkanDiagnostics = project.getProperty('enableVulkanDiagnostics')
}
def enableTrace = 'OFF'
if (project.hasProperty('enableTrace')) {
enableTrace = project.getProperty('enableTrace')
}
cmake {
cppFlags '-fexceptions', '-frtti'
// There is no sense to enable sections without gcc's --gc-sections flag.
@ -136,7 +141,8 @@ android {
'-Wno-extern-c-compat'
arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static',
"-DOS=$osName", '-DSKIP_TESTS=ON', '-DSKIP_TOOLS=ON', "-DUSE_PCH=$pchFlag",
"-DNJOBS=$njobs", "-DENABLE_VULKAN_DIAGNOSTICS=$enableVulkanDiagnostics"
"-DNJOBS=$njobs", "-DENABLE_VULKAN_DIAGNOSTICS=$enableVulkanDiagnostics",
"-DENABLE_TRACE=$enableTrace"
targets 'organicmaps'
}
}
@ -240,6 +246,11 @@ android {
}
}
def securityPropertiesFileExists = file('secure.properties').exists()
if (securityPropertiesFileExists) {
apply from: 'secure.properties'
}
signingConfigs {
debug {
storeFile file('debug.keystore')
@ -249,10 +260,15 @@ android {
}
release {
storeFile file(spropStoreFile)
storePassword spropStorePassword
keyAlias spropKeyAlias
keyPassword spropKeyPassword
if (securityPropertiesFileExists) {
println('The release signing keys are available')
storeFile file(spropStoreFile)
storePassword spropStorePassword
keyAlias spropKeyAlias
keyPassword spropKeyPassword
} else {
println('The release signing keys are unavailable')
}
}
}
@ -325,7 +341,7 @@ android {
externalNativeBuild {
cmake {
version '3.30.3+'
version '3.22.1+'
buildStagingDirectory './nativeOutputs'
path '../../CMakeLists.txt'
}
@ -347,7 +363,7 @@ android {
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.3'
// Google Play Location Services
//
@ -361,11 +377,14 @@ dependencies {
webImplementation 'com.google.android.gms:play-services-location:21.3.0'
googleImplementation 'com.google.android.gms:play-services-location:21.3.0'
huaweiImplementation 'com.google.android.gms:play-services-location:21.3.0'
// This is the microG project's re-implementation which is permissible on
// F-droid because it's Apache-2.0.
fdroidImplementation 'org.microg.gms:play-services-location:0.3.4.240913'
// Google Firebase Services
if (googleFirebaseServicesEnabled) {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:33.2.0')
implementation platform('com.google.firebase:firebase-bom:33.5.1')
// Add the dependencies for the Crashlytics and Analytics libraries
// When using the BoM, you don't specify versions in Firebase library dependencies
implementation 'com.google.firebase:firebase-crashlytics'
@ -376,18 +395,18 @@ dependencies {
// > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
// We don't use Kotlin, but some dependencies are actively using it.
// See https://stackoverflow.com/a/75719642
implementation 'androidx.core:core:1.13.1'
implementation(platform('org.jetbrains.kotlin:kotlin-bom:2.0.20'))
implementation 'androidx.annotation:annotation:1.8.2'
implementation 'androidx.core:core:1.15.0'
implementation(platform('org.jetbrains.kotlin:kotlin-bom:2.0.21'))
implementation 'androidx.annotation:annotation:1.9.1'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.car.app:app:1.7.0-beta01'
implementation 'androidx.car.app:app-projected:1.7.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.fragment:fragment:1.8.2'
implementation 'androidx.car.app:app:1.7.0-beta03'
implementation 'androidx.car.app:app-projected:1.7.0-beta03'
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
implementation 'androidx.fragment:fragment:1.8.5'
implementation 'androidx.preference:preference:1.2.1'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.work:work-runtime:2.9.1'
implementation 'androidx.lifecycle:lifecycle-process:2.8.4'
implementation 'androidx.work:work-runtime:2.10.0'
implementation 'androidx.lifecycle:lifecycle-process:2.8.7'
implementation 'com.google.android.material:material:1.12.0'
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
// https://github.com/organicmaps/organicmaps/issues/6106
@ -443,7 +462,7 @@ task prepareGoogleReleaseListing {
play {
enabled.set(false)
track.set('alpha')
track.set('production')
defaultToAppBundles.set(true)
releaseStatus.set(ReleaseStatus.IN_PROGRESS)
serviceAccountCredentials.set(file('google-play.json'))

View file

@ -0,0 +1 @@
../../../../google/java/app/organicmaps/location

View file

@ -1,18 +0,0 @@
package app.organicmaps.location;
import android.content.Context;
import androidx.annotation.NonNull;
public class LocationProviderFactory
{
public static boolean isGoogleLocationAvailable(@NonNull @SuppressWarnings("unused") Context context)
{
return false;
}
public static BaseLocationProvider getProvider(@NonNull Context context, @NonNull BaseLocationProvider.Listener listener)
{
return new AndroidNativeProvider(context, listener);
}
}

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• Neue OpenStreetMap-Daten vom 22. November
• Hervorhebung des übereinstimmenden Teils der Adresse in Suchergebnissen
• Sortierung des Suchverlaufs nach letzter Nutzung
• Behobene Startabstürze bei einigen älteren Geräten mit Mali-T-GPUs
• Weitere Suchverbesserungen, Übersetzungs-Updates und Fehlerbehebungen

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• Nuevos datos de OpenStreetMap del 22 de noviembre
• Resaltado de la parte coincidente de la dirección en los resultados de búsqueda
• Ordenar el historial de búsquedas por la última vez de uso
• Solucionados los bloqueos al inicio en algunos dispositivos antiguos con GPU Mali-T
• Otras mejoras en la búsqueda, actualizaciones de traducción y correcciones de errores

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• Nouvelles données OpenStreetMap du 22 novembre
• Mise en évidence de la partie correspondante de l'adresse dans les résultats de recherche
• Tri de l'historique des recherches par dernier temps d'utilisation
• Correction des plantages au démarrage sur certains anciens appareils avec des GPU Mali-T
• Autres améliorations de recherche, mises à jour de traduction et corrections de bugs

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• Новые данные OpenStreetMap от 22 ноября
В результатах поиска выделяется совпавшая часть адреса
• История поиска всегда сортируется по времени последнего использования
• Исправлена проблема запуска на некоторых старых устройствах с GPU Mali-T
• Различные улучшения поиска, обновления переводов и исправления ошибок

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,53 +1,53 @@
Our free app does not track you, does not have ads, and it needs your support.
It is constantly being improved by contributors and our small team, in our free time.
If something is wrong or missing on the map, please fix it in <b>OpenStreetMap</b> and see your changes in the future maps update.
If navigation or search doesn't work, please check it on osm.org first, and then email us. We reply to <i>EVERY</i> email, and we'll fix it ASAP!
Наша бесплатна апликација вас не прати, нема рекламе и потребна јој је ваша подршка.
Континуирано се побољшава од стране сарадника и нашег малог тима, у наше слободно време.
Ако нешто није у реду или недостаје на мапи, исправите то на <b>OpenStreetMap-у</b> и видите своје промене у будућим ажурирањима мапа.
Ако навигација или претрага не раде, прво проверите то на osm.org, а затим нам пошаљите е-пошту. Одговарамо на <i>СВАКУ</i> поруку и поправљамо у најкраћем могућем року!
<b>Your feedback and 5-star reviews are the best motivators for us!</b>
<b>Ваше повратне информације и рецензије са 5 звездица су најбољи мотиватори за нас!</b>
Key features:
Кључне карактеристике:
Free, open-source, no ads, no tracking
Detailed offline maps with places that don't exist on Google maps, thanks to the <b>OpenStreetMap</b> community
Cycling routes, hiking trails, and walking paths
Contour lines, elevation profiles, peaks, and slopes
Turn-by-turn walking, cycling, and car navigation with voice guidance and Android Auto
Fast offline search
Bookmarks and tracks export and import in KML, KMZ, GPX formats
Dark mode to protect your eyes
Бесплатно, отвореног кода, без реклама, без праћења
Детаљне мапе без интернета са местима која не постоје на Google мапама, захваљујући <b>OpenStreetMap</b> заједници
Бициклистичке стазе, пешачке стазе и стазе за шетњу
Контурне линије, профили надморске висине, врхови и нагиби
Пешачење, вожња бицикла и навигација скретање-по-скретање са гласовним навођењем и Андроид Аутом
Брза претрага без интернета
Извоз и увоз маркера и путања у KML, KMZ, GPX формату
Тамни режим за заштиту очију
There is no public transport, satellite maps, and other cool features <i>yet</i> in Organic Maps. But with <i>your help and support</i>, we can make better maps step by step.
Нема јавног превоза, сателитских мапа и других занимљивих функција <i>још</i> у Organic Maps-у. Али из <i>вашу помоћ и подршку</i>, можемо постепено направити боље мапе.
Organic Maps is <b>pure and organic, made with love</b>:
Organic Maps је <b>чиста и органска, направљена с љубављу</b>:
Blazing fast offline experience
Respects your privacy
Saves your battery
No unexpected mobile data charges
Simple to use, with only most important features included
Невероватно брзо искуство без интернета
Поштује вашу приватност
Штеди батерију
Нема неочекиваних трошкова мобилних података
Једноставан за употребу, са укљученим само најважнијим функцијама
Free from trackers and other bad stuff:
Без праћења и других лоших ствари:
No ads
No tracking
No data collection
No phoning home
No annoying registration
No mandatory tutorials
No noisy email spam
No push notifications
No crapware
N̶o̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶e̶s̶ Purely organic
Нема реклама
Нема праћења
Нема прикупљања података
Нема телефонирања кући
Нема досадне регистрације
Нема обавезних туторијала
Нема бучне нежељене е-поште
Нема пуш обавештења
Нема crapware-а
Б̶е̶з̶ ̶п̶е̶с̶т̶и̶ц̶и̶да̶ Чисто органско
At Organic Maps, we believe that <b>privacy is a fundamental human right</b>:
Organic Maps, верује да је <b>приватност основно право човека</b>:
• Organic Maps is an indie community-driven open-source project
We protect privacy from Big Tech's prying eyes
Stay safe no matter wherever you are
• Organic Maps пројекат отвореног кода који води заједница
Штитимо приватност од радозналих очију технолошких гиганата
Будите безбедни где год да се налазите
Zero trackers and only minimally required permissions are found according to Exodus Privacy Report.
Према Exodus Privacy Report-у, откривено је нула трагача и само минимално потребне дозволе.
Please visit <b><i>organicmaps.app</i></b> website for additional details and FAQ, and contact us directly at @OrganicMapsApp in Telegram.
Молимо посетите <b><i>organicmaps.app</i></b> веб-сајт за више информација и прочитајте FAQ, контактирајте нас путем Telegram-а директно на адресу @OrganicMapsApp.
Reject surveillance - embrace your freedom.
<b>Give Organic Maps a try!</b>
Одбаците надзор - прихватите своју слободу.
<b>Испробајте Organic Maps!</b>

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• Нови OpenStreetMap подаци са стањем на дан 22. новембра
• Назначен пронађени део адресе у резултатима претраге
• Сортирање историје претраге по времену последњег коришћења
• Исправке грешака при покретању на неким старијим уређајима са графичким процесорима Mali-T GPUs.
• Друга побољшања за претрагу, исправке превода и исправке грешака

View file

@ -1 +1 @@
Open-source, community-driven maps for travelers, tourists, cyclists & hikers
Отворене мапе из заједнице за путнике, туристе, бициклисте и планинаре

View file

@ -1 +1 @@
Offline Organic Maps Hike Bike
Organic Maps — офлајн мапе

View file

@ -1 +1 @@
Organic Maps Offline Hike, Bike, GPS Navigation
Organic Maps, офлајн мапе и GPS навигатор

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• Нові дані OpenStreetMap від 22 листопада
• Адреса підсвічюється в результатах пошуку
• Історія пошука сортується за часом останнього використання
• Виправлення падіння на деяких старих девайсах із Mali-T GPU
• Деякі покращення якості пошуку, уточнення перекладів, виправлення помилок

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,5 +1,5 @@
- Edit Tracks: Change name, color, list and description of tracks, or delete them.
- Open in Another App: Select any map point in Organic Maps and open in apps like taxi, delivery, transport, or other map apps.
- Map Data: Updated as of October 1, now with added isolines for Egypt and improved for Adygea, Dagestan.
- KML/KMZ/GPX: Fixed issues with importing files from different apps.
- Right-to-left languages: Enhanced the place page, search, and about screens.
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1 +1 @@
version: 2024.09.08-7-FDroid+24090807
version: 2024.11.27-12-FDroid+24112712

View file

@ -443,6 +443,8 @@
android:label="@string/driving_options_title"/>
<activity
android:name="app.organicmaps.MapPlaceholderActivity"/>
<activity
android:name="app.organicmaps.car.screens.permissions.RequestPermissionsActivity"/>
<service
android:name="app.organicmaps.car.CarAppService"
android:exported="true"

View file

@ -41,6 +41,7 @@ set(SRC
app/organicmaps/SearchEngine.cpp
app/organicmaps/SearchRecents.cpp
app/organicmaps/settings/UnitLocale.cpp
app/organicmaps/settings/MapLanguageCode.cpp
app/organicmaps/sound/tts.cpp
app/organicmaps/subway/SubwayManager.cpp
app/organicmaps/TrackRecorder.cpp

View file

@ -94,8 +94,7 @@ jobject g_placePageActivationListener = nullptr;
android::AndroidVulkanContextFactory * CastFactory(drape_ptr<dp::GraphicsContextFactory> const & f)
{
ASSERT(dynamic_cast<android::AndroidVulkanContextFactory *>(f.get()) != nullptr, ());
return static_cast<android::AndroidVulkanContextFactory *>(f.get());
return dynamic_cast<android::AndroidVulkanContextFactory *>(f.get());
}
} // namespace
@ -176,7 +175,7 @@ bool Framework::DestroySurfaceOnDetach()
}
bool Framework::CreateDrapeEngine(JNIEnv * env, jobject jSurface, int densityDpi, bool firstLaunch,
bool launchByDeepLink, uint32_t appVersionCode)
bool launchByDeepLink, uint32_t appVersionCode, bool isCustomROM)
{
// Vulkan is supported only since Android 8.0, because some Android devices with Android 7.x
// have fatal driver issue, which can lead to process termination and whole OS destabilization.
@ -188,57 +187,51 @@ bool Framework::CreateDrapeEngine(JNIEnv * env, jobject jSurface, int densityDpi
if (vulkanForbidden)
LOG(LWARNING, ("Vulkan API is forbidden on this device."));
m_vulkanContextFactory.reset();
m_oglContextFactory.reset();
::Framework::DrapeCreationParams p;
if (m_work.LoadPreferredGraphicsAPI() == dp::ApiVersion::Vulkan && !vulkanForbidden)
{
m_vulkanContextFactory =
make_unique_dp<AndroidVulkanContextFactory>(appVersionCode, sdkVersion);
if (!CastFactory(m_vulkanContextFactory)->IsVulkanSupported())
auto vkFactory = make_unique_dp<AndroidVulkanContextFactory>(appVersionCode, sdkVersion, isCustomROM);
if (!vkFactory->IsVulkanSupported())
{
LOG(LWARNING, ("Vulkan API is not supported."));
m_vulkanContextFactory.reset();
}
if (m_vulkanContextFactory)
else
{
auto f = CastFactory(m_vulkanContextFactory);
f->SetSurface(env, jSurface);
if (!f->IsValid())
vkFactory->SetSurface(env, jSurface);
if (!vkFactory->IsValid())
{
LOG(LWARNING, ("Invalid Vulkan API context."));
m_vulkanContextFactory.reset();
}
else
{
p.m_apiVersion = dp::ApiVersion::Vulkan;
p.m_surfaceWidth = vkFactory->GetWidth();
p.m_surfaceHeight = vkFactory->GetHeight();
m_vulkanContextFactory = std::move(vkFactory);
}
}
}
AndroidOGLContextFactory * oglFactory = nullptr;
if (!m_vulkanContextFactory)
{
m_oglContextFactory = make_unique_dp<dp::ThreadSafeFactory>(
new AndroidOGLContextFactory(env, jSurface));
oglFactory = m_oglContextFactory->CastFactory<AndroidOGLContextFactory>();
auto oglFactory = make_unique_dp<AndroidOGLContextFactory>(env, jSurface);
if (!oglFactory->IsValid())
{
LOG(LWARNING, ("Invalid GL context."));
return false;
}
}
::Framework::DrapeCreationParams p;
if (m_vulkanContextFactory)
{
auto f = CastFactory(m_vulkanContextFactory);
p.m_apiVersion = dp::ApiVersion::Vulkan;
p.m_surfaceWidth = f->GetWidth();
p.m_surfaceHeight = f->GetHeight();
}
else
{
CHECK(oglFactory != nullptr, ());
p.m_apiVersion = oglFactory->IsSupportedOpenGLES3() ? dp::ApiVersion::OpenGLES3 :
dp::ApiVersion::OpenGLES2;
p.m_surfaceWidth = oglFactory->GetWidth();
p.m_surfaceHeight = oglFactory->GetHeight();
m_oglContextFactory = make_unique_dp<dp::ThreadSafeFactory>(oglFactory.release());
}
p.m_visualScale = static_cast<float>(dp::VisualScale(densityDpi));
// Drape doesn't care about Editor vs Api mode differences.
p.m_isChoosePositionMode = m_isChoosePositionMode != ChoosePositionMode::None;
@ -450,6 +443,16 @@ void Framework::Get3dMode(bool & allow3d, bool & allow3dBuildings)
m_work.Load3dMode(allow3d, allow3dBuildings);
}
void Framework::SetMapLanguageCode(std::string const & languageCode)
{
m_work.SetMapLanguageCode(languageCode);
}
std::string Framework::GetMapLanguageCode()
{
return m_work.GetMapLanguageCode();
}
void Framework::SetChoosePositionMode(ChoosePositionMode mode, bool isBusiness, m2::PointD const * optionalPosition)
{
m_isChoosePositionMode = mode;
@ -928,13 +931,15 @@ Java_app_organicmaps_Framework_nativePlacePageActivationListener(JNIEnv *env, jc
jni::TScopedLocalRef placePageDataRef(env, nullptr);
if (info.IsTrack())
{
auto const elevationInfo = frm()->GetBookmarkManager().MakeElevationInfo(info.GetTrackId());
placePageDataRef.reset(usermark_helper::CreateElevationInfo(env, elevationInfo));
// todo: (KK) implement elevation info handling for the proper track selection
auto const & track = frm()->GetBookmarkManager().GetTrack(info.GetTrackId());
auto const & elevationInfo = track->GetElevationInfo();
if (elevationInfo.has_value())
placePageDataRef.reset(usermark_helper::CreateElevationInfo(env, elevationInfo.value()));
}
else
{
if (!placePageDataRef)
placePageDataRef.reset(usermark_helper::CreateMapObject(env, info));
}
env->CallVoidMethod(g_placePageActivationListener, activatedId, placePageDataRef.get());
};
auto const closePlacePage = [deactivateId]()
@ -1979,13 +1984,12 @@ Java_app_organicmaps_Framework_nativeMemoryWarning(JNIEnv *, jclass)
JNIEXPORT jstring JNICALL
Java_app_organicmaps_Framework_nativeGetKayakHotelLink(JNIEnv * env, jclass, jstring countryIsoCode, jstring uri,
jlong firstDaySec, jlong lastDaySec, jboolean isReferral)
jlong firstDaySec, jlong lastDaySec)
{
string const url = osm::GetKayakHotelURLFromURI(jni::ToNativeString(env, countryIsoCode),
jni::ToNativeString(env, uri),
static_cast<time_t>(firstDaySec),
static_cast<time_t>(lastDaySec),
isReferral);
static_cast<time_t>(lastDaySec));
return url.empty() ? nullptr : jni::ToJavaString(env, url);
}

View file

@ -99,7 +99,7 @@ namespace android
void OnCompassUpdated(location::CompassInfo const & info, bool forceRedraw);
bool CreateDrapeEngine(JNIEnv * env, jobject jSurface, int densityDpi, bool firstLaunch,
bool launchByDeepLink, uint32_t appVersionCode);
bool launchByDeepLink, uint32_t appVersionCode, bool isCustomROM);
bool IsDrapeEngineCreated() const;
void UpdateDpi(int dpi);
bool DestroySurfaceOnDetach();
@ -191,6 +191,9 @@ namespace android
void Set3dMode(bool allow3d, bool allow3dBuildings);
void Get3dMode(bool & allow3d, bool & allow3dBuildings);
void SetMapLanguageCode(std::string const & languageCode);
std::string GetMapLanguageCode();
void SetChoosePositionMode(ChoosePositionMode mode, bool isBusiness, m2::PointD const * optionalPosition);
ChoosePositionMode GetChoosePositionMode();

View file

@ -27,10 +27,11 @@ Java_app_organicmaps_Map_nativeCreateEngine(JNIEnv * env, jclass,
jobject surface, jint density,
jboolean firstLaunch,
jboolean isLaunchByDeepLink,
jint appVersionCode)
jint appVersionCode,
jboolean isCustomROM)
{
return g_framework->CreateDrapeEngine(env, surface, density, firstLaunch, isLaunchByDeepLink,
base::asserted_cast<uint32_t>(appVersionCode));
base::asserted_cast<uint32_t>(appVersionCode), isCustomROM);
}
JNIEXPORT jboolean JNICALL

View file

@ -81,6 +81,17 @@ jobject ToJavaResult(Result const & result, search::ProductInfo const & productI
}
env->ReleaseIntArrayElements(ranges.get(), rawArr, 0);
jni::TScopedLocalIntArrayRef descRanges(env, env->NewIntArray(
static_cast<jsize>(result.GetDescHighlightRangesCount() * 2)));
jint * rawArr2 = env->GetIntArrayElements(descRanges, nullptr);
for (size_t i = 0; i < result.GetDescHighlightRangesCount(); i++)
{
auto const & range = result.GetDescHighlightRange(i);
rawArr2[2 * i] = range.first;
rawArr2[2 * i + 1] = range.second;
}
env->ReleaseIntArrayElements(descRanges.get(), rawArr2, 0);
ms::LatLon ll = ms::LatLon::Zero();
if (result.HasPoint())
ll = mercator::ToLatLon(result.GetFeatureCenter());
@ -89,7 +100,7 @@ jobject ToJavaResult(Result const & result, search::ProductInfo const & productI
{
jni::TScopedLocalRef name(env, jni::ToJavaString(env, result.GetString()));
jni::TScopedLocalRef suggest(env, jni::ToJavaString(env, result.GetSuggestionString()));
return env->NewObject(g_resultClass, g_suggestConstructor, name.get(), suggest.get(), ll.m_lat, ll.m_lon, ranges.get());
return env->NewObject(g_resultClass, g_suggestConstructor, name.get(), suggest.get(), ll.m_lat, ll.m_lon, ranges.get(),descRanges.get());
}
platform::Distance distance;
@ -125,7 +136,7 @@ jobject ToJavaResult(Result const & result, search::ProductInfo const & productI
0/*static_cast<jint>(result.GetRankingInfo().m_popularity)*/));
return env->NewObject(g_resultClass, g_resultConstructor, name.get(), desc.get(), ll.m_lat, ll.m_lon,
ranges.get(), popularity.get());
ranges.get(), descRanges.get(), popularity.get());
}
jobjectArray BuildSearchResults(vector<search::ProductInfo> const & productInfo,
@ -232,9 +243,9 @@ extern "C"
g_resultClass = jni::GetGlobalClassRef(env, "app/organicmaps/search/SearchResult");
g_resultConstructor = jni::GetConstructorID(
env, g_resultClass,
"(Ljava/lang/String;Lapp/organicmaps/search/SearchResult$Description;DD[I"
"(Ljava/lang/String;Lapp/organicmaps/search/SearchResult$Description;DD[I[I"
"Lapp/organicmaps/search/Popularity;)V");
g_suggestConstructor = jni::GetConstructorID(env, g_resultClass, "(Ljava/lang/String;Ljava/lang/String;DD[I)V");
g_suggestConstructor = jni::GetConstructorID(env, g_resultClass, "(Ljava/lang/String;Ljava/lang/String;DD[I[I)V");
g_descriptionClass = jni::GetGlobalClassRef(env, "app/organicmaps/search/SearchResult$Description");
/*
Description(FeatureId featureId, String featureType, String region, Distance distance,

View file

@ -16,17 +16,12 @@ extern "C"
if (items.empty())
return;
auto const & pairBuilder = jni::PairBuilder::Instance(env);
auto const listAddMethod = jni::ListBuilder::Instance(env).m_add;
for (SearchRequest const & item : items)
{
using SLR = jni::TScopedLocalRef;
SLR pair(env, pairBuilder.Create(env, SLR(env, jni::ToJavaString(env, item.first)),
SLR(env, jni::ToJavaString(env, item.second))));
ASSERT(pair.get(), (jni::DescribeException()));
env->CallBooleanMethod(result, listAddMethod, pair.get());
jni::TScopedLocalRef str(env, jni::ToJavaString(env, item.second));
env->CallBooleanMethod(result, listAddMethod, str.get());
}
}

View file

@ -75,7 +75,7 @@ jobject CreateMapObject(JNIEnv * env, place_page::Info const & info, int mapObje
jni::TScopedLocalRef jTitle(env, jni::ToJavaString(env, info.GetTitle()));
jni::TScopedLocalRef jSecondaryTitle(env, jni::ToJavaString(env, info.GetSecondaryTitle()));
jni::TScopedLocalRef jSubtitle(env, jni::ToJavaString(env, info.GetSubtitle()));
jni::TScopedLocalRef jAddress(env, jni::ToJavaString(env, info.GetAddress()));
jni::TScopedLocalRef jAddress(env, jni::ToJavaString(env, info.GetSecondarySubtitle()));
jni::TScopedLocalRef jApiId(env, jni::ToJavaString(env, parseApi ? info.GetApiUrl() : ""));
jni::TScopedLocalRef jWikiDescription(env, jni::ToJavaString(env, info.GetWikiDescription()));
jobject mapObject =
@ -119,7 +119,7 @@ jobject CreateBookmark(JNIEnv *env, const place_page::Info &info,
jni::TScopedLocalRef jTitle(env, jni::ToJavaString(env, info.GetTitle()));
jni::TScopedLocalRef jSecondaryTitle(env, jni::ToJavaString(env, info.GetSecondaryTitle()));
jni::TScopedLocalRef jSubtitle(env, jni::ToJavaString(env, info.GetSubtitle()));
jni::TScopedLocalRef jAddress(env, jni::ToJavaString(env, info.GetAddress()));
jni::TScopedLocalRef jAddress(env, jni::ToJavaString(env, info.GetSecondarySubtitle()));
jni::TScopedLocalRef jWikiDescription(env, jni::ToJavaString(env, info.GetWikiDescription()));
jobject mapObject = env->NewObject(
g_bookmarkClazz, ctorId, jFeatureId.get(), static_cast<jlong>(categoryId),
@ -140,7 +140,7 @@ jobject CreateElevationPoint(JNIEnv * env, ElevationInfo::Point const & point)
static jmethodID const pointCtorId =
jni::GetConstructorID(env, pointClass, "(DI)V");
return env->NewObject(pointClass, pointCtorId, static_cast<jdouble >(point.m_distance),
static_cast<jint>(point.m_altitude));
static_cast<jint>(point.m_point.GetAltitude()));
}
jobjectArray ToElevationPointArray(JNIEnv * env, ElevationInfo::Points const & points)
@ -164,16 +164,14 @@ jobject CreateElevationInfo(JNIEnv * env, ElevationInfo const & info)
jni::GetConstructorID(env, g_elevationInfoClazz, "(JLjava/lang/String;Ljava/lang/String;"
"[Lapp/organicmaps/bookmarks/data/ElevationInfo$Point;"
"IIIIIJ)V");
jni::TScopedLocalRef jName(env, jni::ToJavaString(env, info.GetName()));
jni::TScopedLocalObjectArrayRef jPoints(env, ToElevationPointArray(env, info.GetPoints()));
return env->NewObject(g_elevationInfoClazz, ctorId, static_cast<jlong>(info.GetId()),
jName.get(), jPoints.get(),
return env->NewObject(g_elevationInfoClazz, ctorId,
jPoints.get(),
static_cast<jint>(info.GetAscent()),
static_cast<jint>(info.GetDescent()),
static_cast<jint>(info.GetMinAltitude()),
static_cast<jint>(info.GetMaxAltitude()),
static_cast<jint>(info.GetDifficulty()),
static_cast<jlong>(info.GetDuration()));
static_cast<jint>(info.GetDifficulty()));
}
jobject CreateMapObject(JNIEnv * env, place_page::Info const & info)

View file

@ -900,6 +900,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActivePoin
{
auto & bm = frm()->GetBookmarkManager();
bm.SetElevationActivePoint(static_cast<kml::TrackId>(trackId),
{0,0}, // todo(KK): replace with coordinates from the elevation profile point to show selection mark on the track
static_cast<double>(distanceInMeters));
}

View file

@ -297,14 +297,14 @@ Java_app_organicmaps_editor_Editor_nativeGetNearbyStreets(JNIEnv * env, jclass c
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env, jclass clazz, jboolean includeServiceLangs)
{
using TLang = StringUtf8Multilang::Lang;
//public Language(@NonNull String code, @NonNull String name)
static jclass const langClass = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/Language");
static jmethodID const langCtor = jni::GetConstructorID(env, langClass, "(Ljava/lang/String;Ljava/lang/String;)V");
return jni::ToJavaArray(env, langClass, StringUtf8Multilang::GetSupportedLanguages(),
return jni::ToJavaArray(env, langClass, StringUtf8Multilang::GetSupportedLanguages(includeServiceLangs),
[](JNIEnv * env, TLang const & lang)
{
jni::TScopedLocalRef const code(env, jni::ToJavaString(env, lang.m_code));
@ -406,8 +406,10 @@ Java_app_organicmaps_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv * en
jstring jLang)
{
std::string const & lang = jni::ToNativeString(env, jLang);
GetFeatureCategories().AddLanguage(lang);
return jni::ToJavaStringArray(env, GetFeatureCategories().GetAllCreatableTypeNames());
auto & categories = GetFeatureCategories();
categories.AddLanguage(lang);
categories.AddLanguage("en");
return jni::ToJavaStringArray(env, categories.GetAllCreatableTypeNames());
}
JNIEXPORT jobjectArray JNICALL
@ -416,9 +418,10 @@ Java_app_organicmaps_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv * en
jstring jLang)
{
std::string const & lang = jni::ToNativeString(env, jLang);
GetFeatureCategories().AddLanguage(lang);
return jni::ToJavaStringArray(env,
GetFeatureCategories().Search(jni::ToNativeString(env, query)));
auto & categories = GetFeatureCategories();
categories.AddLanguage(lang);
categories.AddLanguage("en");
return jni::ToJavaStringArray(env, categories.Search(jni::ToNativeString(env, query)));
}
JNIEXPORT jobjectArray JNICALL

View file

@ -112,4 +112,10 @@ Java_app_organicmaps_editor_OsmOAuth_nativeGetHistoryUrl(JNIEnv * env, jclass, j
{
return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetHistoryURL(jni::ToNativeString(env, user)));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_editor_OsmOAuth_nativeGetNotesUrl(JNIEnv * env, jclass, jstring user)
{
return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetNotesURL(jni::ToNativeString(env, user)));
}
} // extern "C"

View file

@ -0,0 +1,18 @@
#include "app/organicmaps/Framework.hpp"
#include "platform/settings.hpp"
extern "C"
{
JNIEXPORT void JNICALL
Java_app_organicmaps_settings_MapLanguageCode_setMapLanguageCode(JNIEnv * env, jobject, jstring languageCode)
{
g_framework->SetMapLanguageCode(jni::ToNativeString(env, languageCode));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_settings_MapLanguageCode_getMapLanguageCode(JNIEnv * env, jobject)
{
return jni::ToJavaString(env, g_framework->GetMapLanguageCode());
}
}

View file

@ -86,7 +86,7 @@ public:
};
} // namespace
AndroidVulkanContextFactory::AndroidVulkanContextFactory(uint32_t appVersionCode, int sdkVersion)
AndroidVulkanContextFactory::AndroidVulkanContextFactory(uint32_t appVersionCode, int sdkVersion, bool isCustomROM)
{
if (InitVulkan() == 0)
{
@ -165,8 +165,7 @@ AndroidVulkanContextFactory::AndroidVulkanContextFactory(uint32_t appVersionCode
dp::SupportManager::Version driverVersion{VK_VERSION_MAJOR(gpuProperties.driverVersion),
VK_VERSION_MINOR(gpuProperties.driverVersion),
VK_VERSION_PATCH(gpuProperties.driverVersion)};
if (dp::SupportManager::Instance().IsVulkanForbidden(gpuProperties.deviceName, apiVersion,
driverVersion))
if (dp::SupportManager::Instance().IsVulkanForbidden(gpuProperties.deviceName, apiVersion, driverVersion, isCustomROM))
{
LOG_ERROR_VK("GPU/Driver configuration is not supported.");
return;

View file

@ -18,7 +18,7 @@ namespace android
class AndroidVulkanContextFactory : public dp::GraphicsContextFactory
{
public:
explicit AndroidVulkanContextFactory(uint32_t appVersionCode, int sdkVersion);
AndroidVulkanContextFactory(uint32_t appVersionCode, int sdkVersion, bool isCustomROM);
~AndroidVulkanContextFactory();
bool IsVulkanSupported() const;

View file

@ -456,10 +456,9 @@ public class Framework
* @param uri `$HOTEL_NAME,-c$CITY_ID-h$HOTEL_ID` URI.
* @param firstDaySec the epoch seconds of the first day of planned stay.
* @param lastDaySec the epoch seconds of the last day of planned stay.
* @param isReferral enable referral code to help the project.
* @return a URL to Kayak's hotel page.
*/
@Nullable
public static native String nativeGetKayakHotelLink(@NonNull String countryIsoCode, @NonNull String uri,
long firstDaySec, long lastDaySec, boolean isReferral);
long firstDaySec, long lastDaySec);
}

Some files were not shown because too many files have changed in this diff Show more