Compare commits
59 Commits
x7z4w-patc
...
hb0nd-andr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6020ae0c7d | ||
|
|
b26deb3bb2 | ||
|
|
e8e94744f0 | ||
|
|
98689fbbf8 | ||
|
|
6cccd32166 | ||
|
|
1b04524d68 | ||
|
|
1a6bbd756a | ||
|
|
836c39ff64 | ||
|
|
7781528263 | ||
|
|
2aaf37e9ee | ||
|
|
a28d5d15ce | ||
|
|
55dc1e17e6 | ||
|
|
826b56cabc | ||
|
|
9aa86fc703 | ||
|
|
4fe21ec6eb | ||
|
|
cb2181a80e | ||
|
|
eeb53eb0c4 | ||
|
|
887bc2c755 | ||
|
|
29d60c9af0 | ||
|
|
e0c579634b | ||
|
|
266d62831f | ||
|
|
d94351a8f1 | ||
|
|
31970c87c4 | ||
|
|
8e9dbe0248 | ||
|
|
3b1551be52 | ||
|
|
9d8e84ae5a | ||
|
|
c4d5109d5b | ||
|
|
59499333ff | ||
|
|
b5e0d10cb1 | ||
|
|
55b85183d5 | ||
|
|
38406b149a | ||
|
|
ef2dea20fe | ||
|
|
aac80606f2 | ||
|
|
7765d97cda | ||
|
|
3aa74bc427 | ||
|
|
902e7f6453 | ||
|
|
cecca729db | ||
|
|
2b2518b0b4 | ||
|
|
3c34765595 | ||
|
|
3f7815017e | ||
|
|
0d4809c18e | ||
|
|
052a3123aa | ||
|
|
f81bff512a | ||
|
|
2587db91be | ||
|
|
3b5d5e882b | ||
|
|
3c4e0d05c5 | ||
|
|
4be5b5dc45 | ||
|
|
9ff72366d5 | ||
|
|
7c354645b9 | ||
|
|
00d3f9a370 | ||
|
|
cd29eda949 | ||
|
|
1ed27f4052 | ||
|
|
57ecf3848b | ||
|
|
697e871c1b | ||
|
|
d5966ff198 | ||
|
|
3abd04426c | ||
|
|
8237a7e417 | ||
|
|
1607769551 | ||
|
|
a189516736 |
@@ -21,12 +21,11 @@ jobs:
|
||||
- name: Install appstream validator and flatpak Builder
|
||||
shell: bash
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y flatpak dbus --no-install-recommends
|
||||
mkdir /run/dbus
|
||||
dbus-daemon --system
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak install -y org.flatpak.Builder
|
||||
sudo apt update -y
|
||||
sudo apt install -y \
|
||||
flatpak
|
||||
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
sudo flatpak install -y org.flatpak.Builder
|
||||
|
||||
- name: Lint appstream data with flatpak Builder
|
||||
shell: bash
|
||||
|
||||
@@ -3,6 +3,6 @@ on: [pull_request]
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: codeberg-tiny
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: https://github.com/KineticCafe/actions-dco@v1
|
||||
|
||||
@@ -133,6 +133,14 @@ jobs:
|
||||
with:
|
||||
key: ${{ github.workflow }}-unity-${{ matrix.compiler.CC }}-${{ matrix.CMAKE_BUILD_TYPE }}
|
||||
|
||||
- name: Configure repository
|
||||
shell: bash
|
||||
env:
|
||||
SKIP_MAP_DOWNLOAD: 1
|
||||
SKIP_GENERATE_SYMBOLS: 1
|
||||
SKIP_GENERATE_DRULES: 1
|
||||
run: ./configure.sh
|
||||
|
||||
- name: CMake
|
||||
shell: bash
|
||||
env:
|
||||
|
||||
18
.gitignore
vendored
@@ -14,12 +14,10 @@ stxxl.errlog
|
||||
stxxl.log
|
||||
screenlog.0
|
||||
|
||||
data/symbols/*/design/
|
||||
# symbols png/sdf are now generated at build
|
||||
data/symbols/**/symbols.png
|
||||
data/symbols/**/symbols.sdf
|
||||
data/colors_design.txt
|
||||
data/patterns_design.txt
|
||||
|
||||
data/bookmarks
|
||||
data/edits.xml
|
||||
data/World.mwm
|
||||
@@ -27,11 +25,15 @@ data/WorldCoasts.mwm
|
||||
data/world_mwm/*
|
||||
data/*_hash
|
||||
data/drules_proto*
|
||||
data/classificator.txt
|
||||
data/types.txt
|
||||
data/visibility.txt
|
||||
data/colors.txt
|
||||
data/patterns.txt
|
||||
data/classificator.txt*
|
||||
data/types.txt*
|
||||
data/visibility.txt*
|
||||
data/colors.txt*
|
||||
data/patterns.txt*
|
||||
# TODO: designer is not used at the moment
|
||||
# data/symbols/*/design/
|
||||
# data/colors_design.txt
|
||||
# data/patterns_design.txt
|
||||
|
||||
# Compiled Python
|
||||
*.pyc
|
||||
|
||||
@@ -49,8 +49,6 @@ if (APPLE AND NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL Android))
|
||||
set(CMAKE_OBJCXX_VISIBILITY_PRESET hidden)
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND "./configure.sh" WORKING_DIRECTORY ${OMIM_ROOT})
|
||||
|
||||
message(STATUS "Using compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
|
||||
if (CMAKE_UNITY_BUILD)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
<div align="center">
|
||||
<p align="center">
|
||||
<a href="https://codeberg.org/comaps/comaps/releases">
|
||||
<a href="https://codeberg.org/comaps/comaps/src/branch/main/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/comaps/comaps?style=for-the-badge&logo=opensourceinitiative&logoColor=white&color=588157" alt="License"/>
|
||||
</a>
|
||||
<a href="https://github.com/comaps/comaps/actions/workflows/android-check.yaml">
|
||||
@@ -41,8 +41,6 @@
|
||||
|
||||
A community-led free & open source maps app based on [OpenStreetMap](https://www.openstreetmap.org), built for transparency, privacy, and not-for-profit values. A fork of Organic Maps, originally based on Maps.ME.
|
||||
|
||||
**Available for:** Android, iOS, ARM macOS, and alpha Linux/macOS desktop builds (also usable on Linux phones).
|
||||
|
||||
<p align="center">
|
||||
<a href="https://apps.apple.com/app/comaps/id6747180809">
|
||||
<img src="docs/badges/apple-appstore.png" alt="App Store" width="160"/>
|
||||
@@ -77,9 +75,10 @@ A community-led free & open source maps app based on [OpenStreetMap](https://www
|
||||
## ⚡️ Highlights
|
||||
|
||||
- **Offline-first**: Navigate without a connection
|
||||
- **Privacy-respecting**: No tracking, Ads or data collection
|
||||
- **Privacy-respecting**: No tracking, ads or data collection
|
||||
- **Lightweight**: Battery- and space-efficient
|
||||
- **Simple**: Polished, user-focused interface
|
||||
- **Cross-platform**: Available for Android, iOS, MacOS, and Linux.
|
||||
- **Community-built**: Free, open source, and collaborative
|
||||
- **Transparent**: Open finances and governance
|
||||
|
||||
|
||||
@@ -17,12 +17,12 @@ import app.organicmaps.sdk.downloader.UpdateInfo;
|
||||
import app.organicmaps.sdk.util.StringUtils;
|
||||
import app.organicmaps.sdk.util.UiUtils;
|
||||
import com.google.android.material.button.MaterialButton;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
|
||||
|
||||
class BottomPanel
|
||||
{
|
||||
private final DownloaderFragment mFragment;
|
||||
private final FloatingActionButton mFab;
|
||||
private final ExtendedFloatingActionButton mFab;
|
||||
private final MaterialButton mButton;
|
||||
|
||||
private final View.OnClickListener mDownloadListener = new View.OnClickListener() {
|
||||
|
||||
@@ -236,6 +236,11 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean saveEdits()
|
||||
{
|
||||
return setEdits() && beforeSavingValidation();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected String getDescription()
|
||||
{
|
||||
@@ -282,6 +287,18 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
||||
return validateNames();
|
||||
}
|
||||
|
||||
private boolean beforeSavingValidation() {
|
||||
// Validation to make sure address features have a house number
|
||||
if (!Editor.nativeCheckHouseNumberWhenIsAddress())
|
||||
{
|
||||
mHouseNumber.requestFocus();
|
||||
UiUtils.setInputError(mInputHouseNumber, R.string.error_enter_correct_house_number);
|
||||
InputUtils.showKeyboard(mHouseNumber);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean validateNames()
|
||||
{
|
||||
for (int pos = 0; pos < mNamesAdapter.getItemCount(); pos++)
|
||||
|
||||
@@ -276,6 +276,11 @@ public class EditorHostFragment
|
||||
return ((EditorFragment) getChildFragmentManager().findFragmentByTag(EditorFragment.class.getName())).setEdits();
|
||||
}
|
||||
|
||||
private boolean saveEdits()
|
||||
{
|
||||
return ((EditorFragment) getChildFragmentManager().findFragmentByTag(EditorFragment.class.getName())).saveEdits();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
@@ -310,7 +315,7 @@ public class EditorHostFragment
|
||||
case LANGUAGE -> editMapObject();
|
||||
case MAP_OBJECT ->
|
||||
{
|
||||
if (!setEdits())
|
||||
if (!saveEdits())
|
||||
return;
|
||||
|
||||
// Save object edits
|
||||
|
||||
@@ -112,6 +112,7 @@ public final class Editor
|
||||
public static native String nativeGetHouseNumber();
|
||||
public static native void nativeSetHouseNumber(String houseNumber);
|
||||
public static native boolean nativeIsHouseValid(String houseNumber);
|
||||
public static native boolean nativeCheckHouseNumberWhenIsAddress();
|
||||
public static boolean nativeIsLevelValid(String level)
|
||||
{
|
||||
return nativeIsMetadataValid(Metadata.MetadataType.FMD_BUILDING_LEVELS.toInt(), level);
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
android:layout_below="@id/toolbar"
|
||||
android:layout_above="@id/action"/>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||
android:id="@+id/fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -33,8 +33,10 @@
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="@dimen/margin_base"
|
||||
android:layout_marginBottom="@dimen/margin_base"
|
||||
app:tint="?android:textColorPrimaryInverse"
|
||||
app:srcCompat="@drawable/ic_plus"/>
|
||||
android:text="@string/download_maps"
|
||||
android:textColor="?accentButtonTextColor"
|
||||
app:iconTint="?android:textColorPrimaryInverse"
|
||||
app:icon="@drawable/ic_download"/>
|
||||
|
||||
<app.organicmaps.widget.PlaceholderView
|
||||
android:id="@+id/placeholder"
|
||||
|
||||
@@ -169,6 +169,7 @@
|
||||
<string name="type.amenity.water_point">Waterpunt</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Waterpunt</string>
|
||||
<string name="type.barrier">Versperring</string>
|
||||
<string name="type.barrier.yes">Versperring</string>
|
||||
<string name="type.barrier.block">Blok</string>
|
||||
<string name="type.barrier.bollard">Bolder</string>
|
||||
<string name="type.barrier.border_control">Grensbeheer</string>
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
<string name="type.amenity.water_point">نقطة إعادة تعبة قنينة المياه</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">نقطة إعادة تعبة قنينة المياه</string>
|
||||
<string name="type.barrier">حاجز</string>
|
||||
<string name="type.barrier.yes">حاجز</string>
|
||||
<string name="type.barrier.block">حاجز</string>
|
||||
<string name="type.barrier.bollard">حاجز سيارات</string>
|
||||
<string name="type.barrier.border_control">أمن الحدود</string>
|
||||
|
||||
@@ -177,6 +177,7 @@
|
||||
<string name="type.amenity.water_point">Karvanlar üçün su nöqtəsi</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Karvanlar üçün su nöqtəsi</string>
|
||||
<string name="type.barrier">Maneə</string>
|
||||
<string name="type.barrier.yes">Maneə</string>
|
||||
<string name="type.barrier.block">Blok</string>
|
||||
<string name="type.barrier.bollard">Birbaşa</string>
|
||||
<string name="type.barrier.border_control">Sərhəd Nəzarəti</string>
|
||||
|
||||
@@ -603,6 +603,7 @@
|
||||
<string name="type.amenity.waste_disposal">Кофа</string>
|
||||
<string name="type.amenity.waste_basket">Кошче за отпадък</string>
|
||||
<string name="type.barrier">Бариера</string>
|
||||
<string name="type.barrier.yes">Бариера</string>
|
||||
<string name="type.barrier.chain">Верига</string>
|
||||
<string name="type.amenity.place_of_worship.muslim">Джамия</string>
|
||||
<string name="type.amenity.post_box">Пощенска кутия</string>
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
<string name="type.amenity.water_point">Punt d’aigua</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Punt d’aigua</string>
|
||||
<string name="type.barrier">Barrera</string>
|
||||
<string name="type.barrier.yes">Barrera</string>
|
||||
<string name="type.barrier.block">Bloc</string>
|
||||
<string name="type.barrier.bollard">Bol·lard</string>
|
||||
<string name="type.barrier.border_control">Control fronterer</string>
|
||||
|
||||
@@ -1193,6 +1193,7 @@
|
||||
<string name="type.amenity.vending_machine.fuel">Palivové čerpadlo</string>
|
||||
<string name="type.amenity.waste_transfer_station">Překladiště odpadu</string>
|
||||
<string name="type.barrier">Bariéra</string>
|
||||
<string name="type.barrier.yes">Bariéra</string>
|
||||
<string name="type.barrier.cycle_barrier">Cyklistická bariéra</string>
|
||||
<string name="type.cuisine.bubble_tea">Bubble Tea</string>
|
||||
<string name="type.emergency">Nouzová stanice</string>
|
||||
|
||||
@@ -1201,6 +1201,7 @@
|
||||
<string name="type.amenity.vending_machine.fuel">Benzinautomat</string>
|
||||
<string name="type.amenity.waste_transfer_station">Affaldsplads</string>
|
||||
<string name="type.barrier">Barriere</string>
|
||||
<string name="type.barrier.yes">Barriere</string>
|
||||
<string name="type.barrier.chain">Kæde</string>
|
||||
<string name="type.amenity.vending_machine.food">Madautomat</string>
|
||||
<string name="type.barrier.cycle_barrier">Cykelbarriere</string>
|
||||
|
||||
@@ -182,6 +182,7 @@
|
||||
<string name="type.amenity.water_point">Wasseranschluss</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Wasseranschluss</string>
|
||||
<string name="type.barrier">Barriere</string>
|
||||
<string name="type.barrier.yes">Barriere</string>
|
||||
<string name="type.barrier.block">Block</string>
|
||||
<string name="type.barrier.bollard">Poller</string>
|
||||
<string name="type.barrier.border_control">Grenzkontrolle</string>
|
||||
|
||||
@@ -1230,6 +1230,7 @@
|
||||
<string name="type.barrier.wall">Τοίχος</string>
|
||||
<string name="type.recycling.cans">Κονσερβοκούτια</string>
|
||||
<string name="type.barrier">Εμπόδιο</string>
|
||||
<string name="type.barrier.yes">Εμπόδιο</string>
|
||||
<string name="type.amenity.vending_machine.sweets">Διανεμητής γλυκών</string>
|
||||
<string name="type.barrier.cycle_barrier">Εμπόδιο ποδηλάτου</string>
|
||||
<string name="type.recycling.shoes">Παπούτσια</string>
|
||||
|
||||
@@ -188,6 +188,7 @@
|
||||
<string name="type.amenity.water_point">Fuente de agua para caravanas</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Fuente de agua para caravanas</string>
|
||||
<string name="type.barrier">Barrera</string>
|
||||
<string name="type.barrier.yes">Barrera</string>
|
||||
<string name="type.barrier.block">Bloque</string>
|
||||
<string name="type.barrier.bollard">Bolardo</string>
|
||||
<string name="type.barrier.border_control">Control fronterizo</string>
|
||||
|
||||
@@ -186,6 +186,7 @@
|
||||
<string name="type.amenity.water_point">Joogivee tankimispunkt</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Joogivee tankimispunkt</string>
|
||||
<string name="type.barrier">Barjäär</string>
|
||||
<string name="type.barrier.yes">Barjäär</string>
|
||||
<string name="type.barrier.block">Kiviplokk</string>
|
||||
<string name="type.barrier.bollard">Piirdetulp</string>
|
||||
<string name="type.barrier.border_control">Piirikontroll</string>
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
<string name="type.amenity.water_point">Ur iturria</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Ur iturria</string>
|
||||
<string name="type.barrier">Hesia</string>
|
||||
<string name="type.barrier.yes">Hesia</string>
|
||||
<string name="type.barrier.block">Blokea</string>
|
||||
<string name="type.barrier.bollard">Pibotea</string>
|
||||
<string name="type.barrier.border_control">Muga kontrola</string>
|
||||
|
||||
@@ -184,6 +184,7 @@
|
||||
<string name="type.amenity.water_point">Vesipiste</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Vesipiste</string>
|
||||
<string name="type.barrier">Este</string>
|
||||
<string name="type.barrier.yes">Este</string>
|
||||
<string name="type.barrier.block">Este</string>
|
||||
<string name="type.barrier.bollard">Tolppa</string>
|
||||
<string name="type.barrier.border_control">Rajavalvonta</string>
|
||||
|
||||
@@ -177,6 +177,7 @@
|
||||
<string name="type.amenity.water_point">Point d’eau</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Point d’eau</string>
|
||||
<string name="type.barrier">Barrière</string>
|
||||
<string name="type.barrier.yes">Barrière</string>
|
||||
<string name="type.barrier.block">Bloc</string>
|
||||
<string name="type.barrier.bollard">Poteau</string>
|
||||
<string name="type.barrier.border_control">Contrôle aux frontières</string>
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
<string name="type.amenity.water_point">Fonte de auga para caravanas</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Fonte de auga para caravanas</string>
|
||||
<string name="type.barrier">Barreira</string>
|
||||
<string name="type.barrier.yes">Barreira</string>
|
||||
<string name="type.barrier.block">Bloque</string>
|
||||
<string name="type.barrier.bollard">Bolardo</string>
|
||||
<string name="type.barrier.border_control">Control fronteirizo</string>
|
||||
|
||||
@@ -176,6 +176,7 @@
|
||||
<string name="type.amenity.waste_disposal">Müllcontainer</string>
|
||||
<string name="type.amenity.water_point">Wasseraaschluss</string>
|
||||
<string name="type.barrier">Barriere</string>
|
||||
<string name="type.barrier.yes">Barriere</string>
|
||||
<string name="type.barrier.block">Block</string>
|
||||
<string name="type.barrier.bollard">Poller</string>
|
||||
<string name="type.barrier.border_control">Grenzkontrolle</string>
|
||||
|
||||
@@ -1220,6 +1220,7 @@
|
||||
<string name="type.aerialway.chair_lift">Ülőlift</string>
|
||||
<string name="type.aerialway.gondola">Gondolakabinos felvonó</string>
|
||||
<string name="type.barrier">Akadály</string>
|
||||
<string name="type.barrier.yes">Akadály</string>
|
||||
<string name="type.barrier.cycle_barrier">Kerékpárakadály</string>
|
||||
<string name="type.barrier.fence">Kerítés</string>
|
||||
<string name="type.barrier.hedge">Sövény</string>
|
||||
|
||||
@@ -620,6 +620,7 @@
|
||||
<string name="type.amenity.water_point">Vatnspóstur</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Vatnspóstur</string>
|
||||
<string name="type.barrier">Hindrun</string>
|
||||
<string name="type.barrier.yes">Hindrun</string>
|
||||
<string name="type.barrier.city_wall">Borgarmúr</string>
|
||||
<string name="type.barrier.cycle_barrier">Hjólahindrun</string>
|
||||
<string name="type.waterway.ditch">Drenskurður</string>
|
||||
|
||||
@@ -186,6 +186,7 @@
|
||||
<string name="type.amenity.water_point">Punto acqua</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Punto acqua</string>
|
||||
<string name="type.barrier">Barriera</string>
|
||||
<string name="type.barrier.yes">Barriera</string>
|
||||
<string name="type.barrier.block">Blocco</string>
|
||||
<string name="type.barrier.bollard">Pilastro</string>
|
||||
<string name="type.barrier.border_control">Controllo di frontiera</string>
|
||||
|
||||
@@ -186,6 +186,7 @@
|
||||
<string name="type.amenity.water_point">נקודת מילוי מיכלי מים</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">נקודת מילוי מיכלי מים</string>
|
||||
<string name="type.barrier">מחסום</string>
|
||||
<string name="type.barrier.yes">מחסום</string>
|
||||
<string name="type.barrier.block">חסימה</string>
|
||||
<string name="type.barrier.bollard">עמוד</string>
|
||||
<string name="type.barrier.border_control">ביקורת גבולות</string>
|
||||
|
||||
@@ -170,6 +170,7 @@
|
||||
<string name="type.amenity.water_point">給水所</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">給水所</string>
|
||||
<string name="type.barrier">障害物</string>
|
||||
<string name="type.barrier.yes">障害物</string>
|
||||
<string name="type.barrier.block">ブロック</string>
|
||||
<string name="type.barrier.bollard">柱</string>
|
||||
<string name="type.barrier.border_control">国境管理</string>
|
||||
|
||||
@@ -163,6 +163,7 @@
|
||||
<string name="type.amenity.waste_disposal">कचऱ्याची मोठी पेटी</string>
|
||||
<string name="type.amenity.waste_transfer_station">कचरा हस्तांतरण केंद्र</string>
|
||||
<string name="type.barrier">अडथळा</string>
|
||||
<string name="type.barrier.yes">अडथळा</string>
|
||||
<string name="type.barrier.block">अडथळा</string>
|
||||
<string name="type.barrier.bollard">खांब</string>
|
||||
<string name="type.barrier.border_control">सीमा नियंत्रण</string>
|
||||
|
||||
@@ -158,6 +158,7 @@
|
||||
<string name="type.amenity.water_point">Vannpunkt</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Vannpunkt</string>
|
||||
<string name="type.barrier">Barriere</string>
|
||||
<string name="type.barrier.yes">Barriere</string>
|
||||
<string name="type.barrier.block">Blokk</string>
|
||||
<string name="type.barrier.bollard">Pullert</string>
|
||||
<string name="type.barrier.border_control">Grensekontroll</string>
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
<string name="type.amenity.water_point">Waterpunt</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Waterpunt</string>
|
||||
<string name="type.barrier">Barrière</string>
|
||||
<string name="type.barrier.yes">Barrière</string>
|
||||
<string name="type.barrier.block">Blok</string>
|
||||
<string name="type.barrier.bollard">Pilaar</string>
|
||||
<string name="type.barrier.border_control">Grenscontrole</string>
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
<string name="type.amenity.water_point">Ujęcie wody</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Ujęcie wody</string>
|
||||
<string name="type.barrier">Bariera</string>
|
||||
<string name="type.barrier.yes">Bariera</string>
|
||||
<string name="type.barrier.block">Blok</string>
|
||||
<string name="type.barrier.bollard">Słupek</string>
|
||||
<string name="type.barrier.border_control">Kontrola graniczna</string>
|
||||
|
||||
@@ -162,6 +162,7 @@
|
||||
<string name="type.amenity.water_point">Ponto de água</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Ponto de água</string>
|
||||
<string name="type.barrier">Barreira</string>
|
||||
<string name="type.barrier.yes">Barreira</string>
|
||||
<string name="type.barrier.block">Bloco</string>
|
||||
<string name="type.barrier.bollard">Pilarete</string>
|
||||
<string name="type.barrier.border_control">Controle de fronteira</string>
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
<string name="type.amenity.water_point">Ponto de água</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Ponto de água</string>
|
||||
<string name="type.barrier">Barreira</string>
|
||||
<string name="type.barrier.yes">Barreira</string>
|
||||
<string name="type.barrier.block">Bloco</string>
|
||||
<string name="type.barrier.bollard">Pilarete</string>
|
||||
<string name="type.barrier.border_control">Controlo de fronteira</string>
|
||||
|
||||
@@ -182,12 +182,14 @@
|
||||
<string name="type.amenity.vehicle_inspection">Техосмотр автомобиля</string>
|
||||
<string name="type.amenity.vending_machine.fuel">Топливная колонка</string>
|
||||
<string name="type.amenity.veterinary">Ветеринарная клиника</string>
|
||||
<string name="type.amenity.animal_shelter">Приют для животных</string>
|
||||
<string name="type.amenity.waste_basket">Урна</string>
|
||||
<string name="type.amenity.waste_disposal">Мусорный контейнер</string>
|
||||
<string name="type.amenity.waste_transfer_station">Станция перевалки отходов</string>
|
||||
<string name="type.amenity.water_point">Вода для автодомов</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Вода для автодомов</string>
|
||||
<string name="type.barrier">Преграда</string>
|
||||
<string name="type.barrier.yes">Преграда</string>
|
||||
<string name="type.barrier.block">Блок</string>
|
||||
<string name="type.barrier.bollard">Столбик</string>
|
||||
<string name="type.barrier.border_control">Погранконтроль</string>
|
||||
@@ -206,6 +208,7 @@
|
||||
<string name="type.barrier.retaining_wall">Поддерживающая стена</string>
|
||||
<string name="type.barrier.stile">Перелаз</string>
|
||||
<string name="type.barrier.turnstile">Турникет</string>
|
||||
<string name="type.barrier.wicket_gate">Калитка</string>
|
||||
<string name="type.barrier.swing_gate">Шлагбаум</string>
|
||||
<string name="type.barrier.toll_booth">Пункт оплаты</string>
|
||||
<string name="type.barrier.wall">Стена</string>
|
||||
|
||||
@@ -178,6 +178,7 @@
|
||||
<string name="type.amenity.water_point">Voda</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Voda</string>
|
||||
<string name="type.barrier">Zábrana</string>
|
||||
<string name="type.barrier.yes">Zábrana</string>
|
||||
<string name="type.barrier.block">Blok</string>
|
||||
<string name="type.barrier.bollard">Pilier</string>
|
||||
<string name="type.barrier.border_control">Hraničná kontrola</string>
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
<string name="type.amenity.water_point">Чесма</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Чесма</string>
|
||||
<string name="type.barrier">Баријера</string>
|
||||
<string name="type.barrier.yes">Баријера</string>
|
||||
<string name="type.barrier.block">Блок</string>
|
||||
<string name="type.barrier.bollard">Стуб</string>
|
||||
<string name="type.barrier.border_control">Гранична контрола</string>
|
||||
|
||||
@@ -1182,6 +1182,7 @@
|
||||
<string name="type.amenity.vending_machine.coffee">Kaffeautomat</string>
|
||||
<string name="type.amenity.vending_machine.fuel">Bränslepump</string>
|
||||
<string name="type.barrier">Hinder</string>
|
||||
<string name="type.barrier.yes">Hinder</string>
|
||||
<string name="type.barrier.chain">Kedja</string>
|
||||
<string name="type.barrier.cycle_barrier">Cykelhinder</string>
|
||||
<string name="type.barrier.hedge">Häck</string>
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
<string name="type.amenity.water_point">Su Tankı Yeniden Doldurma Noktası</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Su Tankı Yeniden Doldurma Noktası</string>
|
||||
<string name="type.barrier">Bariyer</string>
|
||||
<string name="type.barrier.yes">Bariyer</string>
|
||||
<string name="type.barrier.block">Blok</string>
|
||||
<string name="type.barrier.bollard">Direk</string>
|
||||
<string name="type.barrier.border_control">Sınır Denetimi</string>
|
||||
|
||||
@@ -188,6 +188,7 @@
|
||||
<string name="type.amenity.water_point">Вода для автобудинків</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Вода для автобудинків</string>
|
||||
<string name="type.barrier">Перешкода</string>
|
||||
<string name="type.barrier.yes">Перешкода</string>
|
||||
<string name="type.barrier.block">Блок</string>
|
||||
<string name="type.barrier.bollard">Стовпчик</string>
|
||||
<string name="type.barrier.border_control">Прикордонний контроль</string>
|
||||
|
||||
@@ -183,6 +183,7 @@
|
||||
<string name="type.amenity.water_point">飲水站</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">飲水站</string>
|
||||
<string name="type.barrier">障礙物</string>
|
||||
<string name="type.barrier.yes">障礙物</string>
|
||||
<string name="type.barrier.block">街區</string>
|
||||
<string name="type.barrier.bollard">柱</string>
|
||||
<string name="type.barrier.border_control">邊境管制</string>
|
||||
|
||||
@@ -292,6 +292,7 @@
|
||||
<string name="type.healthcare.physiotherapist">物理治療師</string>
|
||||
<string name="type.leisure.escape_game">密室脫逃</string>
|
||||
<string name="type.barrier">障礙物</string>
|
||||
<string name="type.barrier.yes">障礙物</string>
|
||||
<string name="type.entrance.main">主要入口</string>
|
||||
<string name="type.entrance.exit">出口</string>
|
||||
<string name="type.amenity.shelter">涼亭</string>
|
||||
|
||||
@@ -183,6 +183,7 @@
|
||||
<string name="type.amenity.water_point">取水点</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">取水点</string>
|
||||
<string name="type.barrier">障碍物</string>
|
||||
<string name="type.barrier.yes">障碍物</string>
|
||||
<string name="type.barrier.block">路障</string>
|
||||
<string name="type.barrier.bollard">护柱</string>
|
||||
<string name="type.barrier.border_control">边境检查站</string>
|
||||
|
||||
@@ -187,12 +187,14 @@
|
||||
<string name="type.amenity.vehicle_inspection">Vehicle Inspection</string>
|
||||
<string name="type.amenity.vending_machine.fuel">Fuel Pump</string>
|
||||
<string name="type.amenity.veterinary">Veterinary Doctor</string>
|
||||
<string name="type.amenity.animal_shelter">Animal Shelter</string>
|
||||
<string name="type.amenity.waste_basket">Trash Bin</string>
|
||||
<string name="type.amenity.waste_disposal">Dumpster</string>
|
||||
<string name="type.amenity.waste_transfer_station">Waste Transfer Station</string>
|
||||
<string name="type.amenity.water_point">Water Tank Refill Point</string>
|
||||
<string name="type.amenity.water_point.drinking_water_no">Water Tank Refill Point</string>
|
||||
<string name="type.barrier">Barrier</string>
|
||||
<string name="type.barrier.yes">Barrier</string>
|
||||
<string name="type.barrier.block">Block</string>
|
||||
<string name="type.barrier.bollard">Bollard</string>
|
||||
<string name="type.barrier.border_control">Border Control</string>
|
||||
@@ -212,6 +214,7 @@
|
||||
<string name="type.barrier.retaining_wall">Retaining Wall</string>
|
||||
<string name="type.barrier.stile">Stile</string>
|
||||
<string name="type.barrier.turnstile">Turnstile</string>
|
||||
<string name="type.barrier.wicket_gate">Wicket Gate</string>
|
||||
<string name="type.barrier.swing_gate">Swing Gate</string>
|
||||
<string name="type.barrier.toll_booth">Toll Booth</string>
|
||||
<string name="type.barrier.wall">Wall</string>
|
||||
|
||||
@@ -114,6 +114,20 @@ project.afterEvaluate {
|
||||
nativeTask.onlyIf { false }
|
||||
}
|
||||
}
|
||||
|
||||
final taskName = gradle.startParameter.taskNames
|
||||
|
||||
if (['assemble', 'bundle', 'compile', 'install'].any{taskName.any{task->task.startsWith(it)}}) {
|
||||
exec {
|
||||
workingDir '../..'
|
||||
|
||||
if (!taskName.toString().contains('Google')) {
|
||||
environment 'SKIP_MAP_DOWNLOAD', '1'
|
||||
}
|
||||
|
||||
commandLine './configure.sh'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
|
||||
@@ -29,7 +29,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_OrganicMaps_nativeInitFramework(
|
||||
{
|
||||
if (!g_framework)
|
||||
{
|
||||
g_framework = std::make_unique<android::Framework>([onComplete = jni::make_global_ref(onComplete)]()
|
||||
g_framework = std::make_unique<android::Framework>([onComplete = jni::make_global_ref_safe(onComplete)]()
|
||||
{
|
||||
JNIEnv * env = jni::GetEnv();
|
||||
jmethodID const methodId = jni::GetMethodID(env, *onComplete, "run", "()V");
|
||||
|
||||
@@ -98,18 +98,26 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *, void *)
|
||||
|
||||
namespace jni
|
||||
{
|
||||
JNIEnv * GetEnv()
|
||||
JNIEnv * GetEnvSafe()
|
||||
{
|
||||
JNIEnv * env;
|
||||
auto const res = g_jvm->GetEnv((void **)&env, JNI_VERSION_1_6);
|
||||
if (res != JNI_OK)
|
||||
{
|
||||
LOG(LERROR, ("Can't get JNIEnv. Is the thread attached to JVM?", res));
|
||||
MYTHROW(RootException, ("Can't get JNIEnv. Is the thread attached to JVM?", res));
|
||||
env = nullptr;
|
||||
}
|
||||
return env;
|
||||
}
|
||||
|
||||
JNIEnv * GetEnv()
|
||||
{
|
||||
JNIEnv * env = GetEnvSafe();
|
||||
if (env == nullptr)
|
||||
MYTHROW(RootException, ("Can't get JNIEnv. Is the thread attached to JVM?"));
|
||||
return env;
|
||||
}
|
||||
|
||||
JavaVM * GetJVM()
|
||||
{
|
||||
ASSERT(g_jvm, ("JVM is not initialized"));
|
||||
@@ -218,6 +226,20 @@ std::shared_ptr<jobject> make_global_ref(jobject obj)
|
||||
});
|
||||
}
|
||||
|
||||
// https://github.com/organicmaps/organicmaps/issues/9397
|
||||
/// @todo There are no other ideas, let's try a safe version with a forever global ref ..
|
||||
std::shared_ptr<jobject> make_global_ref_safe(jobject obj)
|
||||
{
|
||||
jobject * ref = new jobject(GetEnv()->NewGlobalRef(obj));
|
||||
return std::shared_ptr<jobject>(ref, [](jobject * ref)
|
||||
{
|
||||
JNIEnv * env = GetEnvSafe();
|
||||
if (env)
|
||||
env->DeleteGlobalRef(*ref);
|
||||
delete ref;
|
||||
});
|
||||
}
|
||||
|
||||
std::string ToNativeString(JNIEnv * env, jthrowable const & e)
|
||||
{
|
||||
jni::TScopedLocalClassRef logClassRef(env, env->FindClass("android/util/Log"));
|
||||
|
||||
@@ -66,6 +66,8 @@ bool HandleJavaException(JNIEnv * env);
|
||||
base::LogLevel GetLogLevelForException(JNIEnv * env, jthrowable const & e);
|
||||
|
||||
std::shared_ptr<jobject> make_global_ref(jobject obj);
|
||||
std::shared_ptr<jobject> make_global_ref_safe(jobject obj);
|
||||
|
||||
using TScopedLocalRef = ScopedLocalRef<jobject>;
|
||||
using TScopedLocalClassRef = ScopedLocalRef<jclass>;
|
||||
using TScopedLocalObjectArrayRef = ScopedLocalRef<jobjectArray>;
|
||||
|
||||
@@ -493,6 +493,12 @@ JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeIsHouseV
|
||||
return osm::EditableMapObject::ValidateHouseNumber(jni::ToNativeString(env, houseNumber));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeCheckHouseNumberWhenIsAddress(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_editableMapObject.CheckHouseNumberWhenIsAddress();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeIsNameValid(JNIEnv * env, jclass clazz,
|
||||
jstring name)
|
||||
{
|
||||
|
||||
24
configure.sh
@@ -9,6 +9,26 @@ SKIP_MAP_DOWNLOAD=$SKIP_MAP_DOWNLOAD
|
||||
SKIP_GENERATE_SYMBOLS=$SKIP_GENERATE_SYMBOLS
|
||||
SKIP_GENERATE_DRULES=$SKIP_GENERATE_DRULES
|
||||
|
||||
DRULES_NOT_GENERATED=
|
||||
SYMBOLS_NOT_GENERATED=
|
||||
|
||||
DRULES_FILES=(drules_proto.bin drules_proto_default_dark.bin drules_proto_default_light.bin drules_proto_outdoors_dark.bin drules_proto_outdoors_light.bin drules_proto_vehicle_dark.bin drules_proto_vehicle_light.bin classificator.txt types.txt visibility.txt colors.txt patterns.txt)
|
||||
SYMBOLS_FILES=(xhdpi/light/symbols.png xhdpi/light/symbols.sdf xhdpi/dark/symbols.png xhdpi/dark/symbols.sdf mdpi/light/symbols.png mdpi/light/symbols.sdf mdpi/dark/symbols.png mdpi/dark/symbols.sdf 6plus/light/symbols.png 6plus/light/symbols.sdf 6plus/dark/symbols.png 6plus/dark/symbols.sdf xxxhdpi/light/symbols.png xxxhdpi/light/symbols.sdf xxxhdpi/dark/symbols.png xxxhdpi/dark/symbols.sdf hdpi/light/symbols.png hdpi/light/symbols.sdf hdpi/dark/symbols.png hdpi/dark/symbols.sdf xxhdpi/light/symbols.png xxhdpi/light/symbols.sdf xxhdpi/dark/symbols.png xxhdpi/dark/symbols.sdf)
|
||||
|
||||
for f in ${DRULES_FILES[*]}; do
|
||||
if [ ! -f "data/$f" ]; then
|
||||
DRULES_NOT_GENERATED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
for f in ${SYMBOLS_FILES[*]}; do
|
||||
if [ ! -f "data/symbols/$f" ]; then
|
||||
SYMBOLS_NOT_GENERATED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
############################# PROCESS OPTIONS ################################
|
||||
|
||||
TEMP=$(getopt -o ms --long skip-map-download,skip-generate-symbols,skip-generate-drules \
|
||||
@@ -87,7 +107,7 @@ else
|
||||
fi
|
||||
|
||||
if [ -z "$SKIP_GENERATE_SYMBOLS" ]; then
|
||||
if Diff data/symbols_hash data/styles/*/*/symbols/*; then
|
||||
if Diff data/symbols_hash data/styles/*/*/symbols/* || [ ! -z "$SYMBOLS_NOT_GENERATED" ]; then
|
||||
echo "Generating symbols..."
|
||||
bash ./tools/unix/generate_symbols.sh
|
||||
fi
|
||||
@@ -96,7 +116,7 @@ else
|
||||
fi
|
||||
|
||||
if [ -z "$SKIP_GENERATE_DRULES" ]; then
|
||||
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv; then
|
||||
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv || [ ! -z "$DRULES_NOT_GENERATED" ]; then
|
||||
echo "Generating drules..."
|
||||
bash ./tools/unix/generate_drules.sh
|
||||
fi
|
||||
|
||||
@@ -10162,6 +10162,48 @@ sw:Jengo
|
||||
fa:ساختمان
|
||||
mr:इमारत|बिल्डिंग|वाडा
|
||||
|
||||
building-address
|
||||
en:Address
|
||||
ar:العنوان
|
||||
be:Адрас
|
||||
bg:Адрес
|
||||
ca:Adreça
|
||||
cs:Adresa
|
||||
da:Adresse
|
||||
de:Adresse
|
||||
el:Διεύθυνση
|
||||
es:Dirección
|
||||
et:Aadress
|
||||
eu:Helbidea
|
||||
fa:آدرس
|
||||
fi:Osoite
|
||||
fr:Adresse
|
||||
he:כתובת
|
||||
hi:पता
|
||||
hu:Cím
|
||||
id:Alamat
|
||||
it:Indirizzo
|
||||
ja:住所
|
||||
ko:주소
|
||||
mr:पत्ता
|
||||
nb:Adresse
|
||||
nl:Adres
|
||||
pl:Adres
|
||||
pt:Morada|Endereço
|
||||
pt-BR:Endereço
|
||||
ro:Adresă
|
||||
ru:Адрес
|
||||
sk:Adresa
|
||||
sr:Адреса
|
||||
sv:Adress
|
||||
sw:Anwani
|
||||
th:ที่อยู่
|
||||
tr:Adres
|
||||
uk:Адреса
|
||||
vi:Địa chỉ
|
||||
zh-Hans:地址
|
||||
zh-Hant:地址
|
||||
|
||||
# First keyword should match [police] definition in strings.txt!
|
||||
@category_police
|
||||
en:4Police|cops
|
||||
@@ -12952,6 +12994,10 @@ sk:4Veterinár
|
||||
fa:دامپزشکی
|
||||
mr:पशुवैद्यकीय डॉक्टर|प्राण्यांचा डॉक्टर
|
||||
|
||||
amenity-animal_shelter
|
||||
en:Animal Shelter
|
||||
ru:Приют для животных
|
||||
|
||||
@charging_station
|
||||
en:4Charging Station|charging
|
||||
ru:4Зарядная станция|зарядка|электрозарядка|зарядить
|
||||
|
||||
@@ -455,6 +455,9 @@
|
||||
<type id="amenity-veterinary" group="health">
|
||||
<include group="poi_internet" />
|
||||
</type>
|
||||
<type id="amenity-animal_shelter">
|
||||
<include group="poi_internet" />
|
||||
</type>
|
||||
<type id="amenity-charging_station">
|
||||
<include group="poi" />
|
||||
<include field="operator" />
|
||||
@@ -1449,8 +1452,7 @@
|
||||
<type id="building" can_add="no">
|
||||
<include group="address" />
|
||||
</type>
|
||||
<!-- No consensus yet, see https://github.com/organicmaps/organicmaps/issues/6394 -->
|
||||
<type id="building-address" can_add="no">
|
||||
<type id="building-address" can_add="yes">
|
||||
<include group="address" />
|
||||
</type>
|
||||
<!-- Uncomment this after a map style is added
|
||||
|
||||
@@ -642,7 +642,8 @@ sport|diving;520;
|
||||
#~270k uses.
|
||||
man_made|utility_pole;521;
|
||||
deprecated:boundary|administrative|suburb:04.2024;[boundary=administrative][border_type=suburb];x;name;int_name;522;
|
||||
deprecated|deprecated;523;x
|
||||
# Generic unspecified barrier, could be node (50k) or way (100k)
|
||||
barrier|yes;523;
|
||||
railway|monorail|tunnel;[railway=monorail][tunnel?];;name;int_name;524;
|
||||
railway|funicular|bridge;[railway=funicular][bridge?];;name;int_name;525;
|
||||
deprecated|deprecated;526;x
|
||||
@@ -1021,9 +1022,9 @@ historic|pillory;[historic=pillory];;name;int_name;897;
|
||||
amenity|money_transfer;898;
|
||||
man_made|crane;899;
|
||||
railway|subway|darkgreen;[railway=subway][colour=darkgreen];x;name;int_name;900;railway|subway|tunnel
|
||||
deprecated|deprecated;901;x
|
||||
barrier|wicket_gate;901;
|
||||
railway|subway|gray;[railway=subway][colour=gray];x;name;int_name;902;railway|subway|tunnel
|
||||
deprecated|deprecated;903;x
|
||||
amenity|animal_shelter;903;
|
||||
railway|subway|lightblue;[railway=subway][colour=lightblue];x;name;int_name;904;railway|subway|tunnel
|
||||
amenity|motorcycle_rental;[amenity=motorcycle_rental],[shop=motorcycle][motorcycle:rental=yes],[shop=motorcycle][rental=yes],[amenity=scooter_rental];;;;905;
|
||||
railway|subway|lightgreen;[railway=subway][colour=lightgreen];x;name;int_name;906;railway|subway|tunnel
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 7 and column 16.
|
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 468 B |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 786 B |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 464 B |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1007 B |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 765 B |
|
Before Width: | Height: | Size: 357 B |
|
Before Width: | Height: | Size: 960 B |
|
Before Width: | Height: | Size: 620 B |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 584 B |
|
Before Width: | Height: | Size: 891 B |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 506 B |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 1.7 KiB |