Compare commits

..

3 commits

Author SHA1 Message Date
vng
d76a4429d1 Bump versions
Signed-off-by: vng <vng@users.noreply.github.com>
2024-11-27 17:13:06 +00:00
Viktor Govako
c385bfffa5 Release notes.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2024-11-27 14:06:54 -03:00
Viktor Govako
e244c9d949 [planet] New data from 241122.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2024-11-27 09:44:37 -03:00
1384 changed files with 276465 additions and 186808 deletions

78
.github/CODEOWNERS vendored
View file

@ -1,69 +1,9 @@
# 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-svg/ @organicmaps/design
/data/search-icons/ @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
# no owner for translation changes
/android/app/src/main/res/values*/strings.xml
# iOS.
/iphone/ @organicmaps/ios
/xcode/ @organicmaps/ios
/docs/OBJC_STYLE.md @organicmaps/ios
# no owner for translation changes
/iphone/plist.txt
/iphone/Maps/LocalizedStrings/
# 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
# no owner (changed often to add a new POI)
/generator/generator_tests/osm_type_test.cpp
# 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
# 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

View file

@ -56,24 +56,19 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Restore beta keys
- 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
shell: bash
run: |
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
./configure.sh ./private.git
rm -rf ./private.git
- name: Compile
shell: bash

View file

@ -51,7 +51,7 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Configure repository
- name: Configure in Open Source mode
shell: bash
run: ./configure.sh
@ -66,11 +66,11 @@ jobs:
strategy:
fail-fast: false
matrix:
flavor: [WebDebug, FdroidDebug]
flavor: [WebDebug, FdroidBeta]
include:
- flavor: WebDebug
arch: arm64
- flavor: FdroidDebug
- flavor: FdroidBeta
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 repository
- name: Configure in Open Source mode
shell: bash
run: ./configure.sh

View file

@ -56,26 +56,19 @@ jobs:
shell: bash
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Restore beta keys
- 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
shell: bash
run: |
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
./configure.sh ./private.git
rm -rf ./private.git
- name: Compile
shell: bash

View file

@ -26,14 +26,19 @@ jobs:
ref: master
path: screenshots
- name: Restore release keys
- 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
shell: bash
run: |
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 }}
./configure.sh ./private.git
rm -rf ./private.git
- name: Upload
shell: bash

View file

@ -29,7 +29,7 @@ jobs:
version=$(tools/unix/version.sh ios_version)
# +1 because below a "Bump versions" commit is created.
# TODO: Find a way to refactor FDroid versioning without that additional commit.
build=$(($(tools/unix/version.sh count) + 1))
build=$(($(tools/unix/version.sh ios_build) + 1))
code=$(($(tools/unix/version.sh android_code) + 1))
tag=$version-$build-android
echo "::set-output name=version::$version"
@ -100,26 +100,19 @@ jobs:
ref: master
path: screenshots
- name: Restore release keys
- 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
shell: bash
run: |
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
./configure.sh ./private.git
rm -rf ./private.git
- name: Set up SDK
shell: bash

View file

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

View file

@ -52,23 +52,18 @@ jobs:
- name: Parallel submodules checkout
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
- name: Restore beta keys
shell: bash
run: |
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: 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 repository
shell: bash
run: ./configure.sh
- name: Configure repo with private keys
run: |
./configure.sh ./private.git
rm -rf ./private.git
- name: Compile and upload to TestFlight
run: |

View file

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

View file

@ -16,13 +16,20 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Restore release keys
- 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
shell: bash
run: |
mkdir -p xcode/keys
echo "$APPSTORE_JSON" | base64 -d > xcode/keys/appstore.json
env:
APPSTORE_JSON: ${{ secrets.APPSTORE_JSON }}
mkdir -p xcode/keys/
cp -p ./private.git/xcode/keys/appstore.json xcode/keys/
rm -rf ./private.git
- name: Checkout screenshots
uses: actions/checkout@v4

View file

@ -61,17 +61,13 @@ jobs:
libgl1-mesa-dev \
libglvnd-dev \
libharfbuzz-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
qt6-base-dev \
libqt6svg6-dev \
qt6-positioning-dev \
libqt6positioning6-plugins \
libqt6positioning6
- name: Configure repository
- name: Configure
shell: bash
run: ./configure.sh
@ -132,17 +128,13 @@ jobs:
libgl1-mesa-dev \
libglvnd-dev \
libharfbuzz-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
qt6-base-dev \
libqt6svg6-dev \
qt6-positioning-dev \
libqt6positioning6-plugins \
libqt6positioning6
- name: Configure repository
- name: Configure
shell: bash
run: ./configure.sh

View file

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

View file

@ -1,22 +0,0 @@
name: Close stale PRs
on:
schedule:
- cron: "0 0 * * *" # Runs every day at midnight
jobs:
stale:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-pr-stale: 180 # 6 months before warning
days-before-pr-close: 365 # Closed after 12 months
stale-pr-label: "stale"
stale-pr-message: "Hi! This PR has been inactive for 6 months. If it's still relevant, please update it to let us know youd like to keep it open 😊"
close-pr-message: "This PR has been automatically closed after 12 months of inactivity."
days-before-issue-stale: -1 # Issues are never stale
days-before-issue-close: -1 # Issues are never closed
remove-stale-when-updated: true

31
.github/workflows/strings-check.yaml vendored Normal file
View file

@ -0,0 +1,31 @@
name: Validate translation strings
on:
workflow_dispatch: # Manual trigger
pull_request:
paths:
- .github/workflows/strings-check.yaml # Run check on self change
- data/strings/strings.txt
- data/strings/types_strings.txt
- data/strings/sound.txt
- data/countries_names.txt
- iphone/plist.txt
- tools/python/strings_utils.py
jobs:
validate-translation-strings:
name: Validate translation strings
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3'
- name: Validate string files
shell: bash
run: |
for f in data/strings/strings.txt data/strings/types_strings.txt data/strings/sound.txt data/countries_names.txt iphone/plist.txt; do
./tools/python/strings_utils.py --validate $f -o
done;
git diff --exit-code

1
.gitignore vendored
View file

@ -20,7 +20,6 @@ data/drules_proto_default_design.bin
data/colors_design.txt
data/patterns_design.txt
data/bookmarks
data/edits.xml
# Compiled Python
*.pyc

12
.gitmodules vendored
View file

@ -7,6 +7,9 @@
[submodule "3party/protobuf/protobuf"]
path = 3party/protobuf/protobuf
url = https://github.com/organicmaps/protobuf.git
[submodule "tools/twine"]
path = tools/twine
url = https://github.com/organicmaps/twine.git
[submodule "3party/Vulkan-Headers"]
path = 3party/Vulkan-Headers
url = https://github.com/KhronosGroup/Vulkan-Headers.git
@ -56,12 +59,3 @@
[submodule "3party/utfcpp"]
path = 3party/utfcpp
url = https://github.com/nemtrif/utfcpp.git
[submodule "3party/glfw"]
path = 3party/glfw
url = https://github.com/glfw/glfw.git
[submodule "3party/CMake-MetalShaderSupport"]
path = 3party/CMake-MetalShaderSupport
url = https://github.com/dpogue/CMake-MetalShaderSupport.git
[submodule "3party/imgui/imgui"]
path = 3party/imgui/imgui
url = https://github.com/ocornut/imgui

@ -1 +0,0 @@
Subproject commit 989857d2e5e54869c35ad06fb21a67d12a2dbc67

View file

@ -22,6 +22,7 @@ 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)
@ -66,19 +67,4 @@ add_subdirectory(vulkan_wrapper)
if (PLATFORM_DESKTOP)
add_subdirectory(libtess2)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "")
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "")
set(GLFW_BUILD_TESTS OFF CACHE BOOL "")
set(GLFW_INSTALL OFF CACHE BOOL "")
set(GLFW_VULKAN_STATIC OFF CACHE BOOL "")
set(GLFW_BUILD_WAYLAND OFF CACHE BOOL "")
# Disable ARC for glfw and re-enable after it because it's globally set in the root CMakeLists.txt
set(CMAKE_OBJC_FLAGS "")
add_subdirectory(glfw)
set_target_properties(glfw PROPERTIES UNITY_BUILD OFF)
set_target_properties(glfw PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC NO)
set(CMAKE_OBJC_FLAGS -fobjc-arc)
add_subdirectory(imgui)
endif()

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

@ -1 +0,0 @@
Subproject commit 21fea01161e0d6b70c0c5c1f52dc8e7a7df14a50

View file

@ -1,16 +0,0 @@
project(imgui)
set(SRC
imgui/imgui_draw.cpp
imgui/imgui_tables.cpp
imgui/imgui_widgets.cpp
imgui/imgui.cpp
imgui/backends/imgui_impl_glfw.cpp
)
add_library(${PROJECT_NAME} ${SRC})
target_include_directories(${PROJECT_NAME}
PRIVATE ${OMIM_ROOT}/3party/glfw/include
PUBLIC ${OMIM_ROOT}/3party/imgui/imgui
PUBLIC .
)

@ -1 +0,0 @@
Subproject commit 6982ce43f5b143c5dce5fab0ce07dd4867b705ae

View file

@ -17,9 +17,6 @@ endif()
target_include_directories(${PROJECT_NAME} PUBLIC .)
if (PLATFORM_LINUX)
target_compile_definitions(${PROJECT_NAME} PRIVATE VK_USE_PLATFORM_XLIB_KHR)
endif()
# dlopen
target_link_libraries(${PROJECT_NAME} $<$<BOOL:CMAKE_DL_LIBS>:${CMAKE_DL_LIBS}>)

View file

@ -22,20 +22,7 @@ extern "C" {
#include <dlfcn.h>
int InitVulkan(void) {
#if defined(__APPLE__)
void* libvulkan = dlopen("libvulkan.dylib", RTLD_NOW | RTLD_LOCAL);
if (!libvulkan) {
libvulkan = dlopen("libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL);
}
if (!libvulkan) {
libvulkan = dlopen("libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL);
}
#else
void* libvulkan = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL);
if (!libvulkan) {
libvulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
}
#endif
void* libvulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
if (!libvulkan) return 0;
// Vulkan supported, set function addresses
@ -558,10 +545,6 @@ int InitVulkan(void) {
vkDestroyDebugReportCallbackEXT = reinterpret_cast<PFN_vkDestroyDebugReportCallbackEXT>(dlsym(libvulkan, "vkDestroyDebugReportCallbackEXT"));
vkDebugReportMessageEXT = reinterpret_cast<PFN_vkDebugReportMessageEXT>(dlsym(libvulkan, "vkDebugReportMessageEXT"));
#if defined(__APPLE__)
vkCreateMacOSSurfaceMVK = reinterpret_cast<PFN_vkCreateMacOSSurfaceMVK>(dlsym(libvulkan, "vkCreateMacOSSurfaceMVK"));
#endif
return 1;
}
@ -1154,10 +1137,6 @@ PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR;
PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR;
#endif
#if defined(__APPLE__)
PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
#endif
#ifdef __cplusplus
}
#endif

View file

@ -25,10 +25,6 @@ extern "C" {
#define VK_USE_PLATFORM_ANDROID_KHR 1
#include <vulkan/vulkan.h>
#if defined(__APPLE__)
#include <vulkan/vulkan_macos.h>
#endif
/* Initialize the Vulkan function pointer variables declared in this header.
* Returns 0 if vulkan is not available, non-zero if it is available.
*/
@ -504,10 +500,6 @@ extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
#if defined(__APPLE__)
extern PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
#endif
#ifdef __cplusplus
}
#endif

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.22.1)
cmake_minimum_required(VERSION 3.18)
project(omim C CXX)
set(CMAKE_CXX_STANDARD 20)
@ -90,19 +90,6 @@ else()
message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif()
if(${PLATFORM_MAC})
set(XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
# Metal language support
list(APPEND CMAKE_MODULE_PATH ${OMIM_ROOT}/3party/CMake-MetalShaderSupport/cmake)
include(CheckLanguage)
include(MetalShaderSupport)
check_language(Metal)
if(CMAKE_Metal_COMPILER)
enable_language(Metal)
endif()
endif()
# Sanitizer
if (PLATFORM_DESKTOP)
# https://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
@ -278,6 +265,16 @@ find_package(Threads REQUIRED)
# Scripts
if (NOT CMAKE_HOST_WIN32)
execute_process(
COMMAND "${OMIM_ROOT}/tools/unix/check_cert.sh"
RESULT_VARIABLE CheckCertResult
)
if (CheckCertResult)
message(FATAL_ERROR "Certificate check failed")
endif()
endif()
if (NOT PLATFORM_IPHONE AND NOT PLATFORM_ANDROID)
list(APPEND qt_components Core Network)
if (NOT SKIP_QT_GUI OR NOT SKIP_TESTS OR PYBINDINGS)
@ -397,7 +394,6 @@ if (PLATFORM_DESKTOP)
add_subdirectory(qt)
omim_add_tool_subdirectory(skin_generator)
endif()
add_subdirectory(dev_sandbox)
endif()
omim_add_test_subdirectory(qt_tstfrm)

View file

@ -1,73 +1,35 @@
This file contains a list of people who have contributed to this project.
Its not neccesarily comprehensive.
Feel free to add yourself here along with your first contribution!
This file contains a list of people who have contributed to the
public version of MAPS.ME and Organic Maps.
Original MAPS.ME (MapsWithMe) design and implementation:
Yury Melnichek <yury@melnichek.com>
Alexander Borsuk <me@alex.bio>
Viktor Govako <viktor.govako@gmail.com>
Siarhei Rachytski <siarhei.rachytski@gmail.com>
--------------------------------------------------------------------------------
Organic Maps (formerly OMaps) contributors:
(in alphabetic order)
Organic Maps contributions:
--------------------------------------------------------------------------------
Alexander Borsuk <me@alex.bio>
Roman Tsisyk <roman@tsisyk.com>
Viktor Govako <viktor.govako@gmail.com>
Caspar Nuël <casparnuel@yandex.com>
Konstantin Pastbin
Nishant Bhandari <nishantbhandari0019@gmail.com>
Sebastiao Sousa <sebastiao.sousa@tecnico.ulisboa.pt>
Harry Bond <me@hbond.xyz>
Organic Maps translations:
Karina Kordon
Konstantin Pastbin
Metehan Özyürek
Joan Montané
Luna Rose
Alexander Borsuk <me@alex.bio>
Alexey Krasilnikov
Andrew Shkrob
Anton Makouski
Arnaud Vergnet
Arthur-GYT
Atemu
Caspar Nuël <casparnuel@yandex.com>
cyber-toad
David Martinez
dbf
Dzmitry Strekha
Dzmitry Yarmolenka
Fabian Wüthrich
Ferenc Géczi
Filip Czaplicki
FinixFighter
fparri
Francesco Gazzetta
gallegonovato
Gonzalo Pesquero
Harry Bond <me@hbond.xyz>
Jaime Marquinez Ferrandiz
Jean-Baptiste Charron
Jenny Em
Joan Montané
Karina Kordon
Kavi Khalique
Kiryl Kaveryn
Kiryl Razhdzestvenski
Konstantin Pastbin
Loïc Hernaut
Lukas Hamm
Lukas Kronberger
Luna Rose
map-per
Markku Huotari
Mateusz Konieczny
Matheus Gomes
MbTy1
Meenbeese
Metehan Özyürek
Michał Brzozowski
Nishant Bhandari <nishantbhandari0019@gmail.com>
Ognjen Blagojevic
Osyotr
renderexpert
Roman Kuznetsov
Roman Tsisyk <roman@tsisyk.com>
Rudo Kemper
Sebastiao Sousa <sebastiao.sousa@tecnico.ulisboa.pt>
Sergiy Kozyr
Tobias G. <tobi.goergens@gmail.com>
Veniamin Gvozdikov <g.veniamin@googlemail.com>
Viktor Govako <viktor.govako@gmail.com>
Will Bradley
--------------------------------------------------------------------------------
MAPS.ME at Mail.Ru Group (prior to the Organic Maps (OMaps) fork in 2020/2021):
MAPS.ME contributions (before Organic Maps was forked in 2020-2021):
--------------------------------------------------------------------------------
Code contributions:
Dmitry Yunitski
Lev Dragunov
@ -138,13 +100,3 @@ Special thanks to:
Yuri Gurski
Dmitry Matveev
Anna Yakovleva
--------------------------------------------------------------------------------
MAPS.ME (originally MapsWithMe) design and implementation at MapsWithMe GmbH
(from 2010 till the acquisition by Mail.ru Group in 2014):
--------------------------------------------------------------------------------
Yury Melnichek <yury@melnichek.com>
Alexander Borsuk <me@alex.bio>
Viktor Govako <viktor.govako@gmail.com>
Siarhei Rachytski <siarhei.rachytski@gmail.com>

9
LEGAL
View file

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

View file

@ -1,7 +1,6 @@
<div align="center">
<img src="qt/res/logo.png" height="100"/>
</div>
<h1 align="center"">Organic Maps</h1>
# Organic Maps
<a name="install"/>
[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.
@ -115,14 +114,6 @@ Beloved institutional sponsors below have provided targeted grants to cover some
<a href="https://www.mythic-beasts.com/">Mythic Beasts</a> ISP <a href="https://www.mythic-beasts.com/blog/2021/10/06/improving-the-world-bit-by-expensive-bit/">provides us</a> two virtual servers with 400 TB/month of free bandwidth to host and serve maps downloads and updates.
</td>
</tr>
<tr>
<td>
<a href="https://44plus.vn"><img src="docs/sponsors/44plus.svg" alt="44+ Technologies" width="200px"></a>
</td>
<td>
<a href="https://44plus.vn">44+ Technologies</a> is <a href="https://44plus.vn/organicmaps">providing us </a>with a free dedicated server worth around $12,000/year to serve maps across Vietnam & Southeast Asia.
</td>
</tr>
<tr>
<td>
<a href="https://futo.org"><img src="docs/sponsors/futo.svg" alt="FUTO" width="200px"></a>

View file

@ -22,7 +22,7 @@ buildscript {
googleFirebaseServicesDefault
dependencies {
classpath 'com.android.tools.build:gradle:8.7.3'
classpath 'com.android.tools.build:gradle:8.7.2'
if (googleFirebaseServicesEnabled) {
println('Building with Google Firebase Services')
@ -45,6 +45,7 @@ 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'
@ -100,7 +101,7 @@ android {
// All properties are read from gradle.properties file
compileSdk propCompileSdkVersion.toInteger()
ndkVersion '27.2.12479018'
ndkVersion '27.1.12297006'
defaultConfig {
// Default package name is taken from the manifest and should be app.organicmaps
@ -246,11 +247,6 @@ android {
}
}
def securityPropertiesFileExists = file('secure.properties').exists()
if (securityPropertiesFileExists) {
apply from: 'secure.properties'
}
signingConfigs {
debug {
storeFile file('debug.keystore')
@ -260,15 +256,10 @@ android {
}
release {
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')
}
storeFile file(spropStoreFile)
storePassword spropStorePassword
keyAlias spropKeyAlias
keyPassword spropKeyPassword
}
}
@ -341,7 +332,7 @@ android {
externalNativeBuild {
cmake {
version '3.22.1+'
version '3.30.3+'
buildStagingDirectory './nativeOutputs'
path '../../CMakeLists.txt'
}
@ -363,7 +354,7 @@ android {
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.3'
// Google Play Location Services
//
@ -379,7 +370,7 @@ dependencies {
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.6.244735'
fdroidImplementation 'org.microg.gms:play-services-location:0.3.4.240913'
// Google Firebase Services
if (googleFirebaseServicesEnabled) {
@ -396,11 +387,11 @@ dependencies {
// We don't use Kotlin, but some dependencies are actively using it.
// See https://stackoverflow.com/a/75719642
implementation 'androidx.core:core:1.15.0'
implementation(platform('org.jetbrains.kotlin:kotlin-bom:2.1.10'))
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-rc01'
implementation 'androidx.car.app:app-projected:1.7.0-rc01'
implementation 'androidx.car.app:app:1.7.0-beta02'
implementation 'androidx.car.app:app-projected:1.7.0-beta02'
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
implementation 'androidx.fragment:fragment:1.8.5'
implementation 'androidx.preference:preference:1.2.1'
@ -417,7 +408,7 @@ dependencies {
// Test Dependencies
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:5.15.2'
testImplementation 'org.mockito:mockito-core:5.12.0'
testImplementation 'org.mockito:mockito-inline:5.2.0'
}

View file

@ -0,0 +1,28 @@
package app.organicmaps;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest
{
@Test
public void useAppContext()
{
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("app.organicmaps", appContext.getPackageName());
}
}

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Новыя дадзеныя OpenStreetMap ад 21 студзеня
• Адлюстраванне абмежавання хуткасці ў рэжыме навігацыі
• Android Auto: сартаванне метак, палепшаны запыты на дазвол месцазнаходжання
На карту дададзены вежы
• Дададзена настройка для адключэння спасылак на гатэлі з Kayak.com і магчымасць адмовы пры першым выкарыстанні
• Дададзены сербская (кірыліца) і латышская мовы
…і шматлікае іншае на omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Neue OpenStreetMap-Daten vom 21. Januar
• Anzeige eines Geschwindigkeitsbegrenzungsschildes im Navigationsmodus
• Serbische (Kyrillisch) und Lettische Sprachen hinzugefügt
• Android Auto: Lesezeichen sortieren, verbessertes Erlebnis bei der Anforderung von Standortberechtigungen
• Turm-POIs hinzugefügt
• Eine Einstellung für Kayak.com-Hotellinks und eine Opt-out-Option bei der ersten Nutzung hinzugefügt.
…weitere Details unter omaps.org/news
• Neue OpenStreetMap-Daten vom 22. November
• Hervorhebung des übereinstimmenden Teils der Adresse in Suchergebnissen
• Sortierung des Suchverlaufs nach letzter Nutzung
• Behobene Startabstürze bei einigen älteren Geräten mit Mali-T-GPUs
• Weitere Suchverbesserungen, Übersetzungs-Updates und Fehlerbehebungen

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Nuevos datos de OpenStreetMap del 21 de enero
• Límite de velocidad en el modo de navegación
• Añadidos idiomas serbio (cirílico) y letón
• Android Auto: opción de ordenar marcadores, mejorada la experiencia al solicitar ubicación
• Añadidos PDI de torres
• Añadidas opciones para enlaces de hotel de Kayak.com y de exclusión al primer uso
…más detalles en omaps.org/news
• Nuevos datos de OpenStreetMap del 22 de noviembre
• Resaltado de la parte coincidente de la dirección en los resultados de búsqueda
• Ordenar el historial de búsquedas por la última vez de uso
• Solucionados los bloqueos al inicio en algunos dispositivos antiguos con GPU Mali-T
• Otras mejoras en la búsqueda, actualizaciones de traducción y correcciones de errores

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Urtarrilaren 21ko OpenStreetMap-eko datu berriak
• Abiadura muga erakusten da nabigazio moduan
• Serbiera (zirilikoa) eta letoniera hizkuntzak gehitu dira
• Android Auto: gogokoak ordena daitezke, kokapen permisuaren eskaeraren esperientzia hobetu da
• Dorreen interes puntuak gehitu dira
• Kayak.com-eko hotelen estekak eta lehenengo erabileran ez erakusteko aukera gehitu dira
…zehaztasun gehiago omaps.org/news webgunean
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Nouvelles données OpenStreetMap du 21 janvier
• Afficher un panneau de limitation de vitesse en mode navigation
• Ajout des langues serbe (cyrillique) et lettone
• Android Auto : trier les signets, expérience de demande d'autorisation de localisation améliorée
• Ajout de POI de tour
• Ajout d'un paramètre pour les liens d'hôtel Kayak.com et d'une option de désinscription lors de la première utilisation
…plus de détails sur omaps.org/news
• Nouvelles données OpenStreetMap du 22 novembre
• Mise en évidence de la partie correspondante de l'adresse dans les résultats de recherche
• Tri de l'historique des recherches par dernier temps d'utilisation
• Correction des plantages au démarrage sur certains anciens appareils avec des GPU Mali-T
• Autres améliorations de recherche, mises à jour de traduction et corrections de bugs

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Nowe dane OpenStreetMap z 21 stycznia
• Wyświetlanie znaku ograniczenia prędkości w trybie nawigacji
• Dodano języki serbski (cyrylica) i łotewski
• Android Auto: sortowanie zakładek, ulepszono prośbę o pozwolenie na lokalizację
• Dodano POI dla wieży
• Dodano ustawienie dla linków do hoteli na Kayak.com oraz możliwość wyłączenia ich przy pierwszym uruchomieniu
…więcej szczegółów na omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Novos dados do OpenStreetMap de 21 de janeiro
• Exibe um sinal de limite de velocidade no modo de navegação
• Adicionados os idiomas sérvio (cirílico) e letão
• Android Auto: classificar favoritos, experiência aprimorada de solicitação de permissão de localização
• Adicionados POIs de torre
• Adicionada uma configuração para links de hotéis Kayak.com e uma opção de cancelamento de primeiro uso
…mais detalhes em omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Novos dados do OpenStreetMap a 21 de janeiro
• Exibir um sinal de limite de velocidade no modo de navegação
• Adicionados os idiomas sérvio (cirílico) e letão
• Android Auto: classificar favoritos, experiência melhorada de pedido de permissão de localização
• Adicionados POIs de torre
• Foi adicionada uma configuração para o Kayak.com Hotel Links e uma opção de cancelamento de primeira utilização
…mais detalhes em omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Новые данные OpenStreetMap от 21 января
• Отображение ограничения скорости в режиме навигации
• Android Auto: сортировка меток, улучшены запросы на разрешение местоположения
На карту добавлены башни
• Добавлена ​​настройка для отключения ссылок на отели с Kayak.com и возможность отказа при первом использовании
• Добавлены сербский (кириллица) и латышский языки
…и многое другое на omaps.org/news
• Новые данные OpenStreetMap от 22 ноября
В результатах поиска выделяется совпавшая часть адреса
• История поиска всегда сортируется по времени последнего использования
• Исправлена проблема запуска на некоторых старых устройствах с GPU Mali-T
• Различные улучшения поиска, обновления переводов и исправления ошибок

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,53 +1,53 @@
Наша бесплатна апликација вас не прати, нема рекламе и потребна јој је ваша подршка.
Континуирано се побољшава од стране сарадника и нашег малог тима, у наше слободно време.
Ако нешто није у реду или недостаје на мапи, исправите то на <b>OpenStreetMap-у</b> и видите своје промене у будућим ажурирањима мапа.
Ако навигација или претрага не раде, прво проверите то на osm.org, а затим нам пошаљите е-пошту. Одговарамо на <i>СВАКУ</i> поруку и поправљамо у најкраћем могућем року!
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>Ваше повратне информације и рецензије са 5 звездица су најбољи мотиватори за нас!</b>
<b>Your feedback and 5-star reviews are the best motivators for us!</b>
Кључне карактеристике:
Key features:
Бесплатно, отвореног кода, без реклама, без праћења
Детаљне мапе без интернета са местима која не постоје на Google мапама, захваљујући <b>OpenStreetMap</b> заједници
Бициклистичке стазе, пешачке стазе и стазе за шетњу
Контурне линије, профили надморске висине, врхови и нагиби
Пешачење, вожња бицикла и навигација скретање-по-скретање са гласовним навођењем и Андроид Аутом
Брза претрага без интернета
Извоз и увоз маркера и путања у KML, KMZ, GPX формату
Тамни режим за заштиту очију
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
Нема јавног превоза, сателитских мапа и других занимљивих функција <i>још</i> у Organic Maps-у. Али из <i>вашу помоћ и подршку</i>, можемо постепено направити боље мапе.
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.
Organic Maps је <b>чиста и органска, направљена с љубављу</b>:
Organic Maps is <b>pure and organic, made with love</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:
Нема реклама
Нема праћења
Нема прикупљања података
Нема телефонирања кући
Нема досадне регистрације
Нема обавезних туторијала
Нема бучне нежељене е-поште
Нема пуш обавештења
Нема crapware-а
Б̶е̶з̶ ̶п̶е̶с̶т̶и̶ц̶и̶да̶ Чисто органско
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
Organic Maps, верује да је <b>приватност основно право човека</b>:
At Organic Maps, we believe that <b>privacy is a fundamental human right</b>:
• Organic Maps пројекат отвореног кода који води заједница
Штитимо приватност од радозналих очију технолошких гиганата
Будите безбедни где год да се налазите
• 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
Према Exodus Privacy Report-у, откривено је нула трагача и само минимално потребне дозволе.
Zero trackers and only minimally required permissions are found according to Exodus Privacy Report.
Молимо посетите <b><i>organicmaps.app</i></b> веб-сајт за више информација и прочитајте FAQ, контактирајте нас путем Telegram-а директно на адресу @OrganicMapsApp.
Please visit <b><i>organicmaps.app</i></b> website for additional details and FAQ, and contact us directly at @OrganicMapsApp in Telegram.
Одбаците надзор - прихватите своју слободу.
<b>Испробајте Organic Maps!</b>
Reject surveillance - embrace your freedom.
<b>Give Organic Maps a try!</b>

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

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

View file

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

View file

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

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• Нові дані OpenStreetMap від 21 січня
• Знак перевищення швидкості підчас навігації
• Додано перклади сербською (кирилиця) та латиською мовами
• Android Auto: сортування міток, покращено процес запиту на отримання дозволу на розміщення
• Вежі відображаються на мапі
• Додано налаштування для посилань до Kayak.com для готелів та демонструється запит при першому використанні
…більше подробиць на omaps.org/news
• Нові дані OpenStreetMap від 22 листопада
• Адреса підсвічюється в результатах пошуку
• Історія пошука сортується за часом останнього використання
• Виправлення падіння на деяких старих девайсах із Mali-T GPU
• Деякі покращення якості пошуку, уточнення перекладів, виправлення помилок

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of January 21
• Dispay a speed limit sign in the navigation mode
• Added Serbian (Cyrillic) and Latvian languages
• Android Auto: sort bookmarks, improved location permission request experience
• Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
…more details at omaps.org/news
• New OpenStreetMap data as of November 22
• Highlight matched part of the address in search results
• Sort search history by last usage time
• Fixed start-up crashes for some older devices with Mali-T GPUs
• Other search improvements, translation updates & bug fixes

View file

@ -1 +1 @@
version: 2025.01.26-9-FDroid+25012609
version: 2024.11.27-12-FDroid+24112712

View file

@ -37,7 +37,6 @@
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
<!--
Android 13 (API level 33) and higher supports a runtime permission for sending non-exempt (including Foreground
@ -80,14 +79,12 @@
android:resizeableActivity="true"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_security_config"
android:manageSpaceActivity="${applicationId}.ManageSpaceActivity"
tools:targetApi="33">
<!-- Allows for config and orientation change without killing/restarting main activity -->
<activity
android:name="app.organicmaps.SplashActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|uiMode|keyboard|keyboardHidden|navigation"
android:screenOrientation="fullUser"
android:exported="true">
<intent-filter>
@ -122,7 +119,7 @@
<data android:scheme="https"/>
<data android:host="omaps.app"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@ -346,8 +343,7 @@
<activity
android:name="app.organicmaps.DownloadResourcesLegacyActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"/>
android:configChanges="orientation|screenLayout|screenSize"/>
<activity-alias
android:name="app.organicmaps.DownloadResourcesActivity"
@ -364,18 +360,11 @@
android:name="app.organicmaps.MwmActivity"
android:launchMode="singleTask"
android:configChanges="uiMode"
android:screenOrientation="fullUser"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"/>
<activity-alias
android:name="${applicationId}.ManageSpaceActivity"
android:exported="true"
android:targetActivity=".SplashActivity" />
<activity
android:name="app.organicmaps.downloader.DownloaderActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"
android:label="@string/download_maps"
android:parentActivityName="app.organicmaps.MwmActivity"
android:windowSoftInputMode="adjustResize" />
@ -383,7 +372,6 @@
<activity
android:name="app.organicmaps.search.SearchActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"
android:label="@string/search_map"
android:parentActivityName="app.organicmaps.MwmActivity"
android:windowSoftInputMode="stateVisible|adjustResize" />
@ -391,7 +379,6 @@
<activity
android:name="app.organicmaps.settings.SettingsActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"
android:label="@string/settings"
android:parentActivityName="app.organicmaps.MwmActivity" />
@ -409,7 +396,6 @@
<activity
android:name="app.organicmaps.bookmarks.BookmarkCategoriesActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"
android:label="@string/bookmarks_and_tracks"
android:parentActivityName="app.organicmaps.MwmActivity"
android:windowSoftInputMode="adjustResize" />
@ -417,7 +403,6 @@
<activity
android:name="app.organicmaps.bookmarks.BookmarkListActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"
android:label="@string/bookmarks"
android:parentActivityName="app.organicmaps.bookmarks.BookmarkCategoriesActivity"
android:windowSoftInputMode="adjustResize" />
@ -425,7 +410,6 @@
<activity
android:name="app.organicmaps.editor.EditorActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:screenOrientation="fullUser"
android:label="@string/edit_place"
android:parentActivityName="app.organicmaps.MwmActivity"
android:windowSoftInputMode="adjustResize" />
@ -459,21 +443,17 @@
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"
android:foregroundServiceType="specialUse"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="androidx.car.app.CarAppService" />
<category android:name="androidx.car.app.category.NAVIGATION" />
</intent-filter>
<intent-filter>
<action android:name="androidx.car.app.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="@string/android_auto_fgs_explanation_for_special_use"/>
</service>
<service
@ -490,13 +470,6 @@
android:stopWithTask="false"
/>
<service
android:name=".downloader.DownloaderService"
android:foregroundServiceType="dataSync"
android:exported="false"
android:enabled="true"
android:stopWithTask="false"/>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${FILE_PROVIDER_PLACEHOLDER}"
@ -512,8 +485,8 @@
<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="false" />
<!-- Disable Google's anonymous stats collection -->
<meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" />
<!-- Version >= 3.0. Dex Dual Mode support for compatible Samsung devices.
<!-- Version >= 3.0. Dex Dual Mode support for compatible Samsung devices.
See the documentation: https://developer.samsung.com/samsung-dex/modify-optimizing.html //-->
<meta-data android:name="com.samsung.android.multidisplay.keep_process_alive" android:value="true" />

View file

@ -22,13 +22,11 @@ set(SRC
app/organicmaps/vulkan/android_vulkan_context_factory.hpp
# JNI sources
app/organicmaps/sdk/search/DisplayedCategories.cpp
app/organicmaps/sdk/search/SearchEngine.cpp
app/organicmaps/sdk/search/SearchRecents.cpp
app/organicmaps/core/jni_helper.cpp
app/organicmaps/core/jni_java_methods.cpp
app/organicmaps/core/logging.cpp
app/organicmaps/bookmarks/data/BookmarkManager.cpp
app/organicmaps/DisplayedCategories.cpp
app/organicmaps/DownloadResourcesLegacyActivity.cpp
app/organicmaps/editor/Editor.cpp
app/organicmaps/editor/OpeningHours.cpp
@ -40,6 +38,8 @@ set(SRC
app/organicmaps/MapManager.cpp
app/organicmaps/MwmApplication.cpp
app/organicmaps/routing/RoutingOptions.cpp
app/organicmaps/SearchEngine.cpp
app/organicmaps/SearchRecents.cpp
app/organicmaps/settings/UnitLocale.cpp
app/organicmaps/settings/MapLanguageCode.cpp
app/organicmaps/sound/tts.cpp
@ -66,7 +66,6 @@ set(SRC
app/organicmaps/util/LogsManager.cpp
app/organicmaps/util/NetworkPolicy.cpp
app/organicmaps/util/StringUtils.cpp
app/organicmaps/util/UiThread.cpp
app/organicmaps/vulkan/android_vulkan_context_factory.cpp
)

View file

@ -5,7 +5,8 @@
extern "C"
{
JNIEXPORT jobjectArray JNICALL Java_app_organicmaps_sdk_search_DisplayedCategories_nativeGetKeys(JNIEnv * env, jclass)
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_search_DisplayedCategories_nativeGetKeys(JNIEnv * env, jclass clazz)
{
::Framework * fr = g_framework->NativeFramework();
ASSERT(fr, ());

View file

@ -931,15 +931,13 @@ Java_app_organicmaps_Framework_nativePlacePageActivationListener(JNIEnv *env, jc
jni::TScopedLocalRef placePageDataRef(env, nullptr);
if (info.IsTrack())
{
// 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()));
auto const elevationInfo = frm()->GetBookmarkManager().MakeElevationInfo(info.GetTrackId());
placePageDataRef.reset(usermark_helper::CreateElevationInfo(env, elevationInfo));
}
if (!placePageDataRef)
else
{
placePageDataRef.reset(usermark_helper::CreateMapObject(env, info));
}
env->CallVoidMethod(g_placePageActivationListener, activatedId, placePageDataRef.get());
};
auto const closePlacePage = [deactivateId]()
@ -1578,12 +1576,6 @@ Java_app_organicmaps_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jstring
frm()->GetRoutingManager().AddRoutePoint(std::move(data));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().RemoveRoutePoints();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_Framework_nativeRemoveRoutePoint(JNIEnv * env, jclass,
jint markType, jint intermediateIndex)
@ -1633,13 +1625,6 @@ Java_app_organicmaps_Framework_nativeGetRoutePoints(JNIEnv * env, jclass)
});
}
JNIEXPORT void JNICALL
Java_app_organicmaps_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass,
jint currentIndex, jint targetIndex)
{
frm()->GetRoutingManager().MoveRoutePoint(currentIndex, targetIndex);
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_Framework_nativeGetTransitRouteInfo(JNIEnv * env, jclass)
{
@ -1997,83 +1982,14 @@ 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)
jlong firstDaySec, jlong lastDaySec, jboolean isReferral)
{
string const url = osm::GetKayakHotelURLFromURI(jni::ToNativeString(env, countryIsoCode),
jni::ToNativeString(env, uri),
static_cast<time_t>(firstDaySec),
static_cast<time_t>(lastDaySec));
static_cast<time_t>(lastDaySec),
isReferral);
return url.empty() ? nullptr : jni::ToJavaString(env, url);
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_Framework_nativeShouldShowProducts(JNIEnv * env, jclass)
{
return frm()->ShouldShowProducts();
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_Framework_nativeGetProductsConfiguration(JNIEnv * env, jclass)
{
auto config = frm()->GetProductsConfiguration();
if (!config) return nullptr;
static jclass const productClass = jni::GetGlobalClassRef(
env,
"app/organicmaps/products/Product"
);
static jmethodID const productConstructor = jni::GetConstructorID(
env,
productClass,
"(Ljava/lang/String;Ljava/lang/String;)V"
);
jobjectArray products = jni::ToJavaArray(
env,
productClass,
config->GetProducts(),
[](JNIEnv * env, products::ProductsConfig::Product const & product)
{
jni::TScopedLocalRef const title(env, jni::ToJavaString(env, product.GetTitle()));
jni::TScopedLocalRef const link(env, jni::ToJavaString(env, product.GetLink()));
return env->NewObject(
productClass,
productConstructor,
title.get(),
link.get()
);
});
static jclass const productsConfigClass = jni::GetGlobalClassRef(
env,
"app/organicmaps/products/ProductsConfig"
);
static jmethodID const productsConfigConstructor = jni::GetConstructorID(
env,
productsConfigClass,
"(Ljava/lang/String;[Lapp/organicmaps/products/Product;)V"
);
jni::TScopedLocalRef const placePagePrompt(env, jni::ToJavaString(env, config->GetPlacePagePrompt()));
return env->NewObject(productsConfigClass, productsConfigConstructor, placePagePrompt.get(), products);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_Framework_nativeDidCloseProductsPopup(JNIEnv * env, jclass, jstring reason)
{
frm()->DidCloseProductsPopup(frm()->FromString(jni::ToNativeString(env, reason)));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_Framework_nativeDidSelectProduct(JNIEnv * env, jclass, jstring title, jstring link)
{
products::ProductsConfig::Product product(
jni::ToNativeString(env, title),
jni::ToNativeString(env, link)
);
frm()->DidSelectProduct(product);
}
} // extern "C"

View file

@ -1,5 +1,6 @@
#include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/platform/GuiThread.hpp"
#include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
@ -13,16 +14,16 @@ extern "C"
android::Platform::Instance().SetSettingsDir(jni::ToNativeString(env, settingsPath));
}
// static void nativeInitPlatform(Context context, String apkPath, String storagePath, String privatePath, String tmpPath,
// void nativeInitPlatform(String apkPath, String storagePath, String privatePath, String tmpPath,
// String flavorName, String buildType, boolean isTablet);
JNIEXPORT void JNICALL
Java_app_organicmaps_MwmApplication_nativeInitPlatform(JNIEnv * env, jclass clazz, jobject context,
jstring apkPath, jstring writablePath,
jstring privatePath, jstring tmpPath,
jstring flavorName, jstring buildType,
jboolean isTablet)
Java_app_organicmaps_MwmApplication_nativeInitPlatform(JNIEnv * env, jobject thiz,
jstring apkPath, jstring writablePath,
jstring privatePath, jstring tmpPath,
jstring flavorName, jstring buildType,
jboolean isTablet)
{
android::Platform::Instance().Initialize(env, context, apkPath, writablePath, privatePath, tmpPath,
android::Platform::Instance().Initialize(env, thiz, apkPath, writablePath, privatePath, tmpPath,
flavorName, buildType, isTablet);
}
@ -41,6 +42,13 @@ extern "C"
}
}
// static void nativeProcessTask(long taskPointer);
JNIEXPORT void JNICALL
Java_app_organicmaps_MwmApplication_nativeProcessTask(JNIEnv * env, jclass clazz, jlong taskPointer)
{
android::GuiThread::ProcessTask(taskPointer);
}
// static void nativeAddLocalization(String name, String value);
JNIEXPORT void JNICALL
Java_app_organicmaps_MwmApplication_nativeAddLocalization(JNIEnv * env, jclass clazz, jstring name, jstring value)

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