Compare commits

..

14 Commits

Author SHA1 Message Date
Konstantin Pastbin
0ec4a4085d Try 20 Features threads
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-22 09:38:30 +07:00
Konstantin Pastbin
b36ffe72a9 [generator] Cleanup comments
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-22 09:38:30 +07:00
Konstantin Pastbin
4a3d15c453 [generator] Don't upload World* etc. to the dreamhost sftp
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-22 09:38:30 +07:00
Konstantin Pastbin
150607ac93 [generator] Download and convert planet only if not exists
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-22 09:38:29 +07:00
Konstantin Pastbin
15e0abfc49 [generator] Enable drules generation
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-22 09:38:29 +07:00
zyphlar
5308f02f4d Don't upload at the end, always convert planet to o5m
Signed-off-by: zyphlar <zyphlar@noreply.codeberg.org>
2025-08-22 09:38:29 +07:00
x7z4w
26be9a19dc [build] Remove redundant configure.sh
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 09:38:29 +07:00
zyphlar
2cb1ed517b [generator] Add sftp and protobuf deps
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-22 09:38:29 +07:00
zyphlar
db70b77054 Settings change
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-08-22 09:38:29 +07:00
Konstantin Pastbin
9f8d4c8bdb [generator] Skip World map download and symbols regen
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-08-22 09:38:29 +07:00
Konstantin Pastbin
fb92edd0f5 [generator] Update conf path
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-08-22 09:38:29 +07:00
zyphlar
463b2f0417 Update generator scripts for docker/prod
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-08-22 09:38:29 +07:00
zyphlar
73f2074c0b Add docker run script
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-08-22 09:38:29 +07:00
zyphlar
cc698dba49 Add files to automatically generate maps with Docker
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-08-22 09:38:29 +07:00
791 changed files with 1524 additions and 1762 deletions

View File

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

1
.gitignore vendored
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -29,7 +29,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_OrganicMaps_nativeInitFramework(
{ {
if (!g_framework) 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(); JNIEnv * env = jni::GetEnv();
jmethodID const methodId = jni::GetMethodID(env, *onComplete, "run", "()V"); jmethodID const methodId = jni::GetMethodID(env, *onComplete, "run", "()V");

View File

@@ -98,26 +98,18 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *, void *)
namespace jni namespace jni
{ {
JNIEnv * GetEnvSafe() JNIEnv * GetEnv()
{ {
JNIEnv * env; JNIEnv * env;
auto const res = g_jvm->GetEnv((void **)&env, JNI_VERSION_1_6); auto const res = g_jvm->GetEnv((void **)&env, JNI_VERSION_1_6);
if (res != JNI_OK) if (res != JNI_OK)
{ {
LOG(LERROR, ("Can't get JNIEnv. Is the thread attached to JVM?", res)); 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; 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() JavaVM * GetJVM()
{ {
ASSERT(g_jvm, ("JVM is not initialized")); 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) std::string ToNativeString(JNIEnv * env, jthrowable const & e)
{ {
jni::TScopedLocalClassRef logClassRef(env, env->FindClass("android/util/Log")); 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); base::LogLevel GetLogLevelForException(JNIEnv * env, jthrowable const & e);
std::shared_ptr<jobject> make_global_ref(jobject obj); std::shared_ptr<jobject> make_global_ref(jobject obj);
std::shared_ptr<jobject> make_global_ref_safe(jobject obj);
using TScopedLocalRef = ScopedLocalRef<jobject>; using TScopedLocalRef = ScopedLocalRef<jobject>;
using TScopedLocalClassRef = ScopedLocalRef<jclass>; using TScopedLocalClassRef = ScopedLocalRef<jclass>;
using TScopedLocalObjectArrayRef = ScopedLocalRef<jobjectArray>; using TScopedLocalObjectArrayRef = ScopedLocalRef<jobjectArray>;

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

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

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <svg version="1.1" viewBox="0 0 24 24" width="18" height="18" xmlns="http://www.w3.org/2000/svg">
<title>aircraft-m</title> <title>aircraft-m</title>
<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"/> <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"/>
</svg> </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="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="gate-m" fill-rule="nonzero"> <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="12" fill="#000" opacity=".6"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#51585E"/> <circle id="Oval" cx="12" cy="12" r="11" fill="#717065"/>
<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"/> <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>
</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="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="alcohol-m" fill-rule="nonzero"> <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="12" fill="#000" opacity=".6"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#855272"/> <circle id="Oval" cx="12" cy="12" r="11" fill="#8C5F93"/>
<g id="Group" transform="translate(6 6)" fill="#000"> <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="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"/> <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="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="alpine_hut-m"> <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="12" fill="#000" opacity=".6" fill-rule="nonzero"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#4D3B35" fill-rule="nonzero"/> <circle id="Oval" cx="12" cy="12" r="11" fill="#664E42" 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"/> <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>
</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 transform="scale(.66667)" id="Page-2:-Night" fill="none" fill-rule="evenodd" opacity="1">
<g id="alpine_hut-s"> <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="12" fill="#000" opacity=".6" fill-rule="nonzero"/>
<circle id="Oval" cx="12" cy="12" r="11" fill="#4D3B35" fill-rule="nonzero"/> <circle id="Oval" cx="12" cy="12" r="11" fill="#664E42" 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"/> <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>
</g> </g>

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

View File

@@ -2,7 +2,7 @@
<title>alternative-m</title> <title>alternative-m</title>
<g> <g>
<circle id="outer" r="12" cx="12" cy="12" fill="#000" opacity=".6"/> <circle id="outer" r="12" cx="12" cy="12" fill="#000" opacity=".6"/>
<circle id="inner" r="11" cx="12" cy="12" fill="#983E44"/> <circle id="inner" r="11" cx="12" cy="12" fill="#c15746"/>
<g fill="#000"> <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_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"/> <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