Compare commits

..

1 commit

Author SHA1 Message Date
Nicolas Cornu
5e25b3af78 Replace AtomicSharedPtr by std::atomic<std::shared_ptr<>>
Signed-off-by: Meenbeese <meenbeese@tutanota.com>
2024-12-24 22:54:08 -05:00
1260 changed files with 285183 additions and 176013 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

58
.gitmodules vendored
View file

@ -1,23 +1,26 @@
[submodule "tools/osmctools"]
path = tools/osmctools
url = https://git.omaps.dev/organicmaps/osmctools.git
url = https://github.com/organicmaps/osmctools.git
[submodule "tools/kothic"]
path = tools/kothic
url = https://git.omaps.dev/organicmaps/kothic.git
url = https://github.com/organicmaps/kothic.git
[submodule "3party/protobuf/protobuf"]
path = 3party/protobuf/protobuf
url = https://git.omaps.dev/organicmaps/protobuf.git
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
[submodule "3party/boost"]
path = 3party/boost
url = https://github.com/boostorg/boost.git
branch = boost-1.85.0
branch = boost-1.76.0
ignore = dirty
[submodule "3party/just_gtfs"]
path = 3party/just_gtfs
url = https://git.omaps.dev/organicmaps/just_gtfs.git
url = https://github.com/organicmaps/just_gtfs.git
branch = for-usage-as-submodule
[submodule "3party/expat"]
path = 3party/expat
@ -30,38 +33,29 @@
path = 3party/icu/icu
url = https://github.com/unicode-org/icu.git
[submodule "3party/freetype/freetype"]
path = 3party/freetype/freetype
url = https://git.omaps.dev/organicmaps/freetype.git
path = 3party/freetype/freetype
url = https://github.com/organicmaps/freetype.git
[submodule "3party/googletest"]
path = 3party/googletest
url = https://github.com/google/googletest.git
path = 3party/googletest
url = https://github.com/google/googletest.git
[submodule "3party/fast_double_parser"]
path = 3party/fast_double_parser
url = https://github.com/lemire/fast_double_parser.git
path = 3party/fast_double_parser
url = https://github.com/lemire/fast_double_parser.git
[submodule "3party/pugixml/pugixml"]
path = 3party/pugixml/pugixml
url = https://github.com/zeux/pugixml.git
path = 3party/pugixml/pugixml
url = https://github.com/zeux/pugixml.git
[submodule "3party/jansson/jansson"]
path = 3party/jansson/jansson
url = https://github.com/akheron/jansson.git
path = 3party/jansson/jansson
url = https://github.com/akheron/jansson.git
[submodule "3party/gflags"]
path = 3party/gflags
url = https://github.com/gflags/gflags
path = 3party/gflags
url = https://github.com/gflags/gflags
[submodule "3party/fast_obj"]
path = 3party/fast_obj
url = https://github.com/thisistherk/fast_obj
path = 3party/fast_obj
url = https://github.com/thisistherk/fast_obj
[submodule "3party/harfbuzz/harfbuzz"]
path = 3party/harfbuzz/harfbuzz
url = https://github.com/harfbuzz/harfbuzz.git
path = 3party/harfbuzz/harfbuzz
url = https://github.com/harfbuzz/harfbuzz.git
[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
path = 3party/utfcpp
url = https://github.com/nemtrif/utfcpp.git

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

View file

@ -66,19 +66,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 +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

@ -1 +1 @@
Subproject commit caade5a28aad86b92a4b5337a9dc70c4ba73c5eb
Subproject commit 30cc354fe37114ec7a0a4ed2192951690357c2ed

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

@ -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>
@ -167,8 +158,9 @@ Please join our beta program, suggest your features, and report bugs:
- **Rate us on the [App Store](https://apps.apple.com/app/organic-maps/id1567437057)
and [Google Play](https://play.google.com/store/apps/details?id=app.organicmaps)**.
- **Star us on Forgejo**.
- Report bugs or issues to [the issue tracker](https://git.omaps.dev/organicmaps/organicmaps/issues).
- **Star us on GitHub**.
- Report bugs or issues to [the issue tracker](https://github.com/organicmaps/organicmaps/issues).
- [Discuss](https://github.com/organicmaps/organicmaps/discussions/categories/ideas) ideas or propose feature requests.
- Subscribe to our [Telegram Channel](https://t.me/OrganicMapsApp) or to the [[matrix] space](https://matrix.to/#/#organicmaps:matrix.org) for updates.
- Join our [Telegram Group](https://t.me/OrganicMaps) to discuss with other users.
- Присоединяйтесь к нашей [русскоязычной группе в Telegram](https://t.me/OrganicMapsRu) для обратной связи и помощи.
@ -178,7 +170,7 @@ and [Google Play](https://play.google.com/store/apps/details?id=app.organicmaps)
- Follow our updates in
[Mastodon](https://fosstodon.org/@organicmaps),
[Facebook](https://facebook.com/OrganicMaps),
[X (Twitter)](https://x.com/OrganicMapsApp),
[Twitter](https://twitter.com/OrganicMapsApp),
[Instagram](https://instagram.com/organicmaps.app/).
- Güncellemelerimizi [Instagram](https://instagram.com/organicmapstr/) üzerinden takip edin.

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
}
}
@ -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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 ад 27 лютага
• Магчымасць уручную расстаўляць прамежкавыя кропкі маршруту
• Экспарт аднаго абранага трэка са спісу
• Палепшаная маршрутызацыя для веласіпедыстаў
• Дададзена сістэмнае апавяшчэнне пры загрузцы карт, фонавыя загрузкі больш не перарываюцца
• Дададзены мігатлівы віджэт запісу трэка
…і шматлікае іншае на 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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 27. Februar
• Möglichkeit, Zwischenroutenpunkte manuell zu arrangieren
• Einen einzelnen ausgewählten Track aus der Liste teilen
• Verbesserte Routenführung für Fahrräder
• Beim Herunterladen von Karten eine Systembenachrichtigung anzeigen und Hintergrunddownloads nicht unterbrechen
• Ein blinkendes Trackaufzeichnungs-Widget 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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a Track Recording indicator on the main screen
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at 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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 27 février
• Possibilité d'organiser manuellement les points d'itinéraire intermédiaires
• Partager une seule piste sélectionnée dans la liste
• Amélioration du routage pour les vélos
• Afficher une notification système lors du téléchargement de cartes et ne pas interrompre les téléchargements en arrière-plan
• Ajout d'un widget d'enregistrement de piste clignotant
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 от 27 февраля
• Возможность вручную расставлять промежуточные точки маршрута
• Экспорт одного выбранного трека из списка
• Улучшенная маршрутизация для велосипедистов
• Добавлено системное уведомление при загрузке карт, фоновые загрузки больше не прерываются
• Добавлен мигающий виджет записи трека
…и многое другое на omaps.org/news
• Новые данные OpenStreetMap от 22 ноября
В результатах поиска выделяется совпавшая часть адреса
• История поиска всегда сортируется по времени последнего использования
• Исправлена проблема запуска на некоторых старых устройствах с GPU Mali-T
• Различные улучшения поиска, обновления переводов и исправления ошибок

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 від 27 лютого
• Можливість вручну розставляти проміжні точки маршруту
• Експорт одного вибраного треку зі списку
• Покращена маршрутизація для велосипедистів
• Додано системне повідомлення під час завантаження карт, фонові завантаження більше не перериваються
• Додано миготливий віджет запису треку
…більше подробиць на omaps.org/news
• Нові дані OpenStreetMap від 22 листопада
• Адреса підсвічюється в результатах пошуку
• Історія пошука сортується за часом останнього використання
• Виправлення падіння на деяких старих девайсах із Mali-T GPU
• Деякі покращення якості пошуку, уточнення перекладів, виправлення помилок

View file

@ -1,8 +1,5 @@
• New OpenStreetMap data as of February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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 February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
• Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…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.03.02-7-FDroid+25030207
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

@ -1578,12 +1578,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 +1627,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)
{
@ -2006,74 +1993,4 @@ Java_app_organicmaps_Framework_nativeGetKayakHotelLink(JNIEnv * env, jclass, jst
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