Compare commits

..

49 Commits

Author SHA1 Message Date
Yannik Bloscheck
3b365f76f6 [ios] Replaced some CarPlay images with system versions
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 22:30:02 +02:00
Yannik Bloscheck
b572e57e0e [ios] Fixed CarPlay panning not working
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 22:30:02 +02:00
Yannik Bloscheck
0dada71833 [styles] Adjusting label colors to the new dark map style
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 21:08:12 +02:00
Yannik Bloscheck
089ecd32da [styles] Improved dark map style
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 21:07:32 +02:00
Yannik Bloscheck
97bcf9fa18 [styles] Improved dark map style icons
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 21:07:32 +02:00
x7z4w
7955ba3587 [styles] Night mode bookmarks
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 21:07:14 +02:00
x7z4w
00a6917fb1 [styles] Colored labels
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 21:06:59 +02:00
Jean-Baptiste
ebb7c45d1a [android] Improve button to add new phone number
Signed-off-by: jeanbaptisteC <jeanbaptiste.charron@outlook.fr>
2025-08-22 20:42:40 +02:00
Jean-Baptiste
ef77314d7a [android] Move styles for button search frame components
Signed-off-by: jeanbaptisteC <jeanbaptiste.charron@outlook.fr>
2025-08-22 20:35:08 +02:00
hb0nd
72520310e8 [ci] Use latest version of DCO validator
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-22 20:30:19 +02:00
Jean-Baptiste
8e1c723b41 [android] Migrate about screen to Material Components
Signed-off-by: Jean-Baptiste Charron <jeanbaptiste.charron@outlook.fr>
2025-08-22 18:11:18 +02:00
x7z4w
b26deb3bb2 [ci] Use self-hosted runner for DCO
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 15:58:45 +02:00
Viktor Govako
e8e94744f0 [map] Fixed invalid route saving.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-08-22 19:24:41 +07:00
Viktor Govako
98689fbbf8 [android] Hack to suppress most frequent crash on startup.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-08-22 19:23:45 +07:00
Kiryl Kaveryn
6cccd32166 [ios] Fix place page memory leaks
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 19:22:06 +07:00
David Martinez
1b04524d68 [routing] Log all turn notifications TTS
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 19:19:00 +07:00
Viktor Govako
1a6bbd756a [routing] Simplify notifications on roundabout.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-08-22 19:18:39 +07:00
Alexander Borsuk
836c39ff64 math::iround
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:03:38 +07:00
Alexander Borsuk
7781528263 Fixed C++20 deprecation warning for std::rel_ops::operator<=
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:03:16 +07:00
Alexander Borsuk
2aaf37e9ee C++ warning fixes
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:03:04 +07:00
Alexander Borsuk
a28d5d15ce [drape] Fixed signed/unsigned comparison warning by changing Resize interface to uint32_t
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:01:09 +07:00
Alexander Borsuk
55dc1e17e6 Correct is_space fix for Windows compatibility
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 18:59:37 +07:00
Andrei Shkrob
826b56cabc [drape] Fix gui text alignment
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
2025-08-22 18:56:26 +07:00
Osyotr
9aa86fc703 Remove android include from public interface of VulkanContextFactory
Signed-off-by: Osyotr <Osyotr@users.noreply.github.com>
2025-08-22 18:44:08 +07:00
Yannik Bloscheck
4fe21ec6eb [styles] Move light animal shelter icon to the correct location
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 12:36:42 +02:00
David Martinez
cb2181a80e [styles] Convert remaining PNG icons to SVG
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 12:22:44 +02:00
David Martinez
eeb53eb0c4 [styles] Convert PNG US road shield icons to SVG
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 12:22:44 +02:00
David Martinez
887bc2c755 [styles] Convert PNG road warning icons to SVG
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 12:22:44 +02:00
Alexander Borsuk
29d60c9af0 [ios] Fix opening websites with percent encoding characters
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
e0c579634b [ios] Fix track recording points updates subscribe/unsubscribe
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
266d62831f [ios] Skip elevation info current point updates when the data is nil
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
d94351a8f1 [ios] Skip excessive elevation point updates
When the user drags the elevation chart it runs chart's `selected point` update mechanism by calling the `onSelectedPointChanged` inside the `ChartView`'s ` func chartPreviewView(_ view: ChartPreviewView, didChangeMinX minX: Int, maxX: Int)`. This updates may be quite often (tens/hundreds per sec) and may cause the `on point update` callback **recursion** and overloads the `layoutSubviews` method on the _short track_ because the ChartView doesnt have mechanism to skip excessive updates when the parameters the same.
This situation produces fail with internal error `(null) in -[NSISEngine _flushPendingRemovals] ().`

The fix include:
1. skip updates when the current point isn't changed
2. remove layoutSubviews overloading (this method should recalc the layout immediately and should not be called too frequent, the `setNeedsLayout` allows to batch the layout updates and redraw the view on the next runtime cycle)

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
31970c87c4 [ios] Remove all activities on track recording start and stop
Closes https://github.com/organicmaps/organicmaps/issues/11045
1. Remove all activities on track recording start and stop
2. Store the latest activity id in the UD to retrieve on launch after the app termination
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
8e9dbe0248 [ios] Removed unused variables
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
3b1551be52 [ios] Fixed wrong ObjC function name that caused warnings
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
9d8e84ae5a [mac][ios] Was: Silenced annoying deprecation warnings
pastk: removed silencing, left only minor style etc changes

Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
c4d5109d5b [ios] Log the error when the exclude from icloud fails
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
59499333ff [ios] Disable chartView user interaction for TR and when the chartData is nil
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
b5e0d10cb1 [ios] Set track recrording elevation chart min points to draw to 2
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
55b85183d5 [map] Limit the track recording length to 2 points min
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
38406b149a [ios] Skip zoom/pinch gesture when the lower/upper is out of bounds
The previous check `if upper - lower < chartData.labels.count / 10 return` produces invalid state for drawing and fails when the upper == lower.

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
ef2dea20fe [ios] Log error during the track editing instead of failing
The bug is quite rare and happens when the user taps on the edit (pencil) button on the PlacePage. It seems like the tap happens during the PP data object reloading the and the object type has changed. It is better to avoid failing in such cases because we cannot prevent user interaction during the pp reloading.

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
aac80606f2 [ios] Disable user interaction on PP vc close
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
7765d97cda [ios] Fix track recording indicator image
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
3aa74bc427 [ios] Fixed ATM translation in the PlacePage
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Konstantin Pastbin
902e7f6453 Revert "[ios] Fixing ATM translation on place page"
This reverts commit 211e3fb4f0.
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
cecca729db [ios] Check that pp data exists before update the TR PP screen
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
2b2518b0b4 [ios] Disable track recording live activity widget for apps running on macos
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
x7z4w
3c34765595 [core] nits
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 11:02:44 +02:00
791 changed files with 1762 additions and 1524 deletions

View File

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

1
.gitignore vendored
View File

@@ -9,7 +9,6 @@ Makefile.Release
object_script.*.Debug
object_script.*.Release
compile_commands.json
*.local.*
stxxl.errlog
stxxl.log

View File

@@ -7,12 +7,15 @@ 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;
@@ -32,7 +35,15 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
private void setupItem(@IdRes int id, boolean tint, @NonNull View frame)
{
final TextView view = frame.findViewById(id);
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);
view.setOnClickListener(this);
if (tint)
Graphics.tint(view);
@@ -44,12 +55,12 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
mDonateUrl = Config.getDonateUrl(requireContext());
View root = inflater.inflate(R.layout.about, container, false);
((TextView) root.findViewById(R.id.version)).setText(BuildConfig.VERSION_NAME);
((MaterialTextView) 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 TextView osmPresentationView = root.findViewById(R.id.osm_presentation);
final MaterialTextView osmPresentationView = root.findViewById(R.id.osm_presentation);
if (osmPresentationView != null)
{
osmPresentationView.setText(getString(R.string.osm_presentation, dataVersion));
@@ -68,23 +79,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);
setupItem(R.id.report, isLandscape, root);
setupButton(R.id.report, isLandscape, root);
setupItem(R.id.copyright, false, root);
final TextView supportUsView = root.findViewById(R.id.support_us);
final MaterialTextView 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 TextView donateView = root.findViewById(R.id.donate);
final MaterialButton 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);*/
setupItem(R.id.donate, isLandscape, root);
setupButton(R.id.donate, isLandscape, root);
}
if (BuildConfig.REVIEW_URL.isEmpty())

View File

@@ -20,7 +20,7 @@
tools:visibility="visible">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_fuel"
style="@style/MwmWidget.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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">
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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>
<ImageView
<com.google.android.material.imageview.ShapeableImageView
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">
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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>
<TextView
<com.google.android.material.textview.MaterialTextView
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">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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">
<Button
<com.google.android.material.button.MaterialButton
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" />
<Button
<com.google.android.material.button.MaterialButton
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>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/faq"
app:drawableStartCompat="@drawable/ic_question_mark" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/news"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
app:drawableStartCompat="@drawable/ic_news" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/rate"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
app:drawableStartCompat="@drawable/ic_rate" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/telegram"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/code_repo"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/codeberg"
app:drawableStartCompat="@drawable/ic_codeberg" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/web"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
app:drawableStartCompat="@drawable/ic_website" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/email"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
app:drawableStartCompat="@drawable/ic_email" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/matrix"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
app:drawableStartCompat="@drawable/ic_matrix" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/mastodon"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
app:drawableStartCompat="@drawable/ic_mastodon" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/facebook"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
app:drawableStartCompat="@drawable/ic_facebook" />
<!--
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/twitter"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
app:drawableStartCompat="@drawable/ic_twitterx" />
-->
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/instagram"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
app:drawableStartCompat="@drawable/ic_instagram" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/privacy_policy"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/privacy_policy" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/term_of_use_link"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/terms_of_use" />
<TextView
<com.google.android.material.textview.MaterialTextView
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">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
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"/>
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
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>
<Button
<com.google.android.material.button.MaterialButton
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" />
<Button
<com.google.android.material.button.MaterialButton
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:text="@string/faq"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_question_mark" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/news"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_news" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/rate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_rate" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/telegram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/code_repo"
style="@style/MwmWidget.TextView.Item"
android:text="@string/codeberg"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_codeberg" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/web"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_website" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/email"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_email" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/matrix"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_matrix" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/mastodon"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_mastodon" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/facebook"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_facebook" />
<!--
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/twitter"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_twitterx" />
-->
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/instagram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_instagram" />
<TextView
<com.google.android.material.textview.MaterialTextView
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" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/privacy_policy"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/privacy_policy" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/term_of_use_link"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/terms_of_use" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/copyright"
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"

View File

@@ -21,23 +21,20 @@
</FrameLayout>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/tv__append_phone"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?clickableBackground"
android:gravity="center_vertical"
android:padding="@dimen/margin_base"
android:layout_margin="@dimen/margin_base"
android:clickable="true"
android:contentDescription="@string/editor_add_phone"
android:focusable="true"
android:text="@string/editor_add_phone"
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"/>
android:textColor="?accentButtonTextColor"
app:fabSize="normal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:icon="@drawable/ic_plus"
app:iconTint="?accentButtonTextColor" />
</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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
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.MapButton.Search"
style="@style/MwmWidget.Components.SearchWheel"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_half"
android:contentDescription="@string/category_atm"

View File

@@ -31,7 +31,16 @@
<item name="maxImageSize">34dp</item>
</style>
<style name="MwmWidget.MapButton.Search">
<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>
<item name="fabCustomSize">38dp</item>
</style>

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(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");

View File

@@ -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"));

View File

@@ -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>;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -26,8 +26,8 @@
/* 1.BASEMAP */
@background0: #000000;
@background1: #000000;
@background0: #181715;
@background1: #181715;
/* 2.BOUNDARY */
@@ -38,121 +38,121 @@
/* 3.NATURAL */
/* 3.1 Main natural */
@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;
@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;
/*3.2 Vegetation*/
@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;
@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;
@protected_nature: #2F4000;
@protected_nature: #191D0B;
/* 4.LANDUSE */
/*4.1 Main landuse*/
@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;
@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;
@military: #B71C1C;
@prison: #7f7f7f;
@farmland: #151500;
@farmyard: #212106;
@farmland: #2D2C22;
@farmyard: #2E2B23;
/*4.2 Aerodrome*/
@aerodrome0: #382D45;
@aerodrome1: #342A40;
@aerodrome2: #30263B;
@aerodrome3: #30263B;
@aerodrome4: #2B2336;
@aerodrome5: #292133;
@aerodrome0: #2D373D;
@aerodrome1: #2C363C;
@aerodrome2: #2C363B;
@aerodrome3: #2B353A;
@aerodrome4: #293339;
@aerodrome5: #273137;
/* 4.3 Barriers */
@fence: #444444;
@hedge: #183218;
@cliff: #7D4F23;
@fence: #292929;
@hedge: #2C3218;
@cliff: #273137;
/* 4.4 Buildings */
@building0: #3B3B3B;
@building1: #424242;
@building_border0: #616161;
@building_border1: #696969;
@historic_wall: #696969;
@building0: #2B2B2A;
@building1: #2A2A29;
@building_border0: #20201E;
@building_border1: #1F1F1D;
@historic_wall: #232320;
/* 5.ROADS */
/* 5.1 All roads */
@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;
@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;
@track: #5F532D;
@path: #944A12;
@path_expert: #523E33;
@@ -198,7 +198,7 @@
@aerialway: #4E4E3D;
@powerline: #333333;
@tram: #5C5C51;
@ferry: #2A4541;
@ferry: #4F686E;
/* 6.LABELS COLORS */
/* 6.1 Main labels */
@@ -211,8 +211,8 @@
/* 6.2 Natural labels */
@water_label: #004A59;
@park_label: #2B4918;
@water_label: #58747A;
@park_label: #4A6141;
@halo_park_label: #111;
/* 6.3 Place labels */
@@ -220,12 +220,19 @@
@city_label: #999999;
@country_label: #444444;
@state_label: #444444;
@district_label: #555555;
@district_label: #616161;
@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.

Before

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -112,8 +112,8 @@ colors
BookmarkYellow-color: #FFC800;
BookmarkOrange-color: #FF9600;
BookmarkDeepOrange-color: #F06432;
BookmarkBrown-color: #804633;
BookmarkGray-color: #737373;
BookmarkBrown-color: #8C4E39;
BookmarkGray-color: #808080;
BookmarkBlueGray-color: #597380;
SearchmarkPreparing-color: #597380;
SearchmarkNotAvailable-color: #597380;

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 24 24" width="18" height="18" xmlns="http://www.w3.org/2000/svg">
<title>aircraft-m</title>
<path fill="#717065" opacity=".6" d="m19 15.1v-1.3l-5.4737-3.25v-3.575c0-0.5395-0.45842-0.975-1.0263-0.975s-1.0263 0.4355-1.0263 0.975v3.575l-5.4737 3.25v1.3l5.4737-1.625v3.575l-1.3684 0.975v0.975l2.3947-0.65 2.3947 0.65v-0.975l-1.3684-0.975v-3.575l5.4737 1.625z"/>
<path fill="#51585E" opacity=".6" d="m19 15.1v-1.3l-5.4737-3.25v-3.575c0-0.5395-0.45842-0.975-1.0263-0.975s-1.0263 0.4355-1.0263 0.975v3.575l-5.4737 3.25v1.3l5.4737-1.625v3.575l-1.3684 0.975v0.975l2.3947-0.65 2.3947 0.65v-0.975l-1.3684-0.975v-3.575l5.4737 1.625z"/>
</svg>

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 438 B

View File

@@ -3,7 +3,7 @@
<g id="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="gate-m" fill-rule="nonzero">
<circle id="Oval" cx="12" cy="12" r="12" fill="#000" opacity=".6"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#717065"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#51585E"/>
<path id="Shape" d="m18.263 17.295h-12.526c-0.40526 0-0.73684 0.33158-0.73684 0.73684 0 0.40526 0.33158 0.73684 0.73684 0.73684h12.526c0.40526 0 0.73684-0.33158 0.73684-0.73684 0-0.40526-0.33158-0.73684-0.73684-0.73684zm-12.519-5.4453 11.664 3.1242c0.58947 0.15474 1.1937-0.19158 1.3558-0.78105 0.15474-0.58947-0.19158-1.1937-0.78105-1.3558l-3.9126-1.0463-1.9011-6.2263c-0.081053-0.26526-0.28737-0.46421-0.55263-0.53789-0.50105-0.13263-0.99474 0.24316-0.99474 0.76632v5.0695l-3.6695-0.97263-0.55263-1.3705c-0.088421-0.21368-0.26526-0.37579-0.49368-0.43474l-0.24316-0.066316c-0.23579-0.066316-0.46421 0.11053-0.46421 0.35368v2.7632c0 0.33895 0.22105 0.62632 0.54526 0.71474z" fill="#000"/>
</g>
</g>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -3,7 +3,7 @@
<g id="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="alcohol-m" fill-rule="nonzero">
<circle id="Oval" cx="12" cy="12" r="12" fill="#000" opacity=".6"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#8C5F93"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#855272"/>
<g id="Group" transform="translate(6 6)" fill="#000">
<path id="Shape" d="m0 7.2c0 0.78 0.53053 1.44 1.2632 1.692v1.908h-1.2632v1.2h3.7895v-1.2h-1.2632v-1.908c0.73263-0.252 1.2632-0.912 1.2632-1.692v-4.8h-3.7895v4.8zm1.2632-3.6h1.2632v1.8h-1.2632v-1.8z"/>
<path id="Shape" d="m11.135 3.924-0.6-0.192c-0.25263-0.078-0.42947-0.306-0.42947-0.564v-2.568c0-0.33-0.28421-0.6-0.63158-0.6h-1.8947c-0.34737 0-0.63158 0.27-0.63158 0.6v2.568c0 0.258-0.17684 0.486-0.42947 0.57l-0.6 0.192c-0.51789 0.162-0.86526 0.618-0.86526 1.134v5.736c0 0.66 0.56842 1.2 1.2632 1.2h4.4211c0.69474 0 1.2632-0.54 1.2632-1.2v-5.736c0-0.516-0.34737-0.972-0.86526-1.14zm-2.9242-2.724h0.63158v0.6h-0.63158v-0.6zm-1.8947 3.864 0.6-0.192c0.77684-0.24 1.2947-0.93 1.2947-1.704v-0.168h0.63158v0.168c0 0.774 0.51789 1.464 1.2947 1.71l0.6 0.186v0.936h-4.4211v-0.936zm4.4211 5.736h-4.4211v-1.2h4.4211v1.2z"/>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -3,7 +3,7 @@
<g id="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="alpine_hut-m">
<circle id="Oval" cx="12" cy="12" r="12" fill="#000" opacity=".6" fill-rule="nonzero"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#664E42" fill-rule="nonzero"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#4D3B35" fill-rule="nonzero"/>
<polygon id="Path" points="10 13.357 10 18 6 18 6 9.6429 12 5 18 9.6429 18 18 14 18 14 13.357" fill="#000"/>
</g>
</g>

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 523 B

View File

@@ -3,7 +3,7 @@
<g transform="scale(.66667)" id="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="alpine_hut-s">
<circle id="Oval" cx="12" cy="12" r="12" fill="#000" opacity=".6" fill-rule="nonzero"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#664E42" fill-rule="nonzero"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#4D3B35" fill-rule="nonzero"/>
<polygon id="Path" points="10 13.357 10 18 6 18 6 9.6429 12 5 18 9.6429 18 18 14 18 14 13.357" fill="#000"/>
</g>
</g>

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

View File

@@ -2,7 +2,7 @@
<title>alternative-m</title>
<g>
<circle id="outer" r="12" cx="12" cy="12" fill="#000" opacity=".6"/>
<circle id="inner" r="11" cx="12" cy="12" fill="#c15746"/>
<circle id="inner" r="11" cx="12" cy="12" fill="#983E44"/>
<g fill="#000">
<path id="leaf_left" d="M 7.38389,13.5905 C 7.49978,12.4415 7.20637,11.2481 6.47407,10.2397 5.74178,9.23122 4.69389,8.58276 3.56463,8.33373 3.44874,9.48518 3.74215,10.6761 4.47445,11.6845 c 0.72982,1.0085 1.77772,1.6545 2.90944,1.906 z"/>
<path id="leaf_center" d="M 6.90802,9.92407 C 7.09541,10.183 7.25814,10.4566 7.39622,10.7427 7.53676,10.4566 7.69703,10.183 7.88441,9.92407 8.09892,9.62819 8.34302,9.3619 8.60931,9.1178 8.49342,8.08717 8.06194,7.1527 7.40608,6.41547 6.74776,7.15516 6.31381,8.09457 6.20285,9.1326 6.46174,9.37176 6.69845,9.63559 6.90802,9.92407 Z"/>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

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