Compare commits

..

1 Commits

Author SHA1 Message Date
x7z4w
98f537bc86 [ci] Fix appstream
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-20 09:00:45 +00:00
913 changed files with 1146 additions and 2183 deletions

View File

@@ -21,11 +21,12 @@ jobs:
- name: Install appstream validator and flatpak Builder
shell: bash
run: |
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
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
- name: Lint appstream data with flatpak Builder
shell: bash

View File

@@ -1,9 +1,8 @@
name: DCO
name: dco
on: [pull_request]
jobs:
check:
runs-on: ubuntu-latest
runs-on: codeberg-tiny
steps:
- name: Check for Developer Certificate of Origin (DCO) compliance
uses: https://github.com/KineticCafe/actions-dco@fb284c903a7673a3d4b0bdd104479a6f0d46dae7 # v1.3.6
- uses: https://github.com/KineticCafe/actions-dco@v1

View File

@@ -133,14 +133,6 @@ 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
View File

@@ -14,10 +14,12 @@ 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
@@ -25,15 +27,11 @@ 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*
# TODO: designer is not used at the moment
# data/symbols/*/design/
# data/colors_design.txt
# data/patterns_design.txt
data/classificator.txt
data/types.txt
data/visibility.txt
data/colors.txt
data/patterns.txt
# Compiled Python
*.pyc

View File

@@ -49,6 +49,8 @@ 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)

View File

@@ -19,7 +19,7 @@
</div>
<div align="center">
<p align="center">
<a href="https://codeberg.org/comaps/comaps/src/branch/main/LICENSE">
<a href="https://codeberg.org/comaps/comaps/releases">
<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,6 +41,8 @@
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"/>
@@ -75,10 +77,9 @@ 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

View File

@@ -236,11 +236,6 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
return true;
}
boolean saveEdits()
{
return setEdits() && beforeSavingValidation();
}
@NonNull
protected String getDescription()
{
@@ -287,18 +282,6 @@ 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++)

View File

@@ -276,11 +276,6 @@ 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)
{
@@ -315,7 +310,7 @@ public class EditorHostFragment
case LANGUAGE -> editMapObject();
case MAP_OBJECT ->
{
if (!saveEdits())
if (!setEdits())
return;
// Save object edits

View File

@@ -7,15 +7,12 @@ import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.ViewCompat;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.BuildConfig;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmFragment;
@@ -35,15 +32,7 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
private void setupItem(@IdRes int id, boolean tint, @NonNull View frame)
{
final MaterialTextView view = frame.findViewById(id);
view.setOnClickListener(this);
if (tint)
Graphics.tint(view);
}
private void setupButton(@IdRes int id, boolean tint, @NonNull View frame)
{
final MaterialButton view = frame.findViewById(id);
final TextView view = frame.findViewById(id);
view.setOnClickListener(this);
if (tint)
Graphics.tint(view);
@@ -55,12 +44,12 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
mDonateUrl = Config.getDonateUrl(requireContext());
View root = inflater.inflate(R.layout.about, container, false);
((MaterialTextView) root.findViewById(R.id.version)).setText(BuildConfig.VERSION_NAME);
((TextView) root.findViewById(R.id.version)).setText(BuildConfig.VERSION_NAME);
final boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
final String dataVersion = DateUtils.getShortDateFormatter().format(Framework.getDataVersion());
final MaterialTextView osmPresentationView = root.findViewById(R.id.osm_presentation);
final TextView osmPresentationView = root.findViewById(R.id.osm_presentation);
if (osmPresentationView != null)
{
osmPresentationView.setText(getString(R.string.osm_presentation, dataVersion));
@@ -79,23 +68,23 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
setupItem(R.id.mastodon, false, root);
setupItem(R.id.openstreetmap, true, root);
setupItem(R.id.faq, true, root);
setupButton(R.id.report, isLandscape, root);
setupItem(R.id.report, isLandscape, root);
setupItem(R.id.copyright, false, root);
final MaterialTextView supportUsView = root.findViewById(R.id.support_us);
final TextView supportUsView = root.findViewById(R.id.support_us);
if (BuildConfig.FLAVOR.equals("google") && !TextUtils.isEmpty(mDonateUrl))
supportUsView.setVisibility(View.GONE);
else
setupItem(R.id.support_us, true, root);
final MaterialButton donateView = root.findViewById(R.id.donate);
final TextView donateView = root.findViewById(R.id.donate);
if (TextUtils.isEmpty(mDonateUrl))
donateView.setVisibility(View.GONE);
else
{
/*donateView.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_donate, 0,
R.drawable.ic_donate, 0);*/
setupButton(R.id.donate, isLandscape, root);
setupItem(R.id.donate, isLandscape, root);
}
if (BuildConfig.REVIEW_URL.isEmpty())

View File

@@ -112,7 +112,6 @@ 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);

View File

@@ -20,7 +20,7 @@
tools:visibility="visible">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_fuel"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="@dimen/margin_half_plus"
@@ -29,14 +29,14 @@
app:srcCompat="@drawable/ic_routing_fuel_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_parking"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_marginTop="@dimen/margin_base_plus"
android:layout_toEndOf="@id/search_fuel"
android:contentDescription="@string/category_parking"
app:srcCompat="@drawable/ic_routing_parking_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_eat"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/margin_half"
@@ -44,7 +44,7 @@
app:srcCompat="@drawable/ic_routing_eat_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_food"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/margin_base_plus"
android:layout_toEndOf="@id/search_fuel"
@@ -52,7 +52,7 @@
app:srcCompat="@drawable/ic_routing_food_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_atm"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="@dimen/margin_half_plus"

View File

@@ -33,7 +33,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5">
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -43,7 +43,7 @@
android:textIsSelectable="true"
tools:text="2025.04.16-FDroid" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_headline"
@@ -53,7 +53,7 @@
app:layout_constraintTop_toTopOf="@id/version" />
</LinearLayout>
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/imageView3"
android:layout_width="@dimen/about_logo"
android:layout_height="@dimen/about_logo"
@@ -85,7 +85,7 @@
android:orientation="vertical"
android:layout_gravity="center">
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_half"
@@ -93,7 +93,7 @@
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_half"
@@ -101,7 +101,7 @@
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_half"
@@ -112,7 +112,7 @@
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
@@ -130,7 +130,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half">
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/osm_logo"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
@@ -142,7 +142,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/osm_presentation"
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -165,7 +165,7 @@
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_half"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/donate"
style="@style/MwmWidget.Button.Accent"
android:layout_width="0dp"
@@ -182,7 +182,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/report"
style="@style/MwmWidget.Button"
android:layout_width="0dp"
@@ -201,98 +201,98 @@
app:layout_constraintVertical_bias="0.5" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/faq"
app:drawableStartCompat="@drawable/ic_question_mark" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/support_us"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/how_to_support_us"
app:drawableStartCompat="@drawable/ic_donate" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/news"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
app:drawableStartCompat="@drawable/ic_news" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/rate"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
app:drawableStartCompat="@drawable/ic_rate" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/telegram"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
app:drawableStartCompat="@drawable/ic_telegram" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/code_repo"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/codeberg"
app:drawableStartCompat="@drawable/ic_codeberg" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/web"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
app:drawableStartCompat="@drawable/ic_website" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/email"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
app:drawableStartCompat="@drawable/ic_email" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/matrix"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
app:drawableStartCompat="@drawable/ic_matrix" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/mastodon"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
app:drawableStartCompat="@drawable/ic_mastodon" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/facebook"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
app:drawableStartCompat="@drawable/ic_facebook" />
<!--
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/twitter"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
app:drawableStartCompat="@drawable/ic_twitterx" />
-->
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/instagram"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
app:drawableStartCompat="@drawable/ic_instagram" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/openstreetmap"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
@@ -306,19 +306,19 @@
android:layout_marginTop="@dimen/margin_quarter"
android:background="?dividerHorizontal" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/privacy_policy"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/privacy_policy" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/term_of_use_link"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/terms_of_use" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/copyright"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"

View File

@@ -17,7 +17,7 @@
android:orientation="vertical"
android:padding="@dimen/margin_base">
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:layout_width="@dimen/about_logo"
android:layout_height="@dimen/about_logo"
android:layout_gravity="center_horizontal"
@@ -26,7 +26,7 @@
app:srcCompat="@drawable/ic_logo_monochrome"
app:tint="?attr/colorLogo"/>
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -37,7 +37,7 @@
android:textIsSelectable="true"
tools:text="2025.04.16-FDroid" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_base"
@@ -46,7 +46,7 @@
android:textAppearance="@style/MwmTextAppearance.Headline"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_half"
@@ -54,7 +54,7 @@
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half"
@@ -62,7 +62,7 @@
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half"
@@ -70,7 +70,7 @@
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half"
@@ -84,7 +84,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/osm_logo"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
@@ -95,7 +95,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/osm_presentation"
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -112,7 +112,7 @@
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/donate"
style="@style/MwmWidget.Button.Accent"
android:layout_width="match_parent"
@@ -122,7 +122,7 @@
android:padding="@dimen/margin_quarter"
android:text="@string/donate" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/report"
style="@style/MwmWidget.Button"
android:layout_width="match_parent"
@@ -133,98 +133,98 @@
android:text="@string/report_a_bug"
android:textColor="@color/text_dark" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:text="@string/faq"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_question_mark" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/support_us"
style="@style/MwmWidget.TextView.Item"
android:text="@string/how_to_support_us"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_donate" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/news"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_news" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/rate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_rate" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/telegram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_telegram" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/code_repo"
style="@style/MwmWidget.TextView.Item"
android:text="@string/codeberg"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_codeberg" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/web"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_website" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/email"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_email" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/matrix"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_matrix" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/mastodon"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_mastodon" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/facebook"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_facebook" />
<!--
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/twitter"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_twitterx" />
-->
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/instagram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_instagram" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/openstreetmap"
style="@style/MwmWidget.TextView.Item"
android:text="@string/openstreetmap"
@@ -238,19 +238,19 @@
android:layout_marginTop="@dimen/margin_quarter"
android:background="?dividerHorizontal" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/privacy_policy"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/privacy_policy" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/term_of_use_link"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/terms_of_use" />
<com.google.android.material.textview.MaterialTextView
<TextView
android:id="@+id/copyright"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"

View File

@@ -21,20 +21,23 @@
</FrameLayout>
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__append_phone"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_base"
android:clickable="true"
android:contentDescription="@string/editor_add_phone"
android:focusable="true"
android:background="?clickableBackground"
android:gravity="center_vertical"
android:padding="@dimen/margin_base"
android:text="@string/editor_add_phone"
android:textColor="?accentButtonTextColor"
app:fabSize="normal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:icon="@drawable/ic_plus"
app:iconTint="?accentButtonTextColor" />
android:textAllCaps="true"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textColor="?colorSecondary"
app:layout_constraintBottom_toBottomOf="@+id/frameLayout" />
<include
layout="@layout/shadow_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/tv__mode_switch"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -21,35 +21,35 @@
tools:visibility="visible">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_fuel"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_gravity="center_vertical"
android:layout_marginStart="50dp"
android:contentDescription="@string/category_fuel"
app:srcCompat="@drawable/ic_routing_fuel_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_parking"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_half"
android:contentDescription="@string/category_parking"
app:srcCompat="@drawable/ic_routing_parking_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_eat"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_half"
android:contentDescription="@string/category_eat"
app:srcCompat="@drawable/ic_routing_eat_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_food"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_half"
android:contentDescription="@string/category_shopping"
app:srcCompat="@drawable/ic_routing_food_on" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_atm"
style="@style/MwmWidget.Components.SearchWheel"
style="@style/MwmWidget.MapButton.Search"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_half"
android:contentDescription="@string/category_atm"

View File

@@ -169,7 +169,6 @@
<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>

View File

@@ -185,7 +185,6 @@
<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>

View File

@@ -177,7 +177,6 @@
<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>

View File

@@ -603,7 +603,6 @@
<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>

View File

@@ -187,7 +187,6 @@
<string name="type.amenity.water_point">Punt daigua</string>
<string name="type.amenity.water_point.drinking_water_no">Punt daigua</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>

View File

@@ -1193,7 +1193,6 @@
<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>

View File

@@ -1201,7 +1201,6 @@
<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>

View File

@@ -182,7 +182,6 @@
<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>

View File

@@ -1230,7 +1230,6 @@
<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>

View File

@@ -188,7 +188,6 @@
<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>

View File

@@ -186,7 +186,6 @@
<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>

View File

@@ -181,7 +181,6 @@
<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>

View File

@@ -184,7 +184,6 @@
<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>

View File

@@ -177,7 +177,6 @@
<string name="type.amenity.water_point">Point deau</string>
<string name="type.amenity.water_point.drinking_water_no">Point deau</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>

View File

@@ -189,7 +189,6 @@
<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>

View File

@@ -176,7 +176,6 @@
<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>

View File

@@ -1220,7 +1220,6 @@
<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>

View File

@@ -620,7 +620,6 @@
<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>

View File

@@ -186,7 +186,6 @@
<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>

View File

@@ -186,7 +186,6 @@
<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>

View File

@@ -170,7 +170,6 @@
<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>

View File

@@ -163,7 +163,6 @@
<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>

View File

@@ -158,7 +158,6 @@
<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>

View File

@@ -185,7 +185,6 @@
<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>

View File

@@ -185,7 +185,6 @@
<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>

View File

@@ -162,7 +162,6 @@
<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>

View File

@@ -174,7 +174,6 @@
<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>

View File

@@ -182,14 +182,12 @@
<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>
@@ -208,7 +206,6 @@
<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>

View File

@@ -178,7 +178,6 @@
<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>

View File

@@ -187,7 +187,6 @@
<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>

View File

@@ -1182,7 +1182,6 @@
<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>

View File

@@ -181,7 +181,6 @@
<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>

View File

@@ -188,7 +188,6 @@
<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>

View File

@@ -183,7 +183,6 @@
<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>

View File

@@ -292,7 +292,6 @@
<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>

View File

@@ -183,7 +183,6 @@
<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>

View File

@@ -31,16 +31,7 @@
<item name="maxImageSize">34dp</item>
</style>
<style name="MwmWidget.Components.SearchWheel" parent="Theme.Material3.Dark">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:backgroundTint">?menuBackground</item>
<item name="elevation">0dp</item>
<item name="hoveredFocusedTranslationZ">0dp</item>
<item name="pressedTranslationZ">0dp</item>
<item name="android:tint">?iconTint</item>
<item name="maxImageSize">@dimen/map_button_icon_size</item>
<item name="borderWidth">0dp</item>
<style name="MwmWidget.MapButton.Search">
<item name="fabCustomSize">38dp</item>
</style>

View File

@@ -187,14 +187,12 @@
<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>
@@ -214,7 +212,6 @@
<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>

View File

@@ -114,20 +114,6 @@ 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 {

View File

@@ -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_safe(onComplete)]()
g_framework = std::make_unique<android::Framework>([onComplete = jni::make_global_ref(onComplete)]()
{
JNIEnv * env = jni::GetEnv();
jmethodID const methodId = jni::GetMethodID(env, *onComplete, "run", "()V");

View File

@@ -98,26 +98,18 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *, void *)
namespace jni
{
JNIEnv * GetEnvSafe()
JNIEnv * GetEnv()
{
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));
env = nullptr;
MYTHROW(RootException, ("Can't get JNIEnv. Is the thread attached to JVM?", res));
}
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"));
@@ -226,20 +218,6 @@ 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"));

View File

@@ -66,8 +66,6 @@ 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>;

View File

@@ -493,12 +493,6 @@ 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)
{

View File

@@ -9,26 +9,6 @@ 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 \
@@ -107,7 +87,7 @@ else
fi
if [ -z "$SKIP_GENERATE_SYMBOLS" ]; then
if Diff data/symbols_hash data/styles/*/*/symbols/* || [ ! -z "$SYMBOLS_NOT_GENERATED" ]; then
if Diff data/symbols_hash data/styles/*/*/symbols/*; then
echo "Generating symbols..."
bash ./tools/unix/generate_symbols.sh
fi
@@ -116,7 +96,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 || [ ! -z "$DRULES_NOT_GENERATED" ]; then
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv; then
echo "Generating drules..."
bash ./tools/unix/generate_drules.sh
fi

View File

@@ -10162,48 +10162,6 @@ 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
@@ -12994,10 +12952,6 @@ sk:4Veterinár
fa:دامپزشکی
mr:पशुवैद्यकीय डॉक्टर|प्राण्यांचा डॉक्टर
amenity-animal_shelter
en:Animal Shelter
ru:Приют для животных
@charging_station
en:4Charging Station|charging
ru:4Зарядная станция|зарядка|электрозарядка|зарядить

View File

@@ -455,9 +455,6 @@
<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" />
@@ -1452,7 +1449,8 @@
<type id="building" can_add="no">
<include group="address" />
</type>
<type id="building-address" can_add="yes">
<!-- No consensus yet, see https://github.com/organicmaps/organicmaps/issues/6394 -->
<type id="building-address" can_add="no">
<include group="address" />
</type>
<!-- Uncomment this after a map style is added

View File

@@ -642,8 +642,7 @@ 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;
# Generic unspecified barrier, could be node (50k) or way (100k)
barrier|yes;523;
deprecated|deprecated;523;x
railway|monorail|tunnel;[railway=monorail][tunnel?];;name;int_name;524;
railway|funicular|bridge;[railway=funicular][bridge?];;name;int_name;525;
deprecated|deprecated;526;x
@@ -1022,9 +1021,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
barrier|wicket_gate;901;
deprecated|deprecated;901;x
railway|subway|gray;[railway=subway][colour=gray];x;name;int_name;902;railway|subway|tunnel
amenity|animal_shelter;903;
deprecated|deprecated;903;x
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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -26,8 +26,8 @@
/* 1.BASEMAP */
@background0: #181715;
@background1: #181715;
@background0: #000000;
@background1: #000000;
/* 2.BOUNDARY */
@@ -38,121 +38,121 @@
/* 3.NATURAL */
/* 3.1 Main natural */
@glacier: #333333;
@water: #375258;
@water_bad: #395254;
@wetland_tidal: #405458;
@wetland_tidal_saltmarsh: #405754;
@wetland_saltmarsh: #33433B;
@wetland_marsh: #34433B;
@wetland_fen: #37433B;
@wetland_bog: #374239;
@wetland_reedbed: #3B443F;
@wetland_swamp: #303F37;
@wetland_mangrove: #303F34;
@beach: #322C20;
@barerock: #2B2A26;
@scree: #292825;
@desert: #312E28;
@glacier: #111111;
@water: #002222;
@water_bad: #00261e;
@wetland_tidal: #001919;
@wetland_tidal_saltmarsh: #001919;
@wetland_saltmarsh: #001919;
@wetland_marsh: #001919;
@wetland_fen: #001919;
@wetland_bog: #001919;
@wetland_reedbed: #001919;
@wetland_swamp: #001919;
@wetland_mangrove: #001919;
@beach: #28281A;
@barerock: #302A2A;
@scree: #242020;
@desert: #191007;
/*3.2 Vegetation*/
@residential_garden: #171614;
@residential_garden_13: #171614;
@residential_garden_12: #171614;
@park: #2B2C1D;
@park_13: #2A2B1D;
@park_12: #292A1C;
@park_11: #29281C;
@park_10: #27281B;
@heath: #292B1E;
@heath_13: #282A1D;
@heath_12: #27291D;
@heath_11: #27281D;
@grass: #272A1A;
@grass_13: #26291A;
@grass_12: #252819;
@grass_11: #252719;
@flowers: #262918;
@golf: #252816;
@golf_13: #242716;
@golf_12: #232616;
@allotments: #2B2A1E;
@allotments_13: #2A291D;
@allotments_12: #29281D;
@scrubs: #222713;
@scrubs_13: #212613;
@scrubs_12: #212513;
@scrubs_11: #212413;
@woods: #202510;
@woods_13: #1F2410;
@woods_12: #1F2310;
@woods_11: #1F2211;
@woods_10: #1F2311;
@residential_garden: #000000;
@residential_garden_13: #000000;
@residential_garden_12: #000000;
@park: #000000;
@park_13: #000000;
@park_12: #000000;
@park_11: #000000;
@park_10: #000000;
@heath: #141C00;
@heath_13: #141C00;
@heath_12: #141C00;
@heath_11: #141C00;
@grass: #141C00;
@grass_13: #141C00;
@grass_12: #141C00;
@grass_11: #141C00;
@flowers: #141C00;
@golf: #141C00;
@golf_13: #141C00;
@golf_12: #141C00;
@allotments: #141C00;
@allotments_13: #141C00;
@allotments_12: #141C00;
@scrubs: #141C00;
@scrubs_13: #141C00;
@scrubs_12: #141C00;
@scrubs_11: #141C00;
@woods: #161F00;
@woods_13: #161F00;
@woods_12: #161F00;
@woods_11: #161F00;
@woods_10: #161F00;
@protected_nature: #191D0B;
@protected_nature: #2F4000;
/* 4.LANDUSE */
/*4.1 Main landuse*/
@general_area: #1B1A19;
@pedestrian_area: #32312E;
@railway_platform: #232220;
@university: #1D1A16;
@hospital: #1E1A19;
@industrial: #1C1C1C;
@construction_area: #1C1C1C;
@sport0: #31302A;
@sport1: #2E2E27;
@sport2: #2A2E1E;
@playground: #2E2E20;
@parking: #1E1F1F;
@general_area: #000000;
@pedestrian_area: #262222;
@railway_platform: #262222;
@university: #261F13;
@hospital: #261916;
@industrial: #191419;
@construction_area: #191419;
@sport0: #21211B;
@sport1: #262620;
@sport2: #2A2A24;
@playground: #2A2A24;
@parking: #1F1B1B;
@military: #B71C1C;
@prison: #7f7f7f;
@farmland: #2D2C22;
@farmyard: #2E2B23;
@farmland: #151500;
@farmyard: #212106;
/*4.2 Aerodrome*/
@aerodrome0: #2D373D;
@aerodrome1: #2C363C;
@aerodrome2: #2C363B;
@aerodrome3: #2B353A;
@aerodrome4: #293339;
@aerodrome5: #273137;
@aerodrome0: #382D45;
@aerodrome1: #342A40;
@aerodrome2: #30263B;
@aerodrome3: #30263B;
@aerodrome4: #2B2336;
@aerodrome5: #292133;
/* 4.3 Barriers */
@fence: #292929;
@hedge: #2C3218;
@cliff: #273137;
@fence: #444444;
@hedge: #183218;
@cliff: #7D4F23;
/* 4.4 Buildings */
@building0: #2B2B2A;
@building1: #2A2A29;
@building_border0: #20201E;
@building_border1: #1F1F1D;
@historic_wall: #232320;
@building0: #3B3B3B;
@building1: #424242;
@building_border0: #616161;
@building_border1: #696969;
@historic_wall: #696969;
/* 5.ROADS */
/* 5.1 All roads */
@motorway0: #7A4006;
@motorway1: #784606;
@trunk0: #794D11;
@trunk1: #79511D;
@primary0: #7A5C2A;
@primary1: #7C5E24;
@primary2: #7C622F;
@secondary0: #7F6730;
@secondary1: #7F6B3C;
@tertiary: #4C4B4B;
@residential: #4C4C4C;
@pedestrian: #4C4B4B;
@footway: #4C4B4B;
@cycleway: #48477F;
@construction: #5A5D65;
@motorway0: #3B2015;
@motorway1: #3B2015;
@trunk0: #49291B;
@trunk1: #49291B;
@primary0: #593323;
@primary1: #593323;
@primary2: #593323;
@secondary0: #573E33;
@secondary1: #573E33;
@tertiary: #4F4A47;
@residential: #4B4643;
@pedestrian: #4D4744;
@footway: #4B4643;
@cycleway: #6E3D47;
@construction: #332F2D;
@track: #5F532D;
@path: #944A12;
@path_expert: #523E33;
@@ -198,7 +198,7 @@
@aerialway: #4E4E3D;
@powerline: #333333;
@tram: #5C5C51;
@ferry: #4F686E;
@ferry: #2A4541;
/* 6.LABELS COLORS */
/* 6.1 Main labels */
@@ -211,8 +211,8 @@
/* 6.2 Natural labels */
@water_label: #58747A;
@park_label: #4A6141;
@water_label: #004A59;
@park_label: #2B4918;
@halo_park_label: #111;
/* 6.3 Place labels */
@@ -220,19 +220,12 @@
@city_label: #999999;
@country_label: #444444;
@state_label: #444444;
@district_label: #616161;
@district_label: #555555;
@housenumber: #747474;
@building_label: #767676;
@poi_label: #8C8C8C;
@subway_label: #9E9E9E;
@indigenous_label: #6A512F;
@shop_label: #855272;
@food_label: #A66942;
@culture_label: #6E4426;
@hotel_label: #4D3B35;
@healthcare_label: #983E44;
@industry_label: #51585E;
@public_transport_label: #2F6499;
/* 6.4 Road labels */

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

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