forked from organicmaps/organicmaps
Merge current version into branch
This commit is contained in:
commit
d5ed80c395
902 changed files with 52704 additions and 21384 deletions
75
.github/CODEOWNERS
vendored
75
.github/CODEOWNERS
vendored
|
@ -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
|
||||
|
|
27
.github/workflows/android-beta.yaml
vendored
27
.github/workflows/android-beta.yaml
vendored
|
@ -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
|
||||
|
|
8
.github/workflows/android-check.yaml
vendored
8
.github/workflows/android-check.yaml
vendored
|
@ -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
|
||||
|
||||
|
|
29
.github/workflows/android-monkey.yaml
vendored
29
.github/workflows/android-monkey.yaml
vendored
|
@ -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
|
||||
|
|
17
.github/workflows/android-release-metadata.yaml
vendored
17
.github/workflows/android-release-metadata.yaml
vendored
|
@ -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
|
||||
|
|
29
.github/workflows/android-release.yaml
vendored
29
.github/workflows/android-release.yaml
vendored
|
@ -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
|
||||
|
|
2
.github/workflows/coverage-check.yaml
vendored
2
.github/workflows/coverage-check.yaml
vendored
|
@ -94,7 +94,7 @@ jobs:
|
|||
llvm \
|
||||
gcovr
|
||||
|
||||
- name: Configure
|
||||
- name: Configure repository
|
||||
shell: bash
|
||||
run: ./configure.sh
|
||||
|
||||
|
|
27
.github/workflows/ios-beta.yaml
vendored
27
.github/workflows/ios-beta.yaml
vendored
|
@ -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: |
|
||||
|
|
2
.github/workflows/ios-check.yaml
vendored
2
.github/workflows/ios-check.yaml
vendored
|
@ -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
|
||||
|
||||
|
|
17
.github/workflows/ios-release.yaml
vendored
17
.github/workflows/ios-release.yaml
vendored
|
@ -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
|
||||
|
|
4
.github/workflows/linux-check.yaml
vendored
4
.github/workflows/linux-check.yaml
vendored
|
@ -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
|
||||
|
||||
|
|
2
.github/workflows/macos-check.yaml
vendored
2
.github/workflows/macos-check.yaml
vendored
|
@ -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
3
.gitmodules
vendored
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
9
LEGAL
Normal 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.
|
15
README.md
15
README.md
|
@ -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>
|
||||
|
|
|
@ -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'))
|
||||
|
|
1
android/app/src/fdroid/java/app/organicmaps/location
Symbolic link
1
android/app/src/fdroid/java/app/organicmaps/location
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../../google/java/app/organicmaps/location
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
• Различные улучшения поиска, обновления переводов и исправления ошибок
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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.
|
||||
• Друга побољшања за претрагу, исправке превода и исправке грешака
|
||||
|
|
|
@ -1 +1 @@
|
|||
Open-source, community-driven maps for travelers, tourists, cyclists & hikers
|
||||
Отворене мапе из заједнице за путнике, туристе, бициклисте и планинаре
|
||||
|
|
|
@ -1 +1 @@
|
|||
Offline Organic Maps Hike Bike
|
||||
Organic Maps — офлајн мапе
|
||||
|
|
|
@ -1 +1 @@
|
|||
Organic Maps Offline Hike, Bike, GPS Navigation
|
||||
Organic Maps, офлајн мапе и GPS навигатор
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
• Деякі покращення якості пошуку, уточнення перекладів, виправлення помилок
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
version: 2024.09.08-7-FDroid+24090807
|
||||
version: 2024.11.27-12-FDroid+24112712
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
Loading…
Add table
Reference in a new issue